RFC1247 - OSPF Version 2(5)

王朝other·作者佚名  2008-05-31
宽屏版  字体: |||超大  

(c) If the new advertisement was received from this neighbor, try

the next neighbor.

(d) At this point we are not positive that the new neighbor has an

up-to-date instance of this new advertisement. Add the new

advertisement to the Link state retransmission list for the

adjacency. This ensures that the flooding procedure is

reliable; the advertisement will be retransmitted at intervals

until an acknowledgment is seen from the neighbor.

(2) The router must now decide whether to flood the new link state

advertisement out this interface. If in the previous step, the link

state advertisement was NOT added to any of the Link state

retransmission lists, there is no need to flood the advertisement

and the next interface should be examined.

(3) If the new advertisement was received on this interface, and it was

received from either the Designated Router or the Backup Designated

Router, chances are all the neighbors have received the

advertisement already. Therefore, examine the next interface.

(4) If the new advertisement was received on this interface, and the

interface state is Backup (i.e., the router itself is the Backup

Designated Router), examine the next interface. The Designated

Router will do the flooding on this interface. If the Designated

Router fails, this router will end up retransmitting the updates.

(5) If this step is reached, the advertisement must be flooded out the

interface. Send a Link State Update packet (with the new

advertisement as contents) out the interface. The advertisement's

LS age must be incremented by InfTransDelay (which must be > 0) when

copied into the outgoing packet (until the LS age field reaches its

maximum value of MaxAge).

On broadcast networks, the Link State Update packets are multicast.

The destination IP address specified for the Link State Update

Packet depends on the state of the interface. If the interface

state is DR or Backup, the address AllSPFRouters should be used.

Otherwise, the address AllDRouters should be used.

On non-broadcast, multi-access networks, separate Link State Update

packets must be sent, as unicasts, to each adjacent neighbor (i.e.,

those in state Exchange or greater). The destination IP addresses

for these packets are the neighbors' IP addresses.

13.4 Receiving self-originated link state

It is a common occurrence to receive a self-originated link state

advertisement via the flooding procedure. If the advertisement received

is a newer instance than the last instance that the router actually

originated, the router must take special action.

The reception of such an advertisement indicates that there are link

state advertisements in the routing domain that were originated before

the last time the router was restarted. In this case, the router must

advance the sequence number for the advertisement one past the received

sequence number, and originate a new instance of the advertisement.

Note also that if the type of the advertisement is Summary link or AS

external link, the router may no longer have an (advertisable) route to

the destination. In this case, the advertisement should be flushed from

the routing domain by incrementing the advertisement's LS age to MaxAge

and reflooding (see Section 14.1).

13.5 Sending Link State Acknowledgment packets

Each newly received link state advertisement must be acknowledged. This

is usually done by sending Link State Acknowledgment packets. However,

acknowledgments can also be accomplished implicitly by sending Link

State Update packets (see step 7a of Section 13).

Many acknowledgments may be grouped together into a single Link State

Acknowledgment packet. Such a packet is sent back out the interface

that has received the advertisements. The packet can be sent in one of

two ways: delayed and sent on an interval timer, or sent directly (as a

unicast) to a particular neighbor. The particular acknowledgment

strategy used depends on the circumstances surrounding the receipt of

the advertisement.

Sending delayed acknowledgments accomplishes several things: it

facilitates the packaging of multiple acknowledgments in a single

packet; it enables a single packet to indicate acknowledgments to

several neighbors at once (through multicasting); and it randomizes the

acknowledgment packets sent by the various routers attached to a multi-

access network. The fixed interval between a router's delayed

transmissions must be short (less than RxmtInterval) or needless

retransmissions will ensue.

Direct acknowledgments are sent to a particular neighbor in response to

the receipt of duplicate link state advertisements. These

acknowledgments are sent as unicasts, and are sent immediately when the

duplicate is received.

The precise procedure for sending Link State Acknowledgment packets is

described in Table 19. The circumstances surrounding the receipt of the

advertisement are listed in the left column. The acknowledgment action

then taken is listed in one of the two right columns. This action

depends on the state of the concerned interface; interfaces in state

Backup behave differently from interfaces in all other states.

Action taken in state

Circumstances Backup All other states

______________________________________________________________

Action taken in state

Circumstances Backup All other states

______________________________________________________________

Advertisement has No acknowledgment No acknowledgment

been flooded back sent. sent.

out receiving in-

terface (see Sec-

tion 13, step 5b).

______________________________________________________________

Advertisement is Delayed ack- Delayed ack-

more recent than nowledgment sent nowledgment sent.

database copy, but if advertisement

was not flooded received from DR,

back out receiving otherwise do noth-

interface ing

______________________________________________________________

Advertisement is a Delayed ack- No acknowledgment

duplicate, and was nowledgment sent sent.

treated as an im- if advertisement

plied acknowledg- received from DR,

ment (see Section otherwise do noth-

13, step 7a). ing

______________________________________________________________

Advertisement is a Direct acknowledg- Direct acknowledg-

duplicate, and was ment sent. ment sent.

not treated as an

implied ack-

nowledgment.

______________________________________________________________

Advertisement's age Direct acknowledg- Direct acknowledg-

is equal to MaxAge, ment sent. ment sent.

and there is no

current instance of

the advertisement in

the link state

database (see

Section 13, step 4).

Table 19: Sending link state acknowledgements.

Delayed acknowledgments must be delivered to all adjacent routers

associated with the interface. On broadcast networks, this is

accomplished by sending the delayed Link State Acknowledgment packets as

multicasts. The Destination IP address used depends on the state of the

interface. If the state is DR or Backup, the destination AllSPFRouters

is used. In other states, the destination AllDRouters is used. On

non-broadcast networks, delayed acks must be unicast separately over

each adjacency (neighbor whose state is >= Exchange).

The reasoning behind sending the above packets as multicasts is best

explained by an example. Consider the network configuration depicted in

Figure 15. Suppose RT4 has been elected as DR, and RT3 as Backup for

the network N3. When router RT4 floods a new advertisement to network

N3, it is received by routers RT1, RT2, and RT3. These routers will not

flood the advertisement back onto net N3, but they still must ensure

that their topological databases remain synchronized with their adjacent

neighbors. So RT1, RT2, and RT4 are waiting to see an acknowledgment

from RT3. Likewise, RT4 and RT3 are both waiting to see acknowledgments

from RT1 and RT2. This is best achieved by sending the acknowledgments

as multicasts.

The reason that the acknowledgment logic for Backup DRs is slightly

different is because they perform differently during the flooding of

link state advertisements (see Section 13.3, step 4).

13.6 Retransmitting link state advertisements

Advertisements flooded out an adjacency are placed on the adjacency's

Link state retransmission list. In order to ensure that flooding is

reliable, these advertisements are retransmitted until they are

acknowledged. The length of time between retransmissions is a

configurable per-interface value, RxmtInterval. If this is set too low

for an interface, needless retransmissions will ensue. If the value is

set too high, the speed of the flooding, in the face of lost packets,

may be affected.

Several retransmitted advertisements may fit into a single Link State

Update packet. When advertisements are to be retransmitted, only the

number fitting in a single Link State Update packet should be

transmitted. Another packet of retransmissions can be sent when some of

the advertisements are acknowledged, or on the next firing of the

retransmission timer.

Link State Update Packets carrying retransmissions are always sent as

unicasts (directly to the physical address of the neighbor). They are

never sent as multicasts. Each advertisement's LS age must be

incremented by InfTransDelay (which must be > 0) when copied into the

outgoing packet (until the LS age field reaches its maximum value of

MaxAge).

If the adjacent router goes down, retransmissions may occur until the

adjacency is destroyed by OSPF's Hello Protocol. When the adjacency is

destroyed, the Link state retransmission list is cleared.

13.7 Receiving link state acknowledgments

Many consistency checks have been made on a received Link State

Acknowledgment packet before it is handed to the flooding procedure. In

particular, it has been associated with a particular neighbor. If this

neighbor is in a lesser state than Exchange, the packet is discarded.

Otherwise, for each acknowledgment in the packet, the following steps

are performed:

o Does the advertisement acknowledged have an instance on the Link

state retransmission list for the neighbor? If not, examine the

next acknowledgment. Otherwise:

o If the acknowledgment is for the same instance that is contained on

the list, remove the item from the list and examine the next

acknowledgment. Otherwise:

o Log the questionable acknowledgment, and examine the next one.

14. Aging The Link State Database

Each link state advertisement has an age field. The age is expressed in

seconds. An advertisement's age field is incremented while it is

contained in a router's database. Also, when copied into a Link State

Update Packet for flooding out a particular interface, the

advertisement's age is incremented by InfTransDelay.

An advertisement's age is never incremented past the value MaxAge.

Advertisements having age MaxAge are not used in the routing table

calculation. As a router ages its link state database, an

advertisement's age may reach MaxAge.[17] At this time, the router must

attempt to flush the advertisement from the routing domain. This is

done simply by reflooding the MaxAge advertisement just as if it was a

newly originated advertisement (see Section 13.3).

When a Database summary list for a newly adjacent neighbor is formed,

any MaxAge advertisements present in the link state database are added

to the neighbor's Link state retransmission list instead of the

neighbor's Database summary list. See Section 10.3 for more details.

A MaxAge advertisement is removed entirely from the router's link state

database when a) it is no longer contained on any neighbor Link state

retransmission lists and b) none of the router's neighbors are in states

Exchange or Loading.

When, in the process of aging the link state database, an

advertisement's age hits a multiple of CheckAge, its checksum should be

verified. If the checksum is incorrect, a program or memory error has

been detected, and at the very least the router itself should be

restarted.

14.1 Premature aging of advertisements

A link state advertisement can be flushed from the routing domain by

setting its age to MaxAge and reflooding the advertisement. This

procedure follows the same course as flushing an advertisement whose age

has naturally reached the value MaxAge (see Section 14). In particular,

the MaxAge advertisement is removed from the router's link state

database as soon as a) it is no longer contained on any neighbor Link

state retransmission lists and b) none of the router's neighbors are in

states Exchange or Loading. We call the setting of an advertisement's

age to MaxAge premature aging.

Premature aging is used when it is time for a self-originated

advertisement's sequence number field to wrap. At this point, the

current advertisement instance (having LS sequence number of 0x7fffffff)

must be prematurely aged and flushed from the routing domain before a

new instance with sequence number 0x80000001 can be originated. See

Section 12.1.6 for more information.

Premature aging can also be used when, for example, one of the router's

previously advertised external routes is no longer reachable. In this

circumstance, the router can flush its external advertisement from the

routing domain via premature aging. This procedure is preferable to the

alternative, which is to originate a new advertisement for the

destination specifying a metric of LSInfinity.

A router may only prematurely age its own (self-originated) link state

advertisements. These are the link state advertisements having the

router's own OSPF Router ID in the Advertising Router field.

15. Virtual Links

The single backbone area (Area ID = 0) cannot be disconnected, or some

areas of the Autonomous System will become unreachable. To

establish/maintain connectivity of the backbone, virtual links can be

configured through non-backbone areas. Virtual links serve to connect

separate components of the backbone. The two endpoints of a virtual

link are area border routers. The virtual link must be configured in

both routers. The configuration information in each router consists of

the other virtual endpoint (the other area border router), and the non-

backbone area the two routers have in common (called the transit area).

Virtual links cannot be configured through stub areas (see Section 3.6).

The virtual link is treated as if it were an unnumbered point-to-point

network (belonging to the backbone) joining the two area border routers.

An attempt is made to establish an adjacency over the virtual link.

When this adjacency is established, the virtual link will be included in

backbone router links advertisements, and OSPF packets pertaining to the

backbone area will flow over the adjacency. Such an adjacency has been

referred to as a "virtual adjacency".

In each endpoint router, the cost and viability of the virtual link is

discovered by examining the routing table entry for the other endpoint

router. (The entry's associated area must be the configured transit

area). Actually, there may be a separate routing table entry for each

Type of Service. These are called the virtual link's corresponding

routing table entries. The Interface Up event occurs for a virtual link

when its corresponding TOS 0 routing table entry becomes reachable.

Conversely, the Interface Down event occurs when its TOS 0 routing table

entry becomes unreachable.[18] In other words, the virtual link's

viability is determined by the existence of an intra-area path, through

the transit area, between the two endpoints. The other details

concerning virtual links are as follows:

o AS external links are NEVER flooded over virtual adjacencies. This

would be duplication of effort, since the same AS external links are

already flooded throughout the virtual link's transit area. For

this same reason, AS external link advertisements are not summarized

over virtual adjacencies during the database exchange process.

o The cost of a virtual link is NOT configured. It is defined to be

the cost of the intra-area path between the two defining area border

routers. This cost appears in the virtual link's corresponding

routing table entry. When the cost of a virtual link changes, a new

router links advertisement should be originated for the backbone

area.

o Just as the virtual link's cost and viability are determined by the

routing table build process (through construction of the routing

table entry for the other endpoint), so are the IP interface address

for the virtual interface and the virtual neighbor's IP address.

These are used when sending protocol packets over the virtual link.

o In each endpoint's router links advertisement for the backbone, the

virtual link is represented as a link having link type 4, Link ID

set to the virtual neighbor's OSPF Router ID and Link Data set to

the virtual interface's IP address. See Section 12.4.1 for more

information. Also, it may be the case that there is a TOS 0 path,

but no non-zero TOS paths to the other endpoint router. In this

case, non-zero TOS costs must be set to LSInfinity in the router

links advertisement.

o When virtual links are configured for the backbone, information

concerning backbone networks should not be condensed before being

summarized for the transit areas. In other words, each backbone

network should be advertised in a separate summary link

advertisement, regardless of the backbone's configured area address

ranges. See Section 12.4.3 for more information.

o The time between link state retransmissions, RxmtInterval, is

configured for a virtual link. This should be well over the

expected round-trip delay between the two routers. This may be hard

to estimate for a virtual link. It is better to err on the side of

making it too large.

16. Calculation Of The Routing Table

This section details the OSPF routing table calculation. Using its

attached areas' link state databases as input, a router runs the

following algorithm, building its routing table step by step. At each

step, the router must access individual pieces of the link state

databases (e.g., a router links advertisement originated by a certain

router). This access is performed by the lookup function discussed in

Section 12.2. The lookup process may return a link state advertisement

whose LS age is equal to MaxAge. Such an advertisement should not be

used in the routing table calculation, and is treated just as if the

lookup process had failed.

The OSPF routing table's organization is explained in Section 11. Two

examples of the routing table build process are presented in Sections

11.2 and 11.3. This process can be broken into the following steps:

(1) The present routing table is invalidated. The routing table is

built again from scratch. The old routing table is saved so that

changes in routing table entries can be identified.

(2) The intra-area routes are calculated by building the shortest path

tree for each attached area. In particular, all routing table

entries whose Destination type is "area border router" are

calculated in this step. This step is described in two parts. At

first the tree is constructed by only considering those links

between routers and transit networks. Then the stub networks are

incorporated into the tree.

(3) The inter-area routes are calculated, through examination of summary

link advertisements. If the router is attached to multiple areas

(i.e., it is an area border router), only backbone summary link

advertisements are examined.

(4) For those routing entries whose next hop is over a virtual link, a

real (physical) next hop is calculated. The real next hop will be

on one of the router's directly attached networks. This step only

concerns routers having configured virtual links.

(5) Routes to external destinations are calculated, through examination

of AS external link advertisements. The location of the AS boundary

routers (which originate the AS external link advertisements) has

been determined in steps 2-4.

Steps 2-5 are explained in further detail below. The explanations

describe the calculations for TOS 0 only. It may also be necessary to

perform each step (separately) for each of the non-zero TOS values.[19]

For more information concerning the building of non-zero TOS routes see

Section 16.9.

Changes made to routing table entries as a result of these calculations

can cause the OSPF protocol to take further actions. For example, a

change to an intra-area route will cause an area border router to

originate new summary link advertisements (see Section 12.4). See

Section 16.7 for a complete list of the OSPF protocol actions resulting

from routing table table changes.

16.1 Calculating the shortest-path tree for an area

This calculation yields the set of intra-area routes associated with an

area (called hereafter Area A). A router calculates the shortest-path

tree using itself as the root.[20] The formation of the shortest path

tree is done here in two stages. In the first stage, only links between

routers and transit networks are considered. Using the Dijkstra

algorithm, a tree is formed from this subset of the link state database.

In the second stage, leaves are added to the tree by considering the

links to stub networks.

The procedure will be explained using the graph terminology that was

introduced in Section 2. The area's link state database is represented

as a directed graph. The graph's vertices are routers, transit networks

and stub networks. The first stage of the procedure concerns only the

transit vertices (routers and transit networks) and their connecting

links. Throughout the shortest path calculation, the following data is

also associated with each transit vertex:

Vertex (node) ID

A 32-bit number uniquely identifying the vertex. For router

vertices this is the OSPF Router ID. For network vertices, this is

the IP address of the network's Designated Router.

A link state advertisement

Each transit vertex has an associated link state advertisement. For

router vertices, this is a router links advertisement. For transit

networks, this is a network links advertisement (which is actually

originated by the network's Designated Router). In any case, the

advertisement's Link State ID is always equal to the above Vertex

ID.

List of next hops

The list of next hops for the current shortest paths from the root

to this vertex. There can be multiple shortest paths due to the

equal-cost multipath capability. Each next hop indicates the

outgoing router interface to use when forwarding traffic to the

destination. On multi-access networks, the next hop also includes

the IP address of the next router (if any) in the path towards the

destination.

Distance from root

The link state cost of the current shortest path(s) from the root to

the vertex. The link state cost of a path is calculated as the sum

of the costs of the path's constituent links (as advertised in

router links and network links advertisements). One path is said to

be "shorter" than another if it has a smaller link state cost.

The first stage of the procedure can now be summarized as follows. At

each iteration of the algorithm, there is a list of candidate vertices.

The shortest paths from the root to these vertices have not

(necessarily) been found. The candidate vertex closest to the root is

added to the shortest-path tree, removed from the candidate list, and

its adjacent vertices are examined for possible addition to/modification

of the candidate list. The algorithm then iterates again. It

terminates when the candidate list becomes empty.

The following steps describe the first stage in detail. Remember that

we are computing the shortest path tree for Area A. All references to

link state database lookup below are from Area A's database.

(1) Initialize the algorithm's data structures. Clear the list of

candidate vertices. Initialize the shortest-path tree to only the

root (which is the router doing the calculation).

(2) Call the vertex just added to the tree vertex V. Examine the link

state advertisement associated with vertex V. This is a lookup in

the area link state database based on the Vertex ID. Each link

described by the advertisement gives the cost to an adjacent vertex.

For each described link, (say it joins vertex V to vertex W):

(a) If this is a link to a stub network, examine the next link in

V's advertisement. Links to stub networks will be considered in

the second stage of the shortest path calculation.

(b) Otherwise, W is a transit vertex (router or transit network).

Look up the vertex W's link state advertisement (router links or

network links) in Area A's link state database. If the

advertisement does not exist, or its age is equal to MaxAge, or

it does not have a link back to vertex V, examine the next link

in V's advertisement. Both ends of a link must advertise the

link before it will be used for data traffic.[21]

(c) If vertex W is already on the shortest-path tree, examine the

next link in the advertisement.

(d) If the cost of the link (from V to W) is LSInfinity, the link

should not be used for data traffic. In this case, examine the

next link in the advertisement.

(e) Calculate the link state cost D of the resulting path from the

root to vertex W. D is equal to the sum of the link state cost

of the (already calculated) shortest path to vertex V and the

advertised cost of the link between vertices V and W. If D is:

o Greater than the value that already appears for vertex W on

the candidate list, then examine the next link.

o Equal to the value that appears for vertex W on the the

candidate list, calculate the set of next hops that result

from using the advertised link. Input to this calculation

is the destination (W), and its parent (V). This

calculation is shown in Section 16.1.1. This set of hops

should be added to the next hop values that appear for W on

the candidate list.

o Less than the value that appears for vertex W on the the

candidate list, or if W does not yet appear on the candidate

list, then set the entry for W on the candidate list to

indicate a distance of D from the root. Also calculate the

list of next hops that result from using the advertised

link, setting the next hop values for W accordingly. The

next hop calculation is described in Section 16.1.1; it

takes as input the destination (W) and its parent (V).

(3) If at this step the candidate list is empty, the shortest-path tree

(of transit vertices) has been completely built and this stage of

the algorithm terminates. Otherwise, choose the vertex belonging to

the candidate list that is closest to the root, and add it to the

shortest-path tree (removing it from the candidate list in the

process).

(4) Possibly modify the routing table. For those routing table entries

modified, the associated area will be set to Area A, the path type

will be set to intra-area, and the cost will be set to the newly

discovered shortest path's calculated distance.

If the newly added vertex is an area border router, a routing table

entry is added whose destination type is "area border router". The

Options field found in the associated router links advertisement is

copied into the routing table entry's Optional capabilities field.

If the newly added vertex is an AS boundary router, the routing

table entry of type "AS boundary router" for the destination is

located. Since routers can belong to more than one area, it is

possible that several sets of intra-area paths exist to the AS

boundary router, each set using a different area. However, the AS

boundary router's routing table entry must indicate a set of paths

which utilize a single area. The area leading to the routing table

entry is selected as follows: A set of intra-area paths having no

virtual next hops is always preferred over a set of intra-area paths

in which some virtual next hops appear[22] ; all other things being

equal the set of paths having lower cost is preferred. Note that

whenever an AS boundary router's routing table entry is

added/modified, the Options found in the associated router links

advertisement is copied into the routing table entry's Optional

capabilities field.

If the newly added vertex is a transit network, the routing table

entry for the network is located. The entry's destination ID is the

IP network number, which can be obtained by masking the Vertex ID

(Link State ID) with its associated subnet mask (found in the

associated network links advertisement). If the routing table entry

already exists (i.e., there is already an intra-area route to the

destination installed in the routing table), multiple vertices have

mapped to the same IP network. For example, this can occur when a

new Designated Router is being established. In this case, the

current routing table entry should be overwritten if and only if the

newly found path is just as short and the current routing table

entry's Link State Origin has a smaller Link State ID than the newly

added vertex' link state advertisement.

If there is no routing table entry for the network (the usual case),

a routing table entry for the IP network should be added. The

routing table entry's Link State origin should be set to the newly

added vertex' link state advertisement.

(5) Iterate the algorithm by returning to Step 2.

The stub networks are added to the tree in the procedure's second stage.

In this stage, all router vertices are again examined. Those that have

been determined to be unreachable in the above first phase are

discarded. For each reachable router vertex (call it V), the associated

router links advertisement is found in the link state database. Each

stub network link appearing in the advertisement is then examined, and

the following steps are executed:

(1) If the cost of the stub network link is LSInfinity, the link should

not be used for data traffic. In this case, go on to examine the

next stub network link in the advertisement.

(2) Otherwise, Calculate the distance D of stub network from the root.

D is equal to the distance from the root to the router vertex

(calculated in stage 1), plus the stub network link's advertised

cost. Compare this distance to the current best cost to the stub

network. This is done by looking up the network's current routing

table entry. If the calculated distance D is larger, go on to

examine the next stub network link in the advertisement.

(3) If this step is reached, the stub network's routing table entry must

be updated. Calculate the set of next hops that would result from

using the stub network link. This calculation is shown in Section

16.1.1; input to this calculation is the destination (the stub

network) and the parent vertex (the router vertex). If the distance

D is the same as the current routing table cost, simply add this set

of next hops to the routing table entry's list of next hops. In

this case, the routing table already has a Link State origin. If

this Link State origin is a router links advertisement whose Link

State ID is smaller than V's Router ID, reset the Link State origin

to V's router links advertisement.

Otherwise D is smaller than the routing table cost. Overwrite the

current routing table entry by setting the routing table entry's

cost to D, and by setting the entry's list of next hops to the newly

calculated set. Set the routing table entry's Link State origin to

V's router links advertisement. Then go on to examine the next stub

network link.

For all routing table entries added/modified in the second stage, the

associated area will be set to Area A and the path type will be set to

intra-area. When the list of reachable router links is exhausted, the

second stage is completed. At this time, all intra-area routes

associated with Area A have been determined.

The specification does not require that the above two stage method be

used to calculate the shortest path tree. However, if another algorithm

is used, an identical tree must be produced. For this reason, it is

important to note that links between transit vertices must be

bidirectional in ordered to be included in the above tree. It should

also be mentioned that algorithms exist for incrementally updating the

shortest-path tree (see [BBN]).

16.1.1 The next hop calculation

This section explains how to calculate the current set of next hops to

use for a destination. Each next hop consists of the outgoing interface

to use in forwarding packets to the destination together with the next

hop router (if any). The next hop calculation is invoked each time a

shorter path to the destination is discovered. This can happen in

either stage of the shortest-path tree calculation (see Section 16.1).

In stage 1 of the shortest-path tree calculation a shorter path is found

as the destination is added to the candidate list, or when the

destination's entry on the candidate list is modified (Step 2e of Stage

1). In stage 2 a shorter path is discovered each time the destination's

routing table entry is modified (Step 3 of Stage 2).

The set of next hops to use for the destination may be recalculated

several times during the shortest-path tree calculation, as shorter and

shorter paths are discovered. In the end, the destination's routing

table entry will always reflect the next hops resulting from the

absolute shortest path(s).

Input to the next hop calculation is a) the destination and b) its

parent in the current shortest path between the root (the calculating

router) and the destination. The parent is always a transit vertex

(i.e., always a router or a transit network).

If there is at least one intervening router in the current shortest path

between the destination and the root, the destination simply inherits

the set of next hops from the parent. Otherwise, there are two cases.

In the first case, the parent vertex is the root (the calculating router

itself). This means that the destination is either a directly connected

network or directly connected router. The next hop in this case is

simply the OSPF interface connecting to the network/router; no next hop

router is required.

In the second case, the destination is a router, and its parent vertex

is a network. The list of next hops is then determined by examining the

destination's router links advertisement. For each link in the

advertisement that points back to the parent network, the link's Link

Data field provides the IP address of a next hop router. The outgoing

interface to use can then be derived from the next hop IP address (or it

can be inherited from the parent network).

16.2 Calculating the inter-area routes

The inter-area routes are calculated by examining summary link

advertisements. If the router has active attachments to multiple areas,

only backbone summary link advertisements are examined. Routers

attached to a single area examine that area's summary links. In either

case, the summary links examined below are all part of a single area's

link state database (call it Area A).

Summary link advertisements are originated by the area border routers.

Each summary link advertisement in Area A is considered in turn.

Remember that the destination described by a summary link advertisement

is either a network (type 3 summary link advertisements) or an AS

boundary router (type 4 summary link advertisements). For each summary

link advertisement:

(1) If the cost specified by the advertisement is LSInfinity, then

examine the next advertisement.

(2) If the advertisement was originated by the calculating router

itself, examine the next advertisement.

(3) If the collection of destinations described by the summary link

falls into one of the router's configured area address ranges (see

Section 3.5) and the particular area address range is active, the

summary link should be ignored. Active means that there are one or

more reachable (by intra-area paths) networks contained in the area

range. In this case, all addresses in the area range are assumed to

be either reachable via intra-area paths, or else to be unreachable

by any other means.

(4) Else, call the destination described by the advertisement N, and the

area border originating the advertisement BR. Look up the routing

table entry for BR having A as its associated area. If no such

entry exists for router BR (i.e., BR is unreachable in Area A), do

nothing with this advertisement and consider the next in the list.

Else, this advertisement describes an inter-area path to destination

N, whose cost is the distance to BR plus the cost specified in the

advertisement. Call the cost of this inter-area path IAC.

(5) Next, look up the routing table entry for the destination N. (The

entry's Destination type is either Network or AS boundary router.)

If no entry exists for N or if the entry's path type is "AS

external", install the inter-area path to N, with associated area A,

cost IAC, next hop equal to the list of next hops to router BR, and

advertising router equal to BR.

(6) Else, if the paths present in the table are intra-area paths, do

nothing with the advertisement (intra-area paths are always

preferred).

(7) Else, the paths present in the routing table are also inter-area

paths. Install the new path through BR if it is cheaper, overriding

the paths in the routing table. Otherwise, if the new path is the

same cost, add it to the list of paths that appear in the routing

table entry.

16.3 Resolving virtual next hops

This step is only necessary in area-border routers having configured

virtual links. In these routers, some of the routing table entries may

have virtual next hops. That is, one or more of the next hops installed

in Sections 16.1 and 16.2 may be over a virtual link. However, when

forwarding data traffic to a destination, the next hops must always be

on a directly attached network.

In this section, each virtual next hop is replaced by a real next hop.

In the process a new routing table distance is calculated that may be

smaller than the previously calculated distance. In this case, the list

of next hops is pruned so that only those giving rise to the new

shortest distance are included, and the routing table entry's distance

is updated accordingly.

______________________________________

(Figure not included in text version.)

Figure 17: Resolving virtual next hops

______________________________________

This resolution of virtual next hops is done only for Destination types

Network or AS Boundary router. Suppose that one of a routing table

entry's next hops is a virtual link. This is determined by the

following combination: the routing table entry's path type is either

intra-area or inter-area, the area associated with the routing table

entry must be the backbone, yet the next hop belongs to a different area

(the virtual link's transit area).

Let N be the above entry's destination, and A the virtual link's transit

area. The real next hop (and new distance) is calculated as follows.

Let D be a distance counter, and set the real next hop NH to null.

Then, look up all the summary link advertisements for N in area A's

database, performing the following steps for each advertisement:[23]

(1) Call the border router that originated the advertisement BR. If

there is no routing table entry for BR having A as associated area

(i.e., BR is unreachable through Area A), examine the next

advertisement.

(2) Else, let X be the distance to BR via Area A. If the cost

advertised by BR (call it Y) to the destination is LSInfinity,

examine the next summary link advertisement. Else, the cost to

destination N through area border router BR is X+Y.

(3) If next hop NH is null or X+Y is smaller is smaller than D, set D to

X+Y and set the next hop NH to the next hop specified in router BR's

routing table entry.

At this point, the real next hop NH should be set, and the distance D

calculated should be less than or equal to the cost originally specified

in destination N's routing table entry. This same calculation should be

done for all of N's virtual next hops, and then N's new cost set to the

minimum calculated distance, with the its new set of next hops that

combination of non-virtual and recalculated next hops that correspond to

this (possibly same as original) distance.

The resolving of virtual next hops may produce unexpected results.

After the virtual next hops are resolved, traffic that was originally

scheduled to go over the virtual link may instead take a different path

through the virtual link's transit area. In other words, virtual links

allow transit traffic to be forwarded through an area, but do not

dictate the precise path that the traffic will take.

As an example, consider the Autonomous System pictured in Figure 17.

There is a single non-backbone area (Area 1) that physically divides the

backbone into two separate pieces. To maintain connectivity of the

backbone, a virtual link has been configured between routers RT1 and

RT4. On the right side of the figure, network N1 belongs to the

backbone. The dotted lines indicate that there is a much shorter

intra-area backbone path between router RT5 and network N1 (cost 20)

than there is between router RT4 and network N1 (cost 100). Both router

RT4 and router RT5 will inject summary link advertisements for network

N1 into Area 1.

After the shortest-path tree has been calculated for the backbone,

router RT1 (one end of the virtual link) will have selected router RT4

as the virtual next hop for all data traffic destined for network N1.

However, since router RT5 is so much closer to network N1, all routers

internal to Area 1 (e.g., routers RT2 and RT3) will forward their

network N1 traffic towards router RT5, instead of RT4. And indeed,

after resolving the virtual next hop by the above calculation, router

RT1 will also forward network N1 traffic towards RT5. So, in this

example the virtual link enables network N1 traffic to be forwarded

through the transit Area 1, but the actual path the data traffic takes

does not follow the virtual link.

16.4 Calculating AS external routes

AS external routes are calculated by examining AS external link

advertisements. Each of the AS external link advertisements is

considered in turn. Most AS external advertisements describe routes to

specific IP destinations. An AS external advertisement can also

describe a default route for the Autonomous System (destination =

DefaultDestination). For each AS external link advertisement:

(1) If the cost specified by the advertisement is LSInfinity, then

examine the next advertisement.

(2) If the advertisement was originated by the calculating router

itself, examine the next advertisement.

(3) Call the destination described by the advertisement N. Look up the

routing table entry for the AS boundary router (ASBR) that

originated the advertisement. If no entry exists for router ASBR

(i.e., ASBR is unreachable), do nothing with this advertisement and

consider the next in the list.

Else, this advertisement describes an AS external path to

destination N. Examine the forwarding address specified in the

external advertisement. This indicates the IP address to which

packets for the destination should be forwarded. If forwarding

address is set to 0.0.0.0, packets should be sent to the ASBR

itself. Otherwise, look up the forwarding address in the routing

table.[24] An intra-area or inter-area path must exist to the

forwarding address. If no such path exists, do nothing with the

advertisement and consider the next in the list.

Call the routing table distance to the forwarding address X (when

the forwarding address is set to 0.0.0.0, this is the distance to

the ASBR itself), and the cost specified in the advertisement Y. X

is in terms of the link state metric, and Y is a Type 1 or 2

external metric.

(4) Next, look up the routing table entry for the destination N. If no

entry exists for N, install the AS external path to N, with next hop

equal to the list of next hops to the forwarding address, and

advertising router equal to ASBR. If the external metric type is 1,

then the path-type is set to type 1 external and the cost is equal

to X+Y. If the external metric type is 2, the the path-type is set

to type 2 external, the link state component of the route's cost is

X, and the Type 2 cost is Y.

(5) Else, if the paths present in the table are not type 1 or type 2

external paths, do nothing (AS external paths have the lowest

priority).

(6) Otherwise, compare the cost of this new AS external path to the ones

present in the table. Type 1 external paths are always shorter than

Type 2 external paths. Type 1 external paths are compared by

looking at the sum of the distance to the forwarding address and the

advertised Type 1 metric (X+Y). Type 2 external paths are compared

by looking at the advertised Type 2 metrics, and then if necessary,

the distance to the forwarding addresses.

If the new path is shorter, it replaces the present paths in the

routing table entry. If the new path is the same cost, it is added

to the routing table entry's list of paths.

16.5 Incremental updates --- summary links

When a new summary link advertisement is received, it is not necessary

to recalculate the entire routing table. Call the destination described

by the summary link advertisement N, and let A be the area to which the

advertisement belongs.

Look up the routing table entry for N. If the next hop to N is a

virtual link through Area A (this means that the entry's associated area

is the backbone, and the listed next hop does not belong to the

backbone, but instead belongs to Area A), the real next hop must again

be resolved. This means running the algorithm in Section 16.3 for

destination N only.

Else, if there is an intra-area route to destination N nothing need be

done (intra-area routes always take precedence). Otherwise, if Area A

is the router's sole attached area, or Area A is the backbone, the

procedure in Section 16.2 will have to be performed, but only for those

summary link advertisements whose destination is N. Before this

procedure is performed, the present routing table entry for N should be

invalidated (but kept for comparison purposes). If this procedure leads

to a virtual next hop, the algorithm in Section 16.3 will again have to

be performed in order to calculate the real next hop.

If N's routing table entry changes, and N is an AS boundary router, the

AS external links will have to be reexamined (Section 16.4).

16.6 Incremental updates --- AS external links

When a new AS external link advertisement is received, it is not

necessary to recalculate the entire routing table. Call the destination

described by the AS external link advertisement N. If there is already

an intra-area or inter-area route to the destination, no recalculation

is necessary (these routes take precedence).

Otherwise, the procedure in Section 16.4 will have to be performed, but

only for those AS external link advertisements whose destination is N.

Before this procedure is performed, the present routing table entry for

N should be invalidated.

16.7 Events generated as a result of routing table changes

Changes to routing table entries sometimes cause the OSPF area border

routers to take additional actions. These routers need to act on the

following routing table changes:

o The cost or path type of a routing table entry has changed. If the

destination described by this entry is a Network or AS boundary

router, and this is not simply a change of AS external routes, new

summary link advertisements may have to be generated (potentially

one for each attached area, including the backbone). See Section

12.4.3 for more information. If a previously advertised entry has

been deleted, or is no longer advertisable to a particular area, the

advertisement must be flushed from the routing domain by setting its

age to MaxAge and reflooding (see Section 14.1).

o A routing table entry associated with a configured virtual link has

changed. The destination of such a routing table entry is an area

border router. The change indicates a modification to the virtual

link's cost or viability.

If the entry indicates that the area border router is newly

reachable (via TOS 0), the corresponding virtual link is now

operational. An Interface Up event should be generated for the

virtual link, which will cause a virtual adjacency to begin to form

(see Section 10.3). At this time the virtual interface's IP address

and the virtual neighbor's IP address are also calculated.

If the entry indicates that the area border router is no longer

reachable (via TOS 0), the virtual link and its associated adjacency

should be destroyed. This means an Interface Down event should be

generated for the associated virtual link.

If the cost of the entry has changed, and there is a fully

established virtual adjacency, a new router links advertisement for

the backbone must be originated. This in turn may cause further

routing table changes.

16.8 Equal-cost multipath

The OSPF protocol maintains multiple equal-cost routes to all

destinations. This can be seen in the steps used above to calculate the

routing table, and in the definition of the routing table structure.

Each one of the multiple routes will be of the same type (intra-area,

inter-area, type 1 external or type 2 external), cost, and will have the

same associated area. However, each route specifies a separate next hop

and advertising router.

There is no requirement that a router running OSPF keep track of all

possible equal-cost routes to a destination. An implementation may

choose to keep only a fixed number of routes to any given destination.

This does not affect any of the algorithms presented in this

specification.

16.9 Building the non-zero-TOS portion of the routing table

The OSPF protocol can calculate a different set of routes for each IP

TOS (see Section 2.4). Support for TOS-based routing is optional.

TOS-capable and non-TOS-capable routers can be mixed in an OSPF routing

domain. Routers not supporting TOS calculate only the TOS 0 route to

each destination. These routes are then used to forward all data

traffic, regardless of the TOS indications in the data packet's IP

header. A router that does not support TOS indicates this fact to the

other OSPF routers by clearing the T-bit in the Options field of its

router links advertisement.

The above sections detailing the routing table calculations handle the

TOS 0 case only. In general, for routers supporting TOS-based routing,

each piece of the routing table calculation must be rerun separately for

the non-zero TOS values. When calculating routes for TOS X, only TOS X

metrics can be used. Any link state advertisement may specify a

separate cost for each TOS (a cost for TOS 0 must always be specified).

The encoding of TOS in OSPF link state advertisements is described in

Section 12.3.

An advertisement can specify that it is restricted to TOS 0 (i.e., non-

zero TOS is not handled) by clearing the T-bit in the link state

advertisement's Option field. Such advertisements are not used when

calculating routes for non-zero TOS. For this reason, it is possible

that a destination is unreachable for some non-zero TOS. In this case,

the TOS 0 path is used when forwarding packets (see Section 11.1).

The following lists the modifications needed when running the routing

table calculation for a non-zero TOS value (called TOS X). In general,

routers and advertisements that do not support TOS are omitted from the

calculation.

Calculating the shortest-path tree (Section 16.1).

Routers that do not support TOS-based routing should be omitted from

the shortest-path tree calculation. These routers are identified as

those having the T-bit reset in their router links advertisements.

Such routers should never be added to the Dijktra algorithm's

candidate list, nor should their router links advertisements be

examined when adding the stub networks to the tree.

Calculating the inter-area routes (Section 16.2).

Inter-area paths are the concatenation of a path to an area border

router with a summary link. When calculating TOS X routes, both

path components must also specify TOS X. In other words, only TOS X

paths to the area border router are examined, and the area border

router must be advertising a TOS X route to the destination. Note

that this means that summary link advertisements having the T-bit

reset in their Options field are not considered.

Resolving virtual next hops (Section 16.3).

This calculation again considers the concatenation of a path to an

area border router with a summary link. As with inter-area routes,

only TOS X paths to the area border router are examined, and the

area border router must be advertising a TOS X route to the

destination.

Calculating AS external routes (Section 16.4).

This calculation considers the concatenation of a path to a

forwarding address with an AS external link. Only TOS X paths to

the forwarding address are examined, and the AS boundary router must

be advertising a TOS X route to the destination. Note that this

means that AS external link advertisements having the T-bit reset in

their Options field are not considered.

In addition, the advertising AS boundary router must also be

reachable for its advertisements to be considered (see Section

16.4). However, if the advertising router and the forwarding

address are not one in the same, the advertising router need only be

reachable via TOS 0.

[1]The graph's vertices represent either routers, transit networks,

or stub networks. Since routers may belong to multiple areas, it is

not possible to color the graph's vertices.

[2]It is possible for all of a router's interfaces to be unnumbered

point-to-point links. In this case, an IP address must be assigned

to the router. This address will then be advertised in the router's

router links advertisement as a host route.

[3]Note that in these cases both interfaces, the non-virtual and the

virtual, would have the same IP address.

[4]Note that no host route is generated for, and no IP packets can

be addressed to, interfaces to unnumbered point-to-point networks.

This is regardless of such an interface's state.

[5]It is instructive to see what happens when the Designated Router

for the network crashes. Call the Designated Router for the network

RT1, and the the Backup Designated Router RT2. If router RT1

crashes (or maybe its interface to the network dies), the other

routers on the network will detect RT1's absence within

RouterDeadInterval seconds. All routers may not detect this at

precisely the same time; the routers that detect RT1's absence

before RT2 does will, for a time, select RT2 to be both Designated

Router and Backup Designated Router. When RT2 detects that RT1 is

gone it will move itself to Designated Router. At this time, the

remaining router having highest Router Priority will be selected as

Backup Designated Router.

[6]On point-to-point networks, the lower level protocols indicate

whether the neighbor is up and running. Likewise, existence of the

neighbor on virtual links is indicated by the routing table

calculation. However, in both these cases, the Hello Protocol is

still used. This ensures that communication between the neighbors

is bidirectional, and that each of the neighbors has a functioning

routing protocol layer.

[7]When the identity of the Designated Router is changing, it may be

quite common for a neighbor in this state to send the router a

Database Description packet; this means that there is some momentary

disagreement on the Designated Router's identity.

[8]Note that it is possible for a router to resynchronize any of its

fully established adjacencies by setting the adjacency's state back

to ExStart. This will cause the other end of the adjacency to

process a Seq Number Mismatch event, and therefore to also go back

to ExStart state.

[9]The address space of IP networks and the address space of OSPF

Router IDs may overlap. That is, a network may have an IP address

which is identical (when considered as a 32-bit number) to some

router's Router ID.

[10]It is assumed that, for two different address ranges matching

the destination, one range is more specific than the other. Non-

contiguous subnet masks can be configured to violate this

assumption. Such subnet mask configurations cannot be handled by the

OSPF protocol.

[11]MaxAgeDiff is an architectural constant. It indicates the

maximum dispersion of ages, in seconds, that can occur for a single

link state instance as it is flooded throughout the routing domain.

If two advertisements differ by more than this, they are assumed to

be different instances of the same advertisement. This can occur

when a router restarts and loses track of its previous sequence

number. See Section 13.4 for more details.

[12]When two advertisements have different checksums, they are

assumed to be separate instances. This can occur when a router

restarts, and loses track of its previous sequence number. In this

case, since the two advertisements have the same sequence number, it

is not possible to determine which link state is actually newer. If

the wrong advertisement is accepted as newer, the originating router

will originate another instance. See Section 13.4 for further

details.

[13]There is one instance where a lookup must be done based on

partial information. This is during the routing table calculation,

when a network links advertisement must be found based solely on its

Link State ID. The lookup in this case is still well defined, since

no two network advertisements can have the same Link State ID.

[14]This clause covers the case: Inter-area routes are not

summarized to the backbone. This is because inter-area routes are

always associated with the backbone area.

[15]By keeping more information in the routing table, it is possible

for an implementation to recalculate the shortest path tree only for

a single area. In fact, there are incremental algorithms that allow

an implementation to recalculate only a portion of the shortest path

tree [BBN]. These algorithms are beyond the scope of this

specification.

[16]This is how the Link state request list is emptied, which

eventually causes the neighbor state to transition to Full. See

Section 10.9 for more details.

[17]It should be a relatively rare occurrence for an advertisement's

age to reach MaxAge. Usually, the advertisement will be replaced by

a more recent instance before it ages out.

[18]Only the TOS 0 routes are important here. This is because all

routing protocol packets are sent with TOS= 0. See Appendix A.

[19]It may be the case that paths to certain destinations do not

vary based on TOS. For these destinations, the routing calculation

need not be repeated for each TOS value. In addition, there need

only be a single routing table entry for these destinations (instead

of a separate entry for each TOS value).

[20]Strictly speaking, because of equal-cost multipath, the

algorithm does not create a tree. We continue to use the "tree"

terminology because that is what occurs most often in the existing

literature.

[21]This means that before data traffic will flow between a pair of

neighboring routers, their link state databases must be

synchronized. Before synchronization (neighbor state < Full), a

router will not include the connection to its neighbor in its link

state advertisements.

[22]As a result of this clause, when a virtual link exists between

the calculating router and an AS boundary router, the intra-area

path through the virtual link's transit area is always preferred

over the virtual link itself.

[23]Note the similarity between this procedure and the calculation

of inter-area routes by a router internal to Area A.

[24]When the forwarding address is non-zero, it should point to a

router belonging to another Autonomous System. See Section 12.4.4

for more details.

References

[BBN] McQuillan, J.M., Richer, I. and Rosen, E.C. ARPANET

Routing Algorithm Improvements. BBN Technical Report 3803,

April 1978.

[DEC] Digital Equipment Corporation. Information processing

systems -- Data communications -- Intermediate System to

Intermediate System Intra-Domain Routing Protocol. October

1987.

[McQuillan] McQuillan, J. et.al. The New Routing Algorithm for the

Arpanet. IEEE Transactions on Communications, May 1980.

[Perlman] Perlman, Radia. Fault-Tolerant Broadcast of Routing

Information. Computer Networks, Dec. 1983.

[RFC791] Postel, Jon. Internet Protocol. September 1981

[RFC944] ANSI X3S3.3 86-60. Final Text of DIS 8473, Protocol for

Providing the Connectionless-mode Network Service. March

1986.

[RFC1060] Reynolds, J. and Postel, J. Assigned Numbers. March 1990.

[RFC1112] Deering, S.E. Host extensions for IP multicasting. May

1988.

[RFC1131] Moy, J. The OSPF Specification. October 1989.

[RS-85-153] Leiner, Dr. Barry M., et.al. The DARPA Internet Protocol

Suite. DDN Protocol Handbook, April 1985.

A. OSPF data formats

This appendix describes the format of OSPF protocol packets and OSPF

link state advertisements. The OSPF protocol runs directly over the IP

network layer. Before any data formats are described, the details of

the OSPF encapsulation are explained.

Next the OSPF options field is described. This field describes various

capabilities that may or may not be supported by pieces of the OSPF

routing domain. It is contained both in OSPF protocol packets and in

OSPF link state advertisements.

OSPF packet formats are detailed in Section A.3. A description of OSPF

link state advertisements appears in Section A.4.

A.1 Encapsulation of OSPF packets

OSPF runs directly over the Internet Protocol's network layer. OSPF

packets are therefore encapsulated solely by IP and local network

headers.

OSPF does not define a way to fragment its protocol packets, and depends

on IP fragmentation when transmitting packets larger than the network

MTU. The OSPF packet types that are likely to be large (Database

Description Packets, Link State Request, Link State Update, and Link

State Acknowledgment packets) can usually be split into several separate

protocol packets, without loss of functionality. This is recommended;

IP fragmentation should be avoided whenever possible. Using this

reasoning, an attempt should be made to limit the sizes of packets sent

over virtual links to 576 bytes. However, if necessary, the length of

OSPF packets can be up to 65,535 bytes (including the IP header).

The other important features of OSPF's IP encapsulation are:

o Use of IP multicast. Some OSPF messages are multicast, when sent

over multi-access networks. Two distinct IP multicast addresses are

used. Packets destined to these multicast addresses should never be

forwarded. Such packets are meant to travel a single hop only. To

ensure that these packets will not travel multiple hops, their IP

TTL must be set to 1.

AllSPFRouters

This multicast address has been assigned the value 224.0.0.5.

All routers running OSPF should be prepared to receive packets

sent to this address. Hello packets are always sent to this

destination. Also, certain protocol packets are sent to this

address during the flooding procedure.

AllDRouters

This multicast address has been assigned the value 224.0.0.6.

Both the Designated Router and Backup Designated Router must be

prepared to receive packets destined to this address. Certain

packets are sent to this address during the flooding procedure.

o OSPF is IP protocol number 89. This number has been registered with

the Network Information Center. IP protocol number assignments are

documented in [RFC1060].

o Routing protocol packets are sent with IP TOS of 0. The OSPF

protocol supports TOS-based routing. Routes to any particular

destination may vary based on TOS. However, all OSPF routing

protocol packets are sent with the DTR bits in the IP header's TOS

field (see [RFC791]) set to 0.

o Routing protocol packets are sent with IP precedence set to

Internetwork Control. OSPF protocol packets should be given

precedence over regular IP data traffic, in both sending and

receiving. Setting the IP precedence field in the IP header to

Internetwork Control [RFC791] may help implement this objective.

A.2 The options field

The OSPF options field is present in OSPF Hello packets, Database

Description packets and all link state advertisements. The options

field enables OSPF routers to support (or not support) optional

capabilities, and to communicate their capability level to other OSPF

routers. Through this mechanism routers of differing capabilities can

be mixed within an OSPF routing domain.

When used in Hello packets, the options field allows a router to reject

a neighbor because of a capability mismatch. Alternatively, when

capabilities are exchanged in Database Description packets a router can

choose not to forward certain LSA types to a neighbor because of its

reduced functionality. Lastly, listing capabilities in LSAs allows

routers to route traffic around reduced functionality routers, by

excluding them from parts of the routing table calculation.

Two capabilities are currently defined. For each capability, the effect

of the capability's appearance (or lack of appearance) in Hello packets,

Database Description packets and link state advertisements is specified

below. For example, the external routing capability (below called the

E-bit) has meaning only in OSPF Hello Packets. Routers should reset

(i.e. clear) the unassigned part of the capability field when sending

Hello packets or Database Description packets and when originating link

state advertisements.

Additional capabilities may be assigned in the future. Routers

encountering unrecognized capabilities in received Hello Packets,

Database Description packets or link state advertisements should ignore

the capability and process the packet/advertisement normally.

+-+-+-+-+-+-+-+-+

ET

+-+-+-+-+-+-+-+-+

The options field

T-bit

This describes the router's TOS capability. If the T-bit is reset,

then the router supports only a single TOS (TOS 0). Such a router

is also said to be incapable of TOS-routing. The absence of the T-

bit in a router links advertisement causes the router to be skipped

when building a non-zero TOS shortest-path tree (see Section 16.9).

In other words, routers incapable of TOS routing will be avoided as

much as possible when forwarding data traffic requesting a non-zero

TOS. The absence of the T-bit in a summary link advertisement or an

AS external link advertisement indicates that the advertisement is

describing a TOS 0 route only (and not routes for non-zero TOS).

第一页    上一页    第5页/共7页    下一页    最后页
第01页 第02页 第03页 第04页 第05页 第06页 第07页 
 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有