Method of caching routes in asynchronous transfer mode PNNI networks
First Claim
1. In a network based on the Private Network to Network Interface (PNNI) standard and consisting of a plurality of nodes, a method of caching routes generated using the Dijkstra algorithm into a cache maintained on each node, said Dijkstra algorithm utilizing a PATH list in the calculation of routes, said method supporting a single class of call, said method comprising the steps of:
- maintaining a cache sequence number on each node;
maintaining a global cache sequence count on each node;
setting said cache sequence number equal to said cache sequence count when the node is placed onto said PATH list; and
constructing a routing list directly from parent pointers, defining a route from a destination node to a local node, if said cache sequence number equals said cache sequence count.
6 Assignments
0 Petitions
Accused Products
Abstract
A caching method to greatly reduce the time to calculate routes based on the well known Dijkstra routing algorithm. A first embodiment is suitable for use in applications where only a single class of call is in use. A second embodiment is suitable for use where multiple classes of calls are is simultaneous use. A sequential number field and a global variable holding a sequential count are maintained by each node. When a node is put on the PATH list, the global sequential count variable is copied to the sequential number field for that particular node descriptor. Subsequently, when a route to destination node is to be calculated, for each node marked as a destination, the global sequential count variable and the node descriptor sequential number field are checked if they are equal. If they are, it means that a route has already been calculated to the destination which was already determined to be optimum.
31 Citations
14 Claims
-
1. In a network based on the Private Network to Network Interface (PNNI) standard and consisting of a plurality of nodes, a method of caching routes generated using the Dijkstra algorithm into a cache maintained on each node, said Dijkstra algorithm utilizing a PATH list in the calculation of routes, said method supporting a single class of call, said method comprising the steps of:
-
maintaining a cache sequence number on each node;
maintaining a global cache sequence count on each node;
setting said cache sequence number equal to said cache sequence count when the node is placed onto said PATH list; and
constructing a routing list directly from parent pointers, defining a route from a destination node to a local node, if said cache sequence number equals said cache sequence count. - View Dependent Claims (2, 3, 4, 5)
incrementing said global cache sequence count;
setting said global cache sequence count to one when it reaches its maximum count; and
setting said cache sequence number on each node to zero when said global cache sequence reaches its maximum count.
-
-
5. The method according to claim 1, further comprising the steps of:
-
initializing said cache sequence number in each node to zero; and
initializing said global cache sequence count to one.
-
-
6. In a network based on the Private Network to Network Interface (PNNI) standard and consisting of a plurality of nodes, a method of caching routes generated using the Dijkstra algorithm into a plurality of caches maintained on each node, each cache supporting a different class of call, said Dijkstra algorithm utilizing a PATH list in the calculation of routes, said method comprising the steps of:
-
maintaining N sets of variables consisting of a cache sequence number, a parent pointer and a global cache sequence count for each node wherein each set of variables is associated with a single class of call to be supported;
setting said cache sequence number, within a particular set of variables corresponding to a particular class of call, equal to said cache sequence count when the node is placed onto said PATH list; and
constructing a routing list directly from parent pointers, defining a route from a destination node to a local node, if said cache sequence number, within a particular set of variables corresponding to a particular class of call, equals said cache sequence count within the set of variables thereof. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14)
incrementing the global cache sequence count within the set of variables associated with each class of call;
setting said global cache sequence count within the set of variables associated with each class of call to one when it reaches its maximum count; and
setting said cache sequence number within the set of variables associated with each class of call on each node to zero when said global cache sequence reaches its maximum count.
-
-
12. The method according to claim 6, further comprising the step of clearing one of said plurality of caches, comprising the steps of:
-
incrementing the global cache sequence count associated with one selected class of call;
setting said global cache sequence count associated with one selected class of call to one when it reaches its maximum count; and
setting said cache sequence number associated with one selected class of call on each node to zero when said global cache sequence reaches its maximum count.
-
-
13. The method according to claim 6, further comprising the steps of:
-
initializing the cache sequence number associated with one class of call in each node to zero; and
initializing the global cache sequence count associated with one class of call to one.
-
-
14. The method according to claim 6, further comprising the steps of:
-
initializing the cache sequence number associated with all classes of calls in each node to zero; and
initializing the global cache sequence count associated with all classes of calls to one.
-
Specification