Using OPNET to Evaluate Diverse Routing Algorithms

Peter Pieda and John Spicer

Tropic Networks

135 Michael Cowpland Drv., Kanata, On. K2M 2E9

E-mail:

ppieda@tropicnetworks.com

Abstract

In optical networks, it is essential to handle network failures

such that network disruption is minimized. Existing SONET

Standards require network restoration within 50 ms.

Traditionally, two diverse paths are provisioned: a

primary/working path and a secondary/protection path (i.e.

two sides of an optical ring network). As we move from

simple (i.e. ring) to complicated (i.e. mesh) optical networks,

determining two diverse paths becomes increasingly difficult.

To provide two diverse paths, Maximally Disjoint Path (MDP)

algorithms are used. In this paper, we evaluate the

characteristics of MDP, specifically including (i) brief

description of MDP algorithms, (ii) detailed model

description, and (iii) performance on arbitrary test networks.

Introduction

Optical networks are comprised of optical fiber links and

network nodes that connect these links together. Many optical

networks have topologies combining long-haul point-to-point

links and SONET (Synchronous Optical NETwork) optical

rings. In optical networks, it is essential to handle network

resource failures, i.e. failed links and nodes, such that network

disruption is minimized. Existing SONET standards require

network restoration within 50 ms on recognition of network

failure (normally 10ms). One approach to meet this

requirement is to provision or install two physical paths.

Traditionally, two diverse paths are provisioned: a

primary/working path and a secondary/protection path. Two

diverse paths are paths that share the least network resources.

Completely diverse paths ensure that the same network failure

will not affect both paths. For example in a SONET ring, one

side of the ring could be the primary path and the other side

the protection path. Therefore, when a fault occurs on the

primary path, traffic is quickly switched to the protection path.

There are several different configuration used in SONET rings

to achieve this: UPSR, BLSR and others [2]. As we move

from simple (i.e. ring) traditional networks to complicated (i.e.

mesh) Metro-Optical networks, determining two diverse paths

becomes increasingly difficult.

To provide two diverse paths, two components are used: (1)

Maximally Disjoint Path (MDP) algorithms and (2) routing

algorithms. Two maximally disjoint paths are two paths that

are diverse as possible, given the network topology. The MDP

algorithm transforms the network to encourage disjoint paths

and discourage shared network resources. Paths are then

determined individually using a Shortest Path First (SPF)

routing algorithm. These two functional blocks were modeled

in the OPNETOPNET simulation environment.

The main goal of this paper is to describe our approach for

modeling MDP using OPNET. Based on the MDP algorithms

described in [1], we developed a procedure whereby two or

more optimally diverse paths can be calculated from an

arbitrary network topology of links and nodes. Additionally,

as new research in routing and diverse routing algorithms

become available, this model can be used to facilitate their

evaluation.

This paper is organized as follows. In section II we give a

brief description of the Maximally Disjoint algorithm and in

section III we describe our OPNET implementation of the

MDP. In section IV, we illustrate the working of MDP on

some example networks and present simulation results.

Concluding remarks are offered in section VI.

MDP Algorithm Overview

In this section we give a brief overview of the Maximally

Disjoint Path algorithms [1], describing the network

transformations, and discuss the multiple path operation of

MDP. The MDP algorithms describe several methods of

network transformation so that a SPF routing algorithm can

determine paths that are optimally diverse. Two of these

methods are an edge disjoint transformation and a node

disjoint transformation.

A

B

C

Z

D

1 1 1

4

2

7

A

B

C

Z

D

1 1 1

4

2

7

A

B

C

Z

D

1+a

4

2

7

1+a 1+a

-1 -1 -1

A

B

C

Z

D

1+a

4

2

7

1+a 1+a

-1 -1 -1

Figure 1: Edge Transformation

The edge disjoint transformation splits each intermediate bi-

directional link into two unidirectional links. The first link,

directed forward, is set to a high cost (a) to discourage its use,

and the second link, directed backwards, is set to the negative

1

original value, to encourage disjoint paths. The high cost a

value is set usually set to the sum of all the links costs times

some constant, [1] suggests 4. See figure 1 for an example of

this transformation. The original network has the best path: A-

B-C-Z. The intermediate links, AB-BC-CZ, are transformed.

For multiple paths, the algorithm is executed iteratively for the

number of paths. The previously determined paths resources

are transformed for the next iteration. For the edge disjoint

transformation, if multiple paths use a link, that link incurs

multiple costs. This makes that link less likely to be used

again for another path. The node disjoint transformation only

splits intermediate nodes once, with additional path adding a

cost to the forward directed link (b).

The node disjoint transformation splits each intermediate node

into two nodes. All links (excluding primary path links) that

are connected to this node are split into two unidirectional

links of original cost. The incoming directed links attach to the

first node and the outgoing directed links attach to the second

node. There are two links (unidirectional) inserted between the

two nodes: a forward link of high cost (b) and a backward link

of 0 cost. The high cost b value is set in the same manner as

for the edge disjoint a value. In figure 2, the same example

network transformed for node disjoint path determination.

The MDP Model

We used OPNET to develop a simulation model for the MDP

algorithms. Within a simple node model we implemented the

edge and node disjoint transformations and the necessary SPF

routing algorithm in a modular fashion. Each class function

encompasses one step in the general algorithm. To simulate

link failures, we modeled a simple link failure control model.

Figure 2: Edge Transformation

A

B

C

Z

D

1 1 1

4

2

7

A

B

C

Z

D

1 1 1

4

2

7

A

B’

Z

D

1 1

4

2

7

1

B’’

C’

C’’

4

b b

0 0

A

B’

Z

D

1 1

4

2

7

1

B’’

C’

C’’

4

b b

0 0

To analyze the MDP functionality, a simple node model was

developed. This node model has several input and outputs,

performing only basic packet forwarding operations. Figure 3

shows the simple node’s process model, comprised of the

following states: PK_ARRIVE, PK_SEND, INGRESS, and

PATH_CREATE.

Nodes B and C are split and their non-primary path links are

split and attached to the appropriate split node.

There are five general steps involved in the basic MDP

algorithm: (1) Determine the first path, (2) Transform the

network resources of the first path, (3) Determine another path

on this transformed network topology, (4) Coalesce these

paths together, and (5) return the paths. To determine two

paths, the algorithm is run once. To determine k paths, the

algorithm is repeated k-1 times.

Figure 3: Packet Processing Process Model

The first step has a SPF routing algorithm determine the best

path in the network. The best path in the network may be

minimum hop or least cost or involve multiple constraints.

The second step transforms the resources used by the first

path. The edge disjoint or node disjoint or both methods can

be used in transforming the network. The next step again has

another path determined in the transformed network, using the

same routing algorithm. The last step performs network

coalescence. This involves examining the two paths,

identifying unnecessary shared links and necessary shared

links (i.e. only one link available in certain places in the

network). Note: the final two paths may not be the same as the

pre-coalesced paths.

INIT initializes internal data structures. The PK_ARRIVE

state checks if the packet has a route assigned to it. If no path

is found, it is assumes that this is an entry point of the

network. The INGRESS state performs a lookup to see if there

is a route to the packets destination node. If no route is found,

the PATH_CREATE state utilizes the MDP and route

algorithm functionality to determine the routes for the packet.

The PATH_CREATE state provides topology information,

source and destination node addresses, the number of paths,

and whether the paths should be edge disjoint or node disjoint

2

or both. Once the MDP algorithms have completed, the path

information for the primary route and a protection route are

assigned to the packet and recorded for subsequent packets.

Path Coalescence: The two paths are now coalesced. Both

paths crossing a link in the same direction identify a necessary

shared link. An Unnecessary shared link is identified by both

paths crossing a link in opposite directions. Once these links

have been removed, the remaining links are put into a link

pool. The final paths are determined from this link pool. The

first link with source node match is selected and removed

from the link pool, then an adjoining link is found, and so until

the destination node is reached. This process is repeated for

each path. The path(s) are then returned to the application.

Edge Transformation: The edge disjoint transformation is

completed using OPNET functions for accessing links in the

topology and nodes in the route. Since each bi-directional link

in the topology at the user level is actually two unidirectional

links in the topology internal data structures, this

transformation does not require additional links to be added.

Node Transformation: The node disjoint transformation

requires new nodes and links to be created. To keep the

topology clean from these residual links and nodes, the MDP

class creates a copy of the original topology to do its

calculations and transformations. When the paths are

determined this copied topology is then deleted.

The node model saves the two paths, setting one of the paths

to be active. When a fault occurs on a link, the node

automatically makes the protection path active, bypassing the

failed link. In this model we do not account for multiple

failures or for failures that happen on any shared links

between paths.

To split the intermediate nodes, another node is added with a

node id of the original +20000. This is done to track the added

nodes. The forward and backward unidirectional links are

added between the original and the new. Next, all the out-

going links of the original node are disabled and the same

links are duplicated onto the first node. Checks ensure that the

primary path links and the 2 links between the split nodes are

not modified.

Link Failure Model

In the network topology, link failures are controlled through a

link failure model. This environment allows selection of (1)

which links to fail, (2) what time the failures will occur, (3)

and which nodes will be notified of the failure. I.e. when link

X fails, the link failure model sends a message to the source

node. This causes the source node to switch traffic for those

packets to the protection path (if configured as such).

Path Selection: The path is determined using a SPF routing

algorithm. The routing algorithm selected should be able to

quickly compute a route in a predictable fashion, and be able

to handle negative links. The routing algorithm was

implementing using OPNET’s programming library. We

realize this does not result in the most streamlined

implementation of a routing algorithm, but our focus was on

the MDP algorithms. Previously, OPNET’s route sets

functions were used to determine a packet route through the

network. These functions gave good performance until

negative arcs are introduced into the network. This causes

generation of very large route sets, making the route

determination function time and memory intensive for larger

sized networks. The routing algorithm can be a SPF algorithm,

such as Bellman Ford or Dijkstra or a multi-constraint

algorithm.

Simulation Results

In this section we walk through an example execution of the

MDP algorithm. In the figure below, there is an example

network that will be used to illustrate the algorithms.

Path Cleanup: Since, the second determined path may have

used the newly added links and nodes, these have to be

removed out. All links in the path that traverse new nodes

(node id > 20000) are moved back to the original node. To

maintain sanity, the links of the returned route are matched to

the original topology and a list of the link ids created. When

the MDP algorithm is finished, determining two paths that are

maximally disjoint, the topology is deleted. This removes the

new links and nodes that were added during this MDP

execution. This removes the complexity of tracking and

accumulation problems inherent with these residual

transformation incurred links and nodes.

Figure 4: Example Optical Network

1

A

D

B

C

Z

E

F

G

1

21

3

1

6

1

1

7

16

6

3

3

1

A

D

B

C

Z

E

F

G

1

21

3

1

6

1

1

7

16

6

3

3

There is a costs associated with the links. The cost could be

distance, geographical area safety level, financial cost or any

other metric applicable. This network is used for three path

determination examples: (1) two link disjoint paths, (2) two

node disjoint paths, and (3) five link disjoint paths. The initial

best path for each example is: A – B – C – Z, cost = 3.

In this example, the network is transformed (figure 5) for link

disjoint path determination.

3

Figure 5: Link Disjoint Transformation

The routing algorithm selects the path: A – D – B – E – G – Z.

The network coalesce step does not find any shared links,

unnecessary or necessary. The final two paths are shown in

figure 6.

Figure 6: Two Link Disjoint Paths

This next example shows the determination of two node

disjoint paths. The example network is transformed for node

disjoint ness, as seen in figure 7.

Figure 7: Node Disjoint Transformation

From this transformed network, the routing algorithm finds the

following path: A – D – C’ – B’’ – E – G – Z. The path clean

removes, B’’, and replaces it with the original node, B.

Network coalescence takes the original path and the second

path and determines that link BC/CB is an unnecessary shared

link. The resulting two node disjoint paths are shown in figure

8.

1+a

A

D

B

C

Z

E

F

G

1+a

21

3

1

6

1+a

-1

7

16

6

3 3

-1

-1

1

1+a

A

D

B

C

Z

E

F

G

1+a

21

3

1

6

1+a

-1

7

16

6

3 3

-1

-1

1

Figure 8: Two Node Disjoint Paths

1

A

D

B

C

Z

E

F

G

1

21

3

1

6

1

1

7

16

6

3 3

Primary Path

Protection Path

1

A

D

B

C

Z

E

F

G

1

21

3

1

6

1

1

7

16

6

3 3

Primary Path

Protection Path

1

A

D

B

C

Z

E

F

G

1

21

3

1

6

1

1

7

16

6

3

3

Primary Path

Protection Path

1

A

D

B

C

Z

E

F

G

1

21

3

1

6

1

1

7

16

6

3

3

Primary Path

Protection Path

In this final example, the determination of four link disjoint

paths is illustrated. The transformations for each step are not

displayed, only the paths themselves at each iteration of the

algorithm. Figure 4 shows the final network with the four

routes determined.

1

A

D

B

C

Z

E

F

G

1

21

3

1

6

1

1

7

16

6

3

3

First Path

Second Path

Thrid Path

Forth Path

1

A

D

B

C

Z

E

F

G

1

21

3

1

6

1

1

7

16

6

3

3

First Path

First Path

Second Path

Second Path

Thrid Path

Thrid Path

Forth Path

Forth Path

1

A

D

B’

C’’

Z

E

F

G

1

2

1

3

1

6

1

1

7

16

6

3

3

B’’

C’

b 1 1b

63

00

3

2

1

A

D

B’

C’’

Z

E

F

G

1

2

1

3

1

6

1

1

7

16

6

3

3

B’’

C’

b 1 1b

63

00

3

2

Figure 8: Multiple Link Disjoint Paths (4)

Conclusion

Disjoint paths are an essential component for providing

SONET comparable restoration times in larger complex (i.e.

mesh) networks. Maximally Disjoint Path (MDP) algorithms

define methods for transforming the network such that a SPF

routing algorithm can iteratively determine maximally diverse

paths. The infrastructure models, namely the simple node and

link error control models, allow for designers to debunk

diverse routing algorithms and for network planners to test out

their network under link error conditions. In the future, other

factors such as multi-constraint routing algorithms and risk

groups could be incorporated into the model to allow analysis

of complex real world network design issues.

4

References

[1]

Bhandari, Ramesh. Survivable Networks: Algorithms for

Diverse Routing. Kluwer Academic Publishers. (1999).

[2] Stern, Thomas E. Bala, Krishna. Multiwavelength Optical

Networks: A Layered Approach.

Addison Wesley Longman,

Inc. (1999

5

## Σχόλια 0

Συνδεθείτε για να κοινοποιήσετε σχόλιο