Method and system of performing adaptive and automatic candidate path selection for segment routing

The method and system for adaptive candidate path selection in SDN dynamically adjusts Segment Routing policies based on real-time network conditions, addressing inefficiencies in existing SDN solutions by optimizing resource utilization and maintaining high QoS through automatic path switching and load balancing.

WO2026152399A1PCT designated stage Publication Date: 2026-07-23HUAWEI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
HUAWEI TECH CO LTD
Filing Date
2025-01-17
Publication Date
2026-07-23

AI Technical Summary

Technical Problem

Existing Software Defined Networking (SDN) solutions for Segment Routing (SR) lack automatic and adaptive candidate path selection, leading to inefficient congestion management and suboptimal traffic distribution, especially in dynamic network environments, due to manual threshold-based re-optimization and lack of centralized control over path switching.

Method used

Implement a method and system for adaptive and automatic candidate path selection in SDN using a controller that monitors network conditions, switches between candidate paths based on real-time metrics, and applies specific Segment Routing policies to Provider Edge nodes, incorporating minimum hold times, traffic predictions, and Service Level Agreements to optimize resource utilization and QoS.

Benefits of technology

The solution enhances network performance by dynamically adjusting paths based on real-time conditions, optimizing resource utilization, reducing congestion, and maintaining high Quality of Service levels through adaptive path selection, improving fault tolerance and load balancing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025073130_23072026_PF_FP_ABST
    Figure CN2025073130_23072026_PF_FP_ABST
Patent Text Reader

Abstract

A method of performing adaptive and automatic candidate path, CP, selection for segment routing, SR, policies in a data communications network (402) having one or more tunnels. The method includes monitoring network conditions over each of the tunnels using a controller in a software defined network, SDN, where the controller assigns a specific SR policy to each of the tunnels. The assigned SR policy is applied to a Provider Edge, PE, node, where each SR policy has two or more CPs, each CP has one or more list of segment identifiers, SIDs. The PE node (404) adds the SIDs to a header of each data packet being communicated over the respective tunnel. Depending on the result of the monitoring step, the controller automatically switches between available CPs for each tunnel, to select an active CP.
Need to check novelty before this filing date? Find Prior Art

Description

METHOD AND SYSTEM OF PERFORMING ADAPTIVE AND AUTOMATIC CANDIDATE PATH SELECTION FOR SEGMENT ROUTINGTECHNICAL FIELD

[0001] The disclosure relates generally to computer networking, and more particularly, the disclosure relates to a method of performing adaptive and automatic candidate path, CP, selection for segment routing, SR, policies in a data communications network having a plurality of tunnels.BACKGROUND

[0002] Software Defined Networking, SDN, is a networking architecture where dedicated controllers optimize traffic in a network through centralized management of routing policies. The dedicated controllers assign specific Segment Routing, SR, policies to network tunnels and deploy these policies at Provider Edge, PE, nodes, where the PE nodes act as ingress points to the network. The dedicated controllers include a Path Computation Element, PCE, module that manages traffic flows by inserting appropriate Segment IDs, SIDs, into packet headers. The PCE module enables dynamic optimization of network paths based on objectives like end-to-end delay, traffic engineering cost, or availability. The PCE module also ensures that these paths meet specific constraints such as latency, losses, link availability, and minimum bandwidth requirements.

[0003] Existing mechanisms enable operators to use two primary patterns of Candidate Path, CP. The first is a simple 2CP+1 list, where one active CP is backed by a secondary CP. The second is a more complex 1CP+multi pattern, that uses multiple SIDs for load balancing. FIG. 1 illustrates the structure of an SRv6 Traffic Engineering, TE, Policy, showing how CPs and their associated Segment Lists are organized. Each SRv6 TE Policy is identified by a Headend, Colour, and Endpoint, which uniquely define the policy. The policy includes one or more CPs, such as Candidate Path (1) and Candidate Path (n) , each with an associated Preference value. In a 2CP+1 list configuration, Candidate Path (1) serves as the primary path, while Candidate Path (2) acts as a backup. This ensures reliability but does not support load balancing. In a 1CP+multi configuration, a single CP has multiple Segment Lists (e.g., Segment List (N1) to Segment List (NK) ) with corresponding Weights. This distributes traffic across multiple paths to mitigate congestion and improve fault tolerance. While the 2CP+1 list is preferred for ease of troubleshooting, it lacks efficient load balancing. The 1CP+multi pattern addresses this by distributing traffic over multiple paths, offering better congestion mitigation and fault tolerance.

[0004] Despite these advancements, the network controllers rely on manually set thresholds, such as thresholds on end-to-end Quality of Service metrics, to trigger re-optimization of SR policies when congestion occurs.

[0005] FIG. 2 illustrates a process of a prior-art implementation for re-optimization of SR policies for handling congestion in a data communications network. At step 200, the process starts by periodically monitoring the data communications network. At step 202, the process includes checking, using a controller, whether a threshold violation has occurred (e.g., due to congestion) or whether link recovery is required which needs to be handled (when a link comes back, it can trigger a recalculation of SR policies so that tunnels can use it) . If no violation or link recovery is detected, the process terminates at step 210. At step 204, if a violation is detected or if link recovery is required, the PCE recalculates paths for tunnels associated with the congested or recovered links to obtain a solution. At step 206, the solution recalculated in the previous step is evaluated to ensure that it meets the requirements of Maximum Link Utilization, MLU, or, for example, minimizing latency. At step 208, if the recalculated solution satisfies the MLU requirements, the solution is applied to the data communications networks. However, as shown in FIG. 2, the prior-art solutions have limitations because the selection of CP patterns is entirely manual, both during the initial tunnel setup and during re-optimization. The controllers are restricted to recalculating paths within each CP and cannot automatically switch CP patterns, leading to suboptimal congestion management. When using the 2CP+1 pattern, backup paths are only engaged during network failures, and there is no mechanism to dynamically balance traffic between the primary and backup paths, or, for a tunnel, to switch between 2CP+1 to 1CP + multi.

[0006] Furthermore, the manual process of switching CP patterns is time-consuming and prone to errors, which can cause potential traffic losses as individual tunnels are re-provisioned. This manual approach introduces inefficiency and operational challenges, especially in dynamic network environments.

[0007] FIG. 3 illustrates details of an example configuration within a typical PCE for flexible CP (a current draft standard which is still not fully standardized) selection in a data communications network according to a prior-art implementation. This draft standard is entitled: “Flexible Candidate Path Selection of SR Policy draft-liu-spring-sr-policy-flexible-path-selection-08” . The example configuration includes an SR Policy POL1, with Candidate Paths CP1 and CP2. CP1 has a higher preference value of 200, which means CP1 is the default active CP unless it becomes invalid. CP1 has an end-to-end delay threshold of 200 milliseconds (ms) . Segment List 1 includes SIDs representing a path having delays greater than 1 second, while Segment List 2 includes SIDs representing a path having delays less than 100 milliseconds. CP2 has a lower preference value of 100, making CP2 the backup path. CP2 has the same delay threshold of 200 ms.Segment Lists 3 and 4 each includes SIDs representing a path having a delay of less than 100 ms.

[0008] Initially, CP1 is active due to a higher preference value. However, when the delay of the Segment List 1 exceeds 1 second, CP1 becomes invalid and as a result, CP2 is selected. While this example configuration enables dynamic activation of backup CPs, it lacks coordination between multiple ingress nodes sending traffic over paths sharing the same links. When multiple ingress routers independently react to degradation of performance, they may inadvertently generate additional congestion or packet loss in the data communications network, as each device operates without centralized control.

[0009] Therefore, there arises a need to address the aforementioned technical problems / drawbacks in Software Defined Networking, SDN. Specifically, despite the above advancements in the state of the art, there still remains a need to further optimise candidate path selection.SUMMARY

[0010] It is an object of the disclosure to provide a method of performing adaptive and automatic CP selection for SR policies in a data communications network having a plurality of tunnels. Moreover, the disclosure relates to a system of performing adaptive and automatic CP selection for SR policies in the data communications network having the plurality of tunnels. Further, the disclosure relates to a computer program that includes instructions for carrying out all the steps of the method, when the computer program is executed on a computer system.

[0011] This object is achieved by the features of the independent claims. Further, implementation forms are apparent from the dependent claims, the description, and the figures.

[0012] According to a first aspect, there is provided a method of performing adaptive and automatic Candidate Path, CP, selection for Segment Routing, SR, policies in a data communications network having one or more tunnels. The method includes monitoring network conditions over each of the one or more of tunnels of the data communications network, using a controller in a Software Defined Network, SDN, where the controller assigns a specific SR policy to each of the one or more tunnels of the data communications network. The assigned SR policy is applied to a Provider Edge, PE, node, where each SR policy has at least two CPs, each CP has at least one list of segment identifiers, SIDs, associated therewith. The PE node adds the SIDs to a header of each data packet being communicated over the respective tunnel. Depending on the result of the monitoring step, the controller automatically switches between available CPs for each tunnel, to select an active CP.

[0013] Preferably, a minimum hold time is implemented for the automatic switching between the available CPs. Preferably, the controller notifies the PE node about the selection of the active CP by sending a new SR policy or by updating a preference of the existing SR policies in the PE node. The term “minimum hold time” refers to the period during which a CP must remain active before switching to another CP, even if network conditions change. For example, if the minimum hold time is set to 5 minutes, the controller will not switch to a backup CP unless the primary CP has been active for at least 5 minutes.

[0014] Optionally, traffic predictions are used to select CPs. Traffic prediction involves analysing historical traffic patterns and using predictive models to forecast network conditions. For example, if traffic analysis predicts an increase in demand during peak hours, the controller can proactively switch to a CP with higher capacity or better performance characteristics.

[0015] Optionally, per-tunnel Service Level Agreements, SLAs, are used to trigger the automatic switching. Optionally, a QoS model is used to select a CP. The QoS model evaluates network performance metrics, such as jitter or delay, to determine the optimal CP for a specific traffic type. For example, high-priority traffic like Voice over Internet Protocol, VoIP, may require a CP with low jitter and latency, while bulk data transfers may prioritize bandwidth.

[0016] Optionally, the automatic switching step is performed at a Path Computation Element, PCE, of the controller. Optionally, the automatic switching step is performed at a module, separate from the PCE. Optionally, the detecting step is carried out by expiration of a timer. When the SLA requirements or QoS models indicate that improved performance cannot be achieved by merely adjusting routing, the method triggers automatic switching, either at the PCE or in a separate module. SLAs define performance metrics such as latency, bandwidth, or packet loss thresholds for each tunnel. For instance, if the latency of a tunnel exceeds an SLA-defined threshold of 50 ms, the controller may switch to a CP that is likely to meet the SLA requirements.

[0017] Preferably, the monitoring step monitors a link status to determine whether a user-defined threshold has been violated. Optionally, the user-defined threshold has been violated due to congestion. A user-defined threshold may include metrics such as maximum link utilization. Optionally, the user-defined threshold has been violated due to congestion, such as when bandwidth utilization of a link exceeds 80%.

[0018] Preferably, the controller notifies the PE node about the selection of the active CP by sending a new SR policy or by updating a preference of the existing SR policies in the PE node. This ensures that the PE node is updated with an optimal routing configuration. For example, if a new CP is selected due to congestion, the controller sends an updated SR policy message to the PE node, specifying the preference for the newly activated CP.

[0019] Preferably, the automatic switching between available CPs takes place between a first switching choice having at least two CPs where each CP has one list of SIDs, the first of the two CPs being an active CP and the second of the two CPs being a backup CP, and a second switching choice having one CP which has multiple lists of SIDs. The first switching choice typically involves a primary CP and a backup CP, while the second switching choice uses a 1CP+multi configuration for traffic load balancing. For example, in a 2CP+1 configuration, the primary CP is used under normal conditions, and the backup CP is activated during failures. In a 1 CP+multi configuration, traffic is split across multiple SID lists to distribute load and mitigate congestion.

[0020] According to a second aspect, there is provided a system comprising means adapted for carrying out all the steps of the method according to any preceding method claim.

[0021] According to a third aspect, there is provided a computer program includes instructions for carrying out all the steps of the above-described method, when the computer program is executed on a computer system.

[0022] The method, system and computer program optimize resource utilization and reduces network congestion while maintaining high Quality of Service, QoS, levels by performing adaptive and automatic CP selection at the controller in Software Defined Networks. The computer program utilizes a controller that continuously monitors network conditions and dynamically switches between available CPs for each tunnel. This adaptive approach prioritizes single-path preferences where possible and can also activate multiple SID lists when necessary to control the Maximum Link Utilization, MLU.

[0023] Additionally, in contradistinction to the existing solutions, by integrating CPs and SR into the data communications network, adaptability and efficiency are improved in the data communications network. The CP allows the network to evaluate multiple routing options and dynamically select the optimal path based on real-time conditions such as traffic load, latency, and bandwidth availability. The SR policy ensures that traffic is routed along the most suitable path for its specific requirements, optimizing resource utilization and performance. The CP enables the network to automatically adjust to changing conditions, improve fault tolerance through path redundancy, and ensure reliable, high-quality communication with minimal manual intervention.

[0024] These and other aspects of the disclosure will be apparent from the implementation (s) described below.BRIEF DESCRIPTION OF DRAWINGS

[0025] Implementations of the disclosure will now be described, by way of example only, with reference to the accompanying drawings, in which:

[0026] FIG. 1 (PRIOR-ART) illustrates the structure of an SRv6 Traffic Engineering, TE, Policy, showing how CPs and their associated Segment Lists are organized;

[0027] FIG. 2 (PRIOR-ART) illustrates a process of a prior-art implementation for re-optimization of SR policies for handling congestion in a data communications network;

[0028] FIG. 3 (PRIOR-ART) illustrates details of an example configuration within a typical PCE for flexible CP selection in a data communications network according to a prior art implementation;

[0029] FIG. 4 is a block diagram thatillustrates a system for performing adaptive and automatic Candidate Path, CP selection for Segment Routing, SR, policies in a data communications network in accordance with an implementation of the disclosure;

[0030] FIG. 5A illustrates an example of an adaptive Candidate Path, CP, selection in a data communications network to improve load balancing in accordance with an implementation of the disclosure;

[0031] FIG. 5B illustrates a data communications network managed predictively by a network controller in accordance with an implementation of the disclosure;

[0032] FIG. 5C illustrates the use of traffic predictions for the protection of higher-priority traffic over lower-priority traffic in a data communications network in accordance with an implementation of the disclosure;

[0033] FIG. 6 illustrates the selection of a Candidate Path, CP, which has multiple lists of Segment Identifiers to minimize congestion in a data communications network in accordance with an implementation of the disclosure;

[0034] FIG. 7 illustrates a flowchart for automatic switching of Candidate Path, CP, in a data communications network in accordance with an implementation of the disclosure;

[0035] FIGS. 8A-C illustrate a format of a message that is exchanged to update the preference of a Candidate Path, CP, in a Segment Routing, Policy within a data communications network in accordance with an implementation of the disclosure;

[0036] FIG. 9 illustrates the formulation of an optimization model that performs adaptive and automatic selection of Candidate Path, CP, in a data communications network in accordance with an implementation of the disclosure;

[0037] FIG. 10 illustrates a process flow of a local search algorithm to select Candidate Paths, CPs, in accordance with an implementation of the disclosure;

[0038] FIG. 11 illustrates a semi-distributed approach for adaptive selection of Candidate Path, CP, using a controller in accordance with an implementation of the disclosure;

[0039] FIG. 12 illustrates the results of traffic shaping in accordance with an implementation of the disclosure;

[0040] FIG. 13 is a flow diagram that illustrates a method of performing adaptive and automatic Candidate Path, CP, selection for Segment Routing, SR, policies in a data communications network having one or more tunnels, in accordance with an implementation of the disclosure; and

[0041] FIG. 14 is an illustration of a computer system in which the various architectures and functionalities of the various previous implementations may be implemented.

[0042] DETAILED DESCRIPTION OF THE DRAWINGS

[0043] Implementations of the disclosure provide a method of performing adaptive and automatic CP selection for Segment Routing, SR, policies in a data communications network having a plurality of tunnels. Moreover, the disclosure relates to a system of performing adaptive and automatic CP selection for Segment Routing, SR, policies in the data communications network having the plurality of tunnels. Further, the disclosure relates to a computer program that includes instructions for carrying out all the steps of the method, when the computer program is executed on a computer system.

[0044] To make solutions of the disclosure more comprehensible for a person skilled in the art, the following implementations of the disclosure are described with reference to the accompanying drawings.

[0045] Terms such as "a first" , "a second" , "a third" , and "a fourth"  (if any) in the summary, claims, and foregoing accompanying drawings of the disclosure are used to distinguish between similar objects and are not necessarily used to describe a specific sequence or order. It should be understood that the terms so used are interchangeable under appropriate circumstances, so that the implementations of the disclosure described herein are, for example, capable of being implemented in sequences other than the sequences illustrated or described herein. Furthermore, the terms "include" and "have" and any variations thereof, are intended to cover a non-exclusive inclusion. For example, a process, a method, a system, a product, or a device that includes a series of steps or units, is not necessarily limited to expressly listed steps or units but may include other steps or units that are not expressly listed or that are inherent to such process, method, product, or device.

[0046] Definitions:

[0047] Service Level Agreement, SLA, is defined as a contract or agreement that specifies performance metrics and availability commitments between a service provider and a customer. In the context of network performance, the SLA may include parameters such as minimum bandwidth, maximum latency, packet loss thresholds, and availability guarantees.

[0048] Maximum Link Utilization, MLU, is defined as a network performance metric that represents a maximum percentage of capacity of a network link being utilized during data transmission. The MLU targets are set to manage traffic load and optimize the efficiency of data flow across network resources.

[0049] Candidate Path, CP, is defined as a route or sequence of Segment Identifiers, SIDs, through the network, assigned to data packets to achieve a desired routing objective. Multiple CPs may exist for a given traffic flow, each with its own attributes such as preference and weight.

[0050] Segment Routing, SR, Policy is defined as a set of rules applied to network packets to direct them along a predefined path within a Segment Routing-enabled network. The SR Policy determines which CP to use based on network conditions, service requirements, and other criteria.

[0051] Path Computation Element, PCE, is defined as a network component responsible for calculating optimal paths across the network based on factors such as traffic demands, link utilization, and specified constraints. The PCE plays a critical role in enabling adaptive path selection for traffic engineering.

[0052] Quality of Service, QoS, is defined as a measure of ability of a data communications network to provide prioritized and reliable data transmission. QoS settings may prioritize traffic based on parameters such as bandwidth, latency, jitter, and packet loss to ensure efficient service delivery for high-priority applications.

[0053] FIG. 4 is a block diagram thatillustrates a system for performing adaptive and automatic Candidate Path, CP selection for Segment Routing, SR, policies in a data communications network 402 in accordance with an implementation of the disclosure. The system includes a controller 406, which is configured to monitor and manage network conditions across the data communications network 402. The controller 406 comprises a Path Computation Element, PCE, 408, an adaptive CP selection module 410 implemented inside the PCE 408, and a monitoring module 412. Additionally, the controller 406 is communicatively connected with a database 414 to access SR policies and network targets. The data communications network 402 comprises one or more tunnels.

[0054] The controller 406, in a Software Defined Network, SDN, monitors network conditions for each tunnel in the data communications network 402. The controller 406 assigns a specific SR policy to each tunnel of the data communications network 402. The assigned SR policy is applied to a Provider Edge, PE, node 404. Each SR policy has at least two CPs, and each CP has at least one list of segment identifiers, SIDs, associated with it. The PE node adds the SIDs to a header of each data packet transmitted over the respective tunnel. Depending on the result of monitoring network conditions, the controller 406 automatically switches between available CPs for each tunnel, to select an active CP.

[0055] The system optimizes resource utilization and reduces network congestion while maintaining high Quality of Service, QoS, levels by performing adaptive and automatic CP selection at the controller 406 in the SDN. The controller 406 utilizes the monitoring module 412 to continuously monitor network conditions across the data communications network 402 and dynamically switches between available CPs for each tunnel.

[0056] The adaptive CP selection module 410 implemented within the PCE 408 enables the controller 406 to prioritize single-path preferences (e.g., using primary CPs) where possible and can also activate multiple SID lists when necessary to control the Maximum Link Utilization, MLU. Additionally, the database 414 enables the controller 406 to access SR policies and network targets to provide optimal traffic routing and resource management. Therefore, the controller 406 improves network performance by effectively responding to congestion and SLA requirements in real-time.

[0057] Preferably, the controller 406 implements a minimum hold time for the automatic switching between the available CPs. The term “minimum hold time” refers to a period during which a CP must remain active before switching to another CP, even if network conditions change. Preferably, the controller 406 notifies the PE node 404 about the selection of the active CP by sending a new SR policy or by updating a preference of the existing SR policies in the PE node 404. This ensures that the PE node 404 is updated with an optimal routing configuration.

[0058] Preferably, the automatic switching between available CPs takes place between a first switching choice having at least two CPs where each CP has one list of SIDs, the first of the two CPs being an active CP and the second of the two CPs being a backup CP, and a second switching choice having one CP which has multiple lists of SIDs. The first switching choice typically involves a primary CP and a backup CP, while the second switching choice uses a 1CP+multi configuration for traffic load balancing. For example, in a 2CP+1 configuration, the primary CP is used under normal conditions, and the backup CP is activated during failures. In a 1 CP+multi configuration, traffic is split across multiple SID lists to distribute load and mitigate congestion.

[0059] Optionally, the controller 406 uses traffic predictions to select CPs. Optionally, the controller 406 uses per-tunnel Service Level Agreements, SLAs, to trigger the automatic switching. Optionally, the controller 406 uses a QoS model to select a CP.

[0060] Preferably, the monitoring module 412 monitors a link status to determine whether a user-defined threshold has been violated. Optionally, the user-defined threshold has been violated due to congestion.

[0061] FIG. 5A illustrates an example of an adaptive Candidate Path, CP, selection in a data communications network to improve load balancing in accordance with an implementation of the disclosure. In the first configuration 500, lower-priority traffic and higher-priority traffic share a set of network paths, using available bandwidth across multiple routes. However, in the second configuration 502, some lower-priority tunnels are dynamically switched to a CP which has multiple lists of SIDs (i.e. switch between CPs of 2CP+1 and CP of 1 CP+multi) to improve load balancing. This approach mitigates congestion using load balancing, and ensures higher-priority traffic flow by multi-pathing on disjoint paths. As a result, maximum link utilization is maintained below a given threshold to prevent large delays and packet loss, based on a decision of a network controller, using traffic measurements of the last tunnel.

[0062] FIG. 5B illustrates a data communications network 504 managed predictively by a network controller (NC) , in accordance with an implementation of the disclosure. The data communications network 504, represented by interconnected nodes (P) , includes a Provider Edge, PE, node, which serves as ingress and egress points for traffic entering and exiting the data communications network 504 respectively. Solid lines between the nodes in the data communications network 504 represent active data paths. The network controller continuously monitors the network performance of the data communications network 504. As the tunnel traffic changes over time, the network controller uses traffic predictions to perform predictive selection of CP. Optionally, the network controller anticipates the impact on Quality of Service, QoS.

[0063] FIG. 5C illustrates the use of traffic predictions for the protection of higher-priority traffic over lower-priority traffic in a data communications network 508 in accordance with an implementation of the disclosure. A network controller uses traffic predictions to dynamically select Candidate Paths, CPs. This ensures that higher-priority traffic is directed along optimal paths, while lower-priority traffic is rerouted to alternative routes. The network controller anticipates the evolution of traffic over time.

[0064] FIG. 6 illustrates the selection of a Candidate Path, CP, which has multiple lists of Segment Identifiers, SIDs, to minimize congestion in a data communications network in accordance with an implementation of the disclosure. Three services, namely “Service 1” , “Service 2” , and “Service 3” are shown. The three services have predefined CPs and backup paths at time T=0. That is, each of the three services is assigned a primary CP, for example CP1, and associated backup paths, for example CP2, and / or CP3. In the first configuration 602, traffic of Service 1 flows from A to D using (a) a primary path “CP1” which flows B-D, (b) a backup path “CP2” which flows C-D, and (c) a 1CP path “CP3” which flows either B-D or C-D with both operating at 50%Maximum Link Utilization, MLU. Traffic of Service 2 flows from A to D, using (a) a primary path “CP1” which flows B-D, (b) a backup path “CP2” which flows C-D, and (c) a 1CP path “CP3” which flows either B-D or C-D with both operating at 50%MLU. Traffic of Service 3 flows from A to C using (a) a primary path “CP1” which flows from C, (b) a backup path “CP2” which flows B-D-C, and (c) a 1CP path “CP3” which flows either from C or B-D-C with both operating at 50%MLU. In the first configuration 602, traffic flows are balanced with each service carrying a traffic load of 2 megabytes, MB, and the links having a capacity of 10 MB.

[0065] In the second configuration 604, new paths are computed by a controller, but their use is restricted by the 2CP model which activates backup paths only in failure scenarios. Without adaptation, MLU in the data communications network reaches 70%, which leads to inefficient traffic flow.

[0066] To mitigate or minimize the congestion in the data communications network, the controller reoptimizes traffic by switching flows of “Service 2” to the secondary CP and flows of “Service 3” to a 1 CP+multi configuration as shown in a third configuration 606. The traffic of “Service 1” is routed via paths B-D. The traffic of “Service 2” is similarly routed via path C-D (e.g. secondary CP) . The traffic of “Service 3” is split evenly between paths C and B-D-C (e.g. 1CP+multi configuration) . The traffic of “Service 1” and “Service 2” flows with a link capacity of 4Mb each and the traffic of “Service 3” flows with a link capacity of 3MB. This adaptation reduces the MLU to 55%and effectively balances traffic across multiple paths to reduce congestion in the data communications network.

[0067] FIG. 7 illustrates a flowchart for automatic switching of Candidate Path, CP, in a data communications network in accordance with an implementation of the disclosure. At a step 700, it is determined whether a time limit or a predefined threshold has been violated due to a failure or congestion. If Service Level Agreement, SLAs, are not met or a timer has expired, the computation starts. That is, if a violation is determined at the step 700, a preferred CP (e.g. a primary or backup of 2CP, a 1CP+multi, or any other CP in the Segment Routing, SR, policy) is computed for each SR policy to meet targets of a user in terms of SLA and Maximum Link Utilization, MLU, at a step 702. At a step 704, an evaluation is performed to determine whether the computed CP improves the Quality of Service, QoS. If there is an improvement in QoS, the computed CP is applied to the data communications network at a step 706.

[0068] If there is no improvement in QoS, a request is made to the Path Computation Element, PCE, to compute a new path at a step 708. At a step 710, a re-evaluation is performed to determine whether the new path improves the QoS. At a step 714, if there is an improvement in the QoS, the new path is applied to the data communications network. If the QoS improvement is still not satisfactory, at a step 712, a global reoptimization is initiated. The term “global reoptimization” refers to a recalculation of all CPs and SR policies across the entire data communications network by the PCE. At a step 716, it is determined whether QoS improvement is possible with the global reoptimization, and if so, an updated path is applied to the network, else the step 700 is performed.

[0069] FIGS. 8A-C illustrate a format of a message that is exchanged to update the preference of a Candidate Path, CP, in a Segment Routing, SR, Policy within a data communications network in accordance with an implementation of the disclosure. The SR Policy is represented by a new type of Path Computation Element Protocol, PCEP, Association, called the SR Policy Association, SRPA. The Candidate Paths of an SR Policy are defined as PCEP Label Switched Paths, LSPs, within the same SRPA. The SRPA includes three key components: an SR Policy Identifier (FIG. 8A) , an SR Policy Candidate Path Identifier (FIG. 8B) , and an SR Policy Candidate Path Attribute (FIG. 8C) .

[0070] FIG. 8A illustrates a Segment Routing, SR, Policy Identifier, which uniquely identifies an SR policy within the data communications network. The SR Policy Identifier comprises a ‘Type’ field set to 31, a ‘Length’ field indicating 8 or 20, and attributes such as ‘Colour’ and ‘Endpoint’ . The SR Policy Identifier comprises a Headend router where the SR Policy originates, the colour of the SR Policy, and the endpoint. This SR Policy identifier is uniform across all CPs associated with the same SRPA.

[0071] FIG. 8B illustrates an SR Policy Candidate Path Identifier, represented as a tuple “Protocol-Origin, Originator ASN, Discriminator” to uniquely identify a CP. The ‘Discriminator’ is a 32-bit field that provides a unique identifier for the CP.

[0072] FIG. 8C illustrates an SR Policy Candidate Path Attribute in an SRPA object. The SR Policy Candidate Path Attribute includes fields for ‘Type’ , ‘Length’ , and ‘Preference value’ . For example, the Policy Candidate Path Attribute comprises a type-length-value, TLV, (e.g. SRPOLICY-CPATH-PREFERENCE TLV) that specifies the preference value for a CP in the SRPA object. If the TLV is not present, the preference value is set to 100 by default.

[0073] FIG. 9 illustrates the formulation of an optimization model that performs adaptive and automatic selection of Candidate Path, CP, in a data communications network in accordance with an implementation of the disclosure. The optimization model selects CP preferences for various tunnels. Optionally, the optimization model selects weights and shaping of Segment Identifiers, SIDs. In cases, where modifying the CP cannot solve the congestion, shaping (such as selecting the shaping rate of segment identifiers) is used to limit the rate of lower priority (LP) tunnels to protect higher priority (HP) ones when no alternative solution regarding candidate paths is found. The optimization first tries to activate load balancing with 1 CP+multi and activate shaping if it is not enough. The optimization model is represented as a mixed integer linear problem, as illustrated in FIG. 9.

[0074] The objective of the optimization model is

[0075] Capacity Constraint is given by

[0076] Maximum Link Utilization, MLU, Constraint is given by θ ≤θM+m

[0077] Optionally, the Service Level Agreement, SLA, constraint is given by

[0078] Optionally, the optimization model is solved via a generic solver like CPLEX, a mathematical programming solver.

[0079] Inputs to the optimization model are:

[0080] primary path of tunnel k

[0081] backup path of tunnel k

[0082] path j of CP3 of tunnel k

[0083] Dk: demand of tunnel k

[0084] θM: MLU target request

[0085] DelayReq: Delay target

[0086] LossReq: Packet loss target

[0087] The and are obtained from the Path Computation Element, PCE, of a controller.

[0088] Outputs of the optimization model include:

[0089] is a portion of path j of CP3 of tunnel k and is used to define used to define aUCMP (unequal cost multipath) weight and ashaping rate of tunnel k.

[0090] If CP3 is activated at Provider Edge, PE, node, the split ratio for path j of tunnel k is computedas

[0091] If shaping is required for each interface connecting to link l, the shaping rate for tunnel k is

[0092] The optimization model assigns the CP to the tunnel according to the following rules:

[0093] 1. CP1: No shaping. If unsuccessful, proceed to

[0094] 2. CP2: No shaping. If unsuccessful, proceed to

[0095] 3. CP3: No shaping. If unsuccessful, proceed to

[0096] 4. CP3: With shaping

[0097] FIG. 10 illustrates a process flow of a local search algorithm to select Candidate Paths, CPs, in accordance with an implementation of the disclosure. The term “local search algorithm” is referred to as a method for dynamically selecting and optimizing CPs in a data communications network, and prioritizing higher-priority, HP, flows while efficiently managing lower-priority, LP, flows. At a step 1000, a congestion or a violation of a Service Level Agreement, SLA, or a periodic trigger is determined. At a step 1002, the local search algorithm first ranks tunnels according to their priority, to keep as many HP flows in 2CP+1 mode. The local search algorithmalso prioritizes shifting LP flows to CP3 mode. The ranking function is based on the following parameters: (1) “Curmode” , αk, representing the priority of the current mode of the tunnel (CP1 / CP2 / CP3) , (2) “Prio” , hk, indicating the priority of the tunnel HP / LP, and (3) “Demand” , Dk, representing the demand for the tunnels, and (4) function, f, which maps (curmode, prio, demand) to the rank of the tunnel and has to align with the objective. For example, f (αk, hk, Dk) =αk×hk-Dk, the HP, tunnels with CP1 have the highest rank, while the LP tunnels with CP3 have the lowest rank. The higher rank tunnel has more chance to stay in the current mode. Similarly, smaller flows also have more chance to stay in the current mode.

[0098] If a time limit at a step 1004 is satisfied, the best solution is returned at a step 1006. Else, at a step 1008, the lowest rank tunnel attempts to change its mode. If the curmode of the tunnel is CP1, the local search algorithm attempts to switch to CP2. If the curmode is CP2, the local search algorithm attempts to switch to CP3 if the MLU of CP2 is near the threshold (e.g., 70%) . Otherwise, the local search algorithm tries CP1. If the curmode is CP3, the local search algorithm attempts to switch to CP1 or CP2 (i.e. the lower MLU path is selected) .

[0099] At a step 1010, it is checked whether CP3 is used by a tunnel. If the CP3 is used by the tunnel, then weight selection is performed at a step 1012 by solving a linear program to find the optimal weights. If the CP3 is not used by the tunnel, a new solution is created at a step 1014. At a step 1018, it is determined whether the solution is improved by using the lowest rank again to attempt to improve the solution. If the solution is improved, the required solution is stored at a step 1016. If the solution is not improved or a mode change is not attempted, then the tunnel will move up K ranks at a step 1020. For example, if an LP tunnel currently uses CP3 and traffic demand in the data communications network is stable without causing congestion, moving this tunnel to another mode (e.g., CP1 or CP2) does not improve the overall solution. Similarly, if the MLU of the LP tunnel is too small to justify a mode change, the local search algorithm determines that the current configuration is already optimal for that tunnel.

[0100] The time limit, at a step 1004, has a limitation on a maximum time interval to output an improved solution. The local search algorithm is configured to find the best CP configuration for all the tunnels.

[0101] FIG. 11 illustrates a semi-distributed approach for adaptive selection of Candidate Path, CP, using a controller in accordance with an implementation of the disclosure. The controller includes an adaptive CP selection module 1100. The adaptive CP selection module 1100 identifies and selects optimal paths based on real-time conditions to ensure efficient data routing. The controller manages the design of the CPs, including preferences and Segment Identifier, SID, lists for each CP, while allowing autonomy to devices in operations. This approach enables the controller to offload Service Level Agreement, SLA, and Maximum Link Utilization, MLU, target requirements to the devices by setting constraints on the SID lists.

[0102] Devices notify the controller whenever a new CP is activated, enabling the controller to adjust other Segment Routing, SR, policies as needed. These SR policies update preferences and activation thresholds based on SLA requirements, actual bandwidth usage, and available bandwidth, BW. The controller works with a flexible CP selection module 1102 at the device level to balance centralized control with localized device autonomy.

[0103] FIG. 12 illustrates the results of traffic shaping in accordance with an implementation of the disclosure. The Maximum Link Utilization, MLU, target is set to 70% (0.7) , with all links configured at 5 megabytes per second, Mbps. Two tunnels are provided, namely a high-priority, HP, tunnel and a low-priority, LP, tunnel with no Service Level Agreement, SLA, constraints. Three Candidate Paths, CPs, are defined as follows: CP1 is the path ABD, CP2 is the path ACD, and CP3 includes both ABD and ACD, which are the same for both tunnels.

[0104] At Time T1 1200, HP traffic demand in Tunnel 0 is 1.2 Mbps, and LP traffic demand in Tunnel 1 is 1.3 Mbps, resulting in an MLU of 50%. At Time T2 1202, HP traffic demand in Tunnel 0 increases to 3.0 Mbps, and LP traffic demand in Tunnel 1 increases to 2.5 Mbps, which results in an MLU of 60%. At Time T3 1204, the capacity of link AB is degraded to 0.5 Mbps. During this time, HP traffic demand in Tunnel 0 remains at 3.0 Mbps, and LP traffic demand in Tunnel 1 remains at 2.5 Mbps, which causes the MLU to reach 70%. Further, during Time T3 1204, no shaping is applied to Tunnel 0 (HP) , whereas shaping is applied to Tunnel 1 (LP) . Specifically, for Tunnel 1, Path ABD is allocated an effective bandwidth of 0.35 Mbps (0.14 × 2.5 Mbps) , and Path ACD is allocated a bandwidth of 0.5 Mbps (0.2 × 2.5 Mbps) . The HP flow in Tunnel 0 remains unaffected by the increase in LP traffic in Tunnel 1. The target MLU of 70%is achieved without imposing SLA constraints.

[0105] FIG. 13 is a flow diagram that illustrates a method of performing adaptive and automatic Candidate Path, CP, selection for Segment Routing, SR, policies in a data communications network having one or more tunnels, in accordance with an implementation of the disclosure. At step 1302, network conditions are monitored for each of the one or more of tunnels of the data communications network, using a controller in a Software Defined Network, SDN. The controller assigns a specific SR policy to each of the one or more tunnels of the data communications network. The assigned SR policy is applied to a Provider Edge, PE, node, where each SR policy has at least two CPs, each CP has at least one list of segment identifiers, SIDs, associated therewith. The PE node adds the SIDs to a header of each data packet being communicated over the respective tunnel. At step 1304, depending on the result of the monitoring step of 1302, the controller automatically switches between available CPs for each tunnel, to select an active CP.

[0106] Additionally, a computer program product may include instructions for performing out all the steps of the above method, when the computer program is executed by one or more processors on a computing system.

[0107] FIG. 14 is an illustration of a computer system in which the various architectures and functionalities of the various previous implementations may be implemented. As shown, the computer system 1400 includes at least one processor 1404 that is connected to a bus 1402, wherein the computer system 1400 may be implemented using any suitable protocol, such as PCI (Peripheral Component Interconnect) , PCI-Express, AGP (Accelerated Graphics Port) , Hyper Transport, or any other bus or point-to-point communication protocol (s) . The computer system 1400 also includes a memory 1406.

[0108] Control logic (software) and data are stored in the memory 1406 which may take a form of random-access memory (RAM) . In the disclosure, a single semiconductor platform may refer to a sole unitary semiconductor-based integrated circuit or chip. It should be noted that the term single semiconductor platform may also refer to multi-chip modules with increased connectivity which simulate on-chip modules with increased connectivity which simulate on-chip operation, and make substantial improvements over utilizing a conventional central processing unit (CPU) and bus implementation. Of course, the various modules may also be situated separately or in various combinations of semiconductor platforms per the desires of the user.

[0109] The computer system 1400 may also include a secondary storage 1410. The secondary storage 1410 includes, for example, a hard disk drive and a removable storage drive, representing a floppy disk drive, a magnetic tape drive, a compact disk drive, a digital versatile disk (DVD) drive, recording device, universal serial bus (USB) flash memory. The removable storage drives at least one of reads from and writes to a removable storage unit in a well-known manner.

[0110] Computer programs, or computer control logic algorithms, may be stored in at least one of the memory 1406 and the secondary storage 1410. Such computer programs, when executed, enable the computer system 1400 to perform various functions as described in the foregoing. The memory 1406, the secondary storage 1410, and any other storage are possible examples of computer-readable media.

[0111] In an implementation, the architectures and functionalities depicted in the various previous figures may be implemented in the context of the processor 1404, a graphics processor coupled to a communication interface 1412, an integrated circuit (not shown) that is capable of at least a portion of the capabilities of both the processor 1404 and a graphics processor, a chipset (namely, a group of integrated circuits designed to work and sold as a unit for performing related functions, and so forth) .

[0112] Furthermore, the architectures and functionalities depicted in the various previous-described figures may be implemented in a context of a general computer system, a circuit board system, a game console system dedicated for entertainment purposes, an application-specific system. For example, the computer system 1400 may take the form of a desktop computer, a laptop computer, a server, a workstation, a game console, an embedded system.

[0113] Furthermore, the computer system 1400 may take the form of various other devices including, but not limited to a personal digital assistant (PDA) device, a mobile phone device, a smart phone, a television, and so forth. Additionally, although not shown, the computer system 1400 may be coupled to a network (for example, a telecommunications network, a local area network (LAN) , a wireless network, a wide area network (WAN) such as the Internet, a peer-to-peer network, a cable network, or the like) for communication purposes through an I / O interface 1408.

[0114] It should be understood that the arrangement of components illustrated in the figures described are exemplary and that other arrangement may be possible. It should also be understood that the various system components (and means) defined by the claims, described below, and illustrated in the various block diagrams represent components in some systems configured according to the subject matter disclosed herein. For example, one or more of these system components (and means) may be realized, in whole or in part, by at least some of the components illustrated in the arrangements illustrated in the described figures.

[0115] In addition, while at least one of these components are implemented at least partially as an electronic hardware component, and therefore constitutes a machine, the other components may be implemented in software that when included in an execution environment constitutes a machine, hardware, or a combination of software and hardware.

[0116] Although the disclosure and its advantages have been described in detail, it should be understood that various changes, substitutions, and alterations can be made herein without departing from the spirit and scope of the disclosure as defined by the appended claims.

Claims

1.A method of performing adaptive and automatic candidate path, CP, selection for segment routing, SR, policies in a data communications network (402) having a plurality of tunnels, the method comprising steps of:(a) monitoring network conditions over each of the plurality of tunnels of the data communications network (402) , using a controller (406) in a software defined network, SDN, where the controller (406) assigns a specific SR policy to each of the plurality of tunnels of the data communications network (402) , where the assigned SR policy is applied to a Provider Edge, PE, node (404) , where each SR policy has at least two CPs, each CP has at least one list of segment identifiers, SIDs, associated therewith, and wherein the PE node (404) adds the SIDs to a header of each data packet being communicated over the respective tunnel; and(b) depending on the result of the monitoring step, the controller (406) automatically switches between available CPs for each tunnel, to select an active CP.2.The method of claim 1, wherein a minimum hold time is implemented for the automatic switching between the available CPs.3.The method of claim 1, wherein, the controller (406) notifies the PE node (404) about the selection of the active CP by sending a new SR policy or by updating a preference of the existing SR policies in the PE node (404) .4.The method of claim 1, wherein the automatic switching between available CPs at step (b) takes place between a first switching choice having at least two CPs where each CP has one list of SIDs, the first of the two CPs being an active CP and the second of the two CPs being a backup CP, and a second switching choice having one CP which has multiple lists of SIDs.5.The method of claim 1, wherein traffic predictions are used to select CPs.6.The method of claim 1, wherein per-tunnel service level agreements, SLAs, are used to trigger the automatic switching.7.The method of claim 1, wherein a quality of service, QoS, model is used to select a CP.8.The method of claim 1, wherein the automatic switching step is performed at a Path Computation Element, PCE, of the controller (406) .9.The method of claim 1, wherein the automatic switching step is performed at a module, separate from the PCE.10.The method of claim 1, wherein the detecting step is carried out by expiration of a timer.11.The method of claim 1, wherein the monitoring step monitors a link status to determine whether a user-defined threshold has been violated.12.The method of claim 11, wherein the user-defined threshold has been violated due to congestion.13.A system comprising means adapted for carrying out all the steps of the method according to any preceding method claim.14.A computer program comprising instructions for carrying out all the steps of the method according to any preceding method claim, when said computer program is executed on a computer system.