Method for routing calculation of optical transport network, routing calculation device and storage medium

By using the KSP algorithm to calculate multiple routing results in the optical transport network and utilizing multi-threaded resource allocation, the problem of low routing calculation efficiency in the existing technology is solved, and faster routing speed and efficiency are achieved.

CN114125592BActive Publication Date: 2025-11-25ZTE CORP
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202010880263.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-08-27
Publication Date
2025-11-25
Estimated Expiration
2040-08-27

AI Technical Summary

Technical Problem

Existing routing calculation methods for optical transport networks are inefficient in resource allocation and cannot adapt to complex network environments, resulting in slow routing speeds.

Method used

The K-shortest path (KSP) algorithm is used to calculate multiple routing results, and multiple resource allocation threads are used to allocate resources simultaneously. The first or highest-quality routing result is selected as the candidate result to improve routing efficiency.

Benefits of technology

It accelerates the speed and efficiency of routing calculations, enabling faster processing of routing calculation requests in complex networks and meeting the rapid response requirements of optical transport networks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114125592B_ABST
    Figure CN114125592B_ABST
Patent Text Reader

Abstract

The application discloses a routing calculation method, a routing calculation device and a storage medium of an optical transport network, wherein the routing calculation method is applied to a path calculation unit and comprises the following steps: receiving a routing calculation request; calling a K shortest path KSP algorithm, obtaining multiple routing results according to the KSP algorithm, and simultaneously performing resource allocation on the multiple routing results; taking the routing results after the resource allocation as candidate results, and determining the routing calculation result of the routing calculation request according to the candidate results. According to the application, the KSP algorithm is called to obtain multiple routing results, and resource allocation is simultaneously performed on the multiple routing results, so that the routing calculation speed of the routing calculation request is accelerated. Compared with the routing calculation method of the traditional KSP algorithm, the routing calculation method of the embodiment of the application can greatly accelerate the routing calculation speed, improve the routing calculation efficiency, and meet the optical transport network with more complex resource conditions.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of communication technology, and in particular to a routing calculation method, routing calculation device, and storage medium for optical transmission networks. Background Technology

[0002] Currently, routing calculation and resource allocation in mainstream Optical Transport Networks (OTNs) are handled by Path Computation Element (PCE). When a PCE receives a service routing request, it calculates a route containing network elements and TE links based on the Traffic Engineering (TE) database and the preset K-Shortest Path (KSP) algorithm. It then allocates relevant resources to the calculated route, obtaining the corresponding target route. If resource allocation for the current route fails, the KSP algorithm is invoked to calculate the next route, and resource allocation is repeated until a route is successfully allocated or the number of route calculations exceeds the preset number of times the KSP algorithm can perform routing. Clearly, the PCE waits for allocation results for each route, resulting in low routing efficiency and making it unsuitable for today's increasingly complex network environments. Summary of the Invention

[0003] The following is an overview of the subject matter described in detail herein. This overview is not intended to limit the scope of the claims.

[0004] This invention provides a routing calculation method, a routing calculation device, and a storage medium for optical transport networks, which can improve the routing calculation efficiency and accelerate the routing solution speed.

[0005] In a first aspect, embodiments of the present invention provide a routing calculation method for an optical transport network, applied to a path calculation unit, the routing calculation method comprising:

[0006] Receive route calculation requests;

[0007] The K-shortest path (KSP) algorithm is invoked, multiple routing results are obtained based on the KSP algorithm, and resource allocation is performed on the multiple routing results simultaneously;

[0008] The routing result after resource allocation is completed is used as a candidate result, and the routing result of the routing calculation request is determined based on the candidate result.

[0009] Secondly, embodiments of the present invention provide a routing calculation apparatus for an optical transport network, including at least one processor and a memory for communicatively connecting to the at least one processor; the memory stores instructions executable by the at least one processor, the instructions being executed by the at least one processor to enable the at least one processor to execute the aforementioned routing calculation method for the optical transport network.

[0010] Thirdly, embodiments of the present invention provide a computer-readable storage medium storing computer-executable instructions for causing a computer to execute the routing calculation method for the optical transport network described in the first aspect.

[0011] The routing calculation method for optical transport networks provided in this invention accelerates the routing calculation speed by calling the KSP algorithm to calculate multiple routing results based on a received routing calculation request, and simultaneously allocating resources to these multiple routing results. For example, each routing result obtained from calling the KSP algorithm is assigned to an idle resource allocation thread. Multiple resource allocation threads simultaneously allocate resources to different routing results. Then, the routing results with completed resource allocation are used as candidate results. The final routing result is determined from the candidate results based on the routing calculation request. Compared to the traditional KSP algorithm routing calculation method, the routing calculation method in this invention can significantly accelerate the routing calculation speed, improve the routing calculation efficiency, and meet the needs of optical transport networks with more complex resource conditions.

[0012] Other features and advantages of the invention will be set forth in the description which follows, and will be apparent in part from the description, or may be learned by practicing the invention. The objects and other advantages of the invention may be realized and obtained by means of the structures particularly pointed out in the description, claims, and drawings. Attached Figure Description

[0013] The accompanying drawings are provided to further illustrate the technical solutions of the present invention and constitute a part of the specification. They are used together with the examples of the present invention to explain the technical solutions of the present invention and do not constitute a limitation on the technical solutions of the present invention.

[0014] Figure 1 This is a flowchart of a routing calculation method for an optical transport network provided in an embodiment of the first aspect of the present invention;

[0015] Figure 2 This is a flowchart of a routing calculation method for an optical transport network provided in another embodiment of the first aspect of the present invention;

[0016] Figure 3 This is a flowchart of a routing calculation method for an optical transport network provided in another embodiment of the first aspect of the present invention;

[0017] Figure 4 This is a flowchart of a routing calculation method for an optical transport network provided in another embodiment of the first aspect of the present invention;

[0018] Figure 5 This is a flowchart of a routing calculation method for an optical transport network provided in another embodiment of the first aspect of the present invention;

[0019] Figure 6 This is a flowchart of a routing calculation method for an optical transport network provided in another embodiment of the first aspect of the present invention;

[0020] Figure 7 This is a flowchart of a routing calculation method for an optical transport network provided in another embodiment of the first aspect of the present invention;

[0021] Figure 8 This is a flowchart of a routing calculation method for an optical transport network provided in another embodiment of the first aspect of the present invention;

[0022] Figure 9 This is a flowchart of a routing calculation method for an optical transport network provided in another embodiment of the first aspect of the present invention;

[0023] Figure 10 This is a flowchart of a routing calculation method for an optical transport network provided in another embodiment of the first aspect of the present invention;

[0024] Figure 11 This is an abstract diagram of network element connection relationships provided in Example 1 of the present invention;

[0025] Figure 12 This is a flowchart of the routing calculation method for an optical transport network provided in Example 1 of the present invention;

[0026] Figure 13 This is an abstract diagram of network element connection relationships provided in Example 2 of the present invention;

[0027] Figure 14 This is an abstract diagram of network element connection relationships provided in Example 3 of the present invention;

[0028] Figure 15 This is a flowchart of the routing calculation method for an optical transport network provided in Example 3 of the present invention;

[0029] Figure 16 This is a flowchart of the routing calculation method for an optical transport network provided in Example 4 of the present invention;

[0030] Figure 17 This is a flowchart of the routing calculation method for an optical transport network provided in Example 5 of the present invention;

[0031] Figure 18 This is a schematic diagram of the device structure of the routing calculation device provided in an embodiment of the present invention. Detailed Implementation

[0032] To make the objectives, technical solutions, and advantages of this invention clearer, the invention will be further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the invention.

[0033] This invention provides a routing calculation method, a routing calculation device, and a storage medium for optical transport networks. By simultaneously allocating resources to multiple routing results obtained from the KSP algorithm, the routing speed and efficiency for the current routing calculation request are accelerated, thereby achieving fast routing solutions.

[0034] The embodiments of the present invention will be further described below with reference to the accompanying drawings.

[0035] Reference Figure 1 The first aspect of the present invention provides a routing calculation method for an optical transport network, applied to a path calculation unit (PCE). The routing calculation method of the present invention includes, but is not limited to, steps S100, S200 and S300.

[0036] Step S100: Receive a route calculation request.

[0037] In current mainstream optical transport network (OTN) networks and equipment, route calculation and resource allocation are both handled by the PCE module. Typically, the PCE module includes a route calculation module and a resource allocation module, which are responsible for calculating the route result based on the request and allocating network resources for the obtained route result, respectively. When the PCE receives a route calculation request for a service data, the route calculation module calls the KSP algorithm to calculate a route result containing the network element and TE link based on the connection relationship between the network elements and the links between the network elements in the current optical transport network. The resource allocation module allocates wavelength resources according to the route result and the resource status of the TE database. If the resource allocation fails, it returns to calling the KSP algorithm to obtain the next route result, and then performs resource allocation on the next route result until one of the route results is successfully allocated resources or the number of route calculations preset by the KSP algorithm is exceeded. Therefore, it can be seen that the KSP algorithm waits for the resource allocation result of each route result it obtains. If the first few routes obtained by the KSP algorithm cannot be allocated resources successfully, then a long time has passed for the route calculation request, which obviously does not meet the fast response requirements of optical transport networks. With the introduction of flexible grid technology in optical transport networks, the complexity of route calculation in optical transport networks has increased significantly. The existing KSP algorithm can no longer adapt to the current resource situation of optical transport networks by simply improving hardware computing power.

[0038] It is understood that the routing calculation request in this embodiment is a routing calculation request oriented towards business data transmission. This business request is a single business request and a bidirectional business, and the source node and destination node in the routing calculation request are predetermined. The PCE obtains the source node and destination node information by receiving the routing calculation request in step S100 and begins to perform routing calculation.

[0039] Step S200: Call the K-shortest path (KSP) algorithm, obtain multiple routing results based on the KSP algorithm, and allocate resources to the multiple routing results simultaneously.

[0040] In this embodiment, step S200 calls the KSP algorithm to obtain multiple routing results based on the source node, destination node, and the connection relationship between network elements and TE links in the current optical transport network. According to the calculation rules of the KSP algorithm, each call to the KSP algorithm yields a routing result. For example, the routing result obtained from the first call to the KSP algorithm is the first-best routing result (optimal routing result), the routing result obtained from the second call to the KSP algorithm is the second-best routing result (suboptimal routing result), and so on. Therefore, the routing results obtained sequentially according to the KSP algorithm are arranged in order of superiority, with the first-best routing result having the highest superiority and the second-best routing result having the next highest superiority. In this embodiment, each routing result obtained according to the KSP algorithm is immediately allocated resources, and without waiting for the current resource allocation result, resource allocation continues for the next best routing result, thereby achieving simultaneous resource allocation for multiple routing results. In one embodiment, during the resource allocation process for multiple routing results, the routing results that have completed resource allocation are used as candidate results. The final routing result is determined from the candidate results according to the routing calculation request. Compared with traditional routing calculation methods, this can greatly save time and improve routing efficiency.

[0041] It is worth noting that, to achieve simultaneous resource allocation, in one embodiment, the PCE can be configured with one main thread and multiple resource allocation threads. Each resource allocation thread can allocate resources for one routing result. When the main thread allocates different routing results to multiple resource allocation threads, resources can be allocated to multiple routing results simultaneously, without having to wait for resource allocation results in the order of routing results. It is understandable that, since the KSP algorithm obtains routing results in order of priority, when allocating resources for routing results, it can be done by distributing each routing result to a resource allocation thread as soon as it is obtained, or by setting a quantity n, and distributing these n routing results to the resource allocation threads only after the KSP algorithm has calculated n routing results.

[0042] In this embodiment, the resource allocation thread is a hardware-level computing thread, which requires the PCE or the hardware called by the PCE to include a multi-core central processing unit (CPU) and be equipped with corresponding low-level encapsulation to support the PCE to call the multi-core to perform multi-threaded computing.

[0043] Step S300: The routing results of the completed resource allocation are used as candidate results, and the routing result of the routing calculation request is determined based on the candidate results.

[0044] Based on the routing calculation request's requirements for the routing results, the route that has completed resource allocation is determined as the final routing result. For example, among multiple routes that have completed resource allocation, the route that completed resource allocation first is selected as the final routing result, thus satisfying the requirement of quickly obtaining the routing result. Alternatively, to obtain the optimal routing result under the condition of optimal path constraints, all routes that have completed resource allocation are considered as candidate results, and the candidate result with the highest merit is selected as the final routing result. The specific selection of the routing result will be explained in detail in the following embodiments.

[0045] The improvements to the routing calculation method in this invention are independent of specific routing scenarios and resource allocation algorithms. Therefore, it is compatible with existing fixed grid scenarios and flexible grid scenarios, and also supports optical impairment verification and various nonlinear constraint scenarios. It supports routing scenarios for service establishment and real-time service rerouting recovery. By simultaneously allocating resources, it accelerates the routing efficiency and increases the speed at which routing results are obtained.

[0046] In one embodiment, reference is made to Figure 2 Step S300 includes, but is not limited to, steps S310, S320 and S330.

[0047] Step S310: The routing result that completes resource allocation first is taken as the candidate result.

[0048] In this embodiment, the route calculation request aims to minimize the calculation time. That is, the goal of the route calculation request is to calculate any given route. Therefore, the route that completes resource allocation first is selected as the candidate result. It is worth noting that the speed of resource allocation is related to the resource situation within the current optical transport network. The more complex the resource situation, the longer the resource allocation time. For example, the more hops from the source node to the destination node, the longer the resource allocation time will be, assuming other resource factors are the same. This embodiment of the invention does not need to consider the resource situation of the optical transport network. Under the premise that the same resource allocation algorithm allocates resources to the route results simultaneously, only the route result that completes resource allocation first needs to be considered.

[0049] Step S320: Stop calling the KSP algorithm and stop the resource allocation process for routing results that have not yet been allocated resources.

[0050] Since the candidate results required for the current route calculation request have been obtained in step S310, other route calculations currently in progress no longer require resource allocation, nor is it necessary to allocate resources for subsequent route results. Therefore, after receiving the information that resource allocation was successful, the PCE stops calling the KSP algorithm and stops the resource allocation process for other route results. For example, if multiple resource allocation threads are performing resource allocation simultaneously, when the route result in one of the resource allocation threads successfully allocates resources, it sends a message of successful resource allocation to the main thread and other resource allocation threads. The main thread stops calling the KSP algorithm based on this signal, and other resource allocation threads stop their own resource allocation process based on this signal.

[0051] Step S330: Use the candidate results as the routing result of the routing calculation request.

[0052] After the routing result that has completed resource allocation is completed first, the resource allocation process for other routing results is stopped according to step S320. Therefore, the routing result output by PCE is the routing result that has completed resource allocation. Outputting this routing result yields the routing result of the service data from the source node to the destination node.

[0053] By using the shortest time as the criterion to obtain the route calculation result and stopping the resource allocation process for other routes that have not yet completed resource allocation, the computational resource overhead of PCE can be saved, unnecessary calculation processes are avoided, and PCE can process the next route calculation request more quickly.

[0054] In one embodiment, reference is made to Figure 3 When there are multiple candidate results, the determination of the routing result for the routing calculation request based on the candidate results in step S300 is specifically implemented in step S340:

[0055] Step S340: When the merit of any route result in the candidate results is greater than the merit of the route result for which resource allocation has not yet been completed, the route result with the highest merit in the candidate results is taken as the route calculation result of the route calculation request.

[0056] In this embodiment, the route calculation request requires the calculation of the optimal path. A common optimal path refers to selecting one or more constraints, such as the shortest path, the path with the least delay, the path with the least weighted cost, or the path with the shortest hop count, while satisfying resource constraints. Under such constraints, the KSP algorithm calculates different routing results based on the constraint order, and each routing result corresponds to a quality score. The quality score indicates the degree to which the constraints are satisfied. For example, the first optimal routing result obtained by the KSP algorithm is the route that best satisfies the constraints. However, the first optimal routing result may not necessarily successfully allocate resources. Therefore, the second-best or even slightly better routing result must be selected as the optimal path. In this embodiment, multiple routing results successfully allocate resources and serve as candidate results. In this case, the routing result with the lowest quality score among the candidate results is greater than the quality score of the routing result that has not completed resource allocation (i.e., the quality score of any routing result is greater than the quality score of the routing result that has not completed resource allocation). Therefore, it can be determined that the candidate result with the highest quality score among these candidate results satisfies the current route calculation request, and this candidate result is taken as the final route calculation result.

[0057] Based on the above embodiments, in another embodiment, referring to Figure 4 It also includes:

[0058] Step S350: Stop calling the KSP algorithm and stop the resource allocation process for routing results that have not yet completed resource allocation.

[0059] Since the merit of any route result in the candidate results is greater than that of the route result without resource allocation, there is no need to allocate resources to the route result without resource allocation. These route results will not be selected as the final route calculation results. At the same time, according to the characteristics of the KSP algorithm, no subsequent route result with a higher merit than the current candidate result will appear. Therefore, the KSP algorithm can be stopped, thereby reducing the resource consumption of PCE, avoiding unnecessary calculation processes, and enabling PCE to process the next route calculation request more quickly.

[0060] In one embodiment, reference is made to Figure 5 In step S200, resource allocation is performed simultaneously on multiple routing results, specifically through, but not limited to, the following steps:

[0061] Step S210: Allocate resource allocation threads for each routing result;

[0062] Step S220: Use the resource allocation thread to allocate resources for the routing results.

[0063] In this embodiment, resource allocation for routing results is performed using hardware-level threads. On the hardware side, a multi-core CPU is configured with one main thread and multiple resource allocation threads. The main thread calls the KSP algorithm to obtain routing results and sends the obtained routing results and resource allocation requests to the resource allocation threads. When the resource allocation threads are idle, they receive the resource allocation requests and corresponding routing results from the main thread and allocate resources for those routing results. In this embodiment, each resource allocation thread allocates resources for only one routing result. After receiving a routing result and allocating resources, the resource allocation thread changes its idle state to a running state, thus no longer accepting the next resource allocation request. When the resource allocation thread completes the resource allocation for the current routing result (successful or unsuccessful), it changes from a running state to an idle state, thus becoming ready to receive the next resource allocation request. By setting up multiple resource allocation threads and configuring each resource allocation thread to allocate resources for only one routing result, resource allocation for multiple routing results can be performed simultaneously. This embodiment fully utilizes the computing resources of current multi-core CPUs, reducing CPU idle rates, and due to the high computing power of hardware-level threads, it can significantly improve resource allocation efficiency. If a software-level process is used to allocate resources for multiple routing results, its performance cannot match that of a hardware-level thread due to the limitations of system processes on multi-core hardware access.

[0064] Based on the above embodiments, during the process of allocating resource allocation threads for each routing result, if the number of obtained routing results exceeds the preset number of resource allocation threads, then it can be processed according to step S230, referring to... Figure 6 :

[0065] Step 230: When the number of routing results is greater than the number of resource allocation threads, save the routing results that have not been allocated resources to the cache pool.

[0066] In this embodiment, a cache pool is set up. The cache pool is an independently set up storage space for storing routing results. Since the number of routing results may be greater than the number of resource allocation threads, routing results that have not been allocated resources are saved to the cache pool. It can be understood that, according to the rules of the order of routing results obtained by the KSP algorithm, the quality of the routing results decreases as they are obtained later. These routing results are directly saved to the cache pool without considering whether the current resource allocation thread has become idle. For example, if i resource allocation threads are preset to allocate resources for the first i routing results, when the j-th routing result (i < j) is calculated, there happens to be a resource allocation thread that has failed to allocate resources and has become idle. And the current cache pool already contains ji-1 routing results. Then the j-th routing result will not preempt the resource allocation thread that has become idle, but will be directly saved to the cache pool. The PCE reads the (i+1)-th routing result from the cache pool and allocates resources, that is, it is implemented by executing the following steps S240, referring to Figure 7 :

[0067] Step S240: When there is an idle resource allocation thread, allocate the route result with the highest priority in the cache pool to the idle resource allocation thread.

[0068] When multiple routing results are stored in the cache pool, in order to allocate resources to the routing results with higher quality first, when an idle resource allocation thread appears, the routing result with the highest quality in the cache pool is distributed to the idle resource allocation thread, so that resources are allocated to the routing results with higher quality first, and the final routing result is the routing result with higher quality.

[0069] During resource allocation, the routing results in the cache pool also need to be processed according to the actual situation. For example, in one embodiment, step S250 is used to clear the routing results in the cache pool to prevent cache pool accumulation. Figure 8 :

[0070] Step S250: When any routing result completes resource allocation, clear all routing results in the cache pool.

[0071] When the routing result in one of the resource allocation threads completes resource allocation, it means that a candidate result with a higher quality than the routing result in the cache pool has been obtained. Therefore, there is no need to allocate resources to the routing result in the cache pool, and it can be cleared to prevent the accumulation of routing results in the cache pool. Understandably, it is necessary to check whether the cache pool is empty before executing step S250. If the cache pool is empty, then step S250 does not need to be executed.

[0072] In one embodiment, reference is made to Figure 9 It also includes:

[0073] In step S400, the KSP algorithm fails to obtain the first routing result and outputs a message indicating that the routing calculation has failed.

[0074] In this embodiment, if the first routing result of KSP cannot be obtained, it indicates that there are no available resources for the link between the current source node and other nodes in the OTN network. In this case, the subsequent routing results of the KSP algorithm will also be unsuccessful, and the current route calculation request will be directly output as failed.

[0075] In one embodiment, reference is made to Figure 10 It also includes:

[0076] Step S500: When resource allocation for all routing results obtained by the KSP algorithm fails, output a message indicating that the routing calculation has failed.

[0077] In one scenario, if the number of feasible routes in the OTN network is less than or equal to the preset value K of the KSP algorithm (K represents the manually set number of route calculations in the KSP algorithm), then all route results for the OTN network are obtained according to the KSP algorithm. If all route results fail to allocate resources at this point, it indicates that the current route calculation request cannot obtain route results, and the current route calculation request directly fails, ending the calculation. In another scenario, if the number of feasible routes in the OTN network is greater than the preset value K of the KSP algorithm, and the KSP algorithm executes k route calculations (obtaining k route results) and all k route results fail to allocate resources, it indicates that the current route calculation request cannot obtain route results, and the current route calculation request directly fails, ending the calculation.

[0078] The embodiments of the present invention are illustrated below with several practical examples:

[0079] Example 1 is an example of successfully allocating resources for the first optimal route obtained by calling the KSP algorithm.

[0080] Reference Figure 11 , Figure 11This is an abstract diagram of the network element connections in the current OTN network, including six network elements: A, B, C, D, E, and Z. Network elements A and Z are the source and destination nodes, respectively, and support service add / drop. For simplicity, it is assumed that the remaining network elements are only direct-through stations, and that the link weights (TE-metrics) of all bidirectional TE links between network elements are equal. The current OTN network is a fixed grid scenario, and all service board ports for add / drop in each network element are already specified. All spectrum resources of each optical transmission port from the service board to the source and destination nodes are available. Therefore, in the resource allocation process of this example, only the resource situation on the TE links needs to be considered. Since the link weights of the TE links in the current OTN network are equal, the routing calculation request in this example only needs to obtain the routing result and does not need to consider the routing quality.

[0081] In PCE, one main thread and three resource allocation threads are also set to be started, and the maximum number of path calculations for the KSP algorithm is set to 5 (i.e., K is 5).

[0082] When the PCE receives a routing calculation request for a service data item, the PCE begins the routing process, referring to... Figure 12 , Figure 12 This is a flowchart illustrating the actions and message interactions between the main thread and various resource allocation threads during the routing process in Example 1.

[0083] Step S601: The main thread calls the KSP algorithm to obtain the first optimal route result: ABCZ, and finds an available resource allocation thread, and sends the resource allocation request and the first optimal route result to the resource allocation thread #1.

[0084] In step S602, resource allocation thread #1 receives the resource allocation request and the first optimal route result, and begins to allocate resources for the first optimal route result;

[0085] Step S603: The main thread calls the KSP algorithm to obtain the second optimal route result: ABEZ, and finds an idle resource allocation thread, and sends the resource allocation request and the second optimal route result to the resource allocation thread #2.

[0086] In step S604, resource allocation thread #2 receives the resource allocation request and the second optimal route result, and begins to allocate resources for the second optimal route result;

[0087] In step S605, the main thread calls the KSP algorithm to obtain the third optimal route result: ADEZ. At this time, the resource allocation thread #1 successfully allocates resources for the first optimal route result. Then, the resource allocation thread #1 sends the information that the resource allocation is successful to the main thread, the resource allocation thread #2 and the resource allocation thread #3, and returns the routing result of the completed resource allocation to the main thread.

[0088] Step S606: The main thread receives the information that the resource allocation was successful and the routing result of the resource allocation is completed, stops calling the KSP algorithm, and uses the received routing result as a candidate result.

[0089] In step S607, resource allocation thread #2 receives the information that the resource allocation was successful and stops its own resource allocation process. Since resource allocation thread #3 did not perform any resource allocation, it does not need to perform any action.

[0090] In step S608, the main thread outputs the candidate results as the routing result of the routing calculation request.

[0091] Example 2 shows an example of a first-optimal route that cannot be obtained by calling the KSP algorithm.

[0092] Compared to the conditions set in Example 1, except that the TE link between AB and AD has no available spectrum resources, the other conditions are the same as in Example 1. The abstract diagram of its network element connection relationship is as follows: Figure 13 As shown.

[0093] When the PCE receives a route calculation request for a service data, the PCE begins the route calculation process.

[0094] The main thread calls the KSP algorithm but cannot obtain any valid path from network element A to network element Z. At this point, the main thread determines that the KSP algorithm cannot obtain the first optimal route result and outputs a route calculation failure message.

[0095] Example 3 is an example of successfully allocating resources for the m-th optimal route obtained by calling the KSP algorithm, where m is greater than the number of resource allocation threads.

[0096] Reference Figure 14 , Figure 14 This is an abstract diagram of the network element connection relationship of the current OTN network, including 7 network elements: network element A, network element B, network element C, network element D, network element E, network element F, and network element Z. Network element A and network element Z are the source node and destination node, respectively, and support service add-on and add-off. It is assumed that repeater boards capable of wavelength conversion are configured at network elements B and E, and the remaining network elements are only used as direct pass-through sites. It is also assumed that the link weight (TE-metric) of each bidirectional TE link between network elements is equal. The current OTN network is a fixed grid scenario, and all service board ports for add-on and add-off in each network element have been specified. All spectrum resources of each optical transmission port from the service board to the source node and destination node are available. Since the link weight of the TE link in the current OTN network is equal, the routing calculation request in this example only needs to obtain the routing result and does not need to consider the routing eugenics.

[0097] In PCE, one main thread and three resource allocation threads are also set to be started, and the maximum number of path calculations for the KSP algorithm is set to 10 (i.e., K is 10).

[0098] When the PCE receives a routing calculation request for a service data item, the PCE begins the routing process, referring to... Figure 15 , Figure 15 This is a flowchart illustrating the actions and message interactions between the main thread and various resource allocation threads during the routing process in Example 3.

[0099] Step S701: The main thread calls the KSP algorithm to obtain the first optimal route result: ABCZ, and finds an idle resource allocation thread, and sends the resource allocation request and the first optimal route result to the resource allocation thread #1.

[0100] In step S702, resource allocation thread #1 receives the resource allocation request and the first optimal route result, and begins to allocate resources for the first optimal route result;

[0101] Step S703: The main thread calls the KSP algorithm to obtain the second optimal route result: ADCZ, and queries for an available resource allocation thread, and sends the resource allocation request and the second optimal route result to the resource allocation thread #2.

[0102] In step S704, resource allocation thread #2 receives the resource allocation request and the second optimal route result, and begins to allocate resources for the second optimal route result;

[0103] Step S705: The main thread calls the KSP algorithm to obtain the third optimal route result: ABEFZ, and finds an idle resource allocation thread, and sends the resource allocation request and the third optimal route result to the resource allocation thread #3.

[0104] In step S706, resource allocation thread #3 receives the resource allocation request and the third optimal route result, and begins to allocate resources based on the third optimal route result;

[0105] Step S707: The main thread calls the KSP algorithm to obtain the fourth optimal route result: ADEFZ, and checks to find that there are no idle resource allocation threads, so the fourth optimal route result is saved to the cache pool.

[0106] Step S708: The main thread calls the KSP algorithm to obtain the fifth optimal route result: ADEBCZ, and checks to find that there are no idle resource allocation threads, so the fifth optimal route result is saved to the cache pool.

[0107] In step S709, at this time, the resource allocation thread #1 fails to allocate resources to the first optimal route result, and the resource allocation thread #1 sends a resource allocation failure message to the main thread.

[0108] In step S710, the main thread receives the resource allocation failure information sent by resource allocation thread #1, checks that the cache pool is not empty, distributes the fourth optimal route result in the cache pool to resource allocation thread #1, and at the same time, the main thread continues to call the KSP algorithm to obtain the sixth optimal route result: ABEDCZ, and saves the sixth optimal route result to the cache pool.

[0109] Step S711: Resource allocation thread #1 receives the resource allocation request and the sixth optimal route result, and begins to allocate resources for the sixth optimal route result;

[0110] In step S712, the main thread receives the information that the resource allocation failed sent by the resource allocation thread #2, finds that the cache pool is not empty, distributes the fifth optimal route result in the cache pool to the resource allocation thread #2, and at the same time, the main thread continues to call the KSP algorithm to obtain the seventh optimal route result: ABCDEEZ, and saves the seventh optimal route result to the cache pool.

[0111] In step S713, resource allocation thread #2 receives the resource allocation request and the fifth optimal route result, and begins to allocate resources for the fifth optimal route result;

[0112] In step S714, at this time, resource allocation thread #1 successfully allocates resources for the fourth optimal route result. Then, resource allocation thread #1 sends the information that the resource allocation is successful to the main thread, resource allocation thread #2 and resource allocation thread #3, and returns the routing result of the completed resource allocation to the main thread.

[0113] Step S715: The main thread receives the information that the resource allocation was successful and the routing result of the resource allocation is completed. It stops calling the KSP algorithm and clears all routing results in the cache pool. The received routing result is used as a candidate result.

[0114] In step S716, resource allocation thread #2 and resource allocation thread #3 receive the information that the resource allocation was successful and stop their own resource allocation process;

[0115] In step S717, the main thread outputs the candidate results as the routing result of the routing calculation request.

[0116] Example 4 shows that resource allocation for all routing results obtained by calling the KSP algorithm fails.

[0117] Using the network element connection diagram from Example 1 as an example... Figure 11 For example, in terms of network parameters, the difference from Example 1 is that the center wavelengths of bidirectional links AB and AD are different from the center wavelengths of other bidirectional links, and it is assumed that no network element is configured with a relay board for wavelength conversion. The rest of the situation is the same as Example 1.

[0118] In PCE, one main thread and three resource allocation threads are also set to be started, and the maximum number of path calculations for the KSP algorithm is set to 10 (i.e., K is 10).

[0119] When the PCE receives a routing calculation request for a service data item, the PCE begins the routing process, referring to... Figure 16 , Figure 16 This is a flowchart illustrating the actions and message interactions between the main thread and various resource allocation threads during the routing process in Example 4.

[0120] Step S801: The main thread calls the KSP algorithm to obtain the first optimal route result: ABCZ, and finds an available resource allocation thread, and sends the resource allocation request and the first optimal route result to the resource allocation thread #1.

[0121] In step S802, resource allocation thread #1 receives the resource allocation request and the first optimal route result, and begins to allocate resources for the first optimal route result;

[0122] Step S803: The main thread calls the KSP algorithm to obtain the second optimal route result: ABEZ, and finds an idle resource allocation thread, and sends the resource allocation request and the second optimal route result to the resource allocation thread #2.

[0123] In step S804, resource allocation thread #2 receives the resource allocation request and the second optimal route result, and begins to allocate resources for the second optimal route result;

[0124] Step S805: The main thread calls the KSP algorithm to obtain the third optimal route result: ADEZ, and finds an available resource allocation thread. It then sends the resource allocation request and the third optimal route result to the resource allocation thread #3.

[0125] In step S806, during the process of the main thread calling the KSP algorithm to obtain the fourth, fifth, sixth, seventh, and eighth optimal routing results in sequence, resource allocation threads #1, #2, and #3 have not completed resource allocation. The main thread saves the fourth to eighth optimal routing results to the cache pool.

[0126] In step S807, all three resource allocation threads fail to allocate resources. The main thread then distributes the fourth optimal routing result, the fifth optimal routing result, and the sixth optimal routing result from the cache pool to allocate resources for the three resource allocation threads respectively.

[0127] In step S808, all three resource allocation threads failed to allocate resources. The main thread then distributed the seventh optimal route result and the eighth optimal route result from the cache pool to two of the resource allocation threads for resource allocation.

[0128] In step S809, both resource allocation threads failed to allocate resources. At this time, the main thread found that the cache pool was empty and all three resource allocation threads were in an idle state. It determined that the current route calculation request failed and output the route calculation failure information.

[0129] Example 5 shows a resource allocation method considering optimal path constraints.

[0130] Using the network element connection diagram from Example 1 as an example... Figure 11 For example, in terms of network parameters, the difference from Example 1 is that the bidirectional TE links have different weights, and the center wavelengths of the network elements are somewhat different. Additionally, network element B is configured with a repeater board for wavelength conversion. Other network parameters are the same as in Example 1. The spectrum resources and link weights of the bidirectional TE links are shown in Table 1.

[0131] bidirectional TE link Available center wavelength Link weight AB <![CDATA[λ1]]> 1 AD <![CDATA[λ2]]> 2 BC <![CDATA[λ2]]> 1 DE <![CDATA[λ2]]> 2 BE <![CDATA[λ2]]> 2 CD <![CDATA[λ2]]> 2 CZ <![CDATA[λ2]]> 2 EZ <![CDATA[λ2]]> 2

[0132] Table 1. Spectrum Resources and Link Weights for Bidirectional TE Links

[0133] Since Example 5 takes into account the optimal path constraint, the route calculation request requires the optimal route result.

[0134] In PCE, one main thread and four resource allocation threads are also set to be started, and the maximum number of path calculations for the KSP algorithm is set to 10 (i.e., K value is 10).

[0135] Based on the above weight data, the sum of link weights included in each routing result calculated according to the KSP algorithm can be obtained, as shown in Table 2:

[0136] Routing results path Routing includes link weights and First Advantage ABCZ 4 Second best ABEZ 5 Third advantage ADCZ 6 Fourth advantage ADEZ 6 Fifth best ABCDEZ 8 Sixth best ABEDCZ 9 Seventh best ADCBEZ 9

[0137] Table 2. Weights and Data of Routing Results

[0138] To simplify the explanation, the process of distributing routing results to the resource allocation thread is described in a relatively brief manner below. The distribution order can be referred to the above embodiments. (Refer to...) Figure 17 :

[0139] Step S901: The main thread calls the KSP algorithm to distribute the first optimal routing result, the second optimal routing result, the third optimal routing result, and the fourth optimal routing result to resource allocation thread #1, resource allocation thread #2, resource allocation thread #3, and resource allocation thread #4, respectively.

[0140] In step S902, resource allocation threads #1, #2, #3 and #4 perform resource allocation calculations.

[0141] In step S903, the main thread continues to call the KSP algorithm to obtain the fifth to seventh optimal routing results respectively, and finds that there are no idle resource allocation threads at this time, so the fifth to seventh optimal routing results are put into the cache pool.

[0142] In step S904, since the resource allocation process of the first routing result and the second routing result involves relays, the resource allocation speed is relatively slow. At this time, the resource allocation thread #3 completes the resource allocation process first, and the resource allocation thread #3 sends a message of successful resource allocation to the main thread, resource allocation thread #1, resource allocation thread #2 and resource allocation thread #4.

[0143] In step S905, resource allocation thread #1 and resource allocation thread #2 receive the message that resource allocation was successful and determine that the weight of the route result they are currently allocating is greater than the weight of the third-best route result, so they do not stop their own resource allocation process; resource allocation thread #4 receives the message that resource allocation was successful and determines that the weight of the route result it is currently allocating is less than the weight of the third-best route result, so it stops its own resource allocation process.

[0144] In step S906, the main thread receives a message that the resource allocation was successful, selects the third route result as a candidate result, and clears the route results in the cache pool.

[0145] In step S907, the main thread waits for the resource allocation results of resource allocation thread #1 and resource allocation thread #2. When resource allocation thread #1 completes resource allocation before resource allocation thread #2, since the weight of the second optimal route result in resource allocation thread #2 is less than the weight of the first optimal route result in resource allocation thread #1, resource allocation thread #2 stops its own resource allocation process, and the main thread selects the first route result as the candidate result.

[0146] In step S908, the main thread compares the two candidate results (the first routing result and the third routing result), determines that the weight of the first routing result is less than that of the third routing result, and determines the first routing result as the final routing result.

[0147] In step S909, the main thread outputs the first routing result as the routing result of the routing calculation request.

[0148] A second aspect of the present invention provides a routing calculation apparatus, including at least one processor and a memory for communicatively connecting to the at least one processor; the memory stores instructions executable by the at least one processor, the instructions being executed by the at least one processor to enable the at least one processor to perform the routing calculation method for the optical transport network described in the first aspect.

[0149] Reference Figure 18 Taking the example where the control processor 1001 and memory 1002 in the routing computing device 1000 can be connected via a bus, the memory 1002, as a non-transitory computer-readable storage medium, can be used to store non-transitory software programs and non-transitory computer-executable programs. Furthermore, the memory 1002 may include high-speed random access memory, and may also include non-transitory memory, such as at least one disk storage device, flash memory device, or other non-transitory solid-state storage device. In some embodiments, the memory 1002 may optionally include memory remotely located relative to the control processor 1001, and these remote memories can be connected to the routing computing device 1000 via a network. Examples of such networks include, but are not limited to, the Internet, corporate intranets, local area networks, mobile communication networks, and combinations thereof.

[0150] Those skilled in the art will understand that Figure 18 The device structure shown does not constitute a limitation on the routing computing device 1000, and may include more or fewer components than shown, or combine certain components, or have different component arrangements.

[0151] Based on the received routing calculation request, the KSP algorithm is invoked to calculate multiple routing results, and resource allocation is performed on the multiple routing results simultaneously, thereby speeding up the routing calculation speed of the routing calculation request. Compared with the traditional KSP algorithm routing calculation method, the routing calculation method of this embodiment can greatly speed up the routing calculation speed, improve the routing calculation efficiency, and meet the needs of optical transport networks with more complex resource conditions.

[0152] A third aspect of the present invention provides a computer-readable storage medium storing computer-executable instructions that are executed by one or more control processors, for example, by... Figure 18 One of the control processors 1001 executes the method, which enables the one or more control processors to perform the routing calculation method for the optical transport network in the above method embodiments, for example, to perform the method described above. Figure 1 Method steps S100 to S300 Figure 2 Method steps S310 to S330, Figure 3 Method steps S340 in the middle Figure 4 Method steps S350, Figure 5 Method steps S210 to S230, Figure 6 Method steps S230 in the middle Figure 7 Method steps S240, Figure 8 Method steps S250, Figure 9 Method steps S400, Figure 10 Method steps S500, Figure 12Method steps S601 to S608 Figure 15 Method steps S701 to S717 in the above method Figure 16 Method steps S801 to S809 and Figure 17 The method steps S901 to S909.

[0153] The device embodiments described above are merely illustrative. The units described as separate components may or may not be physically separate; that is, they may be located in one place or distributed across multiple network units. Some or all of the modules can be selected to achieve the purpose of this embodiment according to actual needs.

[0154] It will be understood by those skilled in the art that all or some of the steps and systems in the methods disclosed above can be implemented as software, firmware, hardware, and suitable combinations thereof. Some or all of the physical components can be implemented as software executed by a processor, such as a central processing unit, digital signal processor, or microprocessor, or as hardware, or as an integrated circuit, such as an application-specific integrated circuit. Such software can be distributed on a computer-readable medium, which can include computer storage media (or non-transitory media) and communication media (or transient media). As is known to those skilled in the art, the term computer storage media includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storing information (such as computer-readable instructions, data structures, program modules, or other data). Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technologies, CD-ROM, digital versatile disc (DVD) or other optical disc storage, magnetic cartridges, magnetic tape, disk storage or other magnetic storage devices, or any other medium that can be used to store desired information and is accessible to a computer. Furthermore, as is known to those skilled in the art, communication media typically contain computer-readable instructions, data structures, program modules, or other data in modulated data signals such as carrier waves or other transmission mechanisms, and may include any information delivery medium.

[0155] The above is a detailed description of the preferred embodiments of this application. However, this application is not limited to the above embodiments. Those skilled in the art can make various equivalent modifications or substitutions without departing from the spirit of this application. All such equivalent modifications or substitutions are included within the scope defined by the claims of this application.

Claims

1. A method for computing a route of an optical transport network, applied to a path computation element, the method comprising: receiving a route computation request; invoking a K shortest path (KSP) algorithm, obtaining a plurality of route results according to the KSP algorithm, and assigning a resource allocation thread to each of the route results, and simultaneously performing resource allocation for the route results by using the resource allocation threads; taking the route result that first completes resource allocation as a candidate result, and determining a route computation result of the route computation request according to the candidate result. The method further comprises: taking the route result that first completes resource allocation as the candidate result; stopping invoking the KSP algorithm and stopping the resource allocation process of the route result that has not completed resource allocation; and taking the candidate result as the route computation result of the route computation request. The number of the candidate results is a plurality, and the method further comprises: when the degree of any one of the candidate results is greater than the degree of the route result that has not completed resource allocation, taking the route result with the highest degree as the route computation result of the route computation request. The method further comprises: stopping invoking the KSP algorithm and stopping the resource allocation process of the route result that has not completed resource allocation.

2. The routing calculation method of the optical transport network according to claim 1, characterized in that, When the resource allocation thread is assigned to each of the route results, the method further comprises: when the number of the route results is greater than the number of the resource allocation threads, saving the route result that has not completed resource allocation to a cache pool. The method further comprises: when there is an idle resource allocation thread, allocating the route result with the highest degree in the cache pool to the idle resource allocation thread. The method further comprises: when any one of the route results completes resource allocation, emptying all the route results in the cache pool. The method further comprises: when the KSP algorithm fails to obtain the first route result, outputting information of route computation failure.

3. The method for routing calculation of an optical transport network according to claim 1, characterized in that, The method further comprises: when the resource allocation of all the route results obtained by the KSP algorithm fails, outputting information of route computation failure. The computer readable storage medium stores computer executable instructions for causing a computer to perform the method for computing a route of an optical transport network according to any one of claims 1 to 9.

4. The method for routing calculation of an optical transport network according to claim 3, characterized in that, The computer readable storage medium stores computer executable instructions for causing a computer to perform the method for computing a route of an optical transport network according to any one of claims 1 to 9. ​ 5. The method for routing computation of an optical transport network according to claim 1, wherein, ​ ​ 6. The method for routing computation of an optical transport network according to claim 5, wherein, ​ ​ 7. The method for routing computation of an optical transport network according to claim 5, wherein, ​ ​ 8. The method for routing computation of an optical transport network according to claim 1, wherein, ​ ​ 9. The method for routing computation of an optical transport network according to claim 1, wherein, ​ ​ 10. A routing computation apparatus of an optical transport network, characterized by, ​ 11. A computer readable storage medium, characterized in that, ​

Citation Information

Patent Citations

  • Route Search and Wavelength Allocation Method in Optical Network and Device Thereof

    US20120163814A1

  • Multi-threaded route processing

    US20190179668A1