Version update to 1.6 of the service-path model 16/64716/10
authorOlivier <olivier.renais@orange.com>
Wed, 25 Oct 2017 13:26:32 +0000 (15:26 +0200)
committerMartial COULIBALY <martial.coulibaly@gfi.fr>
Fri, 17 Nov 2017 09:02:35 +0000 (10:02 +0100)
RPCs originally in service-path are now split in several modules which
expose them.
- Replacement of node-id by tp-node-id in path-description/resource to
avoid potential conflicts in the service handler code.
- Move previous and new service path yang models to the 'service_path'
folder.
- Rename transportpce yang models with their revision date.
- Add old revision statement to service_path_v1.6 yang files.
- Modifiy prefix import for transportpce-routing-constraints to be
'transportpce-routing-constraints' and not 'org-openroadm-routing
-constraints' in yang 'transportpce-common-service-path-types
@2017-10-16.yang'.
- Add revision-date statement to import.
- Add missing 'leaf status-message' in grouping rpc-response-status-ex
in 'transportpce-common-service-path-types@2017-10-16.yang'.
- Move stubpce and stubrenderer to tests folder.
- Add missing grouping 'stubpce-path-description' and container
'path-description-list' to transportpce-pce.yang model.

Change-Id: I06667dabb39490c378dfbbf4462c262e078a7f9d
Signed-off-by: Olivier <olivier.renais@orange.com>
24 files changed:
api/src/main/yang/service_path/transportpce-common-service-path-types@2017-04-26.yang [moved from api/src/main/yang/service_path_v1.5/transportpce-common-service-path-types.yang with 99% similarity]
api/src/main/yang/service_path/transportpce-common-service-path-types@2017-10-16.yang [new file with mode: 0644]
api/src/main/yang/service_path/transportpce-pathDescription@2017-04-26.yang [moved from api/src/main/yang/service_path_v1.5/transportpce-pathDescription.yang with 100% similarity]
api/src/main/yang/service_path/transportpce-pathDescription@2017-10-17.yang [new file with mode: 0644]
api/src/main/yang/service_path/transportpce-pce.yang [new file with mode: 0644]
api/src/main/yang/service_path/transportpce-renderer.yang [new file with mode: 0644]
api/src/main/yang/service_path/transportpce-routing-constraints@2017-04-26.yang [moved from api/src/main/yang/service_path_v1.5/transportpce-routing-constraints.yang with 100% similarity]
api/src/main/yang/service_path/transportpce-routing-constraints@2017-10-17.yang [new file with mode: 0644]
api/src/main/yang/service_path/transportpce-service-path@2017-04-26.yang [moved from api/src/main/yang/service_path_v1.5/transportpce-service-path.yang with 97% similarity]
api/src/main/yang/service_path/transportpce-service-path@2017-10-17.yang [new file with mode: 0644]
api/src/main/yang/service_path/transportpce-servicehandler.yang [new file with mode: 0644]
pom.xml
tests/pom.xml [new file with mode: 0644]
tests/stubpce/pom.xml [moved from stubpce/pom.xml with 100% similarity]
tests/stubpce/src/main/java/org/opendaylight/transportpce/stubpce/CompliancyCheck.java [moved from stubpce/src/main/java/org/opendaylight/transportpce/stubpce/CompliancyCheck.java with 100% similarity]
tests/stubpce/src/main/java/org/opendaylight/transportpce/stubpce/SendingPceRPCs.java [moved from stubpce/src/main/java/org/opendaylight/transportpce/stubpce/SendingPceRPCs.java with 100% similarity]
tests/stubpce/src/main/java/org/opendaylight/transportpce/stubpce/impl/StubpceImpl.java [moved from stubpce/src/main/java/org/opendaylight/transportpce/stubpce/impl/StubpceImpl.java with 100% similarity]
tests/stubpce/src/main/java/org/opendaylight/transportpce/stubpce/impl/StubpceProvider.java [moved from stubpce/src/main/java/org/opendaylight/transportpce/stubpce/impl/StubpceProvider.java with 100% similarity]
tests/stubpce/src/main/resources/org/opendaylight/blueprint/Stubpce-blueprint.xml [moved from stubpce/src/main/resources/org/opendaylight/blueprint/Stubpce-blueprint.xml with 100% similarity]
tests/stubrenderer/pom.xml [moved from stubrenderer/pom.xml with 100% similarity]
tests/stubrenderer/src/main/java/org/opendaylight/transportpce/stubrenderer/SendingRendererRPCs.java [moved from stubrenderer/src/main/java/org/opendaylight/transportpce/stubrenderer/SendingRendererRPCs.java with 100% similarity]
tests/stubrenderer/src/main/java/org/opendaylight/transportpce/stubrenderer/impl/StubrendererImpl.java [moved from stubrenderer/src/main/java/org/opendaylight/transportpce/stubrenderer/impl/StubrendererImpl.java with 100% similarity]
tests/stubrenderer/src/main/java/org/opendaylight/transportpce/stubrenderer/impl/StubrendererProvider.java [moved from stubrenderer/src/main/java/org/opendaylight/transportpce/stubrenderer/impl/StubrendererProvider.java with 100% similarity]
tests/stubrenderer/src/main/resources/org/opendaylight/blueprint/stubrenderer-blueprint.xml [moved from stubrenderer/src/main/resources/org/opendaylight/blueprint/stubrenderer-blueprint.xml with 100% similarity]

similarity index 99%
rename from api/src/main/yang/service_path_v1.5/transportpce-common-service-path-types.yang
rename to api/src/main/yang/service_path/transportpce-common-service-path-types@2017-04-26.yang
index 1245f4bc73d9f66e34ae037743134328cabcf1a7..8d1f9b6dd235ed599bc1c8ba20a6f88817e38bcc 100644 (file)
@@ -10,9 +10,11 @@ module transportpce-common-service-path-types {
   }
   import transportpce-routing-constraints {
     prefix transportpce-routing-constraints;
+    revision-date 2017-04-26; 
   }
   import transportpce-pathDescription {
     prefix transportpce-pathDescription;
+    revision-date 2017-04-26; 
   }
   import org-openroadm-common-types {
     prefix org-openroadm-common-types;
diff --git a/api/src/main/yang/service_path/transportpce-common-service-path-types@2017-10-16.yang b/api/src/main/yang/service_path/transportpce-common-service-path-types@2017-10-16.yang
new file mode 100644 (file)
index 0000000..b0561e0
--- /dev/null
@@ -0,0 +1,221 @@
+module transportpce-common-service-path-types {
+  namespace "http://org/transportpce/B-C-interface/service/types";
+  prefix transportpce-common-service-path-types;
+
+  import ietf-yang-types {
+    prefix yang;
+  }
+  import ietf-inet-types {
+    prefix inet;
+  }
+  import transportpce-routing-constraints {
+    prefix transportpce-routing-constraints;
+    revision-date 2017-10-17; 
+  }
+  import transportpce-pathDescription {
+    prefix transportpce-pathDescription;
+    revision-date 2017-10-17; 
+  }
+  import org-openroadm-common-types {
+    prefix org-openroadm-common-types;
+  }
+  import org-openroadm-resource-types {
+    prefix org-openroadm-resource-types;
+  }
+  import org-openroadm-common-service-types {
+    prefix org-openroadm-common-service-types;
+  }
+
+  organization
+    "transportPCE";
+  contact
+    "transportPCE committers - ODL";
+  description
+    "YANG definitions of B & C interfaces (transportPCE). Adapted from service definition (openroadm)
+     Copyright ©  2017 Orange, Inc. and others.  All rights reserved.
+
+     openroadm copyright:
+      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+      AT&T Intellectual Property.  All other rights reserved.
+
+      Redistribution and use in source and binary forms, with or without modification,
+      are permitted provided that the following conditions are met:
+
+      * Redistributions of source code must retain the above copyright notice, this
+        list of conditions and the following disclaimer.
+      * Redistributions in binary form must reproduce the above copyright notice,
+        this list of conditions and the following disclaimer in the documentation and/or
+        other materials provided with the distribution.
+      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
+        contributors may be used to endorse or promote products derived from this software
+        without specific prior written permission.
+
+      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
+      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
+      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
+      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+      POSSIBILITY OF SUCH DAMAGE";
+
+  
+  revision 2017-04-26 {
+      description
+        "Version 1.5";
+  }
+  revision 2017-10-16 {
+    description
+      "Version 1.6";
+  }
+  
+  typedef service-path-notification-types {
+    type enumeration {
+      enum "path-computation-request" {
+        value 1;
+      }
+      enum "cancel-resource-reserve" {
+        value 2;
+      }
+      enum "service-implementation-request" {
+        value 3;
+      }
+      enum "service-delete" {
+        value 4;
+      }
+    }
+  }
+
+  typedef rpc-status-ex {
+    description
+      "extended status of RPC ";
+    type enumeration {
+      enum "Successful" {
+        value 1;
+      }
+      enum "Failed" {
+        value 2;
+      }
+      enum "Pending" {
+        value 3;
+      }
+    }
+  }
+
+  grouping rpc-response-status-ex {
+    leaf status {
+      type rpc-status-ex;
+      mandatory true;
+      description
+        "Successful, Failed or Pending";
+
+        }
+    leaf status-message {
+        type string;
+        description
+          "Gives a more detailed reason for failure";
+        }
+   }
+
+  grouping response-parameters-sp {
+    container response-parameters {
+      uses transportpce-routing-constraints:routing-constraints-sp;
+      container path-description {
+           uses transportpce-pathDescription:path-description;
+      }
+    }
+  }
+
+  grouping service-endpoint-sp {
+    leaf service-format {
+      type org-openroadm-common-service-types: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";
+    }
+    leaf node-id {
+         type string;
+    }
+    container tx-direction {
+      uses org-openroadm-common-service-types:service-port;
+ //     uses service-lgx;
+ //     uses service-tail;
+    }
+    container rx-direction {
+      uses org-openroadm-common-service-types:service-port;
+ //     uses service-lgx;
+ //     uses service-tail;
+    }
+  }
+
+    grouping service-handler-header {
+    container service-handler-header {
+      leaf request-id {
+        type string;
+        mandatory true;
+      }
+    }
+  }
+
+  grouping service-path {
+    leaf service-path-name {
+      type string;
+      description
+        "Identifier for the service-path to be calculated by
+         the PCE";
+      mandatory true;
+    }
+    uses service-handler-header;
+
+    container service-a-end {
+      uses service-endpoint-sp;
+    }
+    container service-z-end {
+      uses service-endpoint-sp;
+    }
+    uses transportpce-routing-constraints:routing-constraints-sp;
+
+    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 path-description {
+      uses transportpce-pathDescription:path-description;
+    }
+  }
+
+}
diff --git a/api/src/main/yang/service_path/transportpce-pathDescription@2017-10-17.yang b/api/src/main/yang/service_path/transportpce-pathDescription@2017-10-17.yang
new file mode 100644 (file)
index 0000000..62de993
--- /dev/null
@@ -0,0 +1,142 @@
+module transportpce-pathDescription {
+  namespace "http://org/transportpce/B-C-interface/pathDescription";
+  prefix transportpce-pathDescription;
+
+  import org-openroadm-resource {
+    prefix org-openroadm-resource;
+  }
+
+  organization
+    "transportPCE";
+  contact
+    "transportPCE committers - ODL";
+  description
+    "YANG definitions of B interface (transportPCE). Adapted from service definition (openroadm)
+     Copyright © 2017 Orange, Inc. and others.  All rights reserved.
+
+     openroadm copyright:
+      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+      AT&T Intellectual Property.  All other rights reserved.
+
+      Redistribution and use in source and binary forms, with or without modification,
+      are permitted provided that the following conditions are met:
+
+      * Redistributions of source code must retain the above copyright notice, this
+        list of conditions and the following disclaimer.
+      * Redistributions in binary form must reproduce the above copyright notice,
+        this list of conditions and the following disclaimer in the documentation and/or
+        other materials provided with the distribution.
+      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
+        contributors may be used to endorse or promote products derived from this software
+        without specific prior written permission.
+
+      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
+      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
+      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
+      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+      POSSIBILITY OF SUCH DAMAGE";
+
+  revision 2017-04-26 {
+      description
+        "Version 1.5";
+  }
+  revision 2017-10-17 {
+    description
+      "Version 1.6";
+  }
+ grouping PCE-resource {
+    description
+      "This resource identifier is intended to provide a generic identifer
+       for any resource that can be used without specific knowledge of
+       the resource.";
+    container resource {
+      choice resource {
+        case termination-point {
+          leaf tp-id {
+               type string; //to be clarified with topology model
+          }
+          leaf tp-node-id {
+               type string; //to be clarified with topology model
+          }
+        }
+
+        case link {
+          leaf link-id {
+               type string; //to be clarified with topology model
+          }
+        }
+
+        case node {
+          leaf node-id {
+               type string; // to be clarified with topology model
+          }
+        }
+      }
+    }
+  }
+
+
+  grouping path-description {
+    description
+      "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";
+    container aToZ-direction {
+         leaf aToZ-wavelength-number {
+              type uint32;
+              mandatory true;
+         }
+         leaf rate {
+              type uint32;
+              mandatory true;
+         }
+         leaf modulation-format {
+              type string; // enum ?
+         }
+         list aToZ {
+           key "id";
+           leaf id {
+             description
+               "Unique identifier for this topology component within this service";
+             type string;
+           }
+           uses hop;
+         }
+    }
+
+    container zToA-direction {
+         leaf zToA-wavelength-number {
+              type uint32;
+              mandatory true;
+         }
+         leaf rate {
+              type uint32;
+              mandatory true;
+         }
+         leaf modulation-format {
+              type string; // enum ?
+         }
+         list zToA {
+           key "id";
+           leaf id {
+             description
+               "Unigue identifier for this topology component within this service";
+             type string;
+           }
+           uses hop;
+         }
+       }
+    }
+
+
+  grouping hop {
+    uses PCE-resource;
+  }
+}
diff --git a/api/src/main/yang/service_path/transportpce-pce.yang b/api/src/main/yang/service_path/transportpce-pce.yang
new file mode 100644 (file)
index 0000000..0652d3e
--- /dev/null
@@ -0,0 +1,140 @@
+module transportpce-pce {
+  namespace "http://org/transportpce/B-interface/pce";
+  prefix transportpce-pce;
+
+  import ietf-yang-types {
+    prefix yang;
+  }
+  import transportpce-routing-constraints {
+    prefix transportpce-routing-constraints;
+    revision-date 2017-10-17;
+  }
+  import org-openroadm-common-service-types {
+    prefix org-openroadm-common-service-types;
+  }
+  import transportpce-common-service-path-types {
+    prefix transportpce-common-service-path-types;
+    revision-date 2017-10-16;
+  }
+  import transportpce-pathDescription {
+    prefix transportpce-pathDescription;
+    revision-date 2017-10-17;
+  }
+
+  organization
+    "transportPCE";
+  contact
+    "transportPCE committers - ODL";
+  description
+    "YANG definitions of B interface (transportPCE). Adapted from service definition (openroadm)
+     Copyright © 2017 Orange, Inc. and others.  All rights reserved.
+
+     openroadm copyright:
+      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+      AT&T Intellectual Property.  All other rights reserved.
+
+      Redistribution and use in source and binary forms, with or without modification,
+      are permitted provided that the following conditions are met:
+
+      * Redistributions of source code must retain the above copyright notice, this
+        list of conditions and the following disclaimer.
+      * Redistributions in binary form must reproduce the above copyright notice,
+        this list of conditions and the following disclaimer in the documentation and/or
+        other materials provided with the distribution.
+      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
+        contributors may be used to endorse or promote products derived from this software
+        without specific prior written permission.
+
+      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
+      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
+      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
+      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+      POSSIBILITY OF SUCH DAMAGE";
+
+  revision 2017-10-17 {
+    description
+      "Version 1.6";
+  }
+
+  rpc path-computation-request {
+    input {
+      leaf service-name {
+        type string;
+        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 resource-reserve {
+           type boolean;
+           description
+                "indicates if resources (from local PCE topology) must be reserved until further notice (cancel-resource-reserve or topology update)";
+           mandatory true;
+      }
+      uses transportpce-common-service-path-types:service-handler-header;
+      container service-a-end {
+        uses transportpce-common-service-path-types:service-endpoint-sp;
+      }
+      container service-z-end {
+        uses transportpce-common-service-path-types:service-endpoint-sp;
+      }
+      uses transportpce-routing-constraints:routing-constraints-sp;
+    }
+    output {
+      uses org-openroadm-common-service-types:configuration-response-common;
+      uses transportpce-common-service-path-types:response-parameters-sp;
+    }
+  }
+
+  rpc cancel-resource-reserve {
+    input {
+      leaf service-name {
+        type string;
+        mandatory true;
+      }
+      uses transportpce-common-service-path-types:service-handler-header;
+    }
+    output {
+      uses org-openroadm-common-service-types:configuration-response-common;
+    }
+  }
+
+notification service-path-rpc-result {
+    description
+      "This Notification indicates result of  service RPC";
+    leaf notification-type {
+      type transportpce-common-service-path-types:service-path-notification-types;
+    }
+    container path-description {
+           uses transportpce-pathDescription:path-description;
+    }
+    uses transportpce-common-service-path-types:rpc-response-status-ex;
+    uses org-openroadm-common-service-types:service-notification-result;
+  }
+  
+  grouping stubpce-path-description {
+      leaf path-name {
+          type string;
+          description
+            "Identifier for the pathDescription to be created in
+             the ROADM network, e.g., CLFI, CLCI, etc.";
+          mandatory true;
+        }
+      uses transportpce-pathDescription:path-description;
+  }
+
+  container path-description-list {
+    description
+      "List of pathDescription. Can only be created, deleted, modified, etc. using special RPCs.";
+    list pathDescriptions {
+      key "path-name";
+      uses stubpce-path-description;
+    }
+  }
+
+}
diff --git a/api/src/main/yang/service_path/transportpce-renderer.yang b/api/src/main/yang/service_path/transportpce-renderer.yang
new file mode 100644 (file)
index 0000000..1051a35
--- /dev/null
@@ -0,0 +1,116 @@
+module transportpce-renderer {
+  namespace "http://org/transportpce/C-interface/renderer";
+  prefix transportpce-renderer;
+
+  import ietf-yang-types {
+    prefix yang;
+  }
+  import org-openroadm-common-service-types {
+    prefix org-openroadm-common-service-types;
+  }
+  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;
+  }
+  import transportpce-pathDescription {
+    prefix transportpce-pathDescription;
+    revision-date 2017-10-17;
+  }
+
+  organization
+    "transportPCE";
+  contact
+    "transportPCE committers - ODL";
+  description
+    "YANG definitions of C interface (transportPCE). Adapted from service definition (openroadm)
+     Copyright © 2017 Orange, Inc. and others.  All rights reserved.
+
+     openroadm copyright:
+      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+      AT&T Intellectual Property.  All other rights reserved.
+
+      Redistribution and use in source and binary forms, with or without modification,
+      are permitted provided that the following conditions are met:
+
+      * Redistributions of source code must retain the above copyright notice, this
+        list of conditions and the following disclaimer.
+      * Redistributions in binary form must reproduce the above copyright notice,
+        this list of conditions and the following disclaimer in the documentation and/or
+        other materials provided with the distribution.
+      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
+        contributors may be used to endorse or promote products derived from this software
+        without specific prior written permission.
+
+      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
+      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
+      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
+      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+      POSSIBILITY OF SUCH DAMAGE";
+
+  revision 2017-10-17 {
+    description
+      "Version 1.6";
+  }
+
+  rpc service-implementation-request {
+    input {
+      leaf service-name {
+        type string;
+        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;
+      }
+      uses transportpce-common-service-path-types:service-handler-header;
+      container service-a-end {
+        uses transportpce-common-service-path-types:service-endpoint-sp;
+      }
+      container service-z-end {
+        uses transportpce-common-service-path-types:service-endpoint-sp;
+      }
+      container path-description {
+        uses transportpce-pathDescription:path-description;
+      }
+    }
+    output {
+       uses org-openroadm-common-service-types:configuration-response-common;
+    }
+  }
+
+  rpc service-delete {
+    input {
+      leaf service-name {
+        type string;
+        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;
+      }
+      uses transportpce-common-service-path-types:service-handler-header;
+    }
+    output {
+         uses org-openroadm-common-service-types:configuration-response-common;
+    }
+  }
+
+notification service-rpc-result-sp {
+    description
+      "This Notification indicates result of  service RPC and provides the topology";
+    leaf notification-type {
+      type transportpce-common-service-path-types:service-path-notification-types;
+    }
+    container path-topology {
+      uses org-openroadm-topology:topology;
+    }
+    uses transportpce-common-service-path-types:rpc-response-status-ex;
+    uses org-openroadm-common-service-types:service-notification-result;
+  }
+}
diff --git a/api/src/main/yang/service_path/transportpce-routing-constraints@2017-10-17.yang b/api/src/main/yang/service_path/transportpce-routing-constraints@2017-10-17.yang
new file mode 100644 (file)
index 0000000..66b3690
--- /dev/null
@@ -0,0 +1,180 @@
+module transportpce-routing-constraints {
+  namespace "http://org/transportpce/B-C-interface/routing/constraints";
+  prefix transportpce-routing-constraints;
+
+  organization
+    "transportPCE";
+  contact
+    "transportPCE committers - ODL";
+  description
+    "YANG definitions of B interface (transportPCE). Adapted from service definition (openroadm)
+     Copyright ©  2017 Orange, Inc. and others.  All rights reserved.
+     openroadm copyright:
+      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+      AT&T Intellectual Property.  All other rights reserved.
+
+      Redistribution and use in source and binary forms, with or without modification,
+      are permitted provided that the following conditions are met:
+
+      * Redistributions of source code must retain the above copyright notice, this
+        list of conditions and the following disclaimer.
+      * Redistributions in binary form must reproduce the above copyright notice,
+        this list of conditions and the following disclaimer in the documentation and/or
+        other materials provided with the distribution.
+      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
+        contributors may be used to endorse or promote products derived from this software
+        without specific prior written permission.
+
+      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
+      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
+      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
+      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+      POSSIBILITY OF SUCH DAMAGE";
+
+  revision 2017-04-26 {
+      description
+        "Version 1.5";
+  }
+  revision 2017-10-17 {
+    description
+      "Version 1.6";
+  }
+
+  grouping common-constraints-sp {
+    leaf-list SRLG {
+      type string;
+    }
+    leaf-list clli {
+      type string;
+    }
+    leaf-list node-id {
+      type string;
+    }
+  }
+
+grouping ordered-constraints-sp {
+    description
+      "";
+    container hop-type {
+      choice hop-type {
+        case SRLG {
+          leaf SRLG {
+               type string; //to be clarified with topology model
+          }
+        }
+
+        case clli {
+          leaf clli {
+               type string; //to be clarified with topology model
+          }
+        }
+
+        case node {
+          leaf node-id {
+               type string; // to be clarified with topology model
+          }
+        }
+      }
+    }
+  }
+
+
+  grouping diversity-existing-service-contraints-sp {
+    leaf-list existing-service {
+      type string;
+      description
+        "Diverse from existing services identified by facility CLFI";
+    }
+    container existing-service-applicability {
+      leaf clli {
+        type boolean;
+      }
+      leaf node {
+        type boolean;
+      }
+      leaf srlg {
+        type boolean;
+      }
+    }
+  }
+  grouping routing-constraints-sp {
+    container hard-constraints {
+      uses constraints-sp;
+    }
+    container soft-constraints {
+      uses constraints-sp;
+    }
+    leaf pce-metric {
+         type enumeration {
+              enum hop-count;
+              enum propagation-delay;
+              enum TE-metric;
+              enum IGP-metric;
+         }
+    }
+    leaf locally-protected-links {
+         type boolean;
+         description "indicates whether it must use locally protected links or not";
+    }
+  }
+
+  grouping constraints-sp {
+    leaf-list customer-code {
+      type string;
+    }
+    choice co-routing-or-general {
+      case general {
+        container diversity {
+          uses diversity-existing-service-contraints-sp;
+        }
+        container exclude_ {
+          uses common-constraints-sp;
+          leaf-list supporting-service-name {
+            description
+              "Supporting service(s) to exclude from this route.";
+            type string;
+          }
+          leaf affinity {
+               type uint32;
+          }
+        }
+        container include_ {
+          list ordered-hops {
+               key hop-number;
+               leaf hop-number {
+                    description
+                      "designates the id of the hop: node-id, SRLG-id, site-id";
+                    type uint16;
+               }
+               uses ordered-constraints-sp;
+          }
+
+        }
+        container latency {
+          description
+            "Maximum latency allowed";
+          leaf max-latency {
+            type uint32;
+            units "ms";
+          }
+        }
+      }
+      case co-routing {
+        container co-routing {
+          leaf-list existing-service {
+            type string;
+            description
+              "Diverse from existing services identified by facility CLFI";
+          }
+        }
+      }
+    }
+  }
+
+
+}
similarity index 97%
rename from api/src/main/yang/service_path_v1.5/transportpce-service-path.yang
rename to api/src/main/yang/service_path/transportpce-service-path@2017-04-26.yang
index e38a1602a760df6ef48099c265df45a46cf71dac..de321f354a379762b99c4334f0fe7d713d131573 100644 (file)
@@ -1,5 +1,5 @@
 module transportpce-servicepath {
-  namespace "http://org/transportpce/B-C-interface";
+  namespace "http://org/transportpce/B-C-interface/servicepath";
   prefix transportpce-servicepath;
 
   import ietf-yang-types {
@@ -7,6 +7,7 @@ module transportpce-servicepath {
   }
   import transportpce-routing-constraints {
     prefix transportpce-routing-constraints;
+    revision-date 2017-04-26; 
   }
   import org-openroadm-common-types {
     prefix org-openroadm-common-types;
@@ -19,9 +20,11 @@ module transportpce-servicepath {
   }
   import transportpce-common-service-path-types {
     prefix transportpce-common-service-path-types;
+    revision-date 2017-04-26; 
   }
   import transportpce-pathDescription {
       prefix transportpce-pathDescription;
+      revision-date 2017-04-26; 
   }
   import org-openroadm-topology {
     prefix org-openroadm-topology;
diff --git a/api/src/main/yang/service_path/transportpce-service-path@2017-10-17.yang b/api/src/main/yang/service_path/transportpce-service-path@2017-10-17.yang
new file mode 100644 (file)
index 0000000..373adfd
--- /dev/null
@@ -0,0 +1,65 @@
+module transportpce-servicepath {
+  namespace "http://org/transportpce/B-C-interface/servicepath";
+  prefix transportpce-servicepath;
+
+  import ietf-yang-types {
+    prefix yang;
+  }
+  import transportpce-common-service-path-types {
+    prefix transportpce-common-service-path-types;
+  }
+
+  organization
+    "transportPCE";
+  contact
+    "transportPCE committers - ODL";
+  description
+    "YANG definitions for service-path (transportPCE). Adapted from service definition (openroadm)
+     Copyright © 2017 Orange, Inc. and others.  All rights reserved.
+
+     openroadm copyright:
+      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+      AT&T Intellectual Property.  All other rights reserved.
+
+      Redistribution and use in source and binary forms, with or without modification,
+      are permitted provided that the following conditions are met:
+
+      * Redistributions of source code must retain the above copyright notice, this
+        list of conditions and the following disclaimer.
+      * Redistributions in binary form must reproduce the above copyright notice,
+        this list of conditions and the following disclaimer in the documentation and/or
+        other materials provided with the distribution.
+      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
+        contributors may be used to endorse or promote products derived from this software
+        without specific prior written permission.
+
+      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
+      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
+      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
+      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+      POSSIBILITY OF SUCH DAMAGE";
+
+  revision 2017-04-26 {
+      description
+        "Version 1.5";
+  }
+  revision 2017-10-17 {
+    description
+      "Version 1.6";
+  }
+
+  container service-path-list {
+    description
+      "List of service paths. Can only be created, deleted, modified, etc. using special RPCs.";
+    list service-paths {
+      key "service-path-name";
+      uses transportpce-common-service-path-types:service-path;
+    }
+  }
+
+}
diff --git a/api/src/main/yang/service_path/transportpce-servicehandler.yang b/api/src/main/yang/service_path/transportpce-servicehandler.yang
new file mode 100644 (file)
index 0000000..feed6e1
--- /dev/null
@@ -0,0 +1,83 @@
+module transportpce-servicehandler {
+  namespace "http://org/transportpce/B-C-interface/servicehandler";
+  prefix transportpce-servicehandler;
+
+  import ietf-yang-types {
+    prefix yang;
+  }
+  import transportpce-routing-constraints {
+    prefix transportpce-routing-constraints;
+    revision-date 2017-10-17;
+  }
+  import org-openroadm-common-types {
+    prefix org-openroadm-common-types;
+  }
+  import org-openroadm-resource-types {
+    prefix org-openroadm-resource-types;
+  }
+  import org-openroadm-common-service-types {
+    prefix org-openroadm-common-service-types;
+  }
+  import transportpce-common-service-path-types {
+    prefix transportpce-common-service-path-types;
+    revision-date 2017-10-16;
+  }
+  import transportpce-pathDescription {
+    prefix transportpce-pathDescription;
+    revision-date 2017-10-17;
+  }
+  import org-openroadm-topology {
+    prefix org-openroadm-topology;
+  }
+
+  organization
+    "transportPCE";
+  contact
+    "transportPCE committers - ODL";
+  description
+    "YANG definitions of A interface (transportPCE). Adapted from service definition (openroadm)
+     Copyright © 2017 Orange, Inc. and others.  All rights reserved.
+
+     openroadm copyright:
+      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+      AT&T Intellectual Property.  All other rights reserved.
+
+      Redistribution and use in source and binary forms, with or without modification,
+      are permitted provided that the following conditions are met:
+
+      * Redistributions of source code must retain the above copyright notice, this
+        list of conditions and the following disclaimer.
+      * Redistributions in binary form must reproduce the above copyright notice,
+        this list of conditions and the following disclaimer in the documentation and/or
+        other materials provided with the distribution.
+      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
+        contributors may be used to endorse or promote products derived from this software
+        without specific prior written permission.
+
+      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
+      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
+      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
+      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+      POSSIBILITY OF SUCH DAMAGE";
+
+  revision 2017-10-17 {
+    description
+      "Version 1.6";
+  }
+  notification service-rpc-result-sh{
+    description
+      "This Notification indicates result of service RPC";
+    leaf notification-type {
+      type org-openroadm-common-service-types:service-notification-types;
+    }
+    uses transportpce-common-service-path-types:rpc-response-status-ex;
+    uses org-openroadm-common-service-types:service-notification-result;
+  }
+
+
+}
diff --git a/pom.xml b/pom.xml
index 2ba19ec870cb8727cc911ffc90998c7f26e7720d..e31d75d41c5009540b44f5f4ab6f3b5d26f2a104 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -35,9 +35,8 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
     <module>impl</module>
     <module>renderer</module>
     <module>olm</module>
-    <module>stubrenderer</module>
-    <module>stubpce</module>
     <module>servicehandler</module>
+    <module>tests</module>
     <module>cli</module>
     <module>features</module>
     <module>karaf</module>
diff --git a/tests/pom.xml b/tests/pom.xml
new file mode 100644 (file)
index 0000000..4cb2dff
--- /dev/null
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Copyright © 2016 Orange and others. All rights reserved.
+
+This program and the accompanying materials are made available under the
+terms of the Eclipse Public License v1.0 which accompanies this distribution,
+and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.opendaylight.odlparent</groupId>
+    <artifactId>odlparent</artifactId>
+    <version>2.0.5</version>
+    <relativePath/>
+  </parent>
+
+  <groupId>org.opendaylight.transportpce</groupId>
+  <artifactId>stubs-aggregator</artifactId>
+  <version>0.2.0-SNAPSHOT</version>
+  <name>${project.artifactId}</name>
+  <packaging>pom</packaging>
+
+  <modules>
+    <module>stubpce</module>
+    <module>stubrenderer</module>
+  </modules>
+
+</project>
similarity index 100%
rename from stubpce/pom.xml
rename to tests/stubpce/pom.xml