Using Opnet to Evaluate Diverse Routing Algorithms.

elfinoverwroughtΔίκτυα και Επικοινωνίες

18 Ιουλ 2012 (πριν από 5 χρόνια και 2 μήνες)

236 εμφανίσεις

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