rfc1793
rfc1793
Moy
Request for Comments: 1793 Cascade
Category: Standards Track April 1995
Abstract
Demand circuits and regular network segments (e.g., leased lines) are
allowed to be combined in any manner. In other words, there are no
topological restrictions on the demand circuit support. However,
while any OSPF network segment can be defined as a demand circuit,
only point-to-point networks receive the full benefit. When broadcast
and NBMA networks are declared demand circuits, routing update
traffic is reduced but the periodic sending of Hellos is not, which
in effect still requires that the data-link connections remain
constantly open.
While mainly intended for use with cost-conscious network links such
as ISDN, X.25 and dial-up, the modifications in this memo may also
prove useful over bandwidth-limited network links such as slow-speed
leased lines and packet radio.
Moy [Page 1]
RFC 1793 OSPF over Demand Circuits April 1995
to-MultiPoint Interface).
Acknowledgments
Table of Contents
Moy [Page 2]
RFC 1793 OSPF over Demand Circuits April 1995
The model used within this memo for the maintenance of demand
circuits is as follows. If there is no data to send (either routing
protocol traffic or application data), the data-link connection
remains closed. As soon as there is data to be sent, an attempt to
open the data-link connection is made (e.g., an ISDN or X.25 call is
placed). When/if the data-link connection is established, the data is
sent, and the connection stays open until some period of time elapses
without more data to send. At this point the data-link connection is
again closed, in order to conserve cost and resources (see Section 1
of [2]).
Moy [Page 3]
RFC 1793 OSPF over Demand Circuits April 1995
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.
Moy [Page 4]
RFC 1793 OSPF over Demand Circuits April 1995
The semantics of the LSA's LS age field are changed, allowing the
high bit of the LS age field to be set. This bit is called
"DoNotAge"; see Appendix C for its formal definition. LSAs whose
LS age field have the DoNotAge bit set are not aged while they are
held in the link state database, which means that they do not have
to be refreshed every LSRefreshInterval as is done with all other
OSPF LSAs.
When comparing two LSA instances to see which one is most recent,
the two LSAs' LS age fields are compared whenever the LS sequence
numbers and LS checksums are found identical (see Section 13.1 of
[1]). Before comparing, the LS age fields must have their DoNotAge
bits masked off. For example, in determining which LSA is more
recent, LS ages of 1 and DoNotAge+1 are considered equivalent; an
LSA flooded with LS age of 1 may be acknowledged with a Link State
Acknowledgement listing an LS age of DoNotAge+1, or vice versa. In
particular, DoNotAge+MaxAge is equivalent to MaxAge; however for
backward-compatibility the MaxAge form should always be used when
flushing LSAs from the routing domain (see Section 14.1 of [1]).
Thus, the set of allowable values for the LS age field fall into
the two ranges: 0 through MaxAge and DoNotAge through
DoNotAge+MaxAge. (Previously the LS age field could not exceed
the value of MaxAge.) Any LS age field not falling into these two
ranges should be considered to be equal to MaxAge.
Moy [Page 5]
RFC 1793 OSPF over Demand Circuits April 1995
self-originated LSAs should never have the DoNotAge bit set in its
own database. This means that in any case the router's self-
originated LSAs will be refreshed every LSRefreshInterval. As
this refresh is flooded throughout the OSPF routing domain, it
will replace any LSA copies in other routers' databases whose
DoNotAge bits were mistakenly set.
Because LSAs with the DoNotAge bit set are never aged, they can
stay in the link state database even when the originator of the
LSA no longer exists. To ensure that these LSAs are eventually
flushed from the routing domain, and that the size of the link
state database doesn't grow without bound, routers are required to
flush a DoNotAge LSA if BOTH of the following conditions are met:
(1) The LSA has been in the router's database for at least
MaxAge seconds.
Moy [Page 6]
RFC 1793 OSPF over Demand Circuits April 1995
Moy [Page 7]
RFC 1793 OSPF over Demand Circuits April 1995
Moy [Page 8]
RFC 1793 OSPF over Demand Circuits April 1995
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).
Moy [Page 9]
RFC 1793 OSPF over Demand Circuits April 1995
For OSPF broadcast and NBMA networks that have been configured as
demand circuits, there are no changes to the Interface State
Machine.
For OSPF broadcast and NBMA networks that have been configured as
demand circuits, there is no change to the sending and receiving
of Hellos, nor are there any changes to the Neighbor State
Machine. This is because the proper operation of the Designated
Router election algorithm requires periodic exchange of Hello
Packets.
(1) Only truly changed LSAs are flooded over demand circuits.
When a router receives a new LSA instance, it checks first
to see whether the contents have changed. If not, the new
LSA is simply a periodic refresh and it is not flooded out
4. Examples
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 that RTB receives 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, indicating that the two routers have agreed that the
link will be treated as a demand circuit. The entire
negotiation is pictured in Figure 2. Note that if RTC were
unable or unwilling to suppress Hellos on the link, the
initial Database Description sent from Router RTC to RTB
would have the DC-bit clear, forcing Router RTB to revert to
the periodic sending of Hellos specified in Section 9.5 of
[1].
+ + +
| +---+ | |
+--+ |---|RTA|---| | +--+
|H1|---| +---+ | |---|H2|
+--+ | | +---+ ODL +---+ | +--+
|LAN Y |---|RTB|-------------|RTC|---|
+ | +---+ +---+ |
+ +
+---+ +---+
|RTB| |RTC|
+---+ +---+
Hello (DC-bit set)
------------------------------------->
Hello (DC-bit clear)
<-------------------------------------
Hello (DC-bit set, RTC seen)
------------------------------------->
Database Description (DC-bit set)
<-------------------------------------
LS age
LSA in RTB in RTC
______________________________________________
RTA's Router-LSA 1000 DoNotAge+1001
RTB's Router-LSA 10 DoNotAge+11
RTC's Router-LSA DoNotAge+11 10
Assume that Routers RTB and RTY are initially powered off, but
that all other routers and their attached links are both
operational and implement the demand circuit modifications to
OSPF. Throughout the example, a TCP connection between Hosts H1
and H2 is transmitting data. Furthermore, assume that the cost of
the demand circuit from RTB to RTC has been set considerably
higher than the cost of the leased line between RTB and RTD; for
this reason traffic between Hosts H1 and H2 will always be sent
over the leased line when it is operational.
+
+---+ |
|RTC|--| +
+---+ | +---+ |
+ / |--|RTE|--| +--+
+--+ | /ODL | +---+ |--|H2|
|H1|----| +---+ +---+/ | + +--+
+--+ |--|RTA|-------|RTB| |
| +---+ +---+\ | +
+ \ | +---+ |
\ |--|RTY|--|
+---+ | +---+ |
|RTD|--| +
+---+ |
+
LS age
LSA in RTC in RTD in RTE
________________________________________________
RTA's Router-LSA DoNotAge+20 21 21
RTB's Router-LSA DoNotAge+5 6 6
LS age
LSA in RTC in RTD in RTE
_______________________________________________
RTA's Router-LSA 5 6 6
RTB's Router-LSA DoNotAge+5 1785 1785
LS age
LSA in RTC in RTD in RTE
_______________________________________________________
RTA's Router-LSA 325 326 326
RTB's Router-LSA DoNotAge+5 DoNotAge+6 DoNotAge+6
LS age
LSA in RTC in RTD in RTE
_______________________________________________________
RTA's Router-LSA DoNotAge+7 DoNotAge+8 DoNotAge+8
RTB's Router-LSA DoNotAge+5 DoNotAge+6 DoNotAge+6
+ +--+
+---+ |--|H2|
+---------|RT2|--| +--+
/ +---+ |
/ ODL +
+--+ + /
|H1|--| / +
+--+ | +---+ ODL +---+ | +--+
|--|RT1|------------|RT3|--|--|H3|
| +---+ +---+ | +--+
| \ +
+ \ODL
\ + +--+
\ +---+ |--|H4|
+--------|RT4|--| +--+
+---+ |
+
5. Topology recommendations
6. Lost functionality
Robustness
In regular OSPF [1], all LSAs are refreshed every
LSRefreshInterval. This provides protection against routers
losing LSAs from (or LSAs getting corrupted in) their link state
databases due to software errors, etc. Over demand circuits
this periodic refresh is removed, and we depend on routers
correctly holding LSAs marked with DoNotAge in their databases
indefinitely.
Database Checksum
OSPF supplies network management variables, namely
ospfExternLSACksumSum and ospfAreaLSACksumSum in [7], allowing a
network management station to verify OSPF database
synchronization among routers. However, these variables are sums
of the individual LSAs' LS checksum fields, which are no longer
guaranteed to be identical across demand circuits (because the
LS checksum covers the LS Sequence Number, which will in general
differ across demand circuits). This means that these variables
can no longer be used to verify database synchronization in OSPF
networks containing demand circuits.
(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.
(3) Even when a spanning tree has been built, will it be used?
Routers implementing the functionality described in this memo do
not necessarily know which data-link connections are established
at any one time. In fact, they view all demand circuits as being
equally available, whether or not they are currently
established. So for example, even when the established
connections form the pattern in Figure 5a, Router RT1 may still
believe that the best path to Router RT3 is through the direct
demand circuit. However, this circuit cannot be established due
to resource shortages.
+--+ + + +--+
|H1|--| +---+ ODL +---+ |--|H2|
+--+ |--|RT1|-------|RT2|--| +--+
| +---+ +---+ |
+ | \ / | +
| \ / |
| \ / |
|ODL / |ODL
| / \ODL |
| / \ |
+ | /ODL \ | +
+--+ | +---+ +---+ | +--+
|H4|--|--|RT4|-------|RT3|--|--|H3|
+--+ | +---+ ODL +---+ | +--+
+ +
8. Unsupported capabilities
The memo defines one of the Option bits: the DC-bit (for Demand
Circuit capability). The DC-bit is set in a router's self-originated
LSAs if and only if it supports the functionality defined in Section
2 of this memo. Note that this does not necessarily mean that the
router can be the endpoint of a demand circuit, but only that it can
properly process LSAs having the DoNotAge bit set. In contrast, the
DC-bit is set in Hello Packets and Database Description Packets sent
out an interface if and only if the router wants to treat the
attached point-to-point network as a demand circuit (see Section
3.2.1).
The addition of the DC-bit makes the current assignment of the OSPF
Options field as follows:
+------------------------------------+
| * | * | DC | EA | N/P | MC | E | T |
+------------------------------------+
T-bit
This bit describes TOS-based routing capability, as specified in
[1].
E-bit
This bit describes the way AS-external-LSAs are flooded, as
described in [1].
MC-bit
This bit describes whether IP multicast datagrams are forwarded
according to the specifications in [4].
N/P-bit
This bit describes the handling of Type-7 LSAs, as specified in
[3].
EA-bit
This bit describes the router's willingness to receive and
forward External-Attributes-LSAs, as specified in [5].
DC-bit
This bit describes the handling of demand circuits, as specified
in this memo. Its setting in Hellos and Database Description
Packets is described in Sections 3.2.1 and 3.2.2. Its setting in
LSAs is described in Sections 2.1 and 2.5.
B. Configurable Parameters
ospfIfDemand
Indicates whether the interface connects to a demand circuit.
When set to TRUE, the procedures described in Section 3 of this
memo are followed, in order to send a minimum of routing traffic
over the demand circuit. On point-to-point networks, this allows
the circuit to be closed when not carrying application traffic.
When a broadcast or NBMA interface is configured to connect to a
demand circuit (see Section 1.2 of [1]), the data-link
connections will be kept open constantly due to OSPF Hello
traffic, but the amount of flooding traffic will still be
greatly reduced.
C. Architectural Constants
DoNotAge
Equal to the hexadecimal value 0x8000, which is the high bit of
the 16-bit LS age field in OSPF LSAs. When this bit is set in
the LS age field, the LSA is not aged as it is held in the
router's link state database. This allows the elimination of the
periodic LSA refresh over demand circuits. See Section 2.2 for
more information on processing the DoNotAge bit.
References
[1] Moy, J., "OSPF Version 2", RFC 1583, Proteon, Inc., March 1994.
[3] Coltun, R. and V. Fuller, "The OSPF NSSA Option", RFC 1587,
RainbowBridge Communications, Stanford University, March 1994.
[4] Moy, J., "Multicast Extensions to OSPF", RFC 1584, Proteon, Inc.,
March 1994.
[6] Moy, J., Editor, "OSPF Protocol Analysis", RFC 1245, Proteon,
Inc., July 1991.
Security Considerations
Author's Address
John Moy
Cascade Communications Corp.
5 Carlisle Road
Westford, MA 01886