upgrade models to OpenROADM service 5.1.0 21/85121/7
authorguillaume.lambert <guillaume.lambert@orange.com>
Tue, 15 Oct 2019 12:32:18 +0000 (14:32 +0200)
committerguillaume.lambert <guillaume.lambert@orange.com>
Tue, 22 Oct 2019 12:17:19 +0000 (14:17 +0200)
- upgrade openROADM service models from 1.2 to 5.1.0
- add related openROADM common models
- adapt transportPCE service path models consequently
- fix revisions in java code

JIRA: TRNSPRTPCE-159
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: I035175e5653a1e5ea0fd75c8a1086755e31bc05c

41 files changed:
api/src/main/yang/service_path/transportpce-common-service-path-types@2019-10-09.yang [moved from api/src/main/yang/service_path/transportpce-common-service-path-types@2017-10-16.yang with 95% similarity]
api/src/main/yang/service_path/transportpce-pce@2019-06-24.yang
api/src/main/yang/service_path/transportpce-renderer@2017-10-17.yang
api/src/main/yang/service_path/transportpce-service-path@2017-10-17.yang
api/src/main/yang/service_path/transportpce-servicehandler@2017-10-17.yang
lighty/src/main/java/io/lighty/controllers/tpce/utils/TPCEUtils.java
ordmodels/common/src/main/yang/org-openroadm-common-optical-channel-types@2019-03-29.yang [new file with mode: 0644]
ordmodels/common/src/main/yang/org-openroadm-common-types@2019-05-31.yang [new file with mode: 0644]
ordmodels/common/src/main/yang/org-openroadm-interfaces@2019-05-31.yang [new file with mode: 0644]
ordmodels/common/src/main/yang/org-openroadm-network-resource@2018-11-30.yang [new file with mode: 0644]
ordmodels/common/src/main/yang/org-openroadm-resource-types@2018-11-30.yang [new file with mode: 0644]
ordmodels/common/src/main/yang/org-openroadm-resource@2019-05-31.yang [new file with mode: 0644]
ordmodels/common/src/main/yang/org-openroadm-service-format@2019-05-31.yang [new file with mode: 0644]
ordmodels/service/src/main/yang/org-openroadm-ber-test@2019-05-31.yang [new file with mode: 0644]
ordmodels/service/src/main/yang/org-openroadm-common-ber-test@2018-11-30.yang [new file with mode: 0644]
ordmodels/service/src/main/yang/org-openroadm-common-service-types@2016-10-14.yang [deleted file]
ordmodels/service/src/main/yang/org-openroadm-common-service-types@2019-05-31.yang [new file with mode: 0644]
ordmodels/service/src/main/yang/org-openroadm-routing-constraints@2019-03-29.yang [moved from ordmodels/service/src/main/yang/org-openroadm-routing-constraints@2016-10-14.yang with 62% similarity]
ordmodels/service/src/main/yang/org-openroadm-service@2019-05-31.yang [moved from ordmodels/service/src/main/yang/org-openroadm-service@2016-10-14.yang with 59% similarity]
ordmodels/service/src/main/yang/org-openroadm-topology@2019-05-31.yang [moved from ordmodels/service/src/main/yang/org-openroadm-topology@2016-10-14.yang with 62% similarity]
pce/src/main/java/org/opendaylight/transportpce/pce/service/PathComputationServiceImpl.java
pce/src/test/java/org/opendaylight/transportpce/pce/utils/PceTestData.java
renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/RendererServiceOperations.java
renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/RendererServiceOperationsImpl.java
renderer/src/test/java/org/opendaylight/transportpce/renderer/NetworkModelWaveLengthServiceUseTest.java
renderer/src/test/java/org/opendaylight/transportpce/renderer/provisiondevice/RendererServiceOperationsImplDeleteTest.java
renderer/src/test/java/org/opendaylight/transportpce/renderer/utils/ServiceDataUtils.java
renderer/src/test/java/org/opendaylight/transportpce/renderer/utils/ServiceDeleteDataUtils.java
servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/ModelMappingUtils.java
servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/listeners/PceListenerImpl.java
servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/listeners/RendererListenerImpl.java
servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/service/PCEServiceWrapper.java
servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/service/RendererServiceWrapper.java
servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/stub/StubPceServiceOperations.java
servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/stub/StubRendererServiceOperations.java
servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/stub/StubrendererCompliancyCheck.java
servicehandler/src/test/java/org/opendaylight/transportpce/servicehandler/ModelMappingUtilsTest.java
servicehandler/src/test/java/org/opendaylight/transportpce/servicehandler/service/ServiceDataStoreOperationsImplTest.java
servicehandler/src/test/java/org/opendaylight/transportpce/servicehandler/utils/MockedNotificationServiceWrapper.java
servicehandler/src/test/java/org/opendaylight/transportpce/servicehandler/utils/ModelMappingUtils.java
servicehandler/src/test/java/org/opendaylight/transportpce/servicehandler/utils/ServiceDataUtils.java

similarity index 95%
rename from api/src/main/yang/service_path/transportpce-common-service-path-types@2017-10-16.yang
rename to api/src/main/yang/service_path/transportpce-common-service-path-types@2019-10-09.yang
index 316c768d39c2f0b66022d90bd254639d5c4c9d8e..f0ca85f46cd58e282c0a4bdbe9a07f3ccaedd74e 100644 (file)
@@ -18,12 +18,19 @@ module transportpce-common-service-path-types {
   }
   import org-openroadm-common-types {
     prefix org-openroadm-common-types;
+    revision-date 2019-05-31;
   }
   import org-openroadm-resource-types {
     prefix org-openroadm-resource-types;
+    revision-date 2018-11-30;
   }
   import org-openroadm-common-service-types {
     prefix org-openroadm-common-service-types;
+    revision-date 2019-05-31;
+  }
+  import org-openroadm-service-format {
+    prefix org-openroadm-service-format;
+    revision-date 2019-05-31;
   }
 
   organization
@@ -61,10 +68,9 @@ module transportpce-common-service-path-types {
       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 2019-10-09 {
+    description
+      "Version 1.6.1";
   }
 
   revision 2017-10-16 {
@@ -72,6 +78,11 @@ module transportpce-common-service-path-types {
       "Version 1.6";
   }
 
+  revision 2017-04-26 {
+      description
+        "Version 1.5";
+  }
+
   typedef service-path-notification-types {
     type enumeration {
       enum "path-computation-request" {
@@ -133,7 +144,7 @@ module transportpce-common-service-path-types {
 
   grouping service-endpoint-sp {
     leaf service-format {
-      type org-openroadm-common-service-types:service-format;
+      type org-openroadm-service-format:service-format;
       mandatory true;
       description
         "Format of the requested service: Ethernet, OTU, etc.";
index a85aafe4bf8f3bfa13a260072b726a7e57960b89..5ccc3e03a402b5ca2f48f736f09824758e0c2b7c 100644 (file)
@@ -14,7 +14,6 @@ module transportpce-pce {
   }
   import transportpce-common-service-path-types {
     prefix transportpce-common-service-path-types;
-    revision-date 2017-10-16;
   }
   import transportpce-pathDescription {
     prefix transportpce-pathDescription;
index ff472a71c23a22b1130e2cd3236f9cf66c3b7b18..34f1ae32778a0b2e2deac4f5249e46747f2385e3 100644 (file)
@@ -7,11 +7,9 @@ module transportpce-renderer {
   }
   import org-openroadm-common-service-types {
     prefix org-openroadm-common-service-types;
-    revision-date 2016-10-14;
   }
   import transportpce-common-service-path-types {
     prefix transportpce-common-service-path-types;
-    revision-date 2017-10-16;
   }
   import org-openroadm-topology {
     prefix org-openroadm-topology;
@@ -56,15 +54,15 @@ module transportpce-renderer {
       ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
       POSSIBILITY OF SUCH DAMAGE";
 
-  revision "2017-02-28" {
-      description "Initial revision of renderer model version 1.5";
-  }
-
   revision 2017-10-17 {
     description
       "Version 1.6";
   }
 
+  revision "2017-02-28" {
+      description "Initial revision of renderer model version 1.5";
+  }
+
   rpc service-implementation-request {
     input {
       leaf service-name {
index 1aca37e5942260c60665b2aadfbed36dbbad172b..577513489b274b839cdb48e9e5b2ba37c3d32cd6 100644 (file)
@@ -7,7 +7,6 @@ module transportpce-servicepath {
   }
   import transportpce-common-service-path-types {
     prefix transportpce-common-service-path-types;
-    revision-date 2017-10-16;
   }
 
   organization
@@ -45,14 +44,15 @@ module transportpce-servicepath {
       ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
       POSSIBILITY OF SUCH DAMAGE";
 
+  revision 2017-10-17 {
+      description
+        "Version 1.6";
+  }
+
   revision 2017-04-26 {
       description
         "Version 1.5";
   }
-  revision 2017-10-17 {
-    description
-      "Version 1.6";
-  }
 
   container service-path-list {
     description
index 0956b616a5d3b8e0558fd0882d2ebcc67efc9b9f..058db0d0f34bd29a10fad37d120d20cd4c610eaf 100644 (file)
@@ -20,7 +20,6 @@ module transportpce-servicehandler {
   }
   import transportpce-common-service-path-types {
     prefix transportpce-common-service-path-types;
-    revision-date 2017-10-16;
   }
   import transportpce-pathDescription {
     prefix transportpce-pathDescription;
index 3226d8da26e48b2ab91d2bb479c070ec2773de71..bfab04cd377cd321fe8e1c08821e897f4b3d715d 100644 (file)
@@ -129,10 +129,10 @@ public final class TPCEUtils {
             org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.$YangModuleInfoImpl.getInstance(),
 
             // service models
-            org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.$YangModuleInfoImpl.getInstance(),
-            org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev161014.$YangModuleInfoImpl.getInstance(),
-            org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.$YangModuleInfoImpl.getInstance(),
-            org.opendaylight.yang.gen.v1.http.org.openroadm.topology.rev161014.$YangModuleInfoImpl.getInstance(),
+            org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.$YangModuleInfoImpl.getInstance(),
+            org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev190329.$YangModuleInfoImpl.getInstance(),
+            org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.$YangModuleInfoImpl.getInstance(),
+            org.opendaylight.yang.gen.v1.http.org.openroadm.topology.rev190531.$YangModuleInfoImpl.getInstance(),
 
             // API models / opendaylight
             org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.alarmsuppression.rev171102.$YangModuleInfoImpl.getInstance(),
@@ -153,8 +153,7 @@ public final class TPCEUtils {
 
             org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.$YangModuleInfoImpl.getInstance(),
             org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.$YangModuleInfoImpl.getInstance(),
-            org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev170426.$YangModuleInfoImpl.getInstance(),
-            org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.$YangModuleInfoImpl.getInstance(),
+            org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.$YangModuleInfoImpl.getInstance(),
             org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev171017.$YangModuleInfoImpl.getInstance(),
             org.opendaylight.yang.gen.v1.http.transportpce.topology.rev190625.$YangModuleInfoImpl.getInstance(),
 
diff --git a/ordmodels/common/src/main/yang/org-openroadm-common-optical-channel-types@2019-03-29.yang b/ordmodels/common/src/main/yang/org-openroadm-common-optical-channel-types@2019-03-29.yang
new file mode 100644 (file)
index 0000000..85698fe
--- /dev/null
@@ -0,0 +1,298 @@
+module org-openroadm-common-optical-channel-types {
+  namespace "http://org/openroadm/common-optical-channel-types";
+  prefix org-openroadm-common-optical-channel-types;
+
+  organization
+    "Open ROADM MSA";
+  contact
+    "OpenROADM.org";
+  description
+    "YANG definitions of common optical channel types.
+
+      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+      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 2019-03-29 {
+    description
+      "Version 5.0.0";
+  }
+  revision 2018-11-30 {
+    description
+      "Version 4.1.0";
+  }
+  revision 2018-05-30 {
+    description
+      "Version 3.1.0";
+  }
+  revision 2018-03-30 {
+    description
+      "Version 3.0.0";
+  }
+
+  identity och-rate-identity {
+    description
+      "A unique och rate identification";
+  }
+
+  identity otsi-rate-identity {
+    description
+      "A unique OTSi rate identification";
+  }
+
+  identity fec-identity {
+    description
+      "A unique FEC identification";
+  }
+
+  identity sc-fec {
+    base fec-identity;
+    description
+      "Staircase FEC identification";
+  }
+
+  identity rs-fec {
+    base fec-identity;
+    description
+      "Reed Solomon FEC identification";
+  }
+
+  identity o-fec {
+    base fec-identity;
+    description
+      "OpenROADM FEC identification";
+  }
+
+  identity foic-identity {
+    description
+      "A unique FOICx.k identification (G.709.3 FlexO-LR and
+       G.709.1 FlexO-SR)";
+  }
+
+  identity flexo-otsi-rate-identity {
+    description
+      "A unique rate identification. Applicable to specify OTSi rate. Also
+       applicable to FOIC rate when associated with FlexO processing
+       (G.709.3 FlexO-LR Table 11-2, G.709.1 FlexO-SR clause 9.2.2
+        Table 11-1, 12-1, 13-1) and G.Sup58.";
+  }
+
+  identity foic1.2 {
+    base foic-identity;
+    description
+      "Applicable to the FlexO type defined in G.Sup58";
+  }
+
+  identity foic1.4 {
+    base foic-identity;
+    description
+      "Applicable to the FlexO type defined in G.709.1 and G.709.3";
+  }
+
+  identity foic2.4 {
+    base foic-identity;
+    description
+      "Applicable to the FlexO type defined in G.709.1";
+  }
+
+  identity foic2.8 {
+    base foic-identity;
+    description
+      "Applicable to the FlexO type defined in G.Sup58";
+  }
+
+  identity foic3.6 {
+    base foic-identity;
+    description
+      "Applicable to the FlexO type defined in future";
+  }
+
+  identity foic4.8 {
+    base foic-identity;
+    description
+      "Applicable to the FlexO type defined in G.709.1";
+  }
+
+  identity foic4.16 {
+    base foic-identity;
+    description
+      "Applicable to the FlexO type defined in G.Sup58";
+  }
+
+  identity R400G-flexo-otsi {
+    base flexo-otsi-rate-identity;
+    description
+      "Applicable instance for flexo/otsi rate identity";
+  }
+
+  identity R200G-flexo-otsi {
+    base flexo-otsi-rate-identity;
+    description
+      "Applicable instance for flexo/otsi rate identity";
+  }
+
+  identity R200G {
+    base och-rate-identity;
+    description
+      "Identity for 200G Rate";
+  }
+
+  identity R100G-flexo-otsi {
+    base flexo-otsi-rate-identity;
+    description
+      "Applicable instance for otsi/flexo rate identity";
+  }
+
+  identity R100G {
+    base och-rate-identity;
+    description
+      "Identity for 100G Rate";
+  }
+
+  identity R56G-foic-otsi {
+    base flexo-otsi-rate-identity;
+    description
+      "Applicable instance for otsi rate identity";
+  }
+
+  identity R28G-foic-otsi {
+    base flexo-otsi-rate-identity;
+    description
+      "Applicable instance for otsi rate identity";
+  }
+
+  identity R10.7G {
+    base och-rate-identity;
+    description
+      "Identity for 10.7G Rate";
+  }
+
+  identity R11.1G {
+    base och-rate-identity;
+    description
+      "Identity for 11.1G Rate";
+  }
+
+  typedef frequency-THz {
+    type decimal64 {
+      fraction-digits 8;
+    }
+    units "THz";
+    description
+      "Frequency value in THz.";
+  }
+
+  typedef frequency-GHz {
+    type decimal64 {
+      fraction-digits 5;
+    }
+    units "GHz";
+    description
+      "Frequency value in GHz.";
+  }
+
+  typedef wavelength-duplication-type {
+    type enumeration {
+      enum "one-per-srg" {
+        value 1;
+        description
+          "The SRG cannot handle wavelength duplication. Attempting to provision a connection on this SRG that uses the same wavelength as an existing service will result in failure.";
+      }
+      enum "one-per-degree" {
+        value 2;
+        description
+          "The SRG can handle wavelength duplication, but only one per degree. Attempting to provision a connection on this SRG that uses the same wavelength as an existing service will succeed, so long as the connections are not using the same degree.";
+      }
+    }
+    description
+      "One per srg is applied to C/D add/drop group
+       one per degree is applied to C/D/C add drop group";
+  }
+
+  typedef modulation-format {
+    type enumeration {
+      enum "bpsk" {
+        value 0;
+        description
+          "binary phase-shift keying";
+      }
+      enum "dc-dp-bpsk" {
+        value 1;
+        description
+          "DC dual-polarization binary phase-shift keying";
+      }
+      enum "qpsk" {
+        value 2;
+        description
+          "quadrature phase-shift keying";
+      }
+      enum "dp-qpsk" {
+        value 3;
+        description
+          "dual-polarization binary phase-shift keying";
+      }
+      enum "qam16" {
+        value 4;
+        description
+          "quadrature amplitude modulation 16";
+      }
+      enum "dp-qam16" {
+        value 5;
+        description
+          "dual-polarization quadrature amplitude modulation 16";
+      }
+      enum "dc-dp-qam16" {
+        value 6;
+        description
+          "DC dual-polarization quadrature amplitude modulation 16";
+      }
+      enum "qam8" {
+        value 7;
+        description
+          "quadrature amplitude modulation 8";
+      }
+      enum "dp-qam8" {
+        value 8;
+        description
+          "dual-polarization quadrature amplitude modulation 8";
+      }
+      enum "dc-dp-qam8" {
+        value 9;
+        description
+          "DC dual-polarization quadrature amplitude modulation 8";
+      }
+    }
+    description
+      "Modulation format";
+  }
+  typedef provision-mode-type {
+    type enumeration {
+      enum "explicit";
+      enum "profile";
+    }
+    description
+      "Provision Mode Type On Optical Channel";
+  }
+}
diff --git a/ordmodels/common/src/main/yang/org-openroadm-common-types@2019-05-31.yang b/ordmodels/common/src/main/yang/org-openroadm-common-types@2019-05-31.yang
new file mode 100644 (file)
index 0000000..9d5728c
--- /dev/null
@@ -0,0 +1,252 @@
+module org-openroadm-common-types {
+  namespace "http://org/openroadm/common-types";
+  prefix org-openroadm-common-types;
+
+  organization
+    "Open ROADM MSA";
+  contact
+    "OpenROADM.org";
+  description
+    "YANG definitions of common types.
+
+      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+      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 2019-05-31 {
+    description
+      "Version 5.1.0";
+  }
+  revision 2019-03-29 {
+    description
+      "Version 5.0.0";
+  }
+  revision 2018-11-30 {
+    description
+      "Version 4.1.0";
+  }
+  revision 2018-09-28 {
+    description
+      "Version 4.0.0";
+  }
+  revision 2018-03-30 {
+    description
+      "Version 3.0.0";
+  }
+  revision 2017-12-15 {
+    description
+      "Version 2.2";
+  }
+  revision 2017-09-29 {
+    description
+      "Version 2.1";
+  }
+  revision 2017-06-26 {
+    description
+      "Version 2.0";
+  }
+  revision 2016-10-14 {
+    description
+      "Version 1.2";
+  }
+
+  typedef activate-notification-type {
+    type enumeration {
+      enum "activate" {
+        value 1;
+        description
+          "software or database activation";
+      }
+      enum "commit" {
+        value 2;
+        description
+          "commit the software or database.
+           For software activate, this event can happen in the following scenarios:
+             1) immediately when user issue sw-activate command without validationTimer
+                or if the validationTimer is specified as 00-00-00;
+             2) when user issue cancel-validation-timer before it expires and with accept=true.
+           For database activate, this event can occur in the following scenarios:
+             1) immediately when user issue db-activate command without rollBackTimer
+                or if the rollBackTimer is specified as 00-00-00;
+             2) when user issue cancel-rollback-timer before it expires and with accept=true.";
+      }
+      enum "cancel" {
+        value 3;
+        description
+          "cancel the database or software activation operation.
+           For software activate, this event can happen in the following cases:
+             1) when the validationTimer expires;
+             2) when the user issues cancel-validation-timer with accept=false.
+           For database activate, this event can happen in the following cases:
+             1) when the rollBackTimer expires;
+             2) when the user issues cancel-rollback-timer with accept=false.";
+      }
+    }
+    description
+      "Type of notification on software or database activation events";
+  }
+
+  typedef rpc-status {
+    type enumeration {
+      enum "Successful" {
+        value 1;
+      }
+      enum "Failed" {
+        value 2;
+      }
+    }
+    description
+      "status of RPC ";
+  }
+
+  typedef extended-rpc-status {
+    type enumeration {
+      enum "Successful" {
+        value 1;
+      }
+      enum "Failed" {
+        value 2;
+      }
+      enum "In-progress" {
+        value 3;
+      }
+    }
+    description
+      "status of RPC ";
+  }
+
+  typedef openroadm-version-type {
+    type enumeration {
+      enum "1.0" {
+        value 1;
+        description
+          "value for 1.0";
+      }
+      enum "2.0" {
+        value 2;
+        description
+          "value for 2.0";
+      }
+      enum "2.1" {
+        value 3;
+        description
+          "value for 2.1";
+      }
+      enum "2.2" {
+        value 4;
+        description
+          "value for 2.2";
+      }
+      enum "3.0" {
+        value 5;
+        description
+          "value for 3.0";
+      }
+      enum "3.1" {
+        value 6;
+        description
+          "value for 3.1";
+      }
+      enum "4.0" {
+        value 7;
+        description
+          "value for 4.0";
+      }
+      enum "2.2.1" {
+        value 8;
+        description
+          "value for 2.2.1";
+      }
+      enum "4.1" {
+        value 9;
+        description
+          "value for 4.1";
+      }
+      enum "3.1.1" {
+        value 10;
+        description
+          "value for 3.1.1";
+      }
+      enum "5.0" {
+        value 11;
+        description
+          "value for 5.0";
+      }
+      enum "5.1" {
+        value 12;
+        description
+          "value for 5.1";
+      }
+    }
+    description
+      "OpenROADM version enum type";
+  }
+
+  grouping rpc-response-status {
+    leaf status {
+      type rpc-status;
+      mandatory true;
+      description
+        "Successful or Failed";
+    }
+    leaf status-message {
+      type string;
+      description
+        "Gives a more detailed status";
+    }
+  }
+
+  grouping extended-rpc-response-status {
+    leaf status {
+      type extended-rpc-status;
+      mandatory true;
+      description
+        "Successful, Failed or In-progress";
+    }
+    leaf status-message {
+      type string;
+      description
+        "Gives a more detailed status.";
+    }
+  }
+
+  grouping eth-rate-and-burst-size {
+    description
+      "Grouping of ethernet committed rate and burst size.";
+    leaf committed-info-rate {
+      type uint32;
+      mandatory true;
+      description
+        "Committed Information Rate (CIR), unit in Mbps. For example, 1250 Mbps";
+    }
+    leaf committed-burst-size {
+      type uint16;
+      mandatory true;
+      description
+        "Committed Burst Size, unit in 1KB (K Byte).
+                Range 16 | 32 | 64 | 128 | 512 | 1024. Default: 16";
+    }
+  }
+}
diff --git a/ordmodels/common/src/main/yang/org-openroadm-interfaces@2019-05-31.yang b/ordmodels/common/src/main/yang/org-openroadm-interfaces@2019-05-31.yang
new file mode 100644 (file)
index 0000000..ef4a3ea
--- /dev/null
@@ -0,0 +1,177 @@
+module org-openroadm-interfaces {
+  namespace "http://org/openroadm/interfaces";
+  prefix openROADM-if;
+
+  organization
+    "Open ROADM MSA";
+  contact
+    "OpenROADM.org";
+  description
+    "YANG definitions for device facility interfaces.
+     Reused ietf-interfaces and some interface-type defined in iana-if-type.
+
+     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+     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.
+
+     Also contains code components extracted from IETF Interfaces.  These code components
+     are copyrighted and licensed as follows:
+
+     Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
+     All rights reserved.
+
+     This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
+     to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
+     publication of this document. Please review these documents carefully, as they
+     describe your rights and restrictions with respect to this document. Code Components
+     extracted from this document must include Simplified BSD License text as described in
+     Section 4.e of the Trust Legal Provisions and are provided without warranty as
+     described in the Simplified BSD License.";
+
+  revision 2019-05-31 {
+    description
+      "Version 5.1.0";
+  }
+  revision 2018-11-30 {
+    description
+      "Version 4.1.0";
+  }
+  revision 2018-09-28 {
+    description
+      "Version 4.0.0";
+  }
+  revision 2018-03-30 {
+    description
+      "Version 3.0";
+  }
+  revision 2017-06-26 {
+    description
+      "Version 2.0";
+  }
+  revision 2016-10-14 {
+    description
+      "Version 1.2";
+  }
+
+  identity interface-type {
+    description
+      "Base identity from which specific interface types are
+       derived.";
+  }
+
+  identity ethernetCsmacd {
+    base interface-type;
+    description
+      "For all Ethernet-like interfaces, regardless of speed,
+       as per RFC 3635.";
+    reference
+      "RFC 3635 - Definitions of Managed Objects for the
+                  Ethernet-like Interface Types";
+  }
+
+  identity ip {
+    base interface-type;
+    description
+      "IP (for APPN HPR in IP networks).";
+  }
+
+  identity mediaChannelTrailTerminationPoint {
+    base interface-type;
+    description
+      "Media Channel Trail Termination Point";
+  }
+
+  identity networkMediaChannelConnectionTerminationPoint {
+    base interface-type;
+    description
+      "Network Media Channel Connection Termination Point";
+  }
+
+  identity opticalChannel {
+    base interface-type;
+    description
+      "Optical Channel.";
+  }
+
+  identity opticalTransport {
+    base interface-type;
+    description
+      "Optical Transport.";
+  }
+
+  identity otnOdu {
+    base interface-type;
+    description
+      "OTN Optical Data Unit.";
+  }
+
+  identity otnOtu {
+    base interface-type;
+    description
+      "OTN Optical channel Transport Unit.";
+  }
+
+  identity otsi {
+    base interface-type;
+    description
+      "OTSI interface.";
+  }
+
+  identity otsi-group {
+    base interface-type;
+    description
+      "OTSI Group interface.";
+  }
+
+  identity flexo {
+    base interface-type;
+    description
+      "Flexo interface.";
+  }
+
+  identity flexo-group {
+    base interface-type;
+    description
+      "Flexo Group interface.";
+  }
+
+  identity openROADMOpticalMultiplex {
+    base interface-type;
+    description
+      "Optical Transport Multiplex type for openROADM";
+  }
+
+  identity ppp {
+    base interface-type;
+    description
+      "PPP for IP GNE.";
+  }
+
+  identity gcc {
+    base interface-type;
+    description
+      "ITU-T G.709 GCC.";
+  }
+}
diff --git a/ordmodels/common/src/main/yang/org-openroadm-network-resource@2018-11-30.yang b/ordmodels/common/src/main/yang/org-openroadm-network-resource@2018-11-30.yang
new file mode 100644 (file)
index 0000000..3145572
--- /dev/null
@@ -0,0 +1,122 @@
+module org-openroadm-network-resource {
+  namespace "http://org/openroadm/network-resource";
+  prefix org-openroadm-network-resource;
+
+  organization
+    "Open ROADM MSA";
+  contact
+    "OpenROADM.org";
+  description
+    "YANG definitions of resources.
+
+      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+      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 2018-11-30 {
+    description
+      "Version 4.1.0";
+  }
+  revision 2018-03-30 {
+    description
+      "Version 3.0.0";
+  }
+
+  identity network-resource-types {
+    description
+      "base type for network resources";
+  }
+
+  identity network-resource-tp {
+    base network-resource-types;
+    description
+      "tp-id network resource";
+  }
+
+  identity network-resource-link {
+    base network-resource-types;
+    description
+      "link-id network resource";
+  }
+
+  grouping network-resource {
+    description
+      "This resource identifier is intended to provide a generic identifer
+       for any network resource that can be used without specific knowledge of
+       the resource.";
+    container network-resource {
+      choice network-resource {
+        case network-resource-tp {
+          uses network-tp-name;
+        }
+        case network-resource-link {
+          uses network-link-name;
+        }
+      }
+    }
+    leaf network-resource-type {
+      type identityref {
+        base network-resource-types;
+      }
+      mandatory true;
+    }
+  }
+
+  grouping network-tp-name {
+    leaf tp-network-id {
+      type string;
+      mandatory true;
+      description
+        "network-id from the network model.";
+    }
+    leaf tp-node-id {
+      type string;
+      mandatory true;
+      description
+        "node-id from the network model.";
+    }
+    leaf tp-id {
+      type string;
+      mandatory true;
+      description
+        "tp-id from the network model.";
+    }
+  }
+
+  grouping network-link-name {
+    leaf link-network-id {
+      type string;
+      mandatory true;
+      description
+        "network-id from the network model.";
+    }
+    leaf link-id {
+      type string;
+      mandatory true;
+      description
+        "link-id from the network model.";
+    }
+  }
+}
diff --git a/ordmodels/common/src/main/yang/org-openroadm-resource-types@2018-11-30.yang b/ordmodels/common/src/main/yang/org-openroadm-resource-types@2018-11-30.yang
new file mode 100644 (file)
index 0000000..1dd89df
--- /dev/null
@@ -0,0 +1,370 @@
+module org-openroadm-resource-types {
+  namespace "http://org/openroadm/resource/types";
+  prefix org-openroadm-resource-types;
+
+  import org-openroadm-common-node-types {
+    prefix org-openroadm-common-node-types;
+    revision-date 2018-11-30;
+  }
+
+  organization
+    "Open ROADM MSA";
+  contact
+    "OpenROADM.org";
+  description
+    "YANG definitions of common resource types.
+
+      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+      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 2018-11-30 {
+    description
+      "Version 4.1.0";
+  }
+  revision 2018-09-28 {
+    description
+      "Version 4.0.0";
+  }
+  revision 2018-03-30 {
+    description
+      "Version 3.0.0";
+  }
+  revision 2017-12-15 {
+    description
+      "Version 2.2";
+  }
+  revision 2017-09-29 {
+    description
+      "Version 2.1";
+  }
+  revision 2017-06-26 {
+    description
+      "Version 2.0";
+  }
+  revision 2016-10-14 {
+    description
+      "Version 1.2";
+  }
+
+  typedef resource-type-enum {
+    type enumeration {
+      enum "other" {
+        value 1;
+        description
+          "Resource of type not found in list.";
+      }
+      enum "device" {
+        value 2;
+        description
+          "device - ROAMD, Xponder, etc";
+      }
+      enum "degree" {
+        value 3;
+        description
+          "degree";
+      }
+      enum "shared-risk-group" {
+        value 4;
+        description
+          "shared-risk-group";
+      }
+      enum "connection" {
+        value 5;
+        description
+          "connection - this is used by roadm-connection and odu-connection
+           since they are mutually exclusive in the model";
+      }
+      enum "connection-map" {
+        value 6;
+        description
+          "connection-map";
+      }
+      enum "port" {
+        value 7;
+        description
+          "port";
+      }
+      enum "circuit-pack" {
+        value 8;
+        description
+          "circuit pack";
+      }
+      enum "internal-link" {
+        value 9;
+        description
+          "internal-link";
+      }
+      enum "physical-link" {
+        value 10;
+        description
+          "physical-link";
+      }
+      enum "interface" {
+        value 11;
+        description
+          "interface";
+      }
+      enum "shelf" {
+        value 12;
+        description
+          "shelf";
+      }
+      enum "service" {
+        value 13;
+        description
+          "service";
+      }
+      enum "odu-sncp-pg" {
+        value 14;
+        description
+          "odu-sncp-pg";
+      }
+      enum "line-amplifier" {
+        value 15;
+        description
+          "line-amplifier";
+      }
+      enum "xponder" {
+        value 16;
+        description
+          "xponder";
+      }
+      enum "versioned-service" {
+        value 17;
+        description
+          "versioned-service";
+      }
+      enum "temp-service" {
+        value 18;
+        description
+          "temp-service";
+      }
+    }
+  }
+
+  typedef resource-notification-type {
+    type enumeration {
+      enum "resourceCreation" {
+        value 1;
+        description
+          "A new instance of a resource has been created.";
+      }
+      enum "resourceModification" {
+        value 2;
+        description
+          "An existing instance of a resource has been modified. This shall be triggered by changes in configuration, state, status etc.
+           It shall not be triggered by changes in performance measurements, power and temperature readings or any other data that is highly volatile. ";
+      }
+      enum "resourceDeletion" {
+        value 3;
+        description
+          "An existing instance of a resource has been removed.";
+      }
+    }
+    description
+      "Type of notification about a resource";
+  }
+
+  grouping resource-type {
+    leaf type {
+      type resource-type-enum;
+      mandatory true;
+    }
+    leaf extension {
+      type string;
+      mandatory false;
+    }
+  }
+
+  grouping device-id {
+    description
+      "Device identifier. Unique within the Controller.";
+    leaf node-id {
+      type org-openroadm-common-node-types:node-id-type;
+      description
+        "Node Id is a globally unique identifier for a device.
+         Same as leafref value in model, if applicable.";
+    }
+  }
+
+  grouping circuit-pack-name {
+    leaf circuit-pack-name {
+      type string;
+      mandatory true;
+      description
+        "Circuit-Pack identifier. Unique within the context of a device.
+         Same as leafref value in model, if applicable.";
+    }
+  }
+
+  grouping port-name {
+    uses circuit-pack-name;
+    leaf port-name {
+      type string;
+      description
+        "Port identifier. Unique within the context of a circuit-pack.
+         Same as leafref value in model, if applicable.";
+    }
+  }
+
+  grouping physical-link-name {
+    leaf physical-link-name {
+      type string;
+      mandatory true;
+      description
+        "Physical Link identifier. Unique within the context of a device.
+         Same as leafref value in model, if applicable.";
+    }
+  }
+
+  grouping internal-link-name {
+    leaf internal-link-name {
+      type string;
+      mandatory true;
+      description
+        "Internal Link identifier. Unique within the context of a device.
+         Same as leafref value in model, if applicable.";
+    }
+  }
+
+  grouping connection-name {
+    leaf connection-name {
+      type string;
+      description
+        "Connection name. Unique within the context of a device.
+         Same as leafref value in model, if applicable.";
+    }
+  }
+
+  grouping degree-number {
+    leaf degree-number {
+      type uint16;
+      description
+        "Degree identifier. Unique within the context of a device.
+         Same as leafref value in model, if applicable.";
+    }
+  }
+
+  grouping srg-number {
+    leaf srg-number {
+      type uint16;
+      description
+        "Shared Risk Group identifier. Unique within the context of a device.
+         Same as leafref value in model, if applicable.";
+    }
+  }
+
+  grouping shelf-name {
+    leaf shelf-name {
+      type string;
+      mandatory true;
+      description
+        "Shelf-id identifier. Unique within the context of a device.
+         Same as leafref value in model, if applicable.";
+    }
+  }
+
+  grouping service-name {
+    leaf service-name {
+      type string;
+      mandatory true;
+      description
+        "Service identifier. Unique within the context of a network.
+         Same as leafref value in model, if applicable.";
+    }
+  }
+
+  grouping versioned-service-name {
+    leaf versioned-service-name {
+      type string;
+      mandatory true;
+      description
+        "Service identifier. Unique within the context of a network.
+         Same as leafref value in model, if applicable.";
+    }
+    leaf version-number {
+      type uint64;
+      mandatory true;
+      description
+        "version-number of the service";
+    }
+  }
+
+  grouping temp-service-name {
+    leaf common-id {
+      type string;
+      mandatory true;
+      description
+        "Service identifier. Unique within the context of a network.
+         Same as leafref value in model, if applicable.";
+    }
+  }
+
+  grouping interface-name {
+    leaf interface-name {
+      type string;
+      mandatory true;
+      description
+        "Interface identifier.";
+    }
+  }
+
+  grouping other-resource-id {
+    leaf other-resource-id {
+      type string;
+      mandatory true;
+      description
+        "resource-id for other.";
+    }
+  }
+
+  grouping odu-sncp-pg-name {
+    leaf odu-sncp-pg-name {
+      type string;
+      mandatory true;
+      description
+        "name of the odu-snc-pg";
+    }
+  }
+
+  grouping amp-number {
+    leaf amp-number {
+      type uint8;
+      mandatory true;
+      description
+        "number of the line-amplifier";
+    }
+  }
+
+  grouping xpdr-number {
+    leaf xpdr-number {
+      type uint16;
+      mandatory true;
+      description
+        "number of the xponder";
+    }
+  }
+}
diff --git a/ordmodels/common/src/main/yang/org-openroadm-resource@2019-05-31.yang b/ordmodels/common/src/main/yang/org-openroadm-resource@2019-05-31.yang
new file mode 100644 (file)
index 0000000..3089afd
--- /dev/null
@@ -0,0 +1,350 @@
+module org-openroadm-resource {
+  namespace "http://org/openroadm/resource";
+  prefix org-openroadm-resource;
+
+  import org-openroadm-interfaces {
+    prefix org-openroadm-interfaces;
+    revision-date 2019-05-31;
+  }
+  import org-openroadm-otn-common-types {
+    prefix org-openroadm-otn-common-types;
+    revision-date 2018-11-30;
+  }
+  import org-openroadm-common-optical-channel-types {
+    prefix org-openroadm-common-optical-channel-types;
+    revision-date 2019-03-29;
+  }
+  import org-openroadm-resource-types {
+    prefix org-openroadm-resource-types;
+    revision-date 2018-11-30;
+  }
+
+  organization
+    "Open ROADM MSA";
+  contact
+    "OpenROADM.org";
+  description
+    "YANG definitions of resources.
+
+      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+      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 2019-05-31 {
+    description
+      "Version 5.1.0";
+  }
+  revision 2019-03-29 {
+    description
+      "Version 5.0.0";
+  }
+  revision 2018-11-30 {
+    description
+      "Version 4.1.0";
+  }
+  revision 2018-09-28 {
+    description
+      "Version 4.0.0";
+  }
+  revision 2018-03-30 {
+    description
+      "Version 3.0.0";
+  }
+  revision 2017-12-15 {
+    description
+      "Version 2.2";
+  }
+  revision 2017-09-29 {
+    description
+      "Version 2.1";
+  }
+  revision 2017-07-28 {
+    description
+      "Version 2.0.1 - added revision-date to imports";
+  }
+  revision 2017-06-26 {
+    description
+      "Version 2.0";
+  }
+  revision 2016-10-14 {
+    description
+      "Version 1.2";
+  }
+
+  grouping eth-attributes {
+    leaf speed {
+      type uint32;
+      description
+        "Set speed of the interface, unit mbps.
+         This is for ETH facility. ";
+    }
+  }
+
+  grouping mc-ttp-attributes {
+    description
+      "Media channel termination point. Models bandwidth allocation in physical media. Network media channels may be provisioned in the spectrum characterized by the frequency limits.";
+    leaf min-freq {
+      type org-openroadm-common-optical-channel-types:frequency-THz;
+      config true;
+      description
+        "Minimum Frequency in THz. Granularity is hardware dependent, based on pixel resolution. eg. ITU 12.5GHz frequency slots. Range covers C+L";
+    }
+    leaf max-freq {
+      type org-openroadm-common-optical-channel-types:frequency-THz;
+      config true;
+      description
+        "Maximum Frequency in THz. Granularity is hardware dependent, based on pixel resolution. eg. ITU 12.5GHz frequency slots. Range covers C+L";
+    }
+  }
+
+  grouping nmc-ctp-attributes {
+    description
+      "Network Media Channel attributes";
+    leaf frequency {
+      type org-openroadm-common-optical-channel-types:frequency-THz;
+      config true;
+      description
+        "Center Frequency in THz.  This is not constrained by mc-capabilities.  It must fit (when combined with width) inside any containing media channel.";
+    }
+    leaf width {
+      type org-openroadm-common-optical-channel-types:frequency-GHz;
+      config true;
+      description
+        "Frequency width in GHz.  This is not constrained by mc-capabilities.  It must fit (when combined with frequency) inside any containing media channel.";
+    }
+  }
+
+  grouping och-attributes {
+    description
+      "Optical Channel attributes";
+    leaf rate {
+      type identityref {
+        base org-openroadm-common-optical-channel-types:och-rate-identity;
+      }
+      description
+        "rate";
+    }
+    leaf frequency {
+      type org-openroadm-common-optical-channel-types:frequency-THz;
+      description
+        "Center Frequency in THz.";
+    }
+    leaf width {
+      type org-openroadm-common-optical-channel-types:frequency-GHz;
+      config false;
+      description
+        "Frequency width in GHz.";
+    }
+    leaf modulation-format {
+      type org-openroadm-common-optical-channel-types:modulation-format;
+      description
+        "Modulation format";
+    }
+  }
+
+  grouping odu-attributes {
+    description
+      "ODU attributes";
+    leaf rate {
+      type identityref {
+        base org-openroadm-otn-common-types:odu-rate-identity;
+      }
+      description
+        "rate identity of the ODU. 'identityref' is used
+         to allow to extend for future higher rates";
+    }
+    container parent-odu-allocation {
+      description
+        "parent odu allocation";
+      leaf trib-port-number {
+        type uint16 {
+          range "1 .. 80";
+        }
+        description
+          "Assigned tributary port number in parent OPU";
+      }
+      leaf-list trib-slots {
+        type uint16 {
+          range "1 .. 80";
+        }
+        min-elements 1;
+        max-elements "80";
+        description
+          "Assigned trib slots occupied in parent OPU MSI";
+      }
+    }
+  }
+
+  grouping otu-attributes {
+    description
+      "OTU attributes";
+    leaf rate {
+      type identityref {
+        base org-openroadm-otn-common-types:otu-rate-identity;
+      }
+      description
+        "rate identity of the OTU. 'identityref' is used
+         to allow to extend for future higher rates";
+    }
+  }
+
+  grouping resource-reporting {
+    leaf type {
+      type identityref {
+        base org-openroadm-interfaces:interface-type;
+      }
+      mandatory true;
+      description
+        "The type of the interface.";
+    }
+    container ethernet {
+      when "type = 'ethernetCsmacd'";
+      description
+        "Ethernet Interfaces";
+      uses eth-attributes;
+    }
+    container mc-ttp {
+      when "type = 'mediaChannelTrailTerminationPoint'";
+      description
+        "Media Channel Trail Termination Point (MC-TTP)";
+      uses mc-ttp-attributes;
+    }
+    container nmc-ctp {
+      when "type = 'networkMediaChannelConnectionTerminationPoint'";
+      description
+        "Network Media Channel Connection Termination Point (NMC-CTP)";
+      uses nmc-ctp-attributes;
+    }
+    container och {
+      when "type = 'opticalChannel'";
+      description
+        "Optical Channel (OCh):
+         Models the optical channel interfaces for an Optical White Box.";
+      uses och-attributes;
+    }
+    container odu {
+      when "type = 'otnOdu'";
+      presence "Attribute Nodes for Optical Data Unit (ODU)";
+      description
+        "Optical Channel Data Unit (ODU)";
+      uses odu-attributes;
+    }
+    container otu {
+      when "type = 'otnOtu'";
+      description
+        "Optical Channel Transport Unit (OTU)";
+      uses otu-attributes;
+    }
+  }
+
+  grouping resource {
+    description
+      "This resource identifier is intended to provide a generic identifier
+       for any resource that can be used without specific knowledge of
+       the resource.";
+    container device {
+      description
+        "Device of the resource, used only when the system using this
+         model report on more than one device. ";
+      uses org-openroadm-resource-types:device-id;
+    }
+    container resource {
+      choice resource {
+        case circuit-pack {
+          uses org-openroadm-resource-types:circuit-pack-name;
+        }
+        case port {
+          container port {
+            uses org-openroadm-resource-types:port-name;
+          }
+        }
+        case connection {
+          uses org-openroadm-resource-types:connection-name {
+            refine "connection-name" {
+              mandatory true;
+            }
+          }
+        }
+        case physical-link {
+          uses org-openroadm-resource-types:physical-link-name;
+        }
+        case internal-link {
+          uses org-openroadm-resource-types:internal-link-name;
+        }
+        case shelf {
+          uses org-openroadm-resource-types:shelf-name;
+        }
+        case srg {
+          uses org-openroadm-resource-types:srg-number {
+            refine "srg-number" {
+              mandatory true;
+            }
+          }
+        }
+        case degree {
+          uses org-openroadm-resource-types:degree-number {
+            refine "degree-number" {
+              mandatory true;
+            }
+          }
+        }
+        case service {
+          uses org-openroadm-resource-types:service-name;
+        }
+        case interface {
+          uses org-openroadm-resource-types:interface-name;
+        }
+        case odu-sncp-pg {
+          uses org-openroadm-resource-types:odu-sncp-pg-name;
+        }
+        case other {
+          uses org-openroadm-resource-types:other-resource-id;
+        }
+        case device {
+          uses org-openroadm-resource-types:device-id {
+            refine "node-id" {
+              mandatory true;
+            }
+          }
+        }
+        case line-amplifier {
+          uses org-openroadm-resource-types:amp-number;
+        }
+        case xponder {
+          uses org-openroadm-resource-types:xpdr-number;
+        }
+        case versioned-service {
+          uses org-openroadm-resource-types:versioned-service-name;
+        }
+        case temp-service {
+          uses org-openroadm-resource-types:temp-service-name;
+        }
+      }
+    }
+    container resourceType {
+      uses org-openroadm-resource-types:resource-type;
+    }
+  }
+}
diff --git a/ordmodels/common/src/main/yang/org-openroadm-service-format@2019-05-31.yang b/ordmodels/common/src/main/yang/org-openroadm-service-format@2019-05-31.yang
new file mode 100644 (file)
index 0000000..32bff7d
--- /dev/null
@@ -0,0 +1,74 @@
+module org-openroadm-service-format {
+  namespace "http://org/openroadm/service-format";
+  prefix org-openroadm-service-format;
+
+  organization
+    "Open ROADM MSA";
+  contact
+    "OpenROADM.org";
+  description
+    "YANG definitions of service format.
+
+      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+      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 2019-05-31 {
+    description
+      "Version 5.1.0";
+  }
+
+  typedef service-format {
+    type enumeration {
+      enum "Ethernet" {
+        value 1;
+      }
+      enum "OTU" {
+        value 2;
+      }
+      enum "OC" {
+        value 3;
+      }
+      enum "STM" {
+        value 4;
+      }
+      enum "OMS" {
+        value 5;
+      }
+      enum "ODU" {
+        value 6;
+      }
+      enum "OTM" {
+        value 7;
+      }
+      enum "other" {
+        value 8;
+        description
+          "Used in bookending use case when service-format is not standardized by the Open ROADM MSA.
+           When set to other, the specific service format/rate is specified by other-service-format-and-rate";
+      }
+    }
+  }
+}
diff --git a/ordmodels/service/src/main/yang/org-openroadm-ber-test@2019-05-31.yang b/ordmodels/service/src/main/yang/org-openroadm-ber-test@2019-05-31.yang
new file mode 100644 (file)
index 0000000..62616cd
--- /dev/null
@@ -0,0 +1,265 @@
+module org-openroadm-ber-test {
+  namespace "http://org/openroadm/ber-test";
+  prefix org-openroadm-ber-test;
+
+  import org-openroadm-common-service-types {
+    prefix org-openroadm-common-service-types;
+    revision-date 2019-05-31;
+  }
+  import org-openroadm-common-ber-test {
+    prefix org-openroadm-common-ber-test;
+    revision-date 2018-11-30;
+  }
+  import ietf-yang-types {
+    prefix yang;
+    revision-date 2013-07-15;
+  }
+
+  organization
+    "Open ROADM MSA";
+  contact
+    "OpenROADM.org";
+  description
+    "YANG definitions for ber test
+
+      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+      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 2019-05-31 {
+    description
+      "Version 5.1.0";
+  }
+  revision 2019-03-29 {
+    description
+      "Version 5.0.0";
+  }
+  revision 2018-11-30 {
+    description
+      "Version 4.1.0";
+  }
+  revision 2018-09-28 {
+    description
+      "Version 4.0.0";
+  }
+  revision 2018-05-30 {
+    description
+      "Version 3.1.0";
+  }
+  revision 2018-03-30 {
+    description
+      "Version 3.0.0";
+  }
+
+  identity service-rpc-identity {
+    description
+      "Identifies the service rpc associated with this callback";
+  }
+
+  identity ber-test {
+    base service-rpc-identity;
+    description
+      "Identity for the ber-test rpc";
+  }
+
+  grouping ber-measurement {
+    leaf ber-passed {
+      type boolean;
+    }
+    leaf target-prefec-ber {
+      type decimal64 {
+        fraction-digits 4;
+      }
+    }
+    leaf measured-prefec-ber {
+      type decimal64 {
+        fraction-digits 4;
+      }
+    }
+  }
+
+  grouping ber-test-result-details-container {
+    container ber-results {
+      uses org-openroadm-common-ber-test:ber-test-options-container;
+      leaf line-rate {
+        type uint64;
+        units "seconds";
+      }
+      container a-end-ber-measurement {
+        uses ber-measurement;
+      }
+      container z-end-ber-measurement {
+        uses ber-measurement;
+      }
+    }
+  }
+  grouping ber-test-complex-result-details-container {
+    container ber-test-result-details {
+      list supporting-service-details {
+        key "index";
+        leaf index {
+          type uint16;
+          description
+            "Local id for list ";
+        }
+        uses org-openroadm-common-service-types:service-identifiers-container;
+        uses org-openroadm-common-service-types:service-ends-container;
+        leaf line-rate {
+          type uint64;
+          units "seconds";
+        }
+        container a-end-ber-measurement {
+          uses ber-measurement;
+        }
+        container z-end-ber-measurement {
+          uses ber-measurement;
+        }
+      }
+    }
+  }
+  grouping ber-test-complex-result-container {
+    container ber-results {
+      uses org-openroadm-common-ber-test:ber-test-options-container;
+      uses ber-test-complex-result-details-container;
+    }
+  }
+  rpc ber-test {
+    description
+      "This is the ber-test rpc. It is supported for a service in the service-list.";
+    input {
+      uses org-openroadm-common-service-types:sdnc-request-header;
+      leaf service-name {
+        type string;
+        mandatory true;
+      }
+      uses org-openroadm-common-ber-test:ber-test-options-container;
+    }
+    output {
+      uses org-openroadm-common-service-types:configuration-response-common;
+    }
+  }
+rpc complex-ber-test {
+    description
+      "This is the complex-ber-test rpc. It is supported for a service in the service-list.";
+    input {
+      uses org-openroadm-common-service-types:sdnc-request-header;
+      leaf service-name {
+        type string;
+        mandatory true;
+      }
+      uses org-openroadm-common-ber-test:complex-ber-test-options-container;
+    }
+    output {
+      uses org-openroadm-common-service-types:configuration-response-common;
+    }
+  }
+  rpc service-rpc-ber-test-async-callback {
+    description
+      "This is the callback notification that the controller invokes on the carrier system.";
+    input {
+      uses org-openroadm-common-service-types:configuration-response-common;
+      uses org-openroadm-common-service-types:service-identifiers-container;
+      leaf rpc-timestamp {
+        type yang:date-and-time;
+        units "seconds";
+        description
+          "timestamp of the initial rpc command that invoked the test";
+      }
+      leaf timestamp {
+        type yang:date-and-time;
+        units "seconds";
+        description
+          "timestamp of the callback/notification.";
+      }
+      uses ber-test-result-details-container;
+    }
+    output {
+      uses org-openroadm-common-service-types:configuration-response-common;
+    }
+  }
+  rpc complex-service-rpc-ber-test-async-callback {
+    description
+      "This is the callback notification that the controller invokes on the carrier system.";
+    input {
+      uses org-openroadm-common-service-types:configuration-response-common;
+      uses org-openroadm-common-service-types:service-identifiers-container;
+      leaf rpc-timestamp {
+        type yang:date-and-time;
+        units "seconds";
+        description
+          "timestamp of the initial rpc command that invoked the test";
+      }
+      leaf timestamp {
+        type yang:date-and-time;
+        units "seconds";
+        description
+          "timestamp of the callback/notification.";
+      }
+      uses ber-test-complex-result-container;
+    }
+    output {
+      uses org-openroadm-common-service-types:configuration-response-common;
+    }
+  }
+  notification service-notification-ber-test {
+    description
+      "This is the callback notification that the controller invokes on the carrier system.";
+    uses org-openroadm-common-service-types:configuration-response-common;
+    uses org-openroadm-common-service-types:service-identifiers-container;
+    leaf rpc-timestamp {
+      type yang:date-and-time;
+      units "seconds";
+      description
+        "timestamp of the initial rpc command that invoked the test";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      units "seconds";
+      description
+        "timestamp of the callback/notification.";
+    }
+    uses ber-test-result-details-container;
+  }
+  notification complex-service-notification-ber-test {
+    description
+      "This is the callback notification that the controller invokes on the carrier system.";
+    uses org-openroadm-common-service-types:configuration-response-common;
+    uses org-openroadm-common-service-types:service-identifiers-container;
+    leaf rpc-timestamp {
+      type yang:date-and-time;
+      units "seconds";
+      description
+        "timestamp of the initial rpc command that invoked the test";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      units "seconds";
+      description
+        "timestamp of the callback/notification.";
+    }
+    uses ber-test-complex-result-details-container;
+  }
+}
+
diff --git a/ordmodels/service/src/main/yang/org-openroadm-common-ber-test@2018-11-30.yang b/ordmodels/service/src/main/yang/org-openroadm-common-ber-test@2018-11-30.yang
new file mode 100644 (file)
index 0000000..7468d2c
--- /dev/null
@@ -0,0 +1,79 @@
+module org-openroadm-common-ber-test {
+  namespace "http://org/openroadm/common-ber-test";
+  prefix org-openroadm-common-ber-test;
+
+  organization
+    "Open ROADM MSA";
+  contact
+    "OpenROADM.org";
+  description
+    "YANG definitions for ber test that are common to the ber-test rpc and its
+     associated callback rpc (service-rpc-async-callback)
+
+      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+      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 2018-11-30 {
+    description
+      "Version 4.1.0";
+  }
+  revision 2018-03-30 {
+    description
+      "Version 3.0.0";
+  }
+
+  grouping ber-test-options-container {
+    container ber-options {
+      leaf target-prefec-ber {
+        type decimal64 {
+          fraction-digits 4;
+        }
+      }
+      leaf duration {
+        type uint16;
+        units "seconds";
+      }
+      leaf pm-polling-timeout {
+        type uint16;
+        units "seconds";
+      }
+      leaf retry-attempts {
+        type uint16;
+      }
+    }
+  }
+  grouping complex-ber-test-options-container {
+    container complex-ber-options {
+      uses ber-test-options-container;
+      leaf is-complex-result{
+        type boolean;
+        default "false";
+        description
+          "True: Indicates that the results should be provided via complex-service-rpc-ber-test-async-callback. False: Indicates that the results should be provided via  service-rpc-ber-test-async-callback";
+      }
+    }
+  }
+}
diff --git a/ordmodels/service/src/main/yang/org-openroadm-common-service-types@2016-10-14.yang b/ordmodels/service/src/main/yang/org-openroadm-common-service-types@2016-10-14.yang
deleted file mode 100644 (file)
index ef0e8bc..0000000
+++ /dev/null
@@ -1,516 +0,0 @@
-module org-openroadm-common-service-types {
-  namespace "http://org/openroadm/common/service/types";
-  prefix org-openroadm-common-service-types;
-
-  import ietf-yang-types {
-    prefix yang;
-  }
-  import ietf-inet-types {
-    prefix inet;
-  }
-  import org-openroadm-routing-constraints {
-    prefix org-openroadm-routing-constraints;
-    revision-date 2016-10-14;
-  }
-  import org-openroadm-topology {
-    prefix org-openroadm-topology;
-    revision-date 2016-10-14;
-  }
-  import org-openroadm-common-types {
-    prefix org-openroadm-common-types;
-    revision-date 2016-10-14;
-  }
-  import org-openroadm-resource-types {
-    prefix org-openroadm-resource-types;
-    revision-date 2016-10-14;
-  }
-
-  organization
-    "Open ROADM MSA";
-  contact
-    "OpenROADM.org";
-  description
-    "YANG definitions of common service types.
-
-      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 2016-10-14 {
-    description
-      "Version 1.2";
-  }
-
-  grouping configuration-response-common {
-    container configuration-response-common {
-      leaf request-id {
-        type string;
-        mandatory true;
-      }
-      leaf response-code {
-        type string;
-        mandatory true;
-      }
-      leaf response-message {
-        type string;
-      }
-      leaf ack-final-indicator {
-        type string;
-        mandatory true;
-      }
-    }
-  }
-
-  grouping response-parameters {
-    container response-parameters {
-      uses org-openroadm-routing-constraints:routing-constraints;
-    }
-  }
-
-  grouping service-endpoint {
-    leaf service-format {
-      type service-format;
-      mandatory true;
-      description
-        "Format of the requested service: Ethernet, OTU, etc.";
-    }
-    leaf service-rate {
-      when "../service-format!='OMS'"{
-        description "service rate not applicable when service
-        format is roadmline";
-      }
-      type uint32;
-      mandatory true;
-      description
-        "Rate of the requested service in GBps";
-    }
-    leaf clli {
-      type string;
-      mandatory true;
-      description
-        "CLLI";
-    }
-    uses org-openroadm-resource-types:device-id;
-    container site;
-    container tx-direction {
-      uses service-port;
-      uses service-lgx;
-      uses service-tail;
-    }
-    container rx-direction {
-      uses service-port;
-      uses service-lgx;
-      uses service-tail;
-    }
-    leaf optic-type {
-      type org-openroadm-common-types:optic-types;
-    }
-    container router {
-      description
-        "Needed for communication with DWDM pluggable";
-      leaf node-id {
-        type string;
-        description
-          "Node id. This is reported against the service, but may not get reflected in the service in the network.";
-      }
-      leaf ip-address {
-        type inet:ip-address;
-        description
-          "Router IP Address. This is reported against the service, but may not get reflected in the service in the network.";
-      }
-      leaf url {
-        type string;
-        description
-          "URL needed for communication with DWDM pluggable. This is reported against the service, but may not get reflected in the service in the network.";
-      }
-    }
-    leaf user-label {
-      type string;
-      mandatory false;
-      description
-        "Label for service endpoint, defined by the user";
-    }
-  }
-
-  typedef rpc-actions {
-    description "rpc-actions include all the rpc methods";
-    type enumeration {
-      enum service-create {
-        value "1";
-      }
-      enum service-feasibility-check {
-        value "2";
-      }
-      enum service-delete {
-        value "3";
-      }
-      enum equipment-notification {
-        value "4";
-      }
-      enum temp-service-create {
-        value "5";
-      }
-      enum temp-service-delete {
-        value "6";
-      }
-      enum service-roll {
-        value "7";
-      }
-      enum service-reconfigure {
-        value "8";
-      }
-      enum service-restoration {
-        value "9";
-      }
-      enum service-reversion {
-        value "10";
-      }
-      enum service-reroute {
-        value "11";
-      }
-      enum service-reroute-confirm {
-        value "12";
-      }
-      enum network-re-optimization {
-        value "13";
-      }
-    }
-  }
-
-  grouping sdnc-request-header {
-    container sdnc-request-header {
-      leaf request-id {
-        type string;
-      }
-      leaf rpc-action {
-        type rpc-actions;
-      }
-      leaf notification-url {
-        type string;
-      }
-      leaf request-system-id{
-        type string;
-      }
-    }
-  }
-
-  grouping service-port {
-    container port {
-      leaf port-device-name {
-        type string;
-      }
-      leaf port-type {
-        type string;
-      }
-      leaf port-name {
-        type string;
-      }
-      leaf port-rack {
-        type string;
-      }
-      leaf port-shelf {
-        type string;
-      }
-      leaf port-slot {
-        type string;
-      }
-      leaf port-sub-slot {
-        type string;
-      }
-    }
-  }
-
-  grouping service-lgx {
-    container lgx {
-      leaf lgx-device-name {
-        type string;
-      }
-      leaf lgx-port-name {
-        type string;
-      }
-      leaf lgx-port-rack {
-        type string;
-      }
-      leaf lgx-port-shelf {
-        type string;
-      }
-    }
-  }
-
-  grouping service-tail {
-    container tail {
-      container tail-roadm {
-        description
-          "ROADM on which the transponder is connected to (TID, IP Address,
-           or FQDN)";
-        uses org-openroadm-resource-types:device-id;
-      }
-      container xponder-port {
-        description
-          "Muxponder port used in tail, that will get used as a service endpoint.";
-        leaf circuit-pack-name {
-          type string;
-        }
-        leaf port-name {
-          type string;
-        }
-      }
-      leaf tail-roadm-port-aid {
-        type string;
-        description
-          "This will provide the transponder port needed to inter-city ROADM
-           connection";
-      }
-      leaf tail-roadm-port-rack-location {
-        type string;
-        description
-          "Transponder's location";
-      }
-    }
-  }
-
-  grouping service-information {
-    leaf due-date {
-      type yang:date-and-time;
-      description
-        "Date and time service to be turn up. If time is not specified for a given date, default to  midnight. Service turned up immediately if no due date is specified";
-    }
-    leaf end-date {
-      type yang:date-and-time;
-      description
-        "Date and time service to be removed";
-      mandatory false;
-    }
-    leaf nc-code {
-      type string;
-      description
-        "NC code applied to wavelength service only.This is reported against the service, but may not get reflected in the service in the network.";
-    }
-    leaf nci-code {
-      type string;
-      description
-        "NCI code applied to wavelength service only.This is reported against the service, but may not get reflected in the service in the network.";
-    }
-    leaf secondary-nci-code {
-      type string;
-      description
-        "NC code applied to wavelength service only.This is reported against the service, but may not get reflected in the service in the network.";
-    }
-    leaf customer {
-      type string;
-      description
-        "To be included in ticket information.This is reported against the service, but may not get reflected in the service in the network.";
-    }
-    leaf customer-contact {
-      type string;
-      description
-        "Customer contact information To be included in ticket information. This is reported against the service, but may not get reflected in the service in the network.";
-    }
-    leaf operator-contact {
-      type string;
-      description
-        "Operator contact information to be included in ticket information. This is reported against the service, but may not get reflected in the service in the network.";
-    }
-  }
-
-  grouping service {
-    leaf service-name {
-      type string;
-      description
-        "Identifier for the service to be created in
-         the ROADM network, e.g., CLFI, CLCI, etc.";
-      mandatory true;
-    }
-    leaf common-id {
-      type string;
-      description
-        "To be used by the ROADM controller to identify the routing
-         constraints received from planning application (PED).";
-    }
-    uses sdnc-request-header;
-    leaf connection-type {
-      type connection-type;
-      mandatory true;
-      description
-        "Connection type";
-    }
-    leaf lifecycle-state {
-      type org-openroadm-common-types:lifecycle-state;
-      description
-        "Lifecycle State of service. Whether it is planned, deployed, in maintenance, etc.";
-    }
-    leaf administrative-state {
-      type org-openroadm-common-types:state;
-      description
-        "Administrative State: Intended state of service";
-    }
-    leaf operational-state {
-      type org-openroadm-common-types:state;
-      config false;
-      description
-        "Operational State: Actual state of service";
-    }
-    leaf condition {
-      type service-condition;
-      description
-        "Service Condition: Additional information about the state of the service. Only sent when applicable.";
-    }
-    container service-a-end {
-      uses service-endpoint;
-    }
-    container service-z-end {
-      uses service-endpoint;
-    }
-    uses org-openroadm-routing-constraints:routing-constraints;
-    uses service-information;
-    leaf latency {
-      type uint32;
-      description
-        "Latency on service";
-    }
-    leaf-list fiber-span-srlgs {
-      type string;
-      description
-        "Shared risk link group identifiers";
-    }
-    list equipment-srgs {
-      key "srg-number";
-      uses org-openroadm-resource-types:srg-number;
-    }
-    leaf-list supporting-service-name {
-      description
-        "The service name that this runs over top. If connection-type is service, then this is the related
-         connection-type = infrastructure service, for example.";
-      type string;
-    }
-    container topology {
-      uses org-openroadm-topology:topology;
-    }
-  }
-
-  grouping service-notification-result {
-    leaf service-name {
-      type string;
-      description
-        "Identifier for the service e.g., CLFI, CLCI, etc.";
-      mandatory true;
-    }
-    leaf actual-date {
-      type yang:date-and-time;
-      description
-        "Actual date and time (if successful)";
-    }
-  }
-
-  typedef service-format {
-    type enumeration {
-      enum "Ethernet" {
-        value 1;
-      }
-      enum "OTU" {
-        value 2;
-      }
-      enum "OC" {
-        value 3;
-      }
-      enum "STM" {
-        value 4;
-      }
-      enum "OMS" {
-        value 5;
-      }
-      enum "ODU" {
-        value 6;
-      }
-      enum "OTM" {
-        value 7;
-      }
-    }
-  }
-
-  typedef service-notification-types {
-    type enumeration {
-      enum "service-create-result" {
-        value 1;
-      }
-      enum "service-reconfigure-result" {
-        value 2;
-      }
-      enum "service-delete-result" {
-        value 3;
-      }
-      enum "service-roll-result" {
-        value 4;
-      }
-      enum "service-revert-result" {
-        value 5;
-      }
-      enum "service-reroute-result" {
-        value 6;
-      }
-      enum "service-restoration-result" {
-        value 7;
-      }
-      //Add Martial
-      enum "service-feasibility-check-result" {
-        value 8;
-      }
-    }
-  }
-
-  typedef connection-type {
-    type enumeration {
-      enum "service" {
-        value 1;
-      }
-      enum "infrastructure" {
-        value 2;
-      }
-      enum "roadm-line" {
-        value 3;
-      }
-    }
-  }
-
-  typedef service-condition {
-    type enumeration {
-      enum "restored-temporarily" {
-        value 1;
-      }
-      enum "re-routed-temporarily" {
-        value 2;
-      }
-      enum "activated-for-service" {
-        value 3;
-      }
-      enum "activated-for-further-check" {
-        value 4;
-      }
-      enum "activated-for-troubleshooting-failure" {
-        value 5;
-      }
-    }
-  }
-}
diff --git a/ordmodels/service/src/main/yang/org-openroadm-common-service-types@2019-05-31.yang b/ordmodels/service/src/main/yang/org-openroadm-common-service-types@2019-05-31.yang
new file mode 100644 (file)
index 0000000..188263a
--- /dev/null
@@ -0,0 +1,1177 @@
+module org-openroadm-common-service-types {
+  namespace "http://org/openroadm/common/service/types";
+  prefix org-openroadm-common-service-types;
+
+  import ietf-yang-types {
+    prefix yang;
+    revision-date 2013-07-15;
+  }
+  import ietf-inet-types {
+    prefix inet;
+    revision-date 2013-07-15;
+  }
+  import org-openroadm-routing-constraints {
+    prefix org-openroadm-routing-constraints;
+    revision-date 2019-03-29;
+  }
+  import org-openroadm-topology {
+    prefix org-openroadm-topology;
+    revision-date 2019-05-31;
+  }
+  import org-openroadm-common-equipment-types {
+    prefix org-openroadm-common-equipment-types;
+    revision-date 2018-11-30;
+  }
+  import org-openroadm-common-state-types {
+    prefix org-openroadm-common-state-types;
+    revision-date 2018-11-30;
+  }
+  import org-openroadm-common-node-types {
+    prefix org-openroadm-common-node-types;
+    revision-date 2018-11-30;
+  }
+  import org-openroadm-resource-types {
+    prefix org-openroadm-resource-types;
+    revision-date 2018-11-30;
+  }
+  import org-openroadm-otn-common-types {
+    prefix org-openroadm-otn-common-types;
+    revision-date 2018-11-30;
+  }
+  import org-openroadm-common-types {
+    prefix org-openroadm-common-types;
+    revision-date 2019-05-31;
+  }
+  import org-openroadm-equipment-states-types {
+    prefix org-openroadm-equipment-states-types;
+    revision-date 2018-11-30;
+  }
+  import org-openroadm-service-format {
+    prefix org-openroadm-service-format;
+    revision-date 2019-05-31;
+  }
+
+  organization
+    "Open ROADM MSA";
+  contact
+    "OpenROADM.org";
+  description
+    "YANG definitions of common service types.
+
+      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+      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 2019-05-31 {
+    description
+      "Version 5.1.0";
+  }
+  revision 2019-03-29 {
+    description
+      "Version 5.0.0";
+  }
+  revision 2018-11-30 {
+    description
+      "Version 4.1.0";
+  }
+  revision 2018-09-28 {
+    description
+      "Version 4.0.0";
+  }
+  revision 2018-05-30 {
+    description
+      "Version 3.1.0";
+  }
+  revision 2018-03-30 {
+    description
+      "Version 3.0.0";
+  }
+  revision 2017-12-15 {
+    description
+      "Version 2.2";
+  }
+  revision 2017-09-29 {
+    description
+      "Version 2.1";
+  }
+  revision 2017-07-28 {
+    description
+      "Version 2.0.1 - added revision-date to imports";
+  }
+  revision 2017-06-26 {
+    description
+      "Version 2.0";
+  }
+  revision 2016-10-14 {
+    description
+      "Version 1.2";
+  }
+
+  identity service-resiliency-type-identity {
+    description
+      "A unique resiliency type identification of the service.";
+  }
+
+  identity unprotected {
+    base service-resiliency-type-identity;
+    description
+      "the service is not protected in the OpenROADM layer";
+  }
+
+  identity unprotected-diversely-routed {
+    base service-resiliency-type-identity;
+    description
+      "the service is not protected in the OpenROADM layer, but may be protected in a higher layer
+          a coupled service that may be routed partially or fully disjointly is defined";
+  }
+
+  identity protected {
+    base service-resiliency-type-identity;
+    description
+      "the service is protected in the OpenROADM layer : the protection is handled
+       autonomously in this layer";
+  }
+
+  identity restorable {
+    base service-resiliency-type-identity;
+    description
+      "the service can be restored autonomously in the OpenROADM layer";
+  }
+
+  identity external-trigger-restorable {
+    base service-resiliency-type-identity;
+    description
+      "the service can be restored in the OpenROADM layer, but the restoration is triggered
+       at a higher layer through service models' rpc";
+  }
+
+  typedef rpc-actions {
+    type enumeration {
+      enum "service-create" {
+        value 1;
+      }
+      enum "service-feasibility-check" {
+        value 2;
+      }
+      enum "service-delete" {
+        value 3;
+      }
+      enum "equipment-notification" {
+        value 4;
+      }
+      enum "temp-service-create" {
+        value 5;
+      }
+      enum "temp-service-delete" {
+        value 6;
+      }
+      enum "service-roll" {
+        value 7;
+      }
+      enum "service-reconfigure" {
+        value 8;
+      }
+      enum "service-restoration" {
+        value 9;
+      }
+      enum "service-reversion" {
+        value 10;
+      }
+      enum "service-reroute" {
+        value 11;
+      }
+      enum "service-reroute-confirm" {
+        value 12;
+      }
+      enum "network-re-optimization" {
+        value 13;
+      }
+      enum "service-feasibility-check-bulk" {
+        value 14;
+      }
+      enum "ber-test" {
+        value 15;
+      }
+    }
+    description
+      "rpc-actions include all the rpc methods";
+  }
+
+  typedef ethernet-encoding-type {
+    type enumeration {
+      enum "10GBASE-W" {
+        value 1;
+      }
+      enum "10GBASE-R" {
+        value 2;
+      }
+    }
+  }
+
+  typedef mapping-mode-type {
+    type enumeration {
+      enum "GFP-F" {
+        value 1;
+        reference "GFP-F - ITU-T G.7041 SubClause 7.1, Payload Only";
+      }
+      enum "GFP-E" {
+        value 2;
+        reference "GFP-E - ITU-T G.7041 SubClause 7.9, Payload + Preamble + Ordered Sets";
+      }
+      enum "PCS-Transparent" {
+        value 3;
+        reference "PCS-Transparent - ITU-T G.709 Subclause 17.2 , CBR10G3 mapping to ODU2e";
+      }
+    }
+  }
+
+  typedef service-layer-type {
+    type enumeration {
+      enum "wdm" {
+        value 1;
+      }
+      enum "otn" {
+        value 2;
+      }
+    }
+  }
+
+  typedef service-notification-types {
+    type enumeration {
+      enum "service-create-result" {
+        value 1;
+      }
+      enum "service-reconfigure-result" {
+        value 2;
+      }
+      enum "service-delete-result" {
+        value 3;
+      }
+      enum "service-roll-result" {
+        value 4;
+      }
+      enum "service-revert-result" {
+        value 5;
+      }
+      enum "service-reroute-result" {
+        value 6;
+      }
+      enum "service-restoration-result" {
+        value 7;
+      }
+    }
+  }
+
+  typedef connection-type {
+    type enumeration {
+      enum "service" {
+        value 1;
+      }
+      enum "infrastructure" {
+        value 2;
+      }
+      enum "roadm-line" {
+        value 3;
+      }
+    }
+  }
+
+  typedef service-condition {
+    type enumeration {
+      enum "restored-temporarily" {
+        value 1;
+      }
+      enum "re-routed-temporarily" {
+        value 2;
+      }
+      enum "activated-for-service" {
+        value 3;
+      }
+      enum "activated-for-further-check" {
+        value 4;
+      }
+      enum "activated-for-troubleshooting-failure" {
+        value 5;
+      }
+    }
+  }
+
+  grouping service-and-supporting-services {
+    description
+        "Service identifiers and supporting services details";
+    uses service-identifiers-container;
+    uses supporting-services-identifiers-and-ends;
+  }
+
+  grouping supporting-services-identifiers-and-ends {
+    container supporting-services {
+      list supporting-service-details {
+        key "index";
+        leaf index {
+          type uint16;
+          description
+            "Service number of the supporting service";
+        }
+        uses service-identifiers-container;
+        uses service-ends-container;
+      }
+    }
+  }
+
+  grouping service-ends-container {
+    container service-a-end {
+      uses service-endpoint-summary;
+    }
+    container service-z-end {
+      uses service-endpoint-summary;
+    }
+  }
+
+  grouping service-endpoint-summary {
+    description
+        "Brief form of service-endpoint";
+    container service-endpoint-details {
+      leaf clli {
+        type string;
+        mandatory true;
+        description
+          "CLLI. Note this CLLI must match the site associated with the device-id of this endpoint";
+      }
+      uses org-openroadm-resource-types:device-id;
+      container tx-direction {
+        uses service-port;
+      }
+      container rx-direction {
+        uses service-port;
+      }
+    }
+  }
+
+  grouping service-identifiers-container {
+    container service-identifiers {
+      leaf service-name {
+        type string;
+      }
+      leaf common-id {
+        type string;
+      }
+      leaf version-number {
+        type uint64;
+      }
+    }
+  }
+
+  grouping configuration-response-common {
+    container configuration-response-common {
+      leaf request-id {
+        type string;
+        mandatory true;
+      }
+      leaf response-code {
+        type string;
+        mandatory true;
+      }
+      leaf response-message {
+        type string;
+      }
+      leaf ack-final-indicator {
+        type string;
+        mandatory true;
+      }
+    }
+  }
+
+  grouping response-parameters {
+    container response-parameters {
+      description
+        "Violated soft constraints";
+      uses org-openroadm-routing-constraints:routing-constraints;
+    }
+  }
+
+  grouping subrate-eth-sla {
+    container subrate-eth-sla {
+      presence "Explicit assignment of subrate ethernet allocation";
+      description
+        "SLA (Service Level Agreement) for subrate Ethernet";
+      uses org-openroadm-common-types:eth-rate-and-burst-size;
+    }
+  }
+
+  grouping service-endpoint {
+    leaf service-format {
+      type org-openroadm-service-format:service-format;
+      mandatory true;
+      description
+        "Format of the requested service: Ethernet, OTU, etc.";
+    }
+    leaf service-rate {
+      when "../service-format != 'OMS' and ../service-format != 'ODU'" {
+        description
+          "service rate not applicable when service
+           format is roadmline or ODU; valid for OTU since service-rate has
+           already been supported for wdm layer OTU services (100 for OTU4)";
+      }
+      type uint32;
+      description
+        "Rate of the requested service in GBps";
+    }
+    leaf other-service-format-and-rate {
+      type string;
+      description
+        "Used when service-format is set to other in the bookend xponder use case.
+         The use of other-service-format-and-rate is not standardized in the Open ROADM MSA
+         and intended to allow the controller to support non-Open ROADM service formats.
+         This value encodes both the service format and the rate supported.
+         This field should not be specified when service format != other.";
+    }
+    leaf otu-service-rate {
+      when "../service-format = 'OTU'" {
+        description
+          "only applicable for OTU services";
+      }
+      type identityref {
+        base org-openroadm-otn-common-types:otu-rate-identity;
+      }
+      description
+        "OTU Rate of the requested service";
+    }
+    leaf odu-service-rate {
+      when "../service-format = 'ODU'" {
+        description
+          "only applicable for ODU services";
+      }
+      type identityref {
+        base org-openroadm-otn-common-types:odu-rate-identity;
+      }
+      description
+        "ODU Rate of the requested service";
+    }
+    leaf ethernet-encoding {
+      when
+        "(../service-format='Ethernet')
+         and
+         (../service-rate=10)" {
+        description
+          "Applicable only to Ethernet 10G services";
+      }
+      type ethernet-encoding-type;
+      description
+        "Ethernet encoding type";
+    }
+    leaf mapping-mode {
+      when
+        "(../service-format='Ethernet')
+         and
+         (../service-rate=10)" {
+        description
+          "Mapping Mode, currently only defined for Ethernet 10G services";
+      }
+      type mapping-mode-type;
+      description
+        "Mapping mode.";
+    }
+    leaf clli {
+      type string;
+      mandatory true;
+      description
+        "CLLI. Note this CLLI must match the site associated with the device-id of this
+         endpoint";
+    }
+    uses org-openroadm-resource-types:device-id;
+    container tx-direction {
+      uses service-port;
+      uses service-lgx;
+      uses service-tail;
+    }
+    container rx-direction {
+      uses service-port;
+      uses service-lgx;
+      uses service-tail;
+    }
+    leaf optic-type {
+      type org-openroadm-common-equipment-types:optic-types;
+    }
+    container router {
+      description
+        "Needed for communication with DWDM pluggable";
+      leaf node-id {
+        type org-openroadm-common-node-types:node-id-type;
+        description
+          "Node id. This is reported against the service, but may not get reflected in the service in the network.";
+      }
+      leaf ip-address {
+        type inet:ip-address;
+        description
+          "Router IP Address. This is reported against the service, but may not get reflected in the service in the network.";
+      }
+      leaf url {
+        type string;
+        description
+          "URL needed for communication with DWDM pluggable. This is reported against the service, but may not get reflected in the service in the network.";
+      }
+    }
+    leaf user-label {
+      type string;
+      mandatory false;
+      description
+        "Label for service endpoint, defined by the user";
+    }
+    container subrate-eth-sla {
+      when "(../service-format='Ethernet')" {
+        description
+          "For any Ethernet services";
+      }
+      uses org-openroadm-common-service-types:subrate-eth-sla;
+    }
+  }
+
+  grouping sdnc-request-header {
+    container sdnc-request-header {
+      leaf request-id {
+        type string;
+      }
+      leaf rpc-action {
+        type rpc-actions;
+      }
+      leaf notification-url {
+        type string;
+      }
+      leaf request-system-id {
+        type string;
+      }
+    }
+  }
+
+  grouping service-port {
+    container port {
+      description
+        "From the device model perspective the port-device-name plus the port-circuit-pack-name plus the port-name uniquely identifies the port.
+         From the network model perspective the openroadm-topology-ref plus port-device-name plus port-name uniquely identify the termination point in the network model.";
+      leaf port-device-name {
+        type string;
+      }
+      leaf port-circuit-pack-name {
+        type string;
+      }
+      leaf port-type {
+        type string;
+      }
+      leaf port-name {
+        type string;
+      }
+      leaf port-rack {
+        type string;
+      }
+      leaf port-shelf {
+        type string;
+      }
+      leaf port-slot {
+        type string;
+      }
+      leaf port-sub-slot {
+        type string;
+      }
+    }
+  }
+
+  grouping service-lgx {
+    container lgx {
+      leaf lgx-device-name {
+        type string;
+      }
+      leaf lgx-port-name {
+        type string;
+      }
+      leaf lgx-port-rack {
+        type string;
+      }
+      leaf lgx-port-shelf {
+        type string;
+      }
+    }
+  }
+
+  grouping service-tail {
+    container tail {
+      container tail-roadm {
+        description
+          "ROADM on which the transponder is connected to (TID, IP Address,
+           or FQDN)";
+        uses org-openroadm-resource-types:device-id;
+      }
+      container xponder-port {
+        description
+          "Muxponder port used in tail, that will get used as a service endpoint.";
+        leaf circuit-pack-name {
+          type string;
+        }
+        leaf port-name {
+          type string;
+        }
+      }
+      leaf tail-roadm-port-aid {
+        type string;
+        description
+          "This will provide the transponder port needed to inter-city ROADM
+           connection";
+      }
+      leaf tail-roadm-port-rack-location {
+        type string;
+        description
+          "Transponder's location";
+      }
+    }
+  }
+
+  grouping service-information {
+    leaf due-date {
+      type yang:date-and-time;
+      description
+        "Date and time service to be turn up. If time is not specified for a given date, default to midnight. Service turned up immediately if no due date is specified";
+    }
+    leaf end-date {
+      type yang:date-and-time;
+      mandatory false;
+      description
+        "Date and time service to be removed";
+    }
+    uses eventHorizon;
+    leaf nc-code {
+      type string;
+      description
+        "NC code applied to wavelength service only. This is reported against the service, but may not get reflected in the service in the network.";
+    }
+    leaf nci-code {
+      type string;
+      description
+        "NCI code applied to wavelength service only. This is reported against the service, but may not get reflected in the service in the network.";
+    }
+    leaf secondary-nci-code {
+      type string;
+      description
+        "NC code applied to wavelength service only. This is reported against the service, but may not get reflected in the service in the network.";
+    }
+    leaf customer {
+      type string;
+      description
+        "To be included in ticket information. This is reported against the service, but may not get reflected in the service in the network.";
+    }
+    leaf customer-contact {
+      type string;
+      description
+        "Customer contact information to be included in ticket information. This is reported against the service, but may not get reflected in the service in the network.";
+    }
+    leaf operator-contact {
+      type string;
+      description
+        "Operator contact information to be included in ticket information. This is reported against the service, but may not get reflected in the service in the network.";
+    }
+    leaf service-layer {
+      type service-layer-type;
+      default "wdm";
+      description
+        "Layer associated with service (e.g. wdm or otn)";
+    }
+    leaf clli-network-ref {
+      type string;
+      description
+        "Assumption: a service would not span multiple clli-network layers.
+         Reference to the network-id of the clli-network layer.";
+    }
+    leaf openroadm-network-ref {
+      type string;
+      description
+        "Assumption: a service would not span multiple openroadm-network layers.
+         Reference to the network-id of the openroadm-network layer.";
+    }
+    leaf openroadm-topology-ref {
+      type string;
+      description
+        "Assumption: a service would not span multiple topology layers.
+         Reference to the network-id of either the openroadm-topology
+         or the otn-topology layer depending upon service-layer (wdm or otn).";
+    }
+    leaf bandwidth-calendaring {
+      type boolean;
+      description
+        "True if service is active only during a specific time period";
+    }
+    container bw-calendaring-parameters {
+      when "../bandwidth-calendaring = 'true'" {
+        description
+          "Includes all attributes associated with bandwidth calendaring option.
+           Used to set service profile : each service corresponds to one specific
+           time-period. Services defined on complementary time periods can be linked
+           together through the coupled-service attribute ";
+      }
+      list bw-calendaring-coupled-services {
+        key "service-index";
+        leaf service-index {
+          type uint16;
+          description
+            "service-number of the service that may be associated to the considered service";
+        }
+        leaf service-name {
+          type string;
+          description
+            "service-name of the service that may be associated to the considered service in service-list";
+        }
+        leaf common-id {
+          type string;
+          description
+            "common-id of the service that may be associated to the considered service in temp-service-list";
+        }
+        leaf version-number {
+          type uint64;
+          description
+            "common-id of the service that may be associated to the considered service in versioned-service-list";
+        }
+      }
+      list recurrence-pattern {
+        key "recurrence-id";
+        leaf recurrence-id {
+          type uint32;
+          description
+            "id of the pattern defining the time during which the service is active ";
+        }
+        leaf-list day-of-the-week {
+          type enumeration {
+            enum "Monday" {
+              value 1;
+            }
+            enum "Tuesday" {
+              value 2;
+            }
+            enum "Wednesday" {
+              value 3;
+            }
+            enum "Thursday" {
+              value 4;
+            }
+            enum "Friday" {
+              value 5;
+            }
+            enum "Saturday" {
+              value 6;
+            }
+            enum "Sunday" {
+              value 7;
+            }
+          }
+          description
+            "Each day for which the service is active from stat-time to end-time";
+        }
+        leaf start-time {
+          type string {
+            pattern "\\d{2}:\\d{2}:\\d{2}";
+          }
+          description
+            "start time expressed as hour:min:seconds";
+        }
+        leaf end-time {
+          type string {
+            pattern "\\d{2}:\\d{2}:\\d{2}";
+          }
+          description
+            "end time expressed as hour:min:seconds";
+        }
+      }
+    }
+  }
+
+  grouping routing-metric {
+    container routing-metric {
+      description
+        "Describes the metrics used to route a service.
+         All parameters of integer type, to set the priority of the routing criterion
+         '0' means the criterion is not used,
+         '1'coresponds to the highest priority,
+         '255'coresponds to the lowest priority.
+         Priority might be handled in several way : 1) To select one from several paths with the same metrics,
+         using lower priority metrics until metrics calculated allow the selection; 2) Using priority as
+         a weight for composite metric calculation";
+      leaf wdm-hop-count {
+        type uint8 {
+          range "0..255";
+        }
+        default "1";
+        description
+          "Metric corresponding to the number of hop in the wdm layer";
+      }
+      leaf otn-hop-count {
+        type uint8 {
+          range "0..255";
+        }
+        default "0";
+        description
+          "Metric corresponding to the number of hop in the otn layer";
+      }
+      leaf wdm-load {
+        type uint8 {
+          range "0..255";
+        }
+        default "0";
+        description
+          "Metric corresponding to the load of the wdm layer
+           Can be used to avoid using heavy loaded links ";
+      }
+      leaf otn-load {
+        type uint8 {
+          range "0..255";
+        }
+        default "0";
+        description
+          "Metric corresponding to the load of the otn layer.
+           Can be used to avoid using heavy loaded links/switchs ";
+      }
+      leaf latency {
+        type uint8 {
+          range "0..255";
+        }
+        default "0";
+        description
+          "Metric corresponding to the latency. Total path latency can be calculated from
+           SRLG length of the OMS and the latency introduced by the equipment";
+      }
+      leaf distance {
+        type uint8 {
+          range "0..255";
+        }
+        default "0";
+        description
+          "Metric associated with the distance. Total path distance can be
+           calculated from SRLG length of the OMS";
+      }
+      leaf wdm-TE-metric {
+        type uint8 {
+          range "0..255";
+        }
+        default "0";
+        description
+          "Used when routing shall be performed according to specific pre-defined
+           TE-Metric. Total path metric can be calculated from OMS TE-metric attribute
+           defined in org-openroadm-link module";
+      }
+      leaf adaptation-number {
+        type uint8 {
+          range "0..255";
+        }
+        default "0";
+        description
+          "Metric associated with the adaptation between layers. Total path metric can
+           can be calculated from the total number of transition between layers";
+      }
+      leaf otn-TE-metric {
+        type uint8 {
+          range "0..255";
+        }
+        default "0";
+        description
+          "Used when routing shall be performed according to specific pre-defined
+           metric associated with OTN (OTU/ODU level)";
+      }
+    }
+  }
+
+  grouping service-resiliency {
+    container service-resiliency {
+      leaf resiliency {
+        type identityref {
+          base service-resiliency-type-identity;
+        }
+        description
+          "describes the type of resiliency and the associated layer ";
+      }
+      leaf revertive {
+        when "../resiliency != 'unprotected' and ../resiliency != 'unprotected-diversely-routed'" {
+          description
+            "revertive not applicable when service is neither protected nor restorable";
+        }
+        type boolean;
+        description
+          "defines if the service shall revert to the initial working path
+           after protection or restoration has been triggered and fault condition
+           has disappeared";
+      }
+      leaf wait-to-restore {
+        when "../revertive = 'true'" {
+          description
+            "wait-to-restore applies for service defined as revertive ";
+        }
+        type uint64;
+        units "ms";
+        description
+          "time delay to revert to initial path after conditions for reversion are satisfied";
+      }
+      leaf holdoff-time {
+        when "../resiliency != 'unprotected' and ../resiliency != 'unprotected-diversely-routed'" {
+          description
+            "holdoff-time applies when services are either protected or restorable";
+        }
+        type uint64;
+        units "ms";
+        description
+          "time delay to initiate a protection or restoration event";
+      }
+      leaf pre-calculated-backup-path-number {
+        when "../resiliency = 'restorable' or ../resiliency = 'external-trigger-restorable'" {
+          description
+            "when service is restorable, defines the
+             number of paths that shall be or have been pre-calculated";
+        }
+        type uint8;
+        description
+          "Associated to service-create / reconfigure / feasibility-check rpcs
+           --> defines the target number of backup-paths to be calculated by PCE. This is an
+           optional parameter : operator can provide it to conform with specific engineering rules.
+           If not provided, PCE will evaluate the number of backup path to be provided automously.
+           Associated with service --> gives the effective number of backup-paths
+           returned/calculated by PCE that can be find in topology container";
+      }
+      container coupled-service {
+        when "../resiliency = 'unprotected-diversely-routed'" {
+          description
+            "for unprotected-diversely-routed services only one path is defined.
+             Allows providing a link between services that are coupled
+             through a routing disjonction criterion";
+        }
+        list coupled-services {
+          key "service-index";
+          leaf service-index {
+            type uint16;
+            description
+              "service-number of the service that may be routed disjointly to the considered service";
+          }
+          leaf service-name {
+            type string;
+            description
+              "service-name of the service that may be routed disjointly to the considered service in service-list";
+          }
+          leaf common-id {
+            type string;
+            description
+              "common-id of the service that may be routed disjointly to the considered service in temp-service-list";
+          }
+          leaf version-number {
+            type uint64;
+            description
+              "common-id of the service that may be routed disjointly to the considered service in versioned-service-list";
+          }
+        }
+      }
+    }
+  }
+
+  grouping service {
+    leaf service-name {
+      type string;
+      description
+        "Identifier for the service to be created in
+         the ROADM network, e.g., CLFI, CLCI, etc.";
+    }
+    leaf common-id {
+      type string;
+      description
+        "To be used by the ROADM controller to identify the routing
+         constraints received from planning application (PED).";
+    }
+    uses sdnc-request-header;
+    uses service-resiliency;
+    uses routing-metric;
+    leaf connection-type {
+      type connection-type;
+      mandatory true;
+      description
+        "Connection type";
+    }
+    leaf lifecycle-state {
+      type org-openroadm-common-state-types:lifecycle-state;
+      description
+        "Lifecycle State of service. Whether it is planned, deployed, in maintenance, etc.";
+    }
+    leaf administrative-state {
+      type org-openroadm-equipment-states-types:admin-states;
+      description
+        "Administrative State: Intended state of service";
+    }
+    leaf operational-state {
+      type org-openroadm-common-state-types:state;
+      config false;
+      description
+        "Operational State: Actual state of service";
+    }
+    leaf condition {
+      type service-condition;
+      description
+        "Service Condition: Additional information about the state of the service. Only sent when applicable.";
+    }
+    container service-a-end {
+      uses service-endpoint;
+    }
+    container service-z-end {
+      uses service-endpoint;
+    }
+    uses org-openroadm-routing-constraints:routing-constraints;
+    uses service-information;
+    leaf latency {
+      type uint32;
+      description
+        "Latency on service";
+    }
+    leaf-list fiber-span-srlgs {
+      type string;
+      description
+        "Shared risk link group identifiers";
+    }
+    list equipment-srgs {
+      key "srg-number";
+      uses org-openroadm-resource-types:srg-number;
+    }
+    leaf-list supporting-service-name {
+      type string;
+      description
+        "The service name that this runs over top. If connection-type is service, then this is the related
+         connection-type = infrastructure service, for example.";
+    }
+    leaf current-active-path-id {
+      type uint8;
+      description
+        "defines the current active path : '0' if active path is the working path
+         id of the active backup path if protection or restoration has been triggered";
+    }
+    container topology {
+      description
+        "topology corresponds to working-path which is the default path. It defines the initial path
+         to which services defined as revertive may revert to when the failure condition disappear";
+      uses org-openroadm-topology:topology;
+    }
+    container backup-topology {
+      list backup-path {
+        key "backup-path-id";
+        leaf backup-path-id {
+          type uint8 {
+            range "1..255";
+          }
+          description
+            "Several backup paths may be used when backup-paths are pre-calculated.
+             Backup-path-id avoids 0 which is associated with working path in current-active-path";
+        }
+        leaf failure-case-id {
+          type string;
+          description
+            "A failure case Id can be used to associate a backup-path to a specific failure (srlg, OMS,...)";
+        }
+        uses org-openroadm-topology:topology;
+      }
+    }
+    container network-topology {
+      uses org-openroadm-topology:network-topology;
+    }
+    container network-backup-topology {
+      list backup-path {
+        key "backup-path-id";
+        leaf backup-path-id {
+          type uint8 {
+            range "1..255";
+          }
+          description
+            "Several backup paths may be used when backup-paths are pre-calculated.
+             Backup-path-id avoids 0 which is associated with working path in current-active-path";
+        }
+        leaf failure-case-id {
+          type string;
+          description
+            "A failure case Id can be used to associate a backup-path to a specific failure (srlg, OMS,...)";
+        }
+        uses org-openroadm-topology:network-topology;
+      }
+    }
+    leaf is-bandwidth-locked {
+      type boolean;
+      default "false";
+      description
+        "Bandwidth lock (true, false) indicates whether the service is administratively
+         prohibited from taking on more capacity - ie whether it can be used as a supporting
+         service in any new service creations. Unlike administrative status, this does not
+         impact any previous planned or deployed services.";
+    }
+  }
+
+  grouping service-notification-result {
+    leaf service-name {
+      type string;
+      description
+        "Identifier for the service e.g., CLFI, CLCI, etc.";
+    }
+    leaf version-number {
+      type uint64;
+      description
+        "Identifier for the versioned service";
+    }
+    leaf common-id {
+      type string;
+      description
+        "Identifier for the temp service";
+    }
+    leaf actual-date {
+      type yang:date-and-time;
+      description
+        "Actual date and time (if successful)";
+    }
+  }
+
+  grouping equipment-info {
+    leaf equipment-identifier {
+      type string;
+    }
+    leaf equipment-type {
+      type string;
+      description
+        "The set of valid value is derived from the equipment-type grouping used in the device model.";
+    }
+    leaf equipment-quantity {
+      type uint32;
+    }
+    leaf lifecycle-state {
+      type org-openroadm-common-state-types:lifecycle-state;
+    }
+  }
+
+  grouping eventHorizon {
+    leaf eventHorizonStart {
+      type yang:date-and-time;
+      description
+        "Start time to ensure that the service is routable and viable. Required resources shall
+         be considered reserved from this time. If not provided, defaults to due-date.";
+    }
+    leaf eventHorizonEnd {
+      type yang:date-and-time;
+      description
+        "End time to ensure that the service is routable and viable. Required resources shall
+         be considered reserved until this time. If not provided, defaults to end-date.";
+    }
+  }
+}
similarity index 62%
rename from ordmodels/service/src/main/yang/org-openroadm-routing-constraints@2016-10-14.yang
rename to ordmodels/service/src/main/yang/org-openroadm-routing-constraints@2019-03-29.yang
index e8f5a1ed61273ae3927c164cfb00f72f5fbf9ef9..27172b5bc9b189549879846f2208671910880d19 100644 (file)
@@ -2,6 +2,15 @@ module org-openroadm-routing-constraints {
   namespace "http://org/openroadm/routing/constrains";
   prefix org-openroadm-routing-constraints;
 
+  import org-openroadm-common-node-types {
+    prefix org-openroadm-common-node-types;
+    revision-date 2018-11-30;
+  }
+  import org-openroadm-network-resource {
+    prefix org-openroadm-network-resource;
+    revision-date 2018-11-30;
+  }
+
   organization
     "Open ROADM MSA";
   contact
@@ -10,7 +19,7 @@ module org-openroadm-routing-constraints {
     "YANG definitions of routing constraints.
 
       Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
+      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:
@@ -35,6 +44,34 @@ module org-openroadm-routing-constraints {
       ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
       POSSIBILITY OF SUCH DAMAGE";
 
+  revision 2019-03-29 {
+    description
+      "Version 5.0.0";
+  }
+  revision 2018-11-30 {
+    description
+      "Version 4.1.0";
+  }
+  revision 2018-09-28 {
+    description
+      "Version 4.0.0";
+  }
+  revision 2018-03-30 {
+    description
+      "Version 3.0.0";
+  }
+  revision 2017-12-15 {
+    description
+      "Version 2.2";
+  }
+  revision 2017-09-29 {
+    description
+      "Version 2.1";
+  }
+  revision 2017-06-26 {
+    description
+      "Version 2.0";
+  }
   revision 2016-10-14 {
     description
       "Version 1.2";
@@ -56,22 +93,22 @@ module org-openroadm-routing-constraints {
     choice co-routing-or-general {
       case general {
         container diversity {
-          uses diversity-existing-service-contraints;
+          uses diversity-existing-service-constraints;
         }
         container exclude {
           uses common-constraints;
           leaf-list supporting-service-name {
+            type string;
             description
               "Supporting service(s) to exclude from this route.";
-            type string;
           }
         }
         container include {
           uses common-constraints;
           leaf-list supporting-service-name {
+            type string;
             description
               "Supporting service(s) to include in this route.";
-            type string;
           }
         }
         container latency {
@@ -82,6 +119,36 @@ module org-openroadm-routing-constraints {
             units "ms";
           }
         }
+    container hop-count {
+          description
+            "Maximum hops allowed";
+          leaf max-wdm-hop-count {
+            type uint8;
+          }
+      leaf max-otn-hop-count {
+            type uint8;
+          }
+        }
+    container TE-metric {
+          description
+            "Maximum cost allowed";
+          leaf max-wdm-TE-metric {
+            type uint32;
+          }
+          leaf max-otn-TE-metric {
+            type uint32;
+          }
+         }
+    container distance {
+          description
+            "Maximum distance allowed";
+          leaf max-distance {
+               type decimal64 {
+               fraction-digits 2;
+               }
+         units "km";
+          }
+        }
       }
       case co-routing {
         container co-routing {
@@ -99,15 +166,32 @@ module org-openroadm-routing-constraints {
     leaf-list fiber-bundle {
       type string;
     }
+    leaf-list srlg-id {
+      type uint32;
+      description
+        "unique identifier for SRLG";
+    }
     leaf-list site {
       type string;
+      description
+        "site identifies the clli.
+         clli from the device model; clli-network-ref + clli from the network model.";
     }
     leaf-list node-id {
-      type string;
+      type org-openroadm-common-node-types:node-id-type;
+      description
+        "node-id from the device model; openroadm-network-ref + node-id from the network model.";
+    }
+    list link-identifier {
+      key "link-network-id link-id";
+      description
+        "Refers to link-id(s) from the network model.
+         The openroadm-topology-ref + link-id identifies the link in the network model.";
+      uses org-openroadm-network-resource:network-link-name;
     }
   }
 
-  grouping diversity-existing-service-contraints {
+  grouping diversity-existing-service-constraints {
     leaf-list existing-service {
       type string;
       description
@@ -123,6 +207,9 @@ module org-openroadm-routing-constraints {
       leaf srlg {
         type boolean;
       }
+      leaf link {
+        type boolean;
+      }
     }
   }
 }
similarity index 59%
rename from ordmodels/service/src/main/yang/org-openroadm-service@2016-10-14.yang
rename to ordmodels/service/src/main/yang/org-openroadm-service@2019-05-31.yang
index 704ada31e195f6b8c7acdb08d013a78351f76096..ee31820ca01b1afd19f54326a8af2a2bfa95e00c 100644 (file)
@@ -4,23 +4,23 @@ module org-openroadm-service {
 
   import ietf-yang-types {
     prefix yang;
+    revision-date 2013-07-15;
   }
   import org-openroadm-routing-constraints {
     prefix org-openroadm-routing-constraints;
-    revision-date 2016-10-14;
+    revision-date 2019-03-29;
   }
   import org-openroadm-common-types {
     prefix org-openroadm-common-types;
-    revision-date 2016-10-14;
-
+    revision-date 2019-05-31;
   }
   import org-openroadm-resource-types {
     prefix org-openroadm-resource-types;
-    revision-date 2016-10-14;
+    revision-date 2018-11-30;
   }
   import org-openroadm-common-service-types {
     prefix org-openroadm-common-service-types;
-    revision-date 2016-10-14;
+    revision-date 2019-05-31;
   }
 
   organization
@@ -31,7 +31,7 @@ module org-openroadm-service {
     "YANG definitions of services.
 
       Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
+      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:
@@ -56,19 +56,132 @@ module org-openroadm-service {
       ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
       POSSIBILITY OF SUCH DAMAGE";
 
+  revision 2019-05-31 {
+    description
+      "Version 5.1.0";
+  }
+  revision 2019-03-29 {
+    description
+      "Version 5.0.0";
+  }
+  revision 2018-11-30 {
+    description
+      "Version 4.1.0";
+  }
+  revision 2018-09-28 {
+    description
+      "Version 4.0.0";
+  }
+  revision 2018-05-30 {
+    description
+      "Version 3.1.0";
+  }
+  revision 2018-03-30 {
+    description
+      "Version 3.0.0";
+  }
+  revision 2017-12-15 {
+    description
+      "Version 2.2";
+  }
+  revision 2017-09-29 {
+    description
+      "Version 2.1";
+  }
+  revision 2017-07-28 {
+    description
+      "Version 2.0.1 - added revision-date to imports";
+  }
+  revision 2017-06-26 {
+    description
+      "Version 2.0";
+  }
   revision 2016-10-14 {
     description
       "Version 1.2";
   }
 
+  grouping service-feasibility-check-inputs {
+    leaf connection-type {
+      type org-openroadm-common-service-types:connection-type;
+    }
+    container service-a-end {
+      uses org-openroadm-common-service-types:service-endpoint;
+    }
+    container service-z-end {
+      uses org-openroadm-common-service-types:service-endpoint;
+    }
+    uses org-openroadm-routing-constraints:routing-constraints;
+    uses org-openroadm-common-service-types:routing-metric;
+    uses org-openroadm-common-service-types:service-resiliency;
+    leaf propose-equipment {
+      type enumeration {
+        enum "never" {
+          value 1;
+        }
+        enum "ifNeeded" {
+          value 2;
+        }
+        enum "always" {
+          value 3;
+        }
+      }
+      default "ifNeeded";
+      description
+        "Whether or not this request can propose new equipment that could
+         be used to fulfill this request. If never, the request will just
+         use existing deployed and planned equipment. If ifNeeded, routes using existing equipment
+         will be preferred. If always, a route with proposed equipment shall be returned, if possible";
+    }
+    uses org-openroadm-common-service-types:service-information;
+  }
+
+  grouping service-feasibility-check-outputs {
+    uses org-openroadm-common-service-types:response-parameters;
+    container service-a-end {
+      uses org-openroadm-common-service-types:service-endpoint;
+      list equipment-required {
+        key "equipment-identifier";
+        description
+          "List of required equipment, including equipment type, state and
+           quantity";
+        uses org-openroadm-common-service-types:equipment-info;
+      }
+    }
+    container service-z-end {
+      uses org-openroadm-common-service-types:service-endpoint;
+      list equipment-required {
+        key "equipment-identifier";
+        description
+          "List of required equipment, including equipment type, state and
+           quantity";
+        uses org-openroadm-common-service-types:equipment-info;
+      }
+    }
+    list intermediate-sites {
+      key "clli";
+      uses org-openroadm-common-service-types:service-endpoint;
+      list equipment-required {
+        key "equipment-identifier";
+        description
+          "List of required equipment, including equipment type, state and
+           quantity over entire route of service";
+        uses org-openroadm-common-service-types:equipment-info;
+      }
+    }
+  }
+
   rpc service-create {
+    description
+      "Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
+       service-rpc-result Notification shall be sent.";
     input {
       leaf service-name {
         type string;
+        mandatory true;
         description
           "Identifier for the service to be created in
            the ROADM network, e.g., CLFI, CLCI, etc. This is reported against the service, but may not get reflected in the service in the network.";
-        mandatory true;
       }
       leaf common-id {
         type string;
@@ -76,6 +189,8 @@ module org-openroadm-service {
           "To be used by the ROADM controller to identify the routing constraints received from planning application (PED).";
       }
       uses org-openroadm-common-service-types:sdnc-request-header;
+      uses org-openroadm-common-service-types:routing-metric;
+      uses org-openroadm-common-service-types:service-resiliency;
       leaf connection-type {
         type org-openroadm-common-service-types:connection-type;
         mandatory true;
@@ -93,103 +208,118 @@ module org-openroadm-service {
       uses org-openroadm-common-service-types:configuration-response-common;
       uses org-openroadm-common-service-types:response-parameters;
     }
+  }
+  rpc service-create-result-notification-request {
     description
-      "Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
-       service-rpc-result Notification shall be sent.";
+      "This is the callback notification that the controller invokes on the carrier system.";
+    input {
+      uses org-openroadm-common-service-types:configuration-response-common;
+      uses org-openroadm-common-service-types:service-identifiers-container;
+    }
+    output {
+      uses org-openroadm-common-service-types:configuration-response-common;
+    }
+  }
+  rpc service-create-complex-result-notification-request {
+    description
+      "This is the callback notification that the controller invokes on the carrier system.";
+    input {
+      uses org-openroadm-common-service-types:configuration-response-common;
+      uses org-openroadm-common-service-types:service-and-supporting-services;
+    }
+    output {
+      uses org-openroadm-common-service-types:configuration-response-common;
+    }
+  }
+  rpc service-delete-result-notification-request {
+    description
+      "This is the callback notification that the controller invokes on the carrier system.";
+    input {
+      uses org-openroadm-common-service-types:configuration-response-common;
+      uses org-openroadm-common-service-types:service-identifiers-container;
+    }
+    output {
+      uses org-openroadm-common-service-types:configuration-response-common;
+    }
+  }
+  rpc service-delete-complex-result-notification-request {
+    description
+      "This is the callback notification that the controller invokes on the carrier system.";
+    input {
+      uses org-openroadm-common-service-types:configuration-response-common;
+      uses org-openroadm-common-service-types:service-and-supporting-services;
+    }
+    output {
+      uses org-openroadm-common-service-types:configuration-response-common;
+    }
   }
   rpc service-feasibility-check {
+    description
+      "Whether a service was possible to be created, and if so
+       the routing constraints match and the a and z end connection that have
+       to match
+       Takes a potential service and determines if it is possible in the network
+       using equipment that is installed on the network, formally planned or proposed for planning.
+       No resources are reserved, provisioned or planned as a result of this operation";
     input {
       leaf common-id {
         type string;
         mandatory true;
         description
-          "To be used by the ROADM controller to identify the routing
-           constraints received from planning application (PED).";
+          "To be used by the ROADM controller to identify the routing constraints
+           received from planning application (PED).";
       }
       uses org-openroadm-common-service-types:sdnc-request-header;
-      leaf connection-type {
-        type org-openroadm-common-service-types:connection-type;
-      }
-      container service-a-end {
-        uses org-openroadm-common-service-types:service-endpoint;
-      }
-      container service-z-end {
-        uses org-openroadm-common-service-types:service-endpoint;
-      }
-      uses org-openroadm-routing-constraints:routing-constraints;
-      uses org-openroadm-common-service-types:service-information;
+      uses service-feasibility-check-inputs;
     }
     output {
       uses org-openroadm-common-service-types:configuration-response-common;
-      uses org-openroadm-common-service-types:response-parameters;
-      container service-a-end {
-        uses org-openroadm-common-service-types:service-endpoint;
-        list equipment-required {
-          description
-            "List of required equipment, including equipment type and quantity";
-          key "eqipment-identifier";
-          leaf eqipment-identifier {
-            type string;
-          }
-          leaf equipment-type {
-            type string;
-          }
-          leaf equipment-quantity {
-            type uint32;
-          }
-        }
-      }
-      container service-z-end {
-        uses org-openroadm-common-service-types:service-endpoint;
-        list equipment-required {
+      uses service-feasibility-check-outputs;
+    }
+  }
+  rpc service-feasibility-check-bulk {
+    description
+      "Whether a service was possible to be created, and if so
+       the routing constraints match and the a and z end connection that have
+       to match
+
+       Takes a list of potential services and determines if they are possible in the network
+       using equipment that is installed on the network, formally planned or proposed for planning.
+       All services are treated collectively to ensure that a given resource is not used more than once.
+       No resources are reserved, provisioned or planned as a result of this operation";
+    input {
+      uses org-openroadm-common-service-types:sdnc-request-header;
+      list service-request-list {
+        leaf common-id {
+          type string;
+          mandatory true;
           description
-            "List of required equipment, including equipment type and quantity";
-          key "eqipment-identifier";
-          leaf eqipment-identifier {
-            type string;
-          }
-          leaf equipment-type {
-            type string;
-          }
-          leaf equipment-quantity {
-            type uint32;
-          }
+            "To be used by the ROADM controller to identify the routing constraints
+             received from planning application (PED).";
         }
+        uses service-feasibility-check-inputs;
       }
-      list intermediate-sites {
-        key "clli";
-        uses org-openroadm-common-service-types:service-endpoint;
-        list equipment-required {
-          description
-            "List of required equipment, including equipment type and quantity";
-          key "eqipment-identifier";
-          leaf eqipment-identifier {
-            type string;
-          }
-          leaf equipment-type {
-            type string;
-          }
-          leaf equipment-quantity {
-            type uint32;
-          }
-        }
+    }
+    output {
+      uses org-openroadm-common-service-types:configuration-response-common;
+      list service-response-list {
+        uses service-feasibility-check-outputs;
       }
     }
-    description
-      "Whether a service was possible to be created, and if so
-       the routing constraints match and the a and z end connection that have
-       to match";
   }
   rpc service-delete {
+    description
+      "Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
+       service-rpc-result Notification shall be sent. Once the service has been deleted, it no longer will appear in the service list";
     input {
       uses org-openroadm-common-service-types:sdnc-request-header;
       container service-delete-req-info {
         leaf service-name {
           type string;
+          mandatory true;
           description
             "Identifier for the service to be deleted in
              the ROADM network, e.g., CLFI, CLCI, etc.";
-          mandatory true;
         }
         leaf due-date {
           type yang:date-and-time;
@@ -216,23 +346,22 @@ module org-openroadm-service {
     output {
       uses org-openroadm-common-service-types:configuration-response-common;
     }
-    description
-      "Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
-       service-rpc-result Notification shall be sent. Once the service has been deleted, it no longer will appear in the service list";
   }
   rpc equipment-notification {
     input {
       uses org-openroadm-common-service-types:sdnc-request-header;
-      leaf equiptment-id {
+      leaf equipment-id {
         type string;
         mandatory true;
       }
       leaf equipment-name {
         type string;
       }
-      leaf equipemt-type {
+      leaf equipment-type {
         type string;
         mandatory true;
+        description
+          "The set of valid value is derived from the equipment-type grouping used in the device model.";
       }
       leaf equipment-vendor {
         type string;
@@ -261,9 +390,9 @@ module org-openroadm-service {
     input {
       leaf common-id {
         type string;
+        mandatory true;
         description
           "To be used by the ROADM controller to identify the routing constraints received from planning application (PED).";
-        mandatory true;
       }
       uses org-openroadm-common-service-types:sdnc-request-header;
       leaf connection-type {
@@ -278,6 +407,8 @@ module org-openroadm-service {
       }
       uses org-openroadm-routing-constraints:routing-constraints;
       uses org-openroadm-common-service-types:service-information;
+      uses org-openroadm-common-service-types:routing-metric;
+      uses org-openroadm-common-service-types:service-resiliency;
     }
     output {
       uses org-openroadm-common-service-types:configuration-response-common;
@@ -296,6 +427,11 @@ module org-openroadm-service {
     }
   }
   rpc service-roll {
+    description
+      "This rpc can be use to roll a service according to 2 possible options :
+         A new path may (no path pre-calculation) or may not be calculated according
+         to the parameters provided (which includes metrics). If path computation has been triggered
+         and is successful, a new path is provided, and the service can be rolled according to that path.";
     input {
       leaf service-name {
         type string;
@@ -309,12 +445,16 @@ module org-openroadm-service {
         description
           "date and time service to be rolled";
       }
+      uses org-openroadm-common-service-types:routing-metric;
     }
     output {
       uses org-openroadm-common-types:rpc-response-status;
     }
   }
   rpc service-reconfigure {
+    description
+      "Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
+       service-rpc-result Notification shall be sent.";
     input {
       leaf service-name {
         type string;
@@ -346,15 +486,24 @@ module org-openroadm-service {
       }
       uses org-openroadm-routing-constraints:routing-constraints;
       uses org-openroadm-common-service-types:service-information;
+      uses org-openroadm-common-service-types:routing-metric;
+      uses org-openroadm-common-service-types:service-resiliency;
     }
     output {
       uses org-openroadm-common-types:rpc-response-status;
     }
-    description
-      "Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
-       service-rpc-result Notification shall be sent.";
   }
   rpc service-restoration {
+    description
+      "Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
+       service-rpc-result Notification shall be sent.
+       This rpc can be use to reroute a service according to 2 possible options :
+        \t_Option1 : neither the backup-path-id nor the failure-case-id are provided, a new path shall be
+           calculated according to the parameters provided (which includes metrics). If path computation
+           is successful, a new path is provided, and the service is rerouted according to that path.
+        \t_Option2 : if a backup-path-id or a failure-case-id are provided, the service shall
+           be rerouted according to the corresponding path. If path computation is triggered and successful,
+           a new path is provided, and the service is rerouted according to that path.";
     input {
       leaf service-name {
         type string;
@@ -382,15 +531,29 @@ module org-openroadm-service {
         }
         mandatory true;
       }
+      leaf backup-path-id {
+        type uint8 {
+          range "1..255";
+        }
+        description
+          "When present, states that the service shall be rerouted according to a specific backup path";
+      }
+      leaf failure-case-id {
+        type string;
+        description
+          "When present, states that the service shall be rerouted according to a specific backup path.
+           This last corresponds to the provided failure case id";
+      }
+      uses org-openroadm-common-service-types:routing-metric;
     }
     output {
       uses org-openroadm-common-types:rpc-response-status;
     }
+  }
+  rpc service-reversion {
     description
       "Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
        service-rpc-result Notification shall be sent.";
-  }
-  rpc service-reversion {
     input {
       leaf service-name {
         type string;
@@ -408,11 +571,11 @@ module org-openroadm-service {
     output {
       uses org-openroadm-common-types:rpc-response-status;
     }
-    description
-      "Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
-       service-rpc-result Notification shall be sent.";
   }
   rpc service-reroute {
+    description
+      "Whether this request was validated and processed correctly. If successful, it returns the proposed new route.
+       If acceptable, this request should be followed by a service-reroute-confirm to complete the reroute operation.";
     input {
       leaf service-name {
         type string;
@@ -421,16 +584,18 @@ module org-openroadm-service {
           "Identifier for the service to be re-routed in
            the ROADM network, e.g., CLFI, CLCI, etc.";
       }
+      uses org-openroadm-common-service-types:routing-metric;
+      uses org-openroadm-common-service-types:service-resiliency;
     }
     output {
       uses org-openroadm-common-types:rpc-response-status;
       uses org-openroadm-routing-constraints:routing-constraints;
     }
-    description
-      "Whether this request was validated and processed correct. If sucessful, it return the proposed new route.
-       If acceptable, this request should be followed by a service-reroute-confirm to complete the reroute operation.";
   }
   rpc service-reroute-confirm {
+    description
+      "Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
+       service-rpc-result Notification shall be sent.";
     input {
       leaf service-name {
         type string;
@@ -444,9 +609,6 @@ module org-openroadm-service {
     output {
       uses org-openroadm-common-types:rpc-response-status;
     }
-    description
-      "Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
-       service-rpc-result Notification shall be sent.";
   }
   rpc network-re-optimization {
     input {
@@ -484,6 +646,7 @@ module org-openroadm-service {
           "Services that belong to the specified customer
            are to be checked by the RNC for re-optimization ";
       }
+      uses org-openroadm-common-service-types:routing-metric;
     }
     output {
       uses org-openroadm-common-types:rpc-response-status;
@@ -492,29 +655,9 @@ module org-openroadm-service {
       }
     }
   }
-  container service-list {
-    description
-      "List of service. Can only be created, deleted, modified, etc. using special RPCs.";
-    list services {
-      key "service-name";
-      uses org-openroadm-common-service-types:service;
-    }
-  }
-  container temp-service-list {
-    description
-      "List of temporary services Can only be created, deleted, modified, etc. using special RPCs.";
-    list services {
-      key "common-id";
-      uses org-openroadm-common-service-types:service {
-        refine "service-name" {
-          mandatory false;
-        }
-      }
-    }
-  }
   notification service-rpc-result {
     description
-      "This Notification indicates result of  service RPC";
+      "This Notification indicates result of service RPC";
     leaf notification-type {
       type org-openroadm-common-service-types:service-notification-types;
     }
@@ -526,9 +669,14 @@ module org-openroadm-service {
       "This Notification indicates that traffic is flowing again on the service after an administrative action has completed";
     leaf service-name {
       type string;
+      mandatory true;
       description
         "Identifier for the service being reported on";
-      mandatory true;
+    }
+    leaf version-number {
+      type uint64;
+      description
+        "Identifier for the versioned service";
     }
     leaf actual-date {
       type yang:date-and-time;
@@ -540,13 +688,55 @@ module org-openroadm-service {
     description
       "This Notification that a service has been added, modified or removed.
        A resourceCreation notification shall contain the created service in its entirety.
-       A resourceMofified notification shall contain just the modified field, plus the service identifier
+       A resourceModified notification shall contain just the modified field, plus the service identifier
        A resourceDeleted notification shall just contain the service identifier";
     leaf notificationType {
       type org-openroadm-resource-types:resource-notification-type;
       description
         "Whether this notification indicates a service creation, service modification or service deletion.";
     }
+    leaf version-number {
+      type uint64;
+      description
+        "Identifier for the versioned service";
+    }
     uses org-openroadm-common-service-types:service;
   }
+  container service-list {
+    description
+      "List of service. Can only be created, deleted, modified, etc. using special RPCs. Will only contain one service with a given name.
+       Does not contain historical (deleted or rather those passed their end time) or draft services. If two services exist with the same
+       name (with non-lapping start-end times for example), this table will contain the current one. If only planned services exist for
+       the name, the one with the earliest start time will be present
+      ";
+    list services {
+      key "service-name";
+      uses org-openroadm-common-service-types:service;
+    }
+  }
+  container versioned-service-list {
+    description
+      "List of service, regardless of lifecycle state. Can only be created, deleted, modified, etc. using special RPCs. Can report more than one
+       version of a service, if supported by the implementation. May contain deleted services, multiple versions of the same service, as identified
+       by its name, etc.";
+    list services {
+      key "service-name version-number";
+      leaf version-number {
+        type uint64;
+      }
+      uses org-openroadm-common-service-types:service;
+    }
+  }
+  container temp-service-list {
+    description
+      "List of temporary services Can only be created, deleted, modified, etc. using special RPCs.";
+    list services {
+      key "common-id";
+      uses org-openroadm-common-service-types:service {
+        refine "service-name" {
+          mandatory false;
+        }
+      }
+    }
+  }
 }
similarity index 62%
rename from ordmodels/service/src/main/yang/org-openroadm-topology@2016-10-14.yang
rename to ordmodels/service/src/main/yang/org-openroadm-topology@2019-05-31.yang
index ecce6aca41e56793399ebb9fe5d6cb62741bff2d..656af2d74d25915afacd8c69962683aac3c19f74 100644 (file)
@@ -4,7 +4,11 @@ module org-openroadm-topology {
 
   import org-openroadm-resource {
     prefix org-openroadm-resource;
-    revision-date 2016-10-14;
+    revision-date 2019-05-31;
+  }
+  import org-openroadm-network-resource {
+    prefix org-openroadm-network-resource;
+    revision-date 2018-11-30;
   }
 
   organization
@@ -15,7 +19,7 @@ module org-openroadm-topology {
     "YANG definitions of topology.
 
       Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
-      AT&T Intellectual Property.  All other rights reserved.
+      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:
@@ -40,6 +44,42 @@ module org-openroadm-topology {
       ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
       POSSIBILITY OF SUCH DAMAGE";
 
+  revision 2019-05-31 {
+    description
+      "Version 5.1.0";
+  }
+  revision 2019-03-29 {
+    description
+      "Version 5.0.0";
+  }
+  revision 2018-11-30 {
+    description
+      "Version 4.1.0";
+  }
+  revision 2018-09-28 {
+    description
+      "Version 4.0.0";
+  }
+  revision 2018-03-30 {
+    description
+      "Version 3.0.0";
+  }
+  revision 2017-12-15 {
+    description
+      "Version 2.2";
+  }
+  revision 2017-09-29 {
+    description
+      "Version 2.1";
+  }
+  revision 2017-07-28 {
+    description
+      "Version 2.0.1 - added revision-date to imports";
+  }
+  revision 2017-06-26 {
+    description
+      "Version 2.0";
+  }
   revision 2016-10-14 {
     description
       "Version 1.2";
@@ -50,23 +90,23 @@ module org-openroadm-topology {
       "Topology reports the individual hops along the service in the A to Z direction and Z to A directions.  This includes both ports internal to a device and those
        at its edge that are available for externally connections. It includes both physical and logical ports.
        Physical ports are ordered with the logical ports that run over them as follows:
-       a.\tOn ingress to a node/card, physical then logical
-       b.\tOn egress to a node/card, logical then physical";
+       a.\t On ingress to a node/card, physical then logical
+       b.\t On egress to a node/card, logical then physical";
     list aToZ {
       key "id";
       leaf id {
-        description
-          "Unigue identifier for this topology component within this service";
         type string;
+        description
+          "Unique identifier for this topology component within this service";
       }
       uses hop;
     }
     list zToA {
       key "id";
       leaf id {
-        description
-          "Unigue identifier for this topology component within this service";
         type string;
+        description
+          "Unique identifier for this topology component within this service";
       }
       uses hop;
     }
@@ -76,17 +116,44 @@ module org-openroadm-topology {
     leaf hop-type {
       type enumeration {
         enum "node-external" {
+          value 1;
           description
             "The given resource is on the edge of the node, and used in relationships to resources outside of the node.";
-          value 1;
         }
         enum "node-internal" {
+          value 2;
           description
             "The given resource is internally to the node";
-          value 2;
         }
       }
     }
-    uses org-openroadm-resource:resource;
+    uses org-openroadm-resource:resource {
+      augment "resource/resource/interface" {
+        uses org-openroadm-resource:resource-reporting;
+      }
+    }
+  }
+
+  grouping network-topology {
+    description
+      "network-topology defines the ordered a-to-z and z-to-a topology in terms of network model entities: tp-id and link-id";
+    list a-to-z {
+      key "id";
+      leaf id {
+        type string;
+        description
+          "Unique identifier for this network-topology component within this service";
+      }
+      uses org-openroadm-network-resource:network-resource;
+    }
+    list z-to-a {
+      key "id";
+      leaf id {
+        type string;
+        description
+          "Unigue identifier for this network-topology component within this service";
+      }
+      uses org-openroadm-network-resource:network-resource;
+    }
   }
 }
index 9c1940173027c3c595ecd643f6bfbcea1b8445d3..c82d1833bcdd7ae88b2e861ff6e1bb7f5a622d3f 100644 (file)
@@ -47,9 +47,9 @@ import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev19
 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.configuration.response.common.ConfigurationResponseCommonBuilder;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.AToZDirection;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.ZToADirection;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.RpcStatusEx;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.ServicePathNotificationTypes;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.response.parameters.sp.ResponseParametersBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.RpcStatusEx;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.ServicePathNotificationTypes;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.response.parameters.sp.ResponseParametersBuilder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -176,9 +176,9 @@ public class PathComputationServiceImpl implements PathComputationService {
                                 .build();
                 sendNotifications(ServicePathNotificationTypes.PathComputationRequest, input.getServiceName(),
                         RpcStatusEx.Successful, message, pathDescription);
-                org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.response
+                org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.response
                     .parameters.sp.response.parameters.PathDescription pathDescription1 = new org.opendaylight.yang.gen
-                        .v1.http.org.transportpce.b.c._interface.service.types.rev171016.response.parameters.sp
+                        .v1.http.org.transportpce.b.c._interface.service.types.rev191009.response.parameters.sp
                         .response.parameters.PathDescriptionBuilder()
                                 .setAToZDirection(path.getAToZDirection()).setZToADirection(path.getZToADirection())
                                 .build();
index 3e9325e9cd002cc706979af0736c7170ea882b77..7e484b89d8b349989d9ccec3e769e44b4647e6d6 100644 (file)
@@ -38,14 +38,14 @@ import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.diversity.existing.service.contraints.sp.ExistingServiceApplicabilityBuilder;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.routing.constraints.sp.HardConstraintsBuilder;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.routing.constraints.sp.SoftConstraintsBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.response.parameters.sp.ResponseParameters;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.response.parameters.sp.ResponseParametersBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.response.parameters.sp.response.parameters.PathDescription;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.response.parameters.sp.response.parameters.PathDescriptionBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.service.endpoint.sp.RxDirectionBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.service.endpoint.sp.TxDirectionBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.service.handler.header.ServiceHandlerHeader;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.service.handler.header.ServiceHandlerHeaderBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.response.parameters.sp.ResponseParameters;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.response.parameters.sp.ResponseParametersBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.response.parameters.sp.response.parameters.PathDescription;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.response.parameters.sp.response.parameters.PathDescriptionBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.service.endpoint.sp.RxDirectionBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.service.endpoint.sp.TxDirectionBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.service.handler.header.ServiceHandlerHeader;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.service.handler.header.ServiceHandlerHeaderBuilder;
 
 public final class PceTestData {
 
index b9eb463786ece0265eb491545444cbb213f6d51d..e1cdfb58ad0792fce8a67e359e4a7bf67d988714 100644 (file)
@@ -14,7 +14,7 @@ import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev171017.ServiceDeleteOutput;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev171017.ServiceImplementationRequestInput;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev171017.ServiceImplementationRequestOutput;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.service.path.PathDescription;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.service.path.PathDescription;
 
 
 public interface RendererServiceOperations {
index 5277213c401f3d294116e5f3db5e4fa690beba13..5a787c77104f30559dddc997d29e8896a494a479 100644 (file)
@@ -52,9 +52,9 @@ import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev171017.ServiceRpcResultSpBuilder;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev161014.PmGranularity;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.types.rev161014.ResourceTypeEnum;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.RpcStatusEx;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.ServicePathNotificationTypes;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.service.path.PathDescription;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.RpcStatusEx;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.ServicePathNotificationTypes;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.service.path.PathDescription;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev171017.ServicePathList;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev171017.service.path.list.ServicePaths;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev171017.service.path.list.ServicePathsKey;
index 838fc252453a946e8ff9d1fae613fe2bd258c568..81cba7eb356de45906259e385c83f944158664f3 100644 (file)
@@ -43,7 +43,7 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev18113
 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.XpdrPortAttributesBuilder;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmNodeType;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmTpType;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.service.path.PathDescription;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.service.path.PathDescription;
 
 @RunWith(Parameterized.class)
 public class NetworkModelWaveLengthServiceUseTest extends AbstractTest {
index 9d213bc789aedc91c0d7462ab42e7a7a4d94b6e3..d12eb18a439acafbf47477a010f6dc41a9fb1d99 100644 (file)
@@ -59,7 +59,7 @@ import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev17
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev170418.TransportpceOlmService;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev171017.ServiceDeleteInputBuilder;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev171017.ServiceDeleteOutput;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.service.handler.header.ServiceHandlerHeaderBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.service.handler.header.ServiceHandlerHeaderBuilder;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev171017.ServicePathList;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev171017.service.path.list.ServicePaths;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev171017.service.path.list.ServicePathsBuilder;
index 30fa1bfca8fdc9395ed8cce5043cd96e2be4756a..e0d9d95a1a9fce5e3b0562191acfcdad81779833 100644 (file)
@@ -39,9 +39,9 @@ import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdes
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.pce.resource.resource.resource.NodeBuilder;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.pce.resource.resource.resource.TerminationPoint;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.pce.resource.resource.resource.TerminationPointBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.service.endpoint.sp.RxDirectionBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.service.endpoint.sp.TxDirectionBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.service.handler.header.ServiceHandlerHeaderBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.service.endpoint.sp.RxDirectionBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.service.endpoint.sp.TxDirectionBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.service.handler.header.ServiceHandlerHeaderBuilder;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev170907.olm.renderer.input.Nodes;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev170907.olm.renderer.input.NodesBuilder;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev170907.olm.renderer.input.NodesKey;
index 82364ae685a64036ddfde1435e3625763b925051..abe9a8d1c4c71862f48868fd740455bbe6fae89f 100644 (file)
@@ -25,12 +25,12 @@ import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdes
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.pce.resource.ResourceBuilder;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.pce.resource.resource.resource.TerminationPoint;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.pce.resource.resource.resource.TerminationPointBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.service.endpoint.sp.RxDirectionBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.service.endpoint.sp.TxDirectionBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.service.path.PathDescription;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.service.path.PathDescriptionBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.service.path.ServiceAEndBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.service.path.ServiceZEndBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.service.endpoint.sp.RxDirectionBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.service.endpoint.sp.TxDirectionBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.service.path.PathDescription;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.service.path.PathDescriptionBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.service.path.ServiceAEndBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.service.path.ServiceZEndBuilder;
 
 public final class ServiceDeleteDataUtils {
 
index ab52994b86d309c81fa6dbb78cf5fe19b2b5c133..f0ca8f8bf617b26f4155299f4a4e1ae1e4d7947e 100644 (file)
@@ -52,12 +52,12 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service
 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.list.ServicesBuilder;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.routing.constraints.sp.HardConstraintsBuilder;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.routing.constraints.sp.SoftConstraintsBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.service.endpoint.sp.RxDirection;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.service.endpoint.sp.RxDirectionBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.service.endpoint.sp.TxDirection;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.service.endpoint.sp.TxDirectionBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.service.handler.header.ServiceHandlerHeaderBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.service.path.PathDescriptionBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.service.endpoint.sp.RxDirection;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.service.endpoint.sp.RxDirectionBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.service.endpoint.sp.TxDirection;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.service.endpoint.sp.TxDirectionBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.service.handler.header.ServiceHandlerHeaderBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.service.path.PathDescriptionBuilder;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev171017.service.path.list.ServicePaths;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev171017.service.path.list.ServicePathsBuilder;
 import org.opendaylight.yangtools.yang.common.RpcResult;
@@ -84,10 +84,10 @@ public final class ModelMappingUtils {
             .setServiceRate(input.getServiceAEnd().getServiceRate()).setClli(input.getServiceAEnd().getClli())
             .setNodeId(input.getServiceAEnd().getNodeId())
             .setTxDirection(new org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types
-            .rev171016.service.endpoint.sp.TxDirectionBuilder()
+            .rev191009.service.endpoint.sp.TxDirectionBuilder()
             .setPort(input.getServiceAEnd().getTxDirection().getPort()).build())
             .setRxDirection(new org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types
-            .rev171016.service.endpoint.sp.RxDirectionBuilder()
+            .rev191009.service.endpoint.sp.RxDirectionBuilder()
             .setPort(input.getServiceAEnd().getRxDirection().getPort()).build());
         org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev171017.service.implementation
             .request.input.ServiceZEndBuilder serviceZEnd = new org.opendaylight.yang.gen.v1.http.org.opendaylight
@@ -96,10 +96,10 @@ public final class ModelMappingUtils {
             .setServiceRate(input.getServiceZEnd().getServiceRate()).setClli(input.getServiceZEnd().getClli())
             .setNodeId(input.getServiceZEnd().getNodeId())
             .setTxDirection(new org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types
-            .rev171016.service.endpoint.sp.TxDirectionBuilder()
+            .rev191009.service.endpoint.sp.TxDirectionBuilder()
             .setPort(input.getServiceZEnd().getTxDirection().getPort()).build())
             .setRxDirection(new org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types
-            .rev171016.service.endpoint.sp.RxDirectionBuilder()
+            .rev191009.service.endpoint.sp.RxDirectionBuilder()
             .setPort(input.getServiceZEnd().getRxDirection().getPort()).build());
         serviceImplementationRequestInputBuilder.setServiceAEnd(serviceAEnd.build());
         serviceImplementationRequestInputBuilder.setServiceZEnd(serviceZEnd.build());
@@ -354,32 +354,32 @@ public final class ModelMappingUtils {
         ServicePathsBuilder servicePathBuilder = new ServicePathsBuilder();
         if (serviceInput != null) {
             org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface
-                .service.types.rev171016.service.path.ServiceAEndBuilder serviceAEnd =
+                .service.types.rev191009.service.path.ServiceAEndBuilder serviceAEnd =
                 new org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface
-                    .service.types.rev171016.service.path.ServiceAEndBuilder();
+                    .service.types.rev191009.service.path.ServiceAEndBuilder();
             serviceAEnd.setServiceFormat(serviceInput.getServiceAEnd().getServiceFormat())
                 .setServiceRate(serviceInput.getServiceAEnd().getServiceRate())
                 .setClli(serviceInput.getServiceAEnd().getClli())
                 .setNodeId(serviceInput.getServiceAEnd().getNodeId())
                 .setTxDirection(new org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types
-                .rev171016.service.endpoint.sp.TxDirectionBuilder()
+                .rev191009.service.endpoint.sp.TxDirectionBuilder()
                 .setPort(serviceInput.getServiceAEnd().getTxDirection().getPort()).build())
                 .setRxDirection(new org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types
-                .rev171016.service.endpoint.sp.RxDirectionBuilder()
+                .rev191009.service.endpoint.sp.RxDirectionBuilder()
                 .setPort(serviceInput.getServiceAEnd().getRxDirection().getPort()).build());
             org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface
-                .service.types.rev171016.service.path.ServiceZEndBuilder serviceZEnd =
+                .service.types.rev191009.service.path.ServiceZEndBuilder serviceZEnd =
                 new org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface
-                    .service.types.rev171016.service.path.ServiceZEndBuilder();
+                    .service.types.rev191009.service.path.ServiceZEndBuilder();
             serviceZEnd.setServiceFormat(serviceInput.getServiceZEnd().getServiceFormat())
                 .setServiceRate(serviceInput.getServiceZEnd().getServiceRate())
                 .setClli(serviceInput.getServiceZEnd().getClli())
                 .setNodeId(serviceInput.getServiceZEnd().getNodeId())
                 .setTxDirection(new org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types
-                .rev171016.service.endpoint.sp.TxDirectionBuilder()
+                .rev191009.service.endpoint.sp.TxDirectionBuilder()
                 .setPort(serviceInput.getServiceZEnd().getTxDirection().getPort()).build())
                 .setRxDirection(new org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types
-                .rev171016.service.endpoint.sp.RxDirectionBuilder()
+                .rev191009.service.endpoint.sp.RxDirectionBuilder()
                 .setPort(serviceInput.getServiceZEnd().getRxDirection().getPort()).build());
             servicePathBuilder.setServiceAEnd(serviceAEnd.build());
             servicePathBuilder.setServiceZEnd(serviceZEnd.build());
index cf8ccd14d937b531f23dafc2218e73c319a6ca72..787ade548e979cebc207385bf1521d8dc90bfb7e 100644 (file)
@@ -22,9 +22,9 @@ import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev19
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev190624.service.path.rpc.result.PathDescription;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev190624.service.path.rpc.result.PathDescriptionBuilder;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev171017.ServiceImplementationRequestInput;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.RpcStatusEx;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.response.parameters.sp.ResponseParameters;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.response.parameters.sp.ResponseParametersBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.RpcStatusEx;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.response.parameters.sp.ResponseParameters;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.response.parameters.sp.ResponseParametersBuilder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -91,7 +91,7 @@ public class PceListenerImpl implements TransportpcePceListener {
                                 }
                                 ResponseParameters responseParameters = new ResponseParametersBuilder()
                                         .setPathDescription(new org.opendaylight.yang.gen.v1.http.org.transportpce.b.c
-                                                ._interface.service.types.rev171016.response.parameters.sp.response
+                                                ._interface.service.types.rev191009.response.parameters.sp.response
                                                 .parameters.PathDescriptionBuilder(pathDescription).build())
                                         .build();
                                 PathComputationRequestOutput pceResponse = new PathComputationRequestOutputBuilder()
index 2fb5081fe2c034453d0f9fbf6026a7eb529d8ac6..ceb18b3ef68967f6c4724edae1fba36043ae84c4 100644 (file)
@@ -17,7 +17,7 @@ import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev171017.TransportpceRendererListener;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.ServiceNotificationTypes;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev161014.State;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.RpcStatusEx;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.RpcStatusEx;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
index e056424194559fe9f0236a48ba0ec8da1c744e2e..87f335435a5ddefe890b5e9b909604e4b32b5b25 100644 (file)
@@ -41,10 +41,10 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.TempSer
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.RoutingConstraintsSp.PceMetric;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.routing.constraints.sp.HardConstraints;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.routing.constraints.sp.SoftConstraints;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.RpcStatusEx;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.response.parameters.sp.ResponseParameters;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.response.parameters.sp.ResponseParametersBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.service.handler.header.ServiceHandlerHeaderBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.RpcStatusEx;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.response.parameters.sp.ResponseParameters;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.response.parameters.sp.ResponseParametersBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.service.handler.header.ServiceHandlerHeaderBuilder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
index 8c51b9d61931d48af8347ad3aafc4fda993a8275..b6a3213292f5ad0493b602eff3d8c2bb37b6885c 100644 (file)
@@ -28,9 +28,9 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev1
 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.configuration.response.common.ConfigurationResponseCommon;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.configuration.response.common.ConfigurationResponseCommonBuilder;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.TempServiceDeleteInput;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.RpcStatusEx;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.service.handler.header.ServiceHandlerHeader;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.service.handler.header.ServiceHandlerHeaderBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.RpcStatusEx;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.service.handler.header.ServiceHandlerHeader;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.service.handler.header.ServiceHandlerHeaderBuilder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
index 92e68db19c071aee5f191c72a0fd6ba5afa4d12e..dcb986478a4f0940b33ab71cb4475755447889c4 100644 (file)
@@ -33,8 +33,8 @@ import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdes
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.AToZDirectionBuilder;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.ZToADirection;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.ZToADirectionBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.RpcStatusEx;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.ServicePathNotificationTypes;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.RpcStatusEx;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.ServicePathNotificationTypes;
 import org.opendaylight.yangtools.yang.binding.Notification;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
index 0aebb75bc61ef14c1fd906a6428410bced11ac4e..bb658ca5735fd25024a113dbbb2b780300ee130a 100644 (file)
@@ -36,9 +36,9 @@ import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev171017.service.rpc.result.sp.PathTopology;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev171017.service.rpc.result.sp.PathTopologyBuilder;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.configuration.response.common.ConfigurationResponseCommonBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.RpcStatusEx;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.ServicePathNotificationTypes;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.service.path.PathDescription;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.RpcStatusEx;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.ServicePathNotificationTypes;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.service.path.PathDescription;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev171017.ServicePathList;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev171017.service.path.list.ServicePaths;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev171017.service.path.list.ServicePathsKey;
index 24b40e3469397604683c2c4fde3d11e38a5951eb..a4b7a7ac35770ea2080b4f003b701ed07d627cc7 100644 (file)
@@ -8,7 +8,7 @@
 
 package org.opendaylight.transportpce.servicehandler.stub;
 
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.service.handler.header.ServiceHandlerHeader;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.service.handler.header.ServiceHandlerHeader;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
index 442b0c83b71a7124b6ab34d8d4b02df0fc410049..d9b941410bd82d3b12d045b17da8e486a13f5c6a 100644 (file)
@@ -59,9 +59,9 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service
 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.list.ServicesBuilder;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.AToZDirectionBuilder;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.ZToADirectionBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.response.parameters.sp.ResponseParameters;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.response.parameters.sp.ResponseParametersBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.response.parameters.sp.response.parameters.PathDescriptionBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.response.parameters.sp.ResponseParameters;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.response.parameters.sp.ResponseParametersBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.response.parameters.sp.response.parameters.PathDescriptionBuilder;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev171017.service.path.list.ServicePaths;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev171017.service.path.list.ServicePathsBuilder;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
index 55a132ab064be316a1a90494b6405dc81a152a96..98c01fa2ffefb08ce3813e4e765abe8d1ab297cb 100644 (file)
@@ -28,9 +28,9 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.TempSer
 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.list.Services;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.AToZDirectionBuilder;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.ZToADirectionBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.response.parameters.sp.ResponseParameters;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.response.parameters.sp.ResponseParametersBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.response.parameters.sp.response.parameters.PathDescriptionBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.response.parameters.sp.ResponseParameters;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.response.parameters.sp.ResponseParametersBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.response.parameters.sp.response.parameters.PathDescriptionBuilder;
 
 //writeOrModifyOrDeleteServiceList deprecated method should not raise warnings in tests
 @SuppressWarnings("deprecation")
index 9c6280cbead36fb6cd59b7f36f70db5adba04e85..a6dbeaa3d1bf7c501d8a2d300e1a828d2732ad14 100644 (file)
@@ -16,8 +16,8 @@ import org.opendaylight.mdsal.binding.api.NotificationPublishService;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev171017.ServiceRpcResultSp;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev171017.ServiceRpcResultSpBuilder;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev171017.service.rpc.result.sp.PathTopologyBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.RpcStatusEx;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.ServicePathNotificationTypes;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.RpcStatusEx;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.ServicePathNotificationTypes;
 import org.opendaylight.yangtools.yang.binding.Notification;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
index 7fc1a7e01775058248ae056baaa71eb16f83e70e..2956c258d508cd99b174eb572e50975b87185fef 100644 (file)
@@ -46,12 +46,12 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service
 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.list.ServicesBuilder;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.routing.constraints.sp.HardConstraintsBuilder;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.routing.constraints.sp.SoftConstraintsBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.service.endpoint.sp.RxDirection;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.service.endpoint.sp.RxDirectionBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.service.endpoint.sp.TxDirection;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.service.endpoint.sp.TxDirectionBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.service.handler.header.ServiceHandlerHeaderBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.service.path.PathDescriptionBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.service.endpoint.sp.RxDirection;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.service.endpoint.sp.RxDirectionBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.service.endpoint.sp.TxDirection;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.service.endpoint.sp.TxDirectionBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.service.handler.header.ServiceHandlerHeaderBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.service.path.PathDescriptionBuilder;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev171017.service.path.list.ServicePaths;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev171017.service.path.list.ServicePathsBuilder;
 import org.opendaylight.yangtools.yang.common.RpcResult;
@@ -77,10 +77,10 @@ public final class ModelMappingUtils {
             .setServiceRate(input.getServiceAEnd().getServiceRate()).setClli(input.getServiceAEnd().getClli())
             .setNodeId(input.getServiceAEnd().getNodeId())
             .setTxDirection(new org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types
-            .rev171016.service.endpoint.sp.TxDirectionBuilder()
+            .rev191009.service.endpoint.sp.TxDirectionBuilder()
             .setPort(input.getServiceAEnd().getTxDirection().getPort()).build())
             .setRxDirection(new org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types
-            .rev171016.service.endpoint.sp.RxDirectionBuilder()
+            .rev191009.service.endpoint.sp.RxDirectionBuilder()
             .setPort(input.getServiceAEnd().getRxDirection().getPort()).build());
         org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev171017.service.implementation
             .request.input.ServiceZEndBuilder serviceZEnd = new org.opendaylight.yang.gen.v1.http.org.opendaylight
@@ -89,10 +89,10 @@ public final class ModelMappingUtils {
             .setServiceRate(input.getServiceZEnd().getServiceRate()).setClli(input.getServiceZEnd().getClli())
             .setNodeId(input.getServiceZEnd().getNodeId())
             .setTxDirection(new org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types
-            .rev171016.service.endpoint.sp.TxDirectionBuilder()
+            .rev191009.service.endpoint.sp.TxDirectionBuilder()
             .setPort(input.getServiceZEnd().getTxDirection().getPort()).build())
             .setRxDirection(new org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types
-            .rev171016.service.endpoint.sp.RxDirectionBuilder()
+            .rev191009.service.endpoint.sp.RxDirectionBuilder()
             .setPort(input.getServiceZEnd().getRxDirection().getPort()).build());
         serviceImplementationRequestInputBuilder.setServiceAEnd(serviceAEnd.build());
         serviceImplementationRequestInputBuilder.setServiceZEnd(serviceZEnd.build());
@@ -295,32 +295,32 @@ public final class ModelMappingUtils {
         ServicePathsBuilder servicePathBuilder = new ServicePathsBuilder();
         if (serviceInput != null) {
             org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface
-                .service.types.rev171016.service.path.ServiceAEndBuilder serviceAEnd =
+                .service.types.rev191009.service.path.ServiceAEndBuilder serviceAEnd =
                 new org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface
-                    .service.types.rev171016.service.path.ServiceAEndBuilder();
+                    .service.types.rev191009.service.path.ServiceAEndBuilder();
             serviceAEnd.setServiceFormat(serviceInput.getServiceAEnd().getServiceFormat())
                 .setServiceRate(serviceInput.getServiceAEnd().getServiceRate())
                 .setClli(serviceInput.getServiceAEnd().getClli())
                 .setNodeId(serviceInput.getServiceAEnd().getNodeId())
                 .setTxDirection(new org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types
-                .rev171016.service.endpoint.sp.TxDirectionBuilder()
+                .rev191009.service.endpoint.sp.TxDirectionBuilder()
                 .setPort(serviceInput.getServiceAEnd().getTxDirection().getPort()).build())
                 .setRxDirection(new org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types
-                .rev171016.service.endpoint.sp.RxDirectionBuilder()
+                .rev191009.service.endpoint.sp.RxDirectionBuilder()
                 .setPort(serviceInput.getServiceAEnd().getRxDirection().getPort()).build());
             org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface
-                .service.types.rev171016.service.path.ServiceZEndBuilder serviceZEnd =
+                .service.types.rev191009.service.path.ServiceZEndBuilder serviceZEnd =
                 new org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface
-                    .service.types.rev171016.service.path.ServiceZEndBuilder();
+                    .service.types.rev191009.service.path.ServiceZEndBuilder();
             serviceZEnd.setServiceFormat(serviceInput.getServiceZEnd().getServiceFormat())
                 .setServiceRate(serviceInput.getServiceZEnd().getServiceRate())
                 .setClli(serviceInput.getServiceZEnd().getClli())
                 .setNodeId(serviceInput.getServiceZEnd().getNodeId())
                 .setTxDirection(new org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types
-                .rev171016.service.endpoint.sp.TxDirectionBuilder()
+                .rev191009.service.endpoint.sp.TxDirectionBuilder()
                 .setPort(serviceInput.getServiceZEnd().getTxDirection().getPort()).build())
                 .setRxDirection(new org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types
-                .rev171016.service.endpoint.sp.RxDirectionBuilder()
+                .rev191009.service.endpoint.sp.RxDirectionBuilder()
                 .setPort(serviceInput.getServiceZEnd().getRxDirection().getPort()).build());
             servicePathBuilder.setServiceAEnd(serviceAEnd.build());
             servicePathBuilder.setServiceZEnd(serviceZEnd.build());
index 44bf2ad85a63b3b06b3d5495c91f5fe1b79432b2..164fee121355ec6b37780c3ceca2f666bd923d0a 100644 (file)
@@ -65,9 +65,9 @@ import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdes
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.ZToADirection;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.ZToADirectionBuilder;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.RoutingConstraintsSp.PceMetric;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.RpcStatusEx;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.ServicePathNotificationTypes;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.service.handler.header.ServiceHandlerHeaderBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.RpcStatusEx;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.ServicePathNotificationTypes;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev191009.service.handler.header.ServiceHandlerHeaderBuilder;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
 
 public final class ServiceDataUtils {
@@ -404,7 +404,7 @@ public final class ServiceDataUtils {
 
     public static ServiceRpcResultSh buildServiceRpcResultSh(ServiceNotificationTypes serviceNotificationTypes,
             String serviceName, org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types
-            .rev171016.RpcStatusEx rpcStatusEx, String message) {
+            .rev191009.RpcStatusEx rpcStatusEx, String message) {
         DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssxxx");
         OffsetDateTime offsetDateTime = OffsetDateTime.now(ZoneOffset.UTC);
         DateAndTime datetime = new DateAndTime(dtf.format(offsetDateTime));