summaryrefslogtreecommitdiffstats
path: root/actn-interface-tools/actn-model/src/main/yang/ietf-optical-slice@2020-08-21.yang
diff options
context:
space:
mode:
authordecheng zhang <decheng.zhang@huawei.com>2022-07-14 22:15:18 -0400
committerdecheng zhang <decheng.zhang@huawei.com>2022-07-21 13:16:53 -0400
commit5c4ea01ed2994bf573609d3a1ddf1730d0a63d38 (patch)
tree255f90b36758145edae71948cba9c08559f33ac5 /actn-interface-tools/actn-model/src/main/yang/ietf-optical-slice@2020-08-21.yang
parent1187877eb060881b49871515fc43eda01e82cb16 (diff)
[actn-interface-tools] First commit for actn-interface-tools
Actn-interface-tools: this sdk module is aiming to promote usage of actn standard and explore the potential of IETF protocol. Issue-ID: INT-2136 Signed-off-by: decheng zhang <decheng.zhang@huawei.com> Change-Id: Ide2835342f0618f581b2726e7fd94ba084feeb9d Signed-off-by: decheng zhang <decheng.zhang@huawei.com>
Diffstat (limited to 'actn-interface-tools/actn-model/src/main/yang/ietf-optical-slice@2020-08-21.yang')
-rw-r--r--actn-interface-tools/actn-model/src/main/yang/ietf-optical-slice@2020-08-21.yang952
1 files changed, 952 insertions, 0 deletions
diff --git a/actn-interface-tools/actn-model/src/main/yang/ietf-optical-slice@2020-08-21.yang b/actn-interface-tools/actn-model/src/main/yang/ietf-optical-slice@2020-08-21.yang
new file mode 100644
index 0000000..ce6c793
--- /dev/null
+++ b/actn-interface-tools/actn-model/src/main/yang/ietf-optical-slice@2020-08-21.yang
@@ -0,0 +1,952 @@
+module ietf-optical-slice {
+ yang-version 1.1;
+
+ namespace "urn:ietf:params:xml:ns:yang:ietf-optical-slice";
+ prefix "otnslice";
+
+ import ietf-inet-types {
+ prefix inet;
+/* reference
+ "RFC 6991: Common YANG Data Types"; */
+ }
+
+ import ietf-network {
+ prefix "nw";
+ }
+
+ import ietf-network-topology {
+ prefix "nt";
+ }
+
+ import ietf-te-topology {
+ prefix "tet";
+ }
+
+ import ietf-te-types {
+ prefix "te-types";
+ }
+
+ import ietf-te {
+ prefix "te";
+ }
+
+ import ietf-otn-topology {
+ prefix "otntopo";
+ }
+
+ import ietf-layer1-types {
+ prefix "layer1-types";
+ }
+
+ import ietf-eth-tran-service {
+ prefix "ethtsvc";
+ }
+
+ revision "2020-08-21" {
+ description
+ "Initial revision.";
+ reference
+ "RFC XXXX, optical slice";
+ }
+
+ typedef slice-id {
+ type string;
+ description
+ "An identifier for optical slice inside otn network. The precise
+ structure of the slice-id will be up to the implementation.";
+ }
+
+ /*** Groupings **/
+
+ /*** grouping otn-slice-link-bandwidth {
+ list slicelist {
+ key "slice-id";
+ description
+ "OTN slice id";
+ leaf slice-id {
+ type slice-id;
+ description
+ "Tunnel termination point identifier.";
+ }
+ leaf odu0-number {
+ type uint16;
+ description "Number of ODU0s";
+ }
+ }
+ } **/
+
+ grouping ts-slice-info {
+ description "The slice information on specific TS. ";
+ reference "RFC7139, section 6. ";
+ leaf ts-slice-map {
+ type string;
+ description
+ "Used together with ts-list to indicate if a set of TS
+ belongs to any existing optical slices. For example,
+ '1-8, slice 1; 41-80, slice 2.' ";
+ }
+ }
+
+ augment "/nw:networks/nw:network/nw:node/nt:termination-point/"
+ + "tet:te" {
+ when "../../../nw:network-types/tet:te-topology/otntopo:otn-topology
+ or ../../../nw:network-types/tet:te-topology/ethtetopo:eth-tran-topology" {
+ description "Augment the slice IDonly for otn network";
+ }
+ leaf-list slice-id-list {
+ type string;
+ description
+ "List of The slice that the TP belongs.";
+ }
+ }
+
+ /* Augment TS Slice info of underlay primary path
+ * of connectivity-matrices */
+ augment "/nw:networks/nw:network/nw:node/tet:te/"
+ + "tet:te-node-attributes/tet:connectivity-matrices/"
+ + "tet:underlay/tet:primary-path/tet:path-element/"
+ + "tet:type/tet:label/tet:label-hop/"
+ + "tet:te-label/tet:technology" {
+ when "../../../../../../../../../"
+ + "nw:network-types/tet:te-topology/"
+ + "otntopo:otn-topology" {
+ description "Augment OTN TE label";
+ }
+ description "OTN label.";
+ case otn {
+ uses ts-slice-info;
+ }
+ }
+ /* Augment TS Slice info of underlay backup path
+ * of connectivity-matrices */
+ augment "/nw:networks/nw:network/nw:node/tet:te/"
+ + "tet:te-node-attributes/tet:connectivity-matrices/"
+ + "tet:underlay/tet:backup-path/tet:path-element/"
+ + "tet:type/tet:label/tet:label-hop/"
+ + "tet:te-label/tet:technology" {
+ when "../../../../../../../../../"
+ + "nw:network-types/tet:te-topology/"
+ + "otntopo:otn-topology" {
+ description "Augment OTN TE label";
+ }
+ description "OTN label.";
+ case otn {
+ uses ts-slice-info;
+ }
+ }
+
+ /* Augment TS Slice info of route-exclude of connectivity-matrices */
+ augment "/nw:networks/nw:network/nw:node/tet:te/"
+ + "tet:te-node-attributes/tet:connectivity-matrices/"
+ + "tet:optimizations/tet:algorithm/tet:metric/"
+ + "tet:optimization-metric/"
+ + "tet:explicit-route-exclude-objects/"
+ + "tet:route-object-exclude-object/"
+ + "tet:type/tet:label/tet:label-hop/"
+ + "tet:te-label/tet:technology" {
+ when "../../../../../../../../../../"
+ + "nw:network-types/tet:te-topology/"
+ + "otntopo:otn-topology" {
+ description "Augment OTN TE label";
+ }
+ description "OTN label.";
+ case otn {
+ uses ts-slice-info;
+ }
+ }
+
+ /* Augment TS Slice info of route-include of connectivity-matrices */
+ augment "/nw:networks/nw:network/nw:node/tet:te/"
+ + "tet:te-node-attributes/tet:connectivity-matrices/"
+ + "tet:optimizations/tet:algorithm/tet:metric/"
+ + "tet:optimization-metric/"
+ + "tet:explicit-route-include-objects/"
+ + "tet:route-object-include-object/"
+ + "tet:type/tet:label/tet:label-hop/"
+ + "tet:te-label/tet:technology" {
+ when "../../../../../../../../../../"
+ + "nw:network-types/tet:te-topology/"
+ + "otntopo:otn-topology" {
+ description "Augment OTN TE label";
+ }
+ description "OTN label.";
+ case otn {
+ uses ts-slice-info;
+ }
+ }
+
+ /* Augment TS Slice info of path-route of connectivity-matrices */
+ augment "/nw:networks/nw:network/nw:node/tet:te/"
+ + "tet:te-node-attributes/tet:connectivity-matrices/"
+ + "tet:path-properties/tet:path-route-objects/"
+ + "tet:path-route-object/tet:type/tet:label/tet:label-hop/"
+ + "tet:te-label/tet:technology"{
+ when "../../../../../../../../../"
+ + "nw:network-types/tet:te-topology/"
+ + "otntopo:otn-topology" {
+ description "Augment OTN TE label";
+ }
+ description "OTN label.";
+ case otn {
+ uses ts-slice-info;
+ }
+ }
+
+ /* Augment TS Slice info of underlay primary path of
+ * connectivity-matrix */
+ augment "/nw:networks/nw:network/nw:node/tet:te/"
+ + "tet:te-node-attributes/tet:connectivity-matrices/"
+ + "tet:connectivity-matrix/"
+ + "tet:underlay/tet:primary-path/tet:path-element/"
+ + "tet:type/tet:label/tet:label-hop/"
+ + "tet:te-label/tet:technology" {
+ when "../../../../../../../../../../"
+ + "nw:network-types/tet:te-topology/"
+ + "otntopo:otn-topology" {
+ description "Augment OTN TE label";
+ }
+ description "OTN label.";
+ case otn {
+ uses ts-slice-info;
+ }
+ }
+
+ /* Augment TS Slice info of underlay backup path of
+ * connectivity-matrix */
+ augment "/nw:networks/nw:network/nw:node/tet:te/"
+ + "tet:te-node-attributes/tet:connectivity-matrices/"
+ + "tet:connectivity-matrix/"
+ + "tet:underlay/tet:backup-path/tet:path-element/"
+ + "tet:type/tet:label/tet:label-hop/"
+ + "tet:te-label/tet:technology" {
+ when "../../../../../../../../../../"
+ + "nw:network-types/tet:te-topology/"
+ + "otntopo:otn-topology" {
+ description "Augment OTN TE label";
+ }
+ description "OTN label.";
+ case otn {
+ uses ts-slice-info;
+ }
+ }
+
+ /* Augment TS Slice info of route-exclude of connectivity-matrix */
+ augment "/nw:networks/nw:network/nw:node/tet:te/"
+ + "tet:te-node-attributes/tet:connectivity-matrices/"
+ + "tet:connectivity-matrix/tet:optimizations/"
+ + "tet:algorithm/tet:metric/tet:optimization-metric/"
+ + "tet:explicit-route-exclude-objects/"
+ + "tet:route-object-exclude-object/tet:type/"
+ + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
+ when "../../../../../../../../../../../"
+ + "nw:network-types/tet:te-topology/"
+ + "otntopo:otn-topology" {
+ description "Augment OTN TE label";
+ }
+ description "OTN label.";
+ case otn {
+ uses ts-slice-info;
+ }
+ }
+
+ /* Augment TS Slice info of route-include of connectivity-matrix */
+ augment "/nw:networks/nw:network/nw:node/tet:te/"
+ + "tet:te-node-attributes/tet:connectivity-matrices/"
+ + "tet:connectivity-matrix/tet:optimizations/"
+ + "tet:algorithm/tet:metric/tet:optimization-metric/"
+ + "tet:explicit-route-include-objects/"
+ + "tet:route-object-include-object/tet:type/"
+ + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
+ when "../../../../../../../../../../../"
+ + "nw:network-types/tet:te-topology/"
+ + "otntopo:otn-topology" {
+ description "Augment OTN TE label";
+ }
+ description "OTN label.";
+ case otn {
+ uses ts-slice-info;
+ }
+ }
+
+ /* Augment TS Slice info of path-route of connectivity-matrix */
+ augment "/nw:networks/nw:network/nw:node/tet:te/"
+ + "tet:te-node-attributes/tet:connectivity-matrices/"
+ + "tet:connectivity-matrix/"
+ + "tet:path-properties/tet:path-route-objects/"
+ + "tet:path-route-object/tet:type/"
+ + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
+ when "../../../../../../../../../../"
+ + "nw:network-types/tet:te-topology/"
+ + "otntopo:otn-topology" {
+ description "Augment OTN TE label";
+ }
+ description "OTN label.";
+ case otn {
+ uses ts-slice-info;
+ }
+ }
+
+ /* Augment TS Slice info of underlay primary path of
+ * connectivity-matrices information-source */
+ augment "/nw:networks/nw:network/nw:node/tet:te/"
+ + "tet:information-source-entry/tet:connectivity-matrices/"
+ + "tet:underlay/tet:primary-path/tet:path-element/tet:type/"
+ + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
+ when "../../../../../../../../../"
+ + "nw:network-types/tet:te-topology/"
+ + "otntopo:otn-topology" {
+ description "Augment OTN TE label";
+ }
+ description "OTN label.";
+ case otn {
+ uses ts-slice-info;
+ }
+ }
+
+ /* Augment TS Slice info of underlay backup path of
+ * connectivity-matrices information-source */
+ augment "/nw:networks/nw:network/nw:node/tet:te/"
+ + "tet:information-source-entry/tet:connectivity-matrices/"
+ + "tet:underlay/tet:backup-path/tet:path-element/tet:type/"
+ + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
+ when "../../../../../../../../../"
+ + "nw:network-types/tet:te-topology/"
+ + "otntopo:otn-topology" {
+ description "Augment OTN TE label";
+ }
+ description "OTN label.";
+ case otn {
+ uses ts-slice-info;
+ }
+ }
+
+ /* Augment TS Slice info of route-exclude of
+ * connectivity-matrices information-source */
+ augment "/nw:networks/nw:network/nw:node/tet:te/"
+ + "tet:information-source-entry/tet:connectivity-matrices/"
+ + "tet:optimizations/tet:algorithm/tet:metric/"
+ + "tet:optimization-metric/"
+ + "tet:explicit-route-exclude-objects/"
+ + "tet:route-object-exclude-object/tet:type/"
+ + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
+ when "../../../../../../../../../../"
+ + "nw:network-types/tet:te-topology/"
+ + "otntopo:otn-topology" {
+ description "Augment OTN TE label";
+ }
+ description "OTN label.";
+ case otn {
+ uses ts-slice-info;
+ }
+ }
+
+ /* Augment TS Slice info of route-include of
+ * connectivity-matrices information-source */
+ augment "/nw:networks/nw:network/nw:node/tet:te/"
+ + "tet:information-source-entry/tet:connectivity-matrices/"
+ + "tet:optimizations/tet:algorithm/tet:metric/"
+ + "tet:optimization-metric/"
+ + "tet:explicit-route-include-objects/"
+ + "tet:route-object-include-object/tet:type/"
+ + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
+ when "../../../../../../../../../../"
+ + "nw:network-types/tet:te-topology/"
+ + "otntopo:otn-topology" {
+ description "Augment OTN TE label";
+ }
+ description "OTN label.";
+ case otn {
+ uses ts-slice-info;
+ }
+ }
+
+ /* Augment TS Slice info of path-route of
+ * connectivity-matrices information-source */
+ augment "/nw:networks/nw:network/nw:node/tet:te/"
+ + "tet:information-source-entry/tet:connectivity-matrices/"
+ + "tet:path-properties/tet:path-route-objects/"
+ + "tet:path-route-object/tet:type/"
+ + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
+ when "../../../../../../../../../"
+ + "nw:network-types/tet:te-topology/"
+ + "otntopo:otn-topology" {
+ description "Augment OTN TE label";
+ }
+ description "OTN label.";
+ case otn {
+ uses ts-slice-info;
+ }
+ }
+
+ /* Augment TS Slice info of underlay primary path of
+ * connectivity-matrix information-source */
+ augment "/nw:networks/nw:network/nw:node/tet:te/"
+ + "tet:information-source-entry/tet:connectivity-matrices/"
+ + "tet:connectivity-matrix/"
+ + "tet:underlay/tet:primary-path/tet:path-element/tet:type/"
+ + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
+ when "../../../../../../../../../../"
+ + "nw:network-types/tet:te-topology/"
+ + "otntopo:otn-topology" {
+ description "Augment OTN TE label";
+ }
+ description "OTN label.";
+ case otn {
+ uses ts-slice-info;
+ }
+ }
+
+ /* Augment TS Slice info of underlay backup path of
+ * connectivity-matrix information-source */
+ augment "/nw:networks/nw:network/nw:node/tet:te/"
+ + "tet:information-source-entry/tet:connectivity-matrices/"
+ + "tet:connectivity-matrix/"
+ + "tet:underlay/tet:backup-path/tet:path-element/tet:type/"
+ + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
+ when "../../../../../../../../../../"
+ + "nw:network-types/tet:te-topology/"
+ + "otntopo:otn-topology" {
+ description "Augment OTN TE label";
+ }
+ description "OTN label.";
+ case otn {
+ uses ts-slice-info;
+ }
+ }
+
+ /* Augment TS Slice info of route-exclude of
+ * connectivity-matrix information-source */
+ augment "/nw:networks/nw:network/nw:node/tet:te/"
+ + "tet:information-source-entry/tet:connectivity-matrices/"
+ + "tet:connectivity-matrix/"
+ + "tet:optimizations/tet:algorithm/tet:metric/"
+ + "tet:optimization-metric/"
+ + "tet:explicit-route-exclude-objects/"
+ + "tet:route-object-exclude-object/tet:type/"
+ + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
+ when "../../../../../../../../../../../"
+ + "nw:network-types/tet:te-topology/"
+ + "otntopo:otn-topology" {
+ description "Augment OTN TE label";
+ }
+ description "OTN label.";
+ case otn {
+ uses ts-slice-info;
+ }
+ }
+
+ /* Augment TS Slice info of route-include of
+ * connectivity-matrix information-source */
+ augment "/nw:networks/nw:network/nw:node/tet:te/"
+ + "tet:information-source-entry/tet:connectivity-matrices/"
+ + "tet:connectivity-matrix/"
+ + "tet:optimizations/tet:algorithm/tet:metric/"
+ + "tet:optimization-metric/"
+ + "tet:explicit-route-include-objects/"
+ + "tet:route-object-include-object/tet:type/"
+ + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
+ when "../../../../../../../../../../../"
+ + "nw:network-types/tet:te-topology/"
+ + "otntopo:otn-topology" {
+ description "Augment OTN TE label";
+ }
+ description "OTN label.";
+ case otn {
+ uses ts-slice-info;
+ }
+ }
+
+ /* Augment TS Slice info of path-route of
+ * connectivity-matrix information-source */
+ augment "/nw:networks/nw:network/nw:node/tet:te/"
+ + "tet:information-source-entry/tet:connectivity-matrices/"
+ + "tet:connectivity-matrix/"
+ + "tet:path-properties/tet:path-route-objects/"
+ + "tet:path-route-object/tet:type/"
+ + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
+ when "../../../../../../../../../../"
+ + "nw:network-types/tet:te-topology/"
+ + "otntopo:otn-topology" {
+ description "Augment OTN TE label";
+ }
+ description "OTN label.";
+ case otn {
+ uses ts-slice-info;
+ }
+ }
+
+ /* Augment TS Slice info of underlay primary path
+ * of local-link-connectivities */
+ augment "/nw:networks/nw:network/nw:node/tet:te/"
+ + "tet:tunnel-termination-point/"
+ + "tet:local-link-connectivities/"
+ + "tet:underlay/tet:primary-path/tet:path-element/tet:type/"
+ + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
+ when "../../../../../../../../../"
+ + "nw:network-types/tet:te-topology/"
+ + "otntopo:otn-topology" {
+ description "Augment OTN TE label";
+ }
+ description "OTN label.";
+ case otn {
+ uses ts-slice-info;
+ }
+ }
+
+ /* Augment TS Slice info of underlay backup path
+ * of local-link-connectivities */
+ augment "/nw:networks/nw:network/nw:node/tet:te/"
+ + "tet:tunnel-termination-point/"
+ + "tet:local-link-connectivities/"
+ + "tet:underlay/tet:backup-path/tet:path-element/tet:type/"
+ + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
+ when "../../../../../../../../../"
+ + "nw:network-types/tet:te-topology/"
+ + "otntopo:otn-topology" {
+ description "Augment OTN TE label";
+ }
+ description "OTN label.";
+ case otn {
+ uses ts-slice-info;
+ }
+ }
+
+ /* Augment TS Slice info of route-exclude of
+ * local-link-connectivities */
+ augment "/nw:networks/nw:network/nw:node/tet:te/"
+ + "tet:tunnel-termination-point/"
+ + "tet:local-link-connectivities/"
+ + "tet:optimizations/tet:algorithm/tet:metric/"
+ + "tet:optimization-metric/"
+ + "tet:explicit-route-exclude-objects/"
+ + "tet:route-object-exclude-object/tet:type/"
+ + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
+ when "../../../../../../../../../../"
+ + "nw:network-types/tet:te-topology/"
+ + "otntopo:otn-topology" {
+ description "Augment OTN TE label";
+ }
+ description "OTN label.";
+ case otn {
+ uses ts-slice-info;
+ }
+ }
+
+ /* Augment TS Slice info of route-include of
+ * local-link-connectivities */
+ augment "/nw:networks/nw:network/nw:node/tet:te/"
+ + "tet:tunnel-termination-point/"
+ + "tet:local-link-connectivities/"
+ + "tet:optimizations/tet:algorithm/tet:metric/"
+ + "tet:optimization-metric/"
+ + "tet:explicit-route-include-objects/"
+ + "tet:route-object-include-object/tet:type/"
+ + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
+ when "../../../../../../../../../../"
+ + "nw:network-types/tet:te-topology/"
+ + "otntopo:otn-topology" {
+ description "Augment OTN TE label";
+ }
+ description "OTN label.";
+ case otn {
+ uses ts-slice-info;
+ }
+ }
+
+ /* Augment TS Slice info of path-route of local-link-connectivities */
+ augment "/nw:networks/nw:network/nw:node/tet:te/"
+ + "tet:tunnel-termination-point/"
+ + "tet:local-link-connectivities/"
+ + "tet:path-properties/tet:path-route-objects/"
+ + "tet:path-route-object/tet:type/"
+ + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
+ when "../../../../../../../../../"
+ + "nw:network-types/tet:te-topology/"
+ + "otntopo:otn-topology" {
+ description "Augment OTN TE label";
+ }
+ description "OTN label.";
+ case otn {
+ uses ts-slice-info;
+ }
+ }
+
+ /* Augment TS Slice info of underlay primary path
+ * of local-link-connectivity (LLC) */
+ augment "/nw:networks/nw:network/nw:node/tet:te/"
+ + "tet:tunnel-termination-point/"
+ + "tet:local-link-connectivities/"
+ + "tet:local-link-connectivity/"
+ + "tet:underlay/tet:primary-path/tet:path-element/tet:type/"
+ + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
+ when "../../../../../../../../../../"
+ + "nw:network-types/tet:te-topology/"
+ + "otntopo:otn-topology" {
+ description "Augment OTN TE label";
+ }
+ description "OTN label.";
+ case otn {
+ uses ts-slice-info;
+ }
+ }
+
+ /* Augment TS Slice info of underlay backup path of
+ * local-link-connectivity (LLC) */
+ augment "/nw:networks/nw:network/nw:node/tet:te/"
+ + "tet:tunnel-termination-point/"
+ + "tet:local-link-connectivities/"
+ + "tet:local-link-connectivity/"
+ + "tet:underlay/tet:backup-path/tet:path-element/tet:type/"
+ + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
+ when "../../../../../../../../../../"
+ + "nw:network-types/tet:te-topology/"
+ + "otntopo:otn-topology" {
+ description "Augment OTN TE label";
+ }
+ description "OTN label.";
+ case otn {
+ uses ts-slice-info;
+ }
+ }
+
+ /* Augment TS Slice info of route-exclude of
+ * local-link-connectivity (LLC) */
+ augment "/nw:networks/nw:network/nw:node/tet:te/"
+ + "tet:tunnel-termination-point/"
+ + "tet:local-link-connectivities/"
+ + "tet:local-link-connectivity/"
+ + "tet:optimizations/tet:algorithm/tet:metric/"
+ + "tet:optimization-metric/"
+ + "tet:explicit-route-exclude-objects/"
+ + "tet:route-object-exclude-object/tet:type/"
+ + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
+ when "../../../../../../../../../../../"
+ + "nw:network-types/tet:te-topology/"
+ + "otntopo:otn-topology" {
+ description "Augment OTN TE label";
+ }
+ description "OTN label.";
+ case otn {
+ uses ts-slice-info;
+ }
+ }
+
+ /* Augment TS Slice info of route-include of
+ * local-link-connectivity (LLC) */
+ augment "/nw:networks/nw:network/nw:node/tet:te/"
+ + "tet:tunnel-termination-point/"
+ + "tet:local-link-connectivities/"
+ + "tet:local-link-connectivity/"
+ + "tet:optimizations/tet:algorithm/tet:metric/"
+ + "tet:optimization-metric/"
+ + "tet:explicit-route-include-objects/"
+ + "tet:route-object-include-object/tet:type/"
+ + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
+ when "../../../../../../../../../../../"
+ + "nw:network-types/tet:te-topology/"
+ + "otntopo:otn-topology" {
+ description "Augment OTN TE label";
+ }
+ description "OTN label.";
+ case otn {
+ uses ts-slice-info;
+ }
+ }
+
+ /* Augment TS Slice info of path-route of
+ * local-link-connectivity (LLC) */
+ augment "/nw:networks/nw:network/nw:node/tet:te/"
+ + "tet:tunnel-termination-point/"
+ + "tet:local-link-connectivities/"
+ + "tet:local-link-connectivity/"
+ + "tet:path-properties/tet:path-route-objects/"
+ + "tet:path-route-object/tet:type/"
+ + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
+ when "../../../../../../../../../../"
+ + "nw:network-types/tet:te-topology/"
+ + "otntopo:otn-topology" {
+ description "Augment OTN TE label";
+ }
+ description "OTN label.";
+ case otn {
+ uses ts-slice-info;
+ }
+ }
+
+ /* Augment TS Slice info of underlay primary path of TE link */
+ augment "/nw:networks/nw:network/nt:link/tet:te/"
+ + "tet:te-link-attributes/"
+ + "tet:underlay/tet:primary-path/tet:path-element/tet:type/"
+ + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
+ when "../../../../../../../../"
+ + "nw:network-types/tet:te-topology/"
+ + "otntopo:otn-topology" {
+ description "Augment OTN TE label";
+ }
+ description "OTN label.";
+ case otn {
+ uses ts-slice-info;
+ }
+ }
+
+ /* Augment TS Slice info of underlay backup path of TE link */
+ augment "/nw:networks/nw:network/nt:link/tet:te/"
+ + "tet:te-link-attributes/"
+ + "tet:underlay/tet:backup-path/tet:path-element/tet:type/"
+ + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
+ when "../../../../../../../../"
+ + "nw:network-types/tet:te-topology/"
+ + "otntopo:otn-topology" {
+ description "Augment OTN TE label";
+ }
+ description "OTN label.";
+ case otn {
+ uses ts-slice-info;
+ }
+ }
+
+ /* Augment TS Slice info of underlay primary path of TE link template */
+ augment "/nw:networks/tet:te/tet:templates/"
+ + "tet:link-template/tet:te-link-attributes/"
+ + "tet:underlay/tet:primary-path/tet:path-element/tet:type/"
+ + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
+/*
+ when "../../../../../../../../../../"
+ + "nw:network-types/tet:te-topology/"
+ + "otntopo:otn-topology" {
+ description "Augment OTN TE label";
+ }
+*/
+ description "OTN label.";
+ case otn {
+ uses ts-slice-info;
+ }
+ }
+
+ /* Augment TS Slice info of underlay backup path of TE link template */
+ augment "/nw:networks/tet:te/tet:templates/"
+ + "tet:link-template/tet:te-link-attributes/"
+ + "tet:underlay/tet:backup-path/tet:path-element/tet:type/"
+ + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
+/*
+ when "../../../../../../../../../../nw:network-types/"
+ + "tet:te-topology/otntopo:otn-topology" {
+ description "Augment OTN TE label";
+ }
+*/
+ description "OTN label.";
+ case otn {
+ uses ts-slice-info;
+ }
+ }
+
+ /* Augment maximum bandwidth of TE link */
+ /* augment "/nw:networks/nw:network/nt:link/tet:te/"
+ + "tet:te-link-attributes/"
+ + "tet:max-link-bandwidth/"
+ + "tet:te-bandwidth/te-types:technology" {
+ when "../../../../../../nw:network-types/tet:te-topology/"
+ + "otntopo:otn-topology" {
+ description "OTN TE bandwidth.";
+ }
+ description "OTN bandwidth with slicelist info.";
+ case otnslice {
+ uses layer1-types:otn-link-bandwidth;
+ uses otn-slice-link-bandwidth;
+ }
+ }*/
+
+ /* Augment unreserved bandwidth of TE Link */
+ /* augment "/nw:networks/nw:network/nt:link/tet:te/"
+ + "tet:te-link-attributes/"
+ + "tet:unreserved-bandwidth/"
+ + "tet:te-bandwidth/tet:technology" {
+ when "../../../../../../nw:network-types/tet:te-topology/"
+ + "otntopo:otn-topology" {
+ description "OTN TE bandwidth.";
+ }
+ case otn {
+ uses layer1-types:otn-link-bandwidth;
+ uses otn-slice-link-bandwidth;
+ }
+ }
+*/
+
+/* Augment te/tunnels/tunnel */
+augment "/te:te/te:tunnels/te:tunnel" {
+ description
+ "Augment with additional parameters required for optical slice";
+ leaf slice-id {
+ description
+ "SliceId if this otn tunnel belongs to a specific otn slice";
+ type string;
+ }
+}
+
+/* Augment etht-svc/etht-svc-instances */
+augment "/ethtsvc:etht-svc/ethtsvc:etht-svc-instances" {
+ description
+ "Augment with additional parameters required for optical slice";
+ leaf slice-id {
+ description
+ "SliceId if this ethernet service belongs to a specific slice";
+ type string;
+ }
+}
+
+rpc deallocate-optical-slice{
+ description
+ "Remove transport slice in OTN-based optical networks. Assume that all the tunnels on
+ this slice are deactivate.";
+ input {
+ leaf slice-id{
+ type slice-id;
+ description
+ "The identifier of the deactivating slice.";
+ }
+ }
+
+ output {
+ list transport-slice-list {
+ description
+ "The output of this RPC. ";
+ key "slice-id";
+ leaf slice-id {
+ mandatory true;
+ type slice-id;
+ description
+ "The identifier of the reported slice.";
+ }
+ leaf result {
+ type enumeration {
+ enum success {
+ description
+ "Success.";
+ }
+ enum failure-error {
+ description
+ "Failure because of input error.";
+ }
+ enum failure-resource {
+ description
+ "Failure because of resources utilization.";
+ }
+ }
+ }
+ }
+ }
+}
+rpc create-optical-slice {
+ description
+ "Create transport slice in OTN-based optical networks. ";
+
+ input {
+ list otn-tunnel-list {
+ key "tunnel-name";
+ description
+ "The request list of tunnel(s) in the slice.";
+ leaf tunnel-name {
+ mandatory true;
+ type leafref {
+ path "/te:te/te:tunnels/te:tunnel/te:name";
+ }
+ description "The name of tunnel.";
+ }
+
+ leaf source {
+ type leafref {
+ path "/te:te/te:tunnels/te:tunnel/te:source";
+ }
+ description
+ "Specified source node for the requested slice.";
+ }
+
+ leaf destination {
+ type leafref {
+ path "/te:te/te:tunnels/te:tunnel/te:destination";
+ }
+ description
+ "Specified destination node for the requested slice.";
+ }
+
+ leaf src-tunnel-tp-id {
+ type leafref {
+ path "/te:te/te:tunnels/te:tunnel/te:src-tunnel-tp-id";
+ }
+ description
+ "Specified source TTP for the requested slice.";
+ }
+
+ leaf dst-tunnel-tp-id {
+ type leafref {
+ path "/te:te/te:tunnels/te:tunnel/te:dst-tunnel-tp-id";
+ }
+ description
+ "Specified description TTP for the requested slice.";
+ }
+
+ leaf tunnel-bandwidth{
+ type te-types:te-bandwidth;
+ description
+ "Bandwidth Requirement of Slice.";
+ }
+
+ uses te:tunnel-associations-properties;
+
+ leaf protection-type {
+ type identityref {
+ base te-types:lsp-protection-type;
+ }
+ description
+ "Protection Level Requirement of Slice.";
+ }
+/*
+ leaf slice-constraint {
+ type leafref {
+ path "/te:te/te:globals/te:named-path-constraints"
+ +"/te:named-path-constraint";
+ }
+ description
+ "Protection Level Requirement of Slice.";
+ }
+ */
+ }
+
+ leaf slice-id {
+ type slice-id;
+ description
+ "The identifier of the requested slice.";
+ }
+ }
+
+ output {
+ list transport-slice-list {
+ key "slice-id";
+ leaf slice-id {
+ mandatory true;
+ type slice-id;
+ description
+ "The identifier of the reported slice.";
+ }
+ leaf result {
+ type enumeration {
+ enum success {
+ description
+ "Success.";
+ }
+ enum failure-error {
+ description
+ "Failure because of input error. ";
+ }
+ enum failure-resource {
+ description
+ "Failure because of insufficient resources. ";
+ }
+ }
+ }
+ description
+ "The output of this RPC. ";
+ }
+ }
+ }
+} \ No newline at end of file