PROACTIVE PATH COMPUTATION ELEMENT TO ACCELERATE PATH COMPUTATION

A method performed at a controller of an optical network configured with an optical path comprising a series of fiber spans for forwarding traffic: as a background operation to forwarding the traffic along the optical path, generating and storing precomputed optical paths as alternates to the optical path for path restoration by simulating some number of faults impacting the optical path; upon receiving, from the optical network, a path restoration query that indicates actually failed fiber spans, determining availability of a precomputed optical path that avoids the actually failed fiber spans; and when the precomputed optical path is available, sending, to the optical network, a first descriptor of the precomputed optical path to enable a deployment of the precomputed optical path. The method drastically reduces the time of alternate path research in complex meshed networks.

TECHNICAL FIELD

The present disclosure relates to path computations in an optical network.

BACKGROUND

A path computation element (PCE) performs path computations for an optical network. In a path restoration scenario, a failed optical path is reported to the PCE or an optical network controller (ONC) that employs the PCE. In response, a conventional real-time PCE computes, in real-time, multiple alternate optical paths before one of the alternate optical paths can be applied to restore the failed optical path. In a large, meshed, complex optical network, path computation and validation performed by the conventional real-time PCE in real-time after the failure report is received can take significant time, on the order of many minutes. Moreover, the shortest computed optical path may not provide an applicable solution. For example, often hundreds of alternate optical paths are validated in real-time in order to find a solution (i.e., a restorative optical path) that satisfies all path constraints. Since each path computation/validation can take hundreds of milliseconds, a single path search can take tens of minutes to be completed due to multiple iterations of the path computation. Such delay may not be acceptable due to tight path restoration time requirements set by telecommunications operators. A complete solution analysis that considers different network layers (e.g., optical, optical transport network (OTN), Internet Protocol (IP), and so on) takes even more time to complete. Possible strategies, such as graph theory approaches, can reduce the number of candidate optical path solutions to be validated, but do not significantly reduce the path computation time.

DETAILED DESCRIPTION

Overview

In an embodiment, a method is performed at a controller of optical nodes of an optical network configured with an optical path comprising a series of fiber spans for forwarding traffic from a source to a destination. The method comprises: as a background operation while forwarding the traffic along the optical path, generating precomputed optical paths as alternates to the optical path for path restoration; storing the precomputed optical paths in a database; upon receiving, from the optical network, a path restoration query that indicates actually failed fiber spans of the fiber spans, determining availability, in the database, of a precomputed optical path of the precomputed optical paths that avoids the actually failed fiber spans; and when the precomputed optical path that avoids the actually failed fiber spans is available, sending, to the optical network, a first descriptor of the precomputed optical path to enable a deployment of the precomputed optical path in the optical network.

EXAMPLE EMBODIMENTS

FIG.1is a block diagram of an example optical network environment100in which embodiments directed to efficient path restoration using precomputed optical paths may be implemented. Optical network environment100includes an optical network102comprising optical nodes104coupled to one another over fiber spans106(also referred to as “optical fiber spans” and “optical links”). Optical nodes104include optical devices, such as optical transmitters, receives, repeaters/regenerators, and the like, which provide bidirectional optical communication between each other and users of optical network102. Optical network environment100also includes a source S of network traffic, a destination D to receive the network traffic, and an optical network controller (ONC)110each connected to optical network102. ONC110may include a software defined network (SDN) domain controller for optical network102. ONC110includes a path computation element (PCE)114, a network model116, and a route database118(denoted “RouteDB”) described below.

ONC110provides overall control of optical network102. For example, ONC110provisions optical network102, collects information about the inventory and topology of the optical network, monitors the topology (physical or virtual), notifies (and receives notifications) of changes in the topology and service changes, and supports optical path creation and deletion, including a failed optical path restoration service. To this end, ONC110employs PCE114, network model116, and route database118. Network model116includes modeled or simulated optical nodes and optical fiber spans (referred to simply as “fiber spans”) that connect the modeled optical nodes to one another according to a modeled topology that accurately reflects that of optical network102. PCE114employs network model116to compute and validate optical paths each based on path parameters, including a source (e.g., a source Internet Protocol (IP) address), a destination (e.g., a destination IP address), path constraints, optical quality, and so on. PCE114updates network model116to reflect dynamic changes to optical network102resulting from actual optical node failures, optical fiber cuts, alarms, and the like. In this way, PCE114(and more generally, ONC110) maintains network model116in a current or updated state.

According to embodiments presented herein, PCE114executes a path restoration service in the “background,” that is, while optical network102operates normally to forward traffic from source S to destination D along an optical path deployed in optical network102to support one or more services, under control of ONC110. The optical path may be considered to form part of an optical network “circuit” that serves the one or more services. In the background, PCE114employs network model116to simulate possible failure scenarios of the optical path actually deployed in optical network102, and computes and validates alternate (i.e., alternative) optical paths (referred to as “precomputed optical paths”) for the services supported by the optical path and that would be disrupted by the failure scenarios if actually present in the optical path. Assuming the optical path includes a series of N fiber spans across optical network102, the possible failure scenarios may consider/introduce up to N individual (simulated) fiber span failures, and up to N concurrent (simulated) fiber span failures. PCE114stores in route database118information or descriptors that define the precomputed optical paths along with definitions of the failure scenarios upon which the precomputed optical paths are based, i.e., that were used to compute the precomputed optical paths. The path descriptors may be sorted to permit fast lookups based on the failure scenario, service constraints, and so on. As used herein, the terms “precomputed optical path” and “candidate path” are synonymous and may be used interchangeably.

PCE114performs background operations to populate route database118with the precomputed optical paths. In this way, PCE114operates as a background PCE (BK-PCE). Subsequently, ONC110may receive from optical network102a path restoration query to restore the optical path for one or more services that use the optical path due to an actual failure along the optical path. In response, ONC110searches route database118for a precomputed optical path that, when deployed in optical network102, would avoid the actual failure. When ONC110finds the precomputed optical path that would avoid the actual failure, ONC110sends to optical network102a query response with information, including a definition of the precomputed optical path, to enable the optical network to deploy/implement the precomputed optical path as a restorative path. In this way, the restoration service uses a simple and efficient lookup of the precomputed optical path to avoid computing a new/restorative path in real-time.

As mentioned above, minimizing (or completely avoiding) the time spent evaluating/computing a new/restorative path responsive to a path restoration query can be important during a restoration process, especially when many services or circuits are impacted by a network fault. The embodiments presented herein advantageously provide a quick remedial action to the failed optical path, which greatly reduces the restoration time. Adding further flexibility to the solution, PCE114may use any know or hereafter developed algorithms to optimize path computation and selection, and to consider the impact of path selection across different network layers (e.g., optical, OTN, and IP layers).

Comparative tests performed on an optical network reveal that the embodiments presented herein can reduce the time for path restoration from 10-13 seconds associated with computing alternate optical paths in real-time down to a few milliseconds, which is the time taken to perform a quick lookup of precomputed optical paths in route database118in lieu of the real-time path computations. During the background operations that compute and validate alternate optical paths, PCE114may employ sophisticated algorithms to find a best solution for each service affected by a simulated failure, including a machine learning algorithm, a multilayer algorithm, and so on

FIG.2is a flowchart of an example method200of path restoration using precomputed optical paths performed by ONC110(using PCE114and route database118). Method200is described with continued reference toFIG.1. Optical network102routes traffic from source S to destination D over an optical path, generally under control of ONC110. The optical path includes a set or series of N fiber spans that link together a corresponding series of optical nodes of optical network102. ONC110maintains network model116, which models optical network102and the optical path. In the ensuing description, the term “path” may replace “optical path.”

At204, as a background operation while forwarding the traffic along the optical path, ONC110(using the BK-PCE) employs network model116to generate precomputed optical paths to serve as possible alternates to the optical path. The background operation may occur before ONC110receives a path restoration query for a restorative path to replace the optical path when it fails. ONC110may perform the following operations to generate the precomputed optical paths:a. In the network model, simulate failure scenarios that iteratively and incrementally introduce (simulated) failed fiber spans among the fiber spans. The failed fiber spans as simulated may take account of (simulated) failed optical nodes among the optical nodes.b. Compute alternate optical paths that avoid (i.e., do not use) the failed fiber spans of the failure scenarios, to produce the precomputed optical paths in correspondence with the failure scenarios. In other words, the precomputed optical paths correspond to respective ones of the failure scenarios. Each precomputed optical path comprises a unique series of fiber spans of the optical network (as modeled) and optical nodes (as modeled) linked together by the fiber spans.c. Compute individual path metrics (e.g., shortest path metrics) for the precomputed optical paths, e.g., one individual path metric per precomputed optical path. Any form of shortest path metric may be used.

In an example in which the optical path includes N fiber spans, ONC110may generate the precomputed optical paths by stepping through the failure scenarios and increasing a number of concurrently failed ones of the fiber spans at each step, starting with one failed fiber span and ending with N concurrently failed ones of the fiber spans. At each step, ONC110computes a corresponding one of the precomputed optical paths. In another example, ONC110may generate the precomputed optical paths by stepping through the failure scenarios for individually failed ones of the fiber spans at each step, and computing a corresponding one of the precomputed optical paths at each step. An iterative algorithm that may be used to generate the precomputed optical paths is described below in connection withFIG.3.

Path computations may be performed using any known or hereafter developed optical-PCE path computation algorithm that searches for a shortest path (as defined by a selected path metric) that (i) satisfies a set of constraints (e.g., diversity constraints, disjoint constraints, failed resources avoidance), (ii) has available resources (e.g., spectrum/wavelength), and (iii) is optically feasible, possibly using regenerators when present. Multiple alternate optical paths can be evaluated (K-shortest optical paths). Considering path restoration scenarios, PCE114computes for each circuit/service one or more alternate optical paths for each failure scenario affecting the circuit/service. Because computing all possible N-failure scenarios in an optical network is sometimes impractical, the embodiments presented herein may employ an iterative path computation algorithm described below in connection withFIG.3to limit a number of failure scenarios considered to only the failure scenarios that actually affect the circuit/service.

At206, ONC110stores in route database118descriptors that define the precomputed optical paths and the failed fiber spans that the precomputed optical paths avoid. Each descriptor defines/identifies (i) all fiber spans (as modeled) that implement a corresponding one of the precomputed optical paths, (ii) the failed fiber spans (as modeled) used to compute the precomputed optical path, and (iii) the individual path metric for the corresponding one of the precomputed optical paths. Additionally, ONC110may sort or rank the precomputed optical paths according to their individual path metrics, from best path metric to worst, and then store the precomputed optical paths in a ranked order.

At208, the optical path actually fails due to failures of one or more of the fiber spans (referred to as “actually failed fiber spans”) of the optical path. ONC110receives, from optical network102(or from a service that monitors the health of the optical network), a path restoration query to restore service interrupted by the failed optical path. The query indicates (i.e., includes indications of) the actually failed fiber spans. Upon receiving the path restoration query, ONC110determines the availability (in route database118) of a precomputed optical path (i.e., a particular precomputed optical path) among the precomputed optical paths that avoids the actually failed fiber spans. For example, using the indications of the actually failed fiber spans from the path restoration query, ONC110searches route database118for a precomputed optical path that avoids the actually failed fibers spans as defined by the descriptors of the precomputed optical paths.

When the precomputed optical path that avoids the actually failed fiber spans is available (e.g., is found) in route database118, at212, ONC110creates a path restoration query response that includes the descriptor of the precomputed optical path. ONC110sends the path restoration query response to optical network102to enable the optical network to deploy the precomputed optical path to restore the interrupted service based on the path information provided in the past restoration query response. When multiple precomputed optical paths that avoid the actually failed fiber spans are available (e.g., are found) (i.e., determining the availability returns the multiple precomputed optical paths), ONC110selects a top ranked one of the multiple precomputed optical paths based on the path metrics as the precomputed optical path.

Alternatively, when the precomputed optical path that avoids the actually failed fiber spans is not available, at214, ONC110computes an alternate optical path in real-time (i.e., the alternate optical path in this case is not precomputed), and sends, to optical network102, a descriptor of the alternate optical path to enable the deployment of the alternate optical path in the optical network.

Typically, the network topology and properties of optical network102are dynamic and change over time. When the network topology and properties of optical network102change, ONC110updates the precomputed optical paths stored in route database118to reflect the changes. Because rebuilding route database118fully may be impractical from a time perspective, ONC110may perform incremental updates based on certain change events for optical network102that are reported to the ONC by the optical network or an administrator (or are otherwise discovered by the ONC). Such change events include a fiber span/optical node (referred to simply as a “node”) delete, a fiber span/node add, and a fiber span optical property change, as described below.

Fiber span/node (i.e., resource) delete. For this change event, ONC110:a. Deletes or invalidates any precomputed optical paths that reference the deleted resource.b. Reevaluates the failure scenario(s) that references the deleted resource.

Fiber span/node (i.e., resource) add. Adding a fiber span/node does not invalidate existing precomputed optical paths, but better alternate optical paths may be available. For this change event, ONC110can discover the better alternate optical paths by periodically reevaluating the failure scenarios. ONC110can prioritize the failure scenarios for revaluation by considering (i) failure scenarios with no available optical paths, and (ii) circuits/services that have a shortest optical path using the new resource.

Fiber span optical property change. For this change event, ONC110reevaluates the precomputed optical paths that reference the changed fiber span; if the optical path is no longer optically feasible, the ONC reevaluates the referenced failure scenario(s).

According to the change scenarios described above, at216, ONC110receives a report of (or otherwise discovers) a change to optical network102. Responsive to the report or discovery, ONC110updates precomputed optical paths in route database118to reflect the change. For example, upon receiving a report that a particular actual fiber span has been deleted from optical network102, ONC110deletes, from route database118, any precomputed optical paths that reference the particular actual fiber span, and reevaluates any failure scenarios that reference the particular actual fiber span (i.e., computes alternate optical paths that consider the particular actual fiber span as deleted, as modeled in network model116). In another example, upon receiving a report that a particular actual fiber span has been added to optical network102, ONC110reevaluates the failure scenarios to include the particular actual fiber span, as modeled in network model116.

FIG.3is a flowchart of an example method300of computing alternate optical paths (i.e., of performing a path computation algorithm (PCA)) for a circuit/service served by an optical path P1 comprising a set of N fiber spans F1 . . . . FN. The alternate optical paths are stored as precomputed optical paths in route database118for the circuit/service. As described below, the PCA of method300is iterative.

At302, the PCA generates 1-failure scenarios S1 . . . . SN by failing each of fiber spans F1 . . . . FN independently. For each 1-failure scenario Sn, the PCA computes a restored optical path P1.n (which represents an alternate optical path) for the circuit/service that avoids each failed fiber span Fn. The PCA stores each alternate optical path in route database118as a precomputed optical path.

At304, for each restored optical path P1.n from302, the PCA generates a 2-failure scenario Sn.m, which adds to each 1-failure scenario Sn, independently, each fiber span of the restored optical path. For each 2-failure scenario Sn.m, the PCA computes a restored optical path P1.n.m for the circuit/service that avoids each failed fiber span.

At306, for each restored optical path P1.n.m from304, the PCA generates a 3-failure scenario Sn.m.p adding to the 2-failure scenario, independently, each fiber span of the restored optical path. For each 3-failure scenario, the PCA computes the restored optical path P1.n.m.p for the circuit/service that avoids the failed fiber spans.

At308, the PCA iterates similarly to302,304, and306until a maximum number N of concurrent failures are considered.

The PCA stores into route database118the alternate optical path generated at each iteration as a precomputed optical path available for a subsequent path restoration.

The N-failures evaluated by method300may not be generic N-failures in optical network102(where the probability of having N concurrent failures depends on a size of the network), but rather failures affecting the circuit/service and its restored optical paths (where the probability depends on the size of the optical path). Also, failure scenarios that have the same failed fiber spans but in different orders are considered the same (and thus the restored optical path is evaluated only once). In some embodiments, more than one restored optical path may be evaluated for each failure scenario to provide additional path restoration options when resources (e.g., wavelength) are not available; even when this increases the number of computed optical paths in a combinatorial way.

FIG.4is an illustration of an example descriptor402of a precomputed optical path stored in route database118. Route database118stores multiple such descriptors for corresponding ones of multiple precomputed optical paths. Descriptor402includes:a. Reference circuit/service identifier (ID)404, which may also include identifiers of a source and a destination, e.g., IP addresses.b. Precomputed optical path description or definition406, which includes an ordered list of fiber spans and regeneration points of the precomputed optical path. The fiber spans are identified by fiber span identifiers.c. Failure scenario description or definition408, which includes the one or more failed fiber spans considered to compute the precomputed optical path.d. Path metric410computed for the precomputed optical path defined by the descriptor.

The precomputed optical paths stored in route database118may each be indexed for fast lookup by, reference circuit/service ID, failed fiber span IDs, and/or path metric.

In addition, the descriptors may be sorted and stored in a rank order based on their path metrics. That is, the descriptors may be sorted according to their path metrics.

Expanding on operations208and212described above, when the optical path in optical network102actually fails due to actually failed fiber spans, optical network102sends to ONC110the path restoration query to restore the actually failed optical path. The path restoration query includes a circuit/service ID for the actually failed optical path and a list of identifiers of the actually failed fiber spans. Responsive to the query, ONC110searches route database118, using the circuit/service ID and the identifiers of the actually failed fiber spans from the query, for one or more precomputed optical paths having descriptors that match the circuit/service ID of the actually failed optical path and the identifiers of the actually failed fiber spans.

When the search finds a matching precomputed optical path, ONC110sends the descriptor for the found/matching precomputed optical path to optical network102so that the precomputed optical path can be deployed/implemented as an alternate to the actually failed optical path. When the search finds multiple matching precomputed optical paths in route database118, ONC110selects a found precomputed optical path with a best/highest path metric among the multiple precomputed optical paths. Assuming that the multiple precomputed optical paths are stored in a ranked order, ONC110uses the first found precomputed optical path, which saves time.

As an enhancement, alternate optical paths may be computed and used for multiple circuits/services instead of a single circuit. The enhancement defines a circuit profile that contains a set of constraints and characteristics for multiple circuits (e.g., source/destination node, circuit type, route constraints) and associates each circuit to the circuit profile.

Additionally, ONC110performs path selection and resource availability checking, as follows. Path computation accounts for the resources allocated by/to the optical path of the circuits active in optical network102. The actual resource availability in optical network102when a restoration action is performed is not known in advance as it depends on the restoration history of other circuits. If an alternate optical path cannot be deployed due to missing resources, ONC110considers other alternate optical paths. To this end, route database118permits retrieval of multiple precomputed optical paths sorted by the path metric. Moreover, ONC110may compute more than one alternate optical path for each failure scenario to provide/produce additional alternate optical path options.

Referring toFIG.5,FIG.5illustrates a hardware block diagram of a computing device500that may perform functions associated with operations discussed herein in connection with the techniques depicted inFIGS.1-4. In various embodiments, a computing device or apparatus, such as computing device500or any combination of computing devices500, may be configured as any entity/entities as discussed for the techniques depicted in connection withFIGS.1-5in order to perform operations of the various techniques discussed herein. For example, computing device500, or various components of the computing device, may represent an ONC and/or any of the optical nodes of an optical network.

In at least one embodiment, the computing device500may be any apparatus that may include one or more processor(s)502, one or more memory element(s)504, storage506, a bus508, one or more network processor unit(s)510interconnected with one or more network input/output (I/O) interface(s)512, one or more I/O interface(s)514, and control logic520. In various embodiments, instructions associated with logic for computing device500can overlap in any manner and are not limited to the specific allocation of instructions and/or operations described herein.

In at least one embodiment, processor(s)502is/are at least one hardware processor configured to execute various tasks, operations and/or functions for computing device500as described herein according to software and/or instructions configured for computing device500. Processor(s)502(e.g., a hardware processor) can execute any type of instructions associated with data to achieve the operations detailed herein. In one example, processor(s)502can transform an element or an article (e.g., data, information) from one state or thing to another state or thing. Any of potential processing elements, microprocessors, digital signal processor, baseband signal processor, modem, PHY, controllers, systems, managers, logic, and/or machines described herein can be construed as being encompassed within the broad term ‘processor’.

In at least one embodiment, memory element(s)504and/or storage506is/are configured to store data, information, software, and/or instructions associated with computing device500, and/or logic configured for memory element(s)504and/or storage506. For example, any logic described herein (e.g., control logic520) can, in various embodiments, be stored for computing device500using any combination of memory element(s)504and/or storage506. Note that in some embodiments, storage506can be consolidated with memory element(s)504(or vice versa), or can overlap/exist in any other suitable manner.

In at least one embodiment, bus508can be configured as an interface that enables one or more elements of computing device500to communicate in order to exchange information and/or data. Bus508can be implemented with any architecture designed for passing control, data and/or information between processors, memory elements/storage, peripheral devices, and/or any other hardware and/or software components that may be configured for computing device500. In at least one embodiment, bus508may be implemented as a fast kernel-hosted interconnect, potentially using shared memory between processes (e.g., logic), which can enable efficient communication paths between the processes.

In various embodiments, network processor unit(s)510may enable communication between computing device500and other systems, entities, etc., via network I/O interface(s)512(wired and/or wireless) to facilitate operations discussed for various embodiments described herein. In various embodiments, network processor unit(s)510can be configured as a combination of hardware and/or software, such as one or more Ethernet driver(s) and/or controller(s) or interface cards, Fibre Channel (e.g., optical) driver(s) and/or controller(s), wireless receivers/transmitters/transceivers, baseband processor(s)/modem(s), and/or other similar network interface driver(s) and/or controller(s) now known or hereafter developed to enable communications between computing device500and other systems, entities, etc. to facilitate operations for various embodiments described herein. In various embodiments, network I/O interface(s)512can be configured as one or more Ethernet port(s), Fibre Channel ports, any other I/O port(s), and/or antenna(s)/antenna array(s) now known or hereafter developed. Thus, the network processor unit(s)510and/or network I/O interface(s)512may include suitable interfaces for receiving, transmitting, and/or otherwise communicating data and/or information in a network environment.

VARIATIONS AND IMPLEMENTATIONS

In some aspects, the techniques described herein relate to a method including: at a controller of optical nodes of an optical network configured with an optical path including a series of fiber spans for forwarding traffic from a source to a destination: as a background operation while forwarding the traffic along the optical path, generating precomputed optical paths as alternates to the optical path for path restoration; storing the precomputed optical paths in a database; upon receiving, from the optical network, a path restoration query that indicates actually failed fiber spans of the fiber spans, determining availability, in the database, of a precomputed optical path of the precomputed optical paths that avoids the actually failed fiber spans; and when the precomputed optical path that avoids the actually failed fiber spans is available, sending, to the optical network, a first descriptor of the precomputed optical path to enable a deployment of the precomputed optical path in the optical network.

In some aspects, the techniques described herein relate to a method, further including: when the precomputed optical path that avoids the actually failed fiber spans is not available, computing an alternate optical path in real-time, and sending, to the optical network, a second descriptor of the alternate optical path to enable the deployment of the alternate optical path.

In some aspects, the techniques described herein relate to a method, wherein generating includes: in a model of the optical network, simulating failure scenarios that introduce failed fiber spans among the fiber spans; computing optical paths that avoid the failed fiber spans of the failure scenarios, to produce the precomputed optical paths in correspondence with the failure scenarios; and storing includes storing, in the database, descriptors that define the precomputed optical paths and the failed fiber spans that the precomputed optical paths avoid.

In some aspects, the techniques described herein relate to a method, wherein: the descriptors further include ordered lists of fiber spans of the precomputed optical paths.

In some aspects, the techniques described herein relate to a method, wherein: the path restoration query includes indications of the actually failed fiber spans; and determining the availability includes searching the database for the precomputed optical path that that avoids the actually failed fiber spans based on the descriptors of the precomputed optical paths and the indications of the actually failed fiber spans.

In some aspects, the techniques described herein relate to a method, wherein: the optical path includes N fiber spans; simulating the failure scenarios includes stepping through the failure scenarios and increasing a number of concurrently failed ones of the fiber spans at each step, starting with one failed fiber span and ending with N concurrently failed ones of the fiber spans; and generating includes computing a corresponding one of the precomputed optical paths at each step.

In some aspects, the techniques described herein relate to a method, wherein: simulating the failure scenarios includes stepping through the failure scenarios for individually failed ones of the fiber spans at each step; and generating includes computing a corresponding one of the precomputed optical paths at each step.

In some aspects, the techniques described herein relate to a method, further including: upon receiving a report of a particular actual fiber span that has been deleted from the optical network, deleting, from the database, any precomputed optical paths that reference the particular actual fiber span, and reevaluating any failure scenario that references the particular actual fiber span.

In some aspects, the techniques described herein relate to a method, further including: upon receiving a report of a particular actual fiber span that has been added to the optical network, reevaluating the failure scenarios to include the particular actual fiber span.

In some aspects, the techniques described herein relate to a method, wherein: generating includes computing individual path metrics for the precomputed optical paths; ranking the precomputed optical paths based on the individual path metrics; and when multiple precomputed optical paths among the precomputed optical paths that avoid the actually failed fiber spans are available, selecting a top ranked one of the multiple precomputed optical paths as the precomputed optical path.

In some aspects, the techniques described herein relate to an apparatus including: one or more network processor units to communicate over one or more networks; and a processor of a controller of optical nodes of an optical network configured with an optical path including a series of fiber spans for forwarding traffic from a source to a destination, the processor coupled to the one or more network processor units and configured to perform: as a background operation while forwarding the traffic along the optical path, generating precomputed optical paths as alternates to the optical path for path restoration; storing the precomputed optical paths in a database; upon receiving, from the optical network, a path restoration query that indicates actually failed fiber spans of the fiber spans, determining availability, in the database, of a precomputed optical path of the precomputed optical paths that avoids the actually failed fiber spans; and when the precomputed optical path that avoids the actually failed fiber spans is available, sending, to the optical network, a first descriptor of the precomputed optical path to enable a deployment of the precomputed optical path in the optical network.

In some aspects, the techniques described herein relate to an apparatus, wherein the processor is further configured to perform: when the precomputed optical path that avoids the actually failed fiber spans is not available, computing an alternate optical path in real-time, and sending, to the optical network, a second descriptor of the alternate optical path to enable the deployment of the alternate optical path.

In some aspects, the techniques described herein relate to an apparatus, wherein the processor is configured to perform generating by: in a model of the optical network, simulating failure scenarios that introduce failed fiber spans among the fiber spans; computing optical paths that avoid the failed fiber spans of the failure scenarios, to produce the precomputed optical paths in correspondence with the failure scenarios; and storing includes storing, in the database, descriptors that define the precomputed optical paths and the failed fiber spans that the precomputed optical paths avoid.

In some aspects, the techniques described herein relate to an apparatus, wherein: the descriptors further include ordered lists of fiber spans of the precomputed optical paths.

In some aspects, the techniques described herein relate to an apparatus, wherein: the path restoration query includes indications of the actually failed fiber spans; and the processor is configured to perform determining the availability by searching the database for the precomputed optical path that that avoids the actually failed fiber spans based on the descriptors of the precomputed optical paths and the indications of the actually failed fiber spans.

In some aspects, the techniques described herein relate to an apparatus, wherein: the optical path includes N fiber spans; the processor is configured to perform simulating the failure scenarios by stepping through the failure scenarios and increasing a number of concurrently failed ones of the fiber spans at each step, starting with one failed fiber span and ending with N concurrently failed ones of the fiber spans; and processor is configured to perform generating by computing a corresponding one of the precomputed optical paths at each step.

In some aspects, the techniques described herein relate to a non-transitory computer readable medium encoded with instructions that, when executed by a processor of a controller of optical nodes of an optical network configured with an optical path including a series of fiber spans for forwarding traffic from a source to a destination, cause the processor to perform: as a background operation while forwarding the traffic along the optical path, generating precomputed optical paths as alternates to the optical path for path restoration; storing the precomputed optical paths in a database; upon receiving, from the optical network, a path restoration query that indicates actually failed fiber spans of the fiber spans, determining availability, in the database, of a precomputed optical path of the precomputed optical paths that avoids the actually failed fiber spans; and when the precomputed optical path that avoids the actually failed fiber spans is available, sending, to the optical network, a first descriptor of the precomputed optical path to enable a deployment of the precomputed optical path in the optical network.

In some aspects, the techniques described herein relate to a non-transitory computer readable medium, wherein generating includes: in a model of the optical network, simulating failure scenarios that introduce failed fiber spans among the fiber spans; computing optical paths that avoid the failed fiber spans of the failure scenarios, to produce the precomputed optical paths in correspondence with the failure scenarios; and storing includes storing, in the database, descriptors that define the precomputed optical paths and the failed fiber spans that the precomputed optical paths avoid.

In some aspects, the techniques described herein relate to a non-transitory computer readable medium, wherein: the descriptors further include ordered lists of fiber spans of the precomputed optical paths.

In some aspects, the techniques described herein relate to a non-transitory computer readable medium, wherein: the path restoration query includes indications of the actually failed fiber spans; and determining the availability includes searching the database for the precomputed optical path that that avoids the actually failed fiber spans based on the descriptors of the precomputed optical paths and the indications of the actually failed fiber spans.