IP Library › Granted Patent US 11,743,169
Granted Patent B2
US 11,743,169 · App. 17/191,836 · Granted Aug 29, 2023

Path computation systems and methods for concurrent bi-directional k-optimal paths

Inventors: Ankur Jain (Gurgaon, IN); John Wade Cherrington (Salt Spring Island, CA)
Assignee: Ciena Corporation
H04L45/122H04L45/02H04L45/123H04L45/44
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,743,169
App. No.
17/191,836
Granted
Aug 29, 2023
Kind
B2
Abstract

Systems and methods include, responsive to defining a routing graph that includes vertices for each node of a plurality of nodes in a network and edges for links interconnecting the plurality of nodes, receiving a request for k shortest paths, where k is an integer>0, between a source node and a destination node of the plurality of nodes; and determining the k shortest paths utilizing a k-shortest path algorithm that utilizes two threads in parallel for each shortest path query, wherein the two threads include i) a shortest path query from the source node to the destination node and ii) a shortest path query from the destination node to the source node. The determining further includes, responsive to a first thread in each shortest path query obtaining a result, utilizing the result from the first thread and terminating a second thread.

Claims (28)

1. A non-transitory computer-readable medium having instructions stored thereon for programming a processing device to perform steps of:

responsive to defining a routing graph that includes vertices for each node of a plurality of nodes in a network and edges for links interconnecting the plurality of nodes, receiving a request for k shortest paths, where k is an integer>0, between a source node and a destination node of the plurality of nodes, wherein the k shortest paths are for route determination in the network between the source node and the destination node; and

performing path computation by determining the k shortest paths utilizing a k-shortest path algorithm that utilizes two threads in parallel for each shortest path query, wherein the two threads include i) a shortest path query from the source node to the destination node and ii) a shortest path query from the destination node to the source node, and wherein the determining further comprises performing an early exit of the path computation whenever there is any of a no-connectivity case in either of the two threads and failure of a constraint associated with the request, and, responsive to a first thread of the two threads in each shortest path query obtaining a result, utilizing the result from the first thread and terminating a second thread of the two threads.

2. The non-transitory computer-readable medium of claim 1 , wherein the result includes any of i) no connectivity between the source node and the destination node and ii) a path between two nodes that are used in each shortest path query.

3. The non-transitory computer-readable medium of claim 1 , wherein the result includes any of i) no connectivity between the source node and the destination node, ii) a failure to find a path due to failure of a constraint associated with the request, and iii) a path between two nodes that are used in each shortest path query.

4. The non-transitory computer-readable medium of claim 1 , wherein each shortest path query only uses a result from one of the two threads.

5. The non-transitory computer-readable medium of claim 1 , wherein the k-shortest path algorithm is Yen's algorithm and each shortest path query utilizes Dijkstra algorithm.

6. The non-transitory computer-readable medium of claim 1 , wherein the steps further include

obtaining data from the network, wherein the data includes a topology that describes how a plurality of network elements in the network are connected via the links and additional data defining any of bandwidth availability and spectrum availability on the links; and

defining the routing graph based on the topology.

7. A method comprising:

responsive to defining a routing graph that includes vertices for each node of a plurality of nodes in a network and edges for links interconnecting the plurality of nodes, receiving a request for k shortest paths, where k is an integer>0, between a source node and a destination node of the plurality of nodes, wherein the k shortest paths are for route determination in the network between the source node and the destination node; and

performing path computation by determining the k shortest paths utilizing a k-shortest path algorithm that utilizes two threads in parallel for each shortest path query, wherein the two threads include i) a shortest path query from the source node to the destination node and ii) a shortest path query from the destination node to the source node, and wherein the determining further comprises performing an early exit of the path computation whenever there is any of a no-connectivity case in either of the two threads and failure of a constraint associated with the request, and, responsive to a first thread of the two threads in each shortest path query obtaining a result, utilizing the result from the first thread and terminating a second thread of the two threads.

8. The method of claim 7 , wherein the result includes any of i) no connectivity between the source node and the destination node and ii) a path between two nodes that are used in each shortest path query.

9. The method of claim 7 , wherein the result includes any of i) no connectivity between the source node and the destination node, ii) a failure to find a path due to failure of a constraint associated with the request, and iii) a path between two nodes that are used in each shortest path query.

10. The method of claim 7 , wherein each shortest path query only uses a result from one of the two threads.

11. The method of claim 7 , wherein the k-shortest path algorithm is Yen's algorithm and each shortest path query utilizes Dijkstra algorithm.

12. The method of claim 7 , further comprising

obtaining data from the network, wherein the data includes a topology that describes how a plurality of network elements in the network are connected via the links and additional data defining any of bandwidth availability and spectrum availability on the links; and

defining the routing graph based on the topology.

13. An apparatus comprising:

one or more processors and memory comprising instructions that, when executed, cause the one or more processors to

responsive to defining a routing graph that includes vertices for each node of a plurality of nodes in a network and edges for links interconnecting the plurality of nodes, receive a request for k shortest paths, where k is an integer>0, between a source node and a destination node of the plurality of nodes, wherein the k shortest paths are for route determination in the network between the source node and the destination node, and

performing path computation by determine the k shortest paths utilizing a k-shortest path algorithm that utilizes two threads in parallel for each shortest path query, wherein the two threads include i) a shortest path query from the source node to the destination node and ii) a shortest path query from the destination node to the source node, and wherein there is an early exit of the path computation from the determine when there is any of a no-connectivity case in either of the two threads and failure of a constraint associated with the request, and wherein the k shortest paths are determined through, responsive to a first thread of the two threads in each shortest path query obtaining a result, utilization of the result from the first thread and termination of a second thread of the two threads.

14. The apparatus of claim 13 , wherein the result includes any of i) no connectivity between the source node and the destination node and ii) a path between two nodes that are used in each shortest path query.

15. The apparatus of claim 13 , wherein the result includes any of i) no connectivity between the source node and the destination node, ii) a failure to find a path due to failure of a constraint associated with the request, and iii) a path between two nodes that are used in each shortest path query.

16. The apparatus of claim 13 , wherein each shortest path query only uses a result from one of the two threads.

17. The apparatus of claim 13 , wherein the k-shortest path algorithm is Yen's algorithm and each shortest path query utilizes Dijkstra algorithm.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 4, 2021
From: JAIN, ANKUR; CHERRINGTON, JOHN WADE
To: CIENA CORPORATION
Reel/Frame 055490/0374 →
Priority Claims (1)
IN 202111002750 · Jan 20, 2021 · national
Continuity (1)
Related Publication 20220231938A1 · Jul 21, 2022
Cited By (1)
US 12,513,077