diff options
author | decheng zhang <decheng.zhang@huawei.com> | 2022-07-14 22:15:18 -0400 |
---|---|---|
committer | decheng zhang <decheng.zhang@huawei.com> | 2022-07-21 13:16:53 -0400 |
commit | 5c4ea01ed2994bf573609d3a1ddf1730d0a63d38 (patch) | |
tree | 255f90b36758145edae71948cba9c08559f33ac5 /actn-interface-tools/actn-model/src/main/yang/ietf-optical-slice@2020-08-21.yang | |
parent | 1187877eb060881b49871515fc43eda01e82cb16 (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.yang | 952 |
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 |