You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 10 Next »


YANG models used in TransportPCE

East/West APIs YANG models


Transport PCE is based on a modular structure. Some of the bundles are tightly connected to the type of equipment handled by the controller. This is the case of the Renderer and the OLM that allow configuring OpenROADM equipment. Thus the algorithms of the different functions they implement, respect the procedure defined in the OpenROADM Device white paper.

Some other modules are less tightly coupled to the type of controlled equipment, such as the PCE and the Topology discovery. To ease further evolution Transport PCE specific models are published on the following Github repository: https://github.com/transportPCE/transportPCE_Public


Published models define a common base allowing the different modules to share the information present in the DataStore and to communicate. They can be used as a reference by contributors to develop complementary/additional features. These new features as far as they rely on the reference model could be triggered from existing module, in place of others having the same functionality for different kind of equipment, or to complement existing functions.


As an example we could imagine extending the support of equipment following different models. This would imply to develop some specific OLM & Renderer to configure the devices and to extend the topology model through additional augmentations.

Overview

OpenROADM Device and Network Models have been presented by AT&T:  Open_ROADM_Models_v0_2.pdf
Full models can be retrieved following OpenROADM website (download section).

Initial Discussion around RFC 7446

Orange (XP) review- Aditional review by other contributors is welcome.

Static information
Connectivity matrix
Section 4.1 specifies a connectivity matrix indicating which input port could possibly be connected to which output port. This is similar to the connectivity-map in openroadm network model with still some differences in presenting data.

ressource pool
As far as I understand this part, it is related to regenerators or wavelength converters. As far as Orange is concerned, these functions are not taken into consideration in ROADM modeling. If regeneration is needed/preferred, it is up to the PCE to decide where to make it taking into consideration ROADM, transponders, and OTN switches. One could say that two transponders back to back become a regen/converter, but the two transponders can also be used without being back to back. Therefore, it seems to me more adquate to have the granularity of transponder and let the PCE decide whether associating 2 of them or not.

Link information
This part is fundamental for PCE and shall be described in the link part of I2RS model structure. As far as OTN/WDM are concerned, links can either be OTUx or LO-ODUx. Most of the information described in section 6 is relevant. Port label restrictions are still vague to me.

Dynamic information
Agreed with dynamic link information even if bandwidth (for LO-ODU) should be added. For node information, it is related to resource pool and therefore probably not relevant.

Synthesis
Information related to links shall be modeled in the link part of I2RS model structure and there is no real reason for diverging with RFC 7446. It will however enriched with additional information in order to perform accurate path feasibility calculation or to ensure some service metrics are checked. Regarding node description, I am not sure to see how they can really converge. One model is de-aggregated for accurate path calculation (typically for disjointness requirements) while it may be diificult to derive one de-aggregated from RFC 7446. Besides, the notion of resource pool does probably not meet the needs for the reason given here above (transponder can be used for regen or not).

Ericsson (FL) comment

Actually, resource pool is a more complex and general concept, as it's a modular and versatile blocks based approach. Its aim is to model any connectivity limitation inside a node, and is applicable not only to ROADMs, but also to other technologies, typically to model connectivity limitations of multiple technologies NEs, like a NE having both OTN and WDM switching capabilities (e.g. Ericsson SPO family has exactly this capabilities, and also allows to add SDH and packet switching altogether).
When some ports can be connected with a subset of the other ports available inside the NE, and possibly the guaranteed connectivity has also limitations (e.g. there is a limit on the maximum switchable bandwidth) this model can be very useful.
Besides, resource pool is not limited to regeneration and wavelength conversion. There are other cases where this is useful :

  • Modeling of transponders "add/drop" of a single line (fixed connectivity to the relevant line only)
  • Modeling of transponder sharing mechanisms (connectivity to an intermediate stage allowing directionless/colorless/contentionless routing). Occupation of the intermediate sharing hardware must also be taken into account when assigning or verifying lambdas.

The intermediate sharing stage can be in turn connected to all or part of the line interfaces of the NE, and once again this can be done effectively with the resource pool mechanism.

  • Lambda limitations on internal HW (beside the case highlighted at the previous point); e.g. lambda limitations due to transponder ports, filters or other equipment configured on the NE.

Resource pool concept is based on two types of objects:

  • Resource blocks, representing a general set of internal NE resources, and keeping track of their capabilities, occupation and relationship with external interfaces (the traffic ports of the NE)
  • Connectivity matrixes, representing actual connectivity between resource blocks.

This way it's possible in a very comprehensive and detailed way to model the internal structure of a generic NE with its real limitations, taking into account their current usage.
I understand that the other model is more focused on WDM NEs, and possibly less general. Deciding whether to use one of the other would require to do a more detailed use case analysis, taking into account real NE scenarios, not only in WDM domain but also in OTN (at least) as this is an additional target of the project.

From OpenROADM network model to an I2RS compatible topology description

The I2RS draft version (4) can be retrieved at https://tools.ietf.org/html/draft-ietf-i2rs-yang-network-topo-04


Modules description

Path Computation Element

PCE description

The Path Computation Element (PCE) is the component inside TransportPCE project responsible for path computation. An interface allows other components of the TransportPCE to request a path computation and get a response from the PCE including the computed path(s) in case of success, or errors and indication of the reason for the failure in case the request cannot be satisfied. Additional parameters can be provided by the PCE in addition to the computed paths if requested by the client module. Additional interfaces allow to keep PCE aligned regarding topology and traffic deployed in the network.

PCE implementation

PceConstraintsCalc class parses constraints calling calcHardConstraints and readConstraints methods and saves them for a quick use. Open ROADM service model defines both soft and hard constraints. Only hard constraints are considered in current implementation. Routing constraints handled are the following:

  • General constraints: exclude Node/SRLG, maximum latency
  • Diversity constraints: with respect to the path(s) of a specific service or a list of service

Co-routing constraints are not handled at this stage. The exclusion of Diversity constraints is handled in 2 steps. readDiversityNodes recovers the path description(s) of the service or the service list from the Service-path DataStore. From the path description, getAtoZNodeList extracts the nodes and converts the diversity constraint to a general node exclusion constraint.

PceCalculation is dedicated to the topology analysis and pruning before the path computation is launched. It performs this in 2 steps relying on the following 2 main methods:

  • readMdSal : Reads the topology layer of the Open ROADM Network topology built in the MD-SAL by the Topology Management module. This layer includes the disagregated nodes (SRGs, Degrees, Xponders) as well as the links between these nodes.
  • analyzeNW : minimizes the amount of nodes/links extracted from the topology to use in the graph according to the arguments of the PCE request. From all the nodes present in the initial topology, validateNode removes all Xponder nodes that do not correspond to A or Z end of the demand, as well as all the Nodes that correspond to a hard exclude constraint through validateNodeConstraints.

Network Analyzer logic

PceGraph class is dedicated to the path calculation. Current solution in a first step populates graph with relevant nodes (degrees, SRGs, Xponders) and links from the pruned topology using populateGraph method.

In a second step, it relies on CalcPath which calculates the path according to 2 tracks. In the fast track it attempts to calculate the path calling runGraph and indirectly calcAlgo methods which returns a Dijkstra Shortest path according to the selected metric. Currently supported metrics are hop-count and propagation-delay. Graph algorithm finds K shortest AtoZ paths. chooseWavelength method checks that a wavelength continuity can be found for the returned paths. The first (best) AtoZ path with single wavelength is chosen. ZtoA path is derived from AtoZ.

If no wavelength continuity can be provided for the shortest path, a second track is explored. Before populating the graph, extractWLs extracts the list of available wavelengths for each node of the pruned topology, and for each wavelength creates a list of the nodes for which this wavelength is available. The path calculation is still performed calling runGraph and calcAlgo methods, this time scanning all the wavelength on a topology which considers wavelength availability.

PceLink and PceNode create objects with all the attributes needed for pathcalculation. PceLink includes methods to retrieve the link-type, the associated opposite-link, the latency and the source and destination tps. PceNode includes the methods to retrieve available wavelengths, client tails and outgoing links.

PceSendingPceRPCs defines all methods required to handle the RPCs associated with Path computation and the cancellation of resource reservation. This includes the error handling and the construction of the output of rpc with the response codes and the path-description when required. The main methods defined in this Class are :

  • cancelResouceReserve :
  • pathComputation : first launches constraint calculation from hard and soft constraints contains in the input of path-computation-request rpc. In a second step reads and analyse the topology (PceCalculation readMdSal and analyseNW). In a third step launches the graph and the path calculation (Graph calcPath). In case path calculation based on hop-count metric (by default) fails because path's latency exceeds the defined constraint, changes the metric to propagation-delay and launches a new path calculation using the following method.
  • patchRerunGraph : launches the graph and the path calculation (Graph calcPath) after the metric was changed to propagation-delay.


PcePathDescription is the class used to build the path-description returned in the output of the path-computation-request rpc and the service-path-rpc-result notification. This path description is built as a succession of SourceTp & (SouceNode)-Node-tp-link-tp-Node....link-tp-DestinationTp & DestinationNode.


PathComputationServiceImpl defines the handling of path-computation-request and cancel-resource-reserve RPCs, overriding the 2 corresponding methods defined in the PathComputationService interface. It computes the messages of the output of the rpcs according to the context and the result obtained through the path calculation. It also handles notification service-path-rpc-result providing the status of the path calculation (pending, successful, failed).



PCE initial requirements

The following table describes the requirements for the PCE module. The scope is limited to the path computation related operations, as the topology is covered by another section of the TransportPCE project.

The columns of the table are :

  • Id - an identifier of the requirement. The idea is to use a structured identifier in order to build a hierarchy of requirements; see the table below
  • Slogan - a short title of the requirement
  • Description - a detailed description of the requirement
  • Reference - If the requirement is derived from or refers to an external document (e.g. an IETF RFC or draft) this column includes the relevant information
  • Priority - The priority of the requirement as agreed between the TransportPCE contributors. Here we propose a simple number like 1 = Mandatory requirement and increasing numbers to indicate lower priority or optional requirements. Range of values to be decided.

Proposed range: 1 = Mandatory 2 = Second priority 3 = Nice to have

  • Agreed - A "Yes" in this columns means that the requirement is agreed among the contributors and therefore is a valid requirement for the project.
  • Comments - Comments from TransportPCE contributors
IdSloganDescriptionReferencePriorityAgreedComments
1Architecture and Interfaces




1.1RESTconf APIThe PCE shall use a RESTconf API to provide path computation services to its clients

not agreedDiscussion ongoing. Orange: requirement becomes probably irrelevant if we talk about interface with service handler since both function will be colocated. PCEP or another API with similar data model is probably fine.
1.2Capability to modify path feasibility verification algorithmPath feasibility function shall be easily accessible for modification
[E///]P1 [Telia]P1 [Orange]P1 [Coriant]P1R1Keeping the topology model unchanged, an operator may want to improve the path feasibility algorithm with its own one for typically longer reach calculations [Coriant]or to include validation of equipment switching capabilities/restrictions. Therefore, this function must be easibily identified and modified if need be. Discussion ongoing
1.3StatefulnessPCE must be stateful. This means that it, besides topology, stores all the information related to the existing paths and is capable to use them for path computation, as neededdraft-ietf-pce-stateful-pce-15[E///]P1 [Telia]P1 [Orange]P1 [Coriant]P1 [Nokia] P1R1Discussion ongoing
1.4Path information managementPCE stores and manages information about the paths deployed in the network, allowing to add, modify and remove that informationdraft-ietf-pce-stateful-pce-15[E///]P1 [Telia]P1 [Orange]P1 [Coriant]P1R1Please note that PCE should NOT store path information and mark network resources as in use at the moment of successful path computation. The client application shall be instead in charge of deploying the path and eventually update the PCE
1.5path identificationPCE must manage unique identifier associated to each path. This id must be assigned by the client, is under client’s responsibility and must remain constant across all the life of the path
[E///]P1 [Telia]P1 [Orange]P1 [Coriant]P1 [Nokia] P2R1
1.6Multi-layer path computationPCE must support multi-layer (and multi-technology) path computation. This means that a multi-layer/multi-technology network may be represented in its topology database, and path computation can return multi-layer/multi-technology paths, that is paths whose route includes hops from different layers/technologies
[E///]P1 [Telia]P1 [Orange]P2 [Coriant]P1 [Nokia] P2R2Orange: P2 simply because OTN will come with release 2 of openroadm and first release will probably focus on WDM but will have to be multi-layer in the end for sure.
1.6.1DWDM switching supportPCE must manage DWDM technology
[E///]P1 [Telia]P1 [Orange]P1 [Coriant]P1 [Nokia] P1R1
1.6.2OTN switching supportPCE must manage OTN technology
[E///]P1 [Telia]? [Orange]P2 [Coriant]P1 [Nokia] P2R2Orange: for the reason above. OTN in PE to come not earlier than openroadm
1.6.3Mixed-technology networks : OTN/DWDMOTN over photonic layering must be supported
[E///]P1 [Telia]P1 [Orange]P2 [Coriant]P1 [Nokia] P2R2Discussion ongoing
1.7Topology databasePCE get updates about the topology from the topology DB of the controller [Coriant], including nodes, ports and links availability
[E///]P1 [Orange]P1 [Coriant]P1 [Nokia] P1R1Discussion ongoing
1.8MD-SAL APIThe PCE shall be provided as an ODL bundle, supporting MD-SAL API
[E///]P1 [Telia]P1 [Orange]P1 [Coriant]P1R1Orange: OK with ODL bundle. Not sure about MD-SAL API. PCE resides in network services, not in MD-SAL, correct? And REST API is important for Service handler.
1.9PCE tracing and debuggingThe PCE shall provide a tracing facility where it shall be possible to have details about the path computation operations
[E///]P2 [Telia]P3 [Orange]P1 [Nokia] P3R2Orange: useful to understand PCE behavior
1.10PCE monitoring and performance measurementsThe PCE supports measurements of performances, keeping track of the number of requests, minimum, maximum and medium time for the path computation operationsRFC 5886[E///]P2 [Telia]P2 [Orange]P3 [Coriant]P3 [Nokia] P3R2
2Request Parameters




2.1Single path path computationPCE must support the computation of a single pathRFC 5440[E///]P1 [Telia]P1 [Orange]P1 [Coriant]P1 [Nokia] P1R1
2.2Single path optimizationPCE must support the optimization of a single path. The optimization shall compute an alternative path with a better metric allowing the reuse of resources allocated to the original pathRFC 5440[E///]P2 [Telia]P2 [Orange]P2 [Coriant]P2 [Nokia] P3R2
2.3Multiple path path computation for diversityPCE must support the computation (or optimization) of a bundle of paths, according to the wanted diversity, meaning that PCE shall be capable to compute multiple paths in diversity each other. Diversity attributes are defined as Node, Link, or SRLG.RFC 5440[E///]P1 [Telia]P2 [Orange]P1 [Coriant]P2 [Nokia] P1R1Orange: SRG (add-drop group) should also be included in the list of diversity attributes
2.4Multiple path path computation for global optimizationPCE must support the computation (or optimization) of a bundle of paths, according to objective functionsRFC 5441 RFC 5557[E///]P3 [Telia]P3 [Orange]P3 [Coriant]P3 [Nokia] P3R3
2.5Multiple path path computation for computing multiple paths assigning separate resourcesPCE must support the computation of multiple paths without any cross-path constraint. In this case the multiple paths shall be assigned different non-overlapping resourcesRFC 5440[E///]P2 [Telia]P3 [Orange]P3 [Coriant]P3 [Nokia] P3R3
2.6Constrained path computationPCE must support the specification of multiple optional parameters to specify constraints for the path computation (or optimization). A flag must be included for each one of these parameters in order to specify whether the PCE will return failure or not when the relevant constraint cannot be satisfied.RFC 5440[E///]P1 [Telia]P2 [Orange]P1 [Coriant]P2R1Discussion ongoing
2.7Path computation resultPCE must be capable to return the result of the path computation (success, failure)RFC 5440[E///]P1 [Telia]P1 [Orange]P1 [Coriant]P1 [Nokia] P1R1
2.8Path computation result : unsatisfied constraintsIn case not all the requested constraints can be satisfied, the PCE must report the unsatisfied onesRFC 5440[E///]P1 [Telia]P1 [Orange]P1 [Coriant]P2 [Nokia] P3R1[Coriant] It would be useful also to be able to specify soft and hard constraints and support the auto relaxation of soft constraints

[E///] See requirement 2.6
2.9Bidirectional path computationPCE must support the computation (or optimization) of point-to-point bidirectional pathsRFC 5440[E///]P1 [Telia]P1 [Orange]P1 [Coriant]P1 [Nokia] P1R1
2.10Unidirectional path computationPCE must support the computation (or optimization) of point-to-point unidirectional pathsRFC 5440[E///]P3 [Telia]P3 [Orange]P3 [Coriant]P3 [Nokia] P3R3Discussion ongoing
2.11End pointsThe request shall include the end points of the path to be computed. End-point information must include at least the specification of the node or interface of the end-point and optionally (depending on the technology of the network) unnumbered interface id and LabelRFC 5440[E///]P1 [Telia]P1 [Orange]P1 [Coriant]P1 [Nokia] P1R1Discussion ongoing
2.11.1End pointsThe request shall include the clli without node / port information. It is up to the PCE to select the most appropriate resource at the edges.lRFC 5440[Orange]P2 [Coriant]P1 [E///]P2R2Comes from discussion 2.11. Discussion ongoing
2.12Bandwidth/Type of signal specificationPCE must allow specifying the bandwidth of the requested path.Bandwidth specification shall include   the type of the signal (according to the technology type)RFC 5440[E///]P1 [Telia]P1 [Orange]P1 [Coriant]P1R1Discussion ongoing
2.13Metrics for path computationPCE must allow specifying the metric to be optimized when performing path computation. Possible metrics are at least IGP metric, TE metric, Hop count, and propagation delay (latency). If no metric is specified, the IGP metric (administrative cost) shall be used by default. Additional constraints due to technology (e.g. optical path feasibility) may be implicitly considered by the PCE as neededRFC 5440[E///]P1 [Telia]P1 [Orange]P1 [Coriant]P1 [Nokia] P1R1Discussion ongoing
2.14Metric bound constraintPCE must allow specifying the upper bound for a given metric (possibly a metric different from the one to be optimized). If no path with the given metric under the upper bound is found, the request must failRFC 5440[E///]P1 [Telia]P2 [Orange]P2 [Coriant]P2 [Nokia] P2R1
2.15Computed metric returned as resultPCE must allow specifying the metrics to be returned for the computed path, as successful. In that case the relevant metrics of the computed path shall be included in the response. No metric is returned if not requestedRFC 5440[E///]P2 [Telia]P2 [Orange]P1 [Coriant]P2 [Nokia] P3R2
2.16Use of local protected links in path computationPCE must allow specifying whether the path computation shall use locally protected linksRFC 5440[E///]P3 [Telia]P2 [Orange]P2 [Coriant]P2 [Nokia] P3R2[Coriant] I think it is more than just locally protected links since it possible to use SNC type protection as end-to-end resiliency mechanism. Ideally, the different protection mechanisms available on the optical layer (DWDM/OTN) should be available and selected based on a requested parameter
2.17AffinitiesPCE allows specifying the affinities to be included or excluded by the path computation. Affinities (aka administrative colors) are coded as 32 bit masks. They are attributes of TE-links. It must be possible to specify the following conditions; Include-any: links are included if any of the bits set in the mask are set also in the relevant link affinities; Exclude-any: links are excluded if any of the bits set in the mask are set also in the relevant link affinities; Exclude-all: links are excluded if all the bits set in the mask are set also in the relevant link affinitiesRFC 5440[E///]P1 [Telia]P1 [Orange]P1 [Nokia] P2R1Discussion ongoing
2.18Include resources specificationPCE allows specifying the IRO, which is the list of network resources (nodes, links, interfaces) to be included in the computed path. The resulting path must pass through the elements in the IRO list according to their order.RFC 5440[E///]P2 [Telia]P2 [Orange]P1 [Coriant]P2 [Nokia] P2R2
2.19Exclude resources specificationPCE must allow specifying the XRO, which is the list of network resources (nodes, links, interfaces, SRLGs), to be excluded by the computed path. The resulting path must not pass through the elements in the list.RFC 5521[E///]P1 [Telia]P1 [Orange]P1 [Coriant]P2 [Nokia] P1R1
2.20Path profilesPCE supports path profiles, that is specifications of set of request parameters and policies bundled all together and associated to a unique identifier. Mentioning that identifier in a request allows getting all the relevant parameters without the need to specify them explicitlydraft-alvarez-pce-path-profiles-04[E///]P3 [Telia]P3 [Orange]P3 [Coriant]P3 [Nokia] P3R3This is an expired draft, an alternative way to embed policies in a request is available in the recent draft-sivabalan-pce-policy-identifier-00
2.21Policy managementPCE supports the management of policies, that is directions/parameters affecting its behavior.RFC 3060 RFC 3460 RFC 5394[E///]P2 [Telia]P2 [Orange]P2 [Coriant]P2 [Nokia] P3R2E.g. policies to set the priority among multiple constraints in the same request, to affect how forwarding adjacencies are created or removed, to configure traffic engineering parameters, to set strategies for optical resource allocation, and more
2.21.1Policy interfacePolicies are objects which can be created, read, updated and deleted. Multiple policies can be associated to a path request (inside a path profile)RFC 3060 RFC 3460 RFC 5394[E///]P2 [Telia]P2 [Orange]P2 [Coriant]P2 [Nokia] P3R2
2.22Time constraint managementFor BoD or calendaring applications, it is of interest of specifying time boundaries and frequency for path.
P2 [Telia]P3 [Coriant]P2 [E///]P3 [Nokia] P3R2Orange: suggest to move this requirement to service handler specification (PCE in charge of calculating a path according to existing resources at the time of path request)
2.23Path computation w/wo path implementationIt is of interest to sollicit the PCE for path computation without network implementation. Conversely, it is important to be able to specify the CPE that the path must be implemented immediately
[Telia]? [Coriant]P1 [Nokia] P1R1Orange: suggest to move this requirement to service handler specification (PCE in charge of calculating a path and shall not care if it is further implemented or not (is told later not by a notification from service inventory)

[E///]Our view is that PCE should be in charge of path computation task only. What is named "PCE" in a lot of documents is actually a controller.
According to the architecture discussed so far, we separate the role of path computation from the one of actual deployment of the traffic in the network.
Therefore path implementation option should not be supported by the PCE (instead a command to communicate to the PCE the deployment of a path in the network should be foreseen).
2.24Path computation wo resource reservationIt is of interest to be able to verify if a path is feasible but compute it in stateless way, without resource reservation.
[Coriant]P2 [Nokia] P3R2Typical use case is testing path feasibility across multiple domains or analyse different path options

[E///] See comment on requirement 1.4. In our view this should be the normal PCE behavior.
2.25Path computation with control of the used layers for reuse/creationIt is of interest to be able to control if multi layer path computation should consider creation of lower layer server paths or only reuse already existing server paths.
[Coriant]P2 [E///]P2 [Nokia] P2 [Orange] P2R2Typical use case is be able to request paths that do not require creation of optical infrastructure (new optical channels) and therefore able to be implemented instantly.

[E///] Not directly supported by PCEP, we have implemented it as a policy. Agreed for P2 as it will become useful when we'll have multiple layers.
2.26Vendor-dependent wavelength-mapPCE shal be able to get the wavelength-map according to the vendor/node types (correspondance between channel-number and central frequency/channel width)RFC6205/ 694.1[Orange]P1
Wavelength-map is not standardized among vendors and PCE needs to get the knowledge of wavelength map that is available in device model.

Service Handler

Optical validation

Optical Line Management

Basic Renderer

Topology management

Device management

  • No labels