--- /dev/null
+module transportpce-routing-constraints {
+ namespace "http://org/transportpce/B-C-interface/routing/constraints";
+ prefix transportpce-routing-constraints;
+
+ organization
+ "transportPCE";
+ contact
+ "transportPCE committers - ODL";
+ description
+ "YANG definitions of B interface (transportPCE). Adapted from service definition (openroadm)
+ Copyright © 2017 Orange, Inc. and others. All rights reserved.
+ openroadm copyright:
+ Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+ AT&T Intellectual Property. All other rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+ * Neither the Members of the Open ROADM MSA Agreement nor the names of its
+ contributors may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE";
+
+ revision 2017-04-26 {
+ description
+ "Version 1.5";
+ }
+ revision 2017-10-17 {
+ description
+ "Version 1.6";
+ }
+
+ grouping common-constraints-sp {
+ leaf-list SRLG {
+ type string;
+ }
+ leaf-list clli {
+ type string;
+ }
+ leaf-list node-id {
+ type string;
+ }
+ }
+
+grouping ordered-constraints-sp {
+ description
+ "";
+ container hop-type {
+ choice hop-type {
+ case SRLG {
+ leaf SRLG {
+ type string; //to be clarified with topology model
+ }
+ }
+
+ case clli {
+ leaf clli {
+ type string; //to be clarified with topology model
+ }
+ }
+
+ case node {
+ leaf node-id {
+ type string; // to be clarified with topology model
+ }
+ }
+ }
+ }
+ }
+
+
+ grouping diversity-existing-service-contraints-sp {
+ leaf-list existing-service {
+ type string;
+ description
+ "Diverse from existing services identified by facility CLFI";
+ }
+ container existing-service-applicability {
+ leaf clli {
+ type boolean;
+ }
+ leaf node {
+ type boolean;
+ }
+ leaf srlg {
+ type boolean;
+ }
+ }
+ }
+ grouping routing-constraints-sp {
+ container hard-constraints {
+ uses constraints-sp;
+ }
+ container soft-constraints {
+ uses constraints-sp;
+ }
+ leaf pce-metric {
+ type enumeration {
+ enum hop-count;
+ enum propagation-delay;
+ enum TE-metric;
+ enum IGP-metric;
+ }
+ }
+ leaf locally-protected-links {
+ type boolean;
+ description "indicates whether it must use locally protected links or not";
+ }
+ }
+
+ grouping constraints-sp {
+ leaf-list customer-code {
+ type string;
+ }
+ choice co-routing-or-general {
+ case general {
+ container diversity {
+ uses diversity-existing-service-contraints-sp;
+ }
+ container exclude_ {
+ uses common-constraints-sp;
+ leaf-list supporting-service-name {
+ description
+ "Supporting service(s) to exclude from this route.";
+ type string;
+ }
+ leaf affinity {
+ type uint32;
+ }
+ }
+ container include_ {
+ list ordered-hops {
+ key hop-number;
+ leaf hop-number {
+ description
+ "designates the id of the hop: node-id, SRLG-id, site-id";
+ type uint16;
+ }
+ uses ordered-constraints-sp;
+ }
+
+ }
+ container latency {
+ description
+ "Maximum latency allowed";
+ leaf max-latency {
+ type uint32;
+ units "ms";
+ }
+ }
+ }
+ case co-routing {
+ container co-routing {
+ leaf-list existing-service {
+ type string;
+ description
+ "Diverse from existing services identified by facility CLFI";
+ }
+ }
+ }
+ }
+ }
+
+
+}