summaryrefslogtreecommitdiffstats
path: root/platform-logic/restconfapi-yang/src/main/yang/sotn/ietf-otn-tunnel@2018-06-07.yang
diff options
context:
space:
mode:
authorDan Timoney <dtimoney@att.com>2020-03-06 19:46:31 +0000
committerGerrit Code Review <gerrit@onap.org>2020-03-06 19:46:31 +0000
commitf9da44caaec8ca2e9db9c691fb0b7d479daa77b9 (patch)
tree38765b1d20a3b15200408604e8c0e473ae82fe79 /platform-logic/restconfapi-yang/src/main/yang/sotn/ietf-otn-tunnel@2018-06-07.yang
parentfdf5a7153ed3198b68238a54b4b33c376af1495a (diff)
parentf0aa3570bb2f9500f7f15fada318f8f50e706b15 (diff)
Merge "Adding required ietf YANG models to support OTN tunnel as part of SOTN NNI-based service creation."
Former-commit-id: 798d2b1b0c822ff123adff07497fdde6a1b991d6
Diffstat (limited to 'platform-logic/restconfapi-yang/src/main/yang/sotn/ietf-otn-tunnel@2018-06-07.yang')
-rw-r--r--platform-logic/restconfapi-yang/src/main/yang/sotn/ietf-otn-tunnel@2018-06-07.yang837
1 files changed, 837 insertions, 0 deletions
diff --git a/platform-logic/restconfapi-yang/src/main/yang/sotn/ietf-otn-tunnel@2018-06-07.yang b/platform-logic/restconfapi-yang/src/main/yang/sotn/ietf-otn-tunnel@2018-06-07.yang
new file mode 100644
index 00000000..2c24a6fb
--- /dev/null
+++ b/platform-logic/restconfapi-yang/src/main/yang/sotn/ietf-otn-tunnel@2018-06-07.yang
@@ -0,0 +1,837 @@
+module ietf-otn-tunnel {
+ yang-version 1.1;
+
+ namespace "urn:ietf:params:xml:ns:yang:ietf-otn-tunnel";
+ prefix "otn-tunnel";
+
+ import ietf-te {
+ prefix "te";
+ }
+
+ import ietf-otn-types {
+ prefix "otn-types";
+ }
+
+ import ietf-te-types {
+ prefix "te-types";
+ }
+
+ import ietf-inet-types {
+ prefix "inet";
+ }
+
+ organization
+ "IETF CCAMP Working Group";
+ contact
+ "WG Web: <http://tools.ietf.org/wg/ccamp/>
+ WG List: <mailto:ccamp@ietf.org>
+
+ Editor: Haomian Zheng
+ <mailto:zhenghaomian@huawei.com>
+
+ Editor: Aihua Guo
+ <mailto:aihuaguo@huawei.com>
+
+ Editor: Italo Busi
+ <mailto:italo.busi@huawei.com>
+
+ Editor: Anurag Sharma
+ <mailto:ansha@google.com>
+
+ Editor: Rajan Rao
+ <mailto:rrao@infinera.com>
+
+ Editor: Sergio Belotti
+ <mailto:sergio.belotti@nokia.com>
+
+ Editor: Victor Lopez
+ <mailto:victor.lopezalvarez@telefonica.com>
+
+ Editor: Yunbo Li
+ <mailto:liyunbo@chinamobile.com>
+
+ Editor: Yunbin Xu
+ <mailto:xuyunbin@ritt.cn>";
+
+ description
+ "This module defines a model for OTN Tunnel Services.";
+
+ revision "2018-06-07" {
+ description
+ "Revision 0.5";
+ reference
+ "draft-ietf-ccamp-otn-tunnel-model-02";
+ }
+
+ /*
+ * Groupings
+ */
+
+ grouping otn-tunnel-endpoint {
+ description "Parameters for OTN tunnel";
+
+ leaf payload-treatment {
+ type enumeration {
+ enum switching {
+ description "Client signal is switched to another tunnel
+ in this domain";
+ }
+ enum transport {
+ description "Client signal is transparently transmitted
+ in this domain";
+ }
+ }
+ default switching;
+ description
+ "Treatment of the incoming payload. Payload can be switched
+ or transported.";
+ }
+
+ leaf src-client-signal {
+ type identityref {
+ base otn-types:client-signal;
+ }
+ description
+ "Client signal at the source endpoint of the tunnel";
+ }
+
+ leaf src-tpn {
+ type uint16 {
+ range "0..4095";
+ }
+ description
+ "Tributary Port Number. Applicable in case of mux services";
+ reference
+ "RFC7139: GMPLS Signaling Extensions for Control of Evolving
+ G.709 Optical Transport Networks";
+ }
+
+ leaf src-tsg {
+ type identityref {
+ base otn-types:tributary-slot-granularity;
+ }
+ description
+ "Tributary slot granularity.
+ Applicable in case of mux services";
+ reference
+ "G.709/Y.1331, February 2016: Interfaces for the
+ Optical Transport Network (OTN)";
+ }
+
+ leaf src-tributary-slot-count {
+ type uint16;
+ description
+ "Number of tributary slots used at the source.";
+ }
+
+ container src-tributary-slots {
+ description
+ "A list of tributary slots used by the client service.
+ Applicable in case of mux services";
+ leaf-list values {
+ type uint8;
+ description
+ "Tributary tributary slot value";
+ reference
+ "G.709/Y.1331, February 2016: Interfaces for the
+ Optical Transport Network (OTN)";
+ }
+ }
+
+ leaf dst-client-signal {
+ type identityref {
+ base otn-types:client-signal;
+ }
+ description
+ "Client signal at the destination endpoint of the tunnel";
+ }
+
+ leaf dst-tpn {
+ type uint16 {
+ range "0..4095";
+ }
+ description
+ "Tributary Port Number. Applicable in case of mux services";
+ reference
+ "RFC7139: GMPLS Signaling Extensions for Control of Evolving
+ G.709 Optical Transport Networks.";
+ }
+
+ leaf dst-tsg {
+ type identityref {
+ base otn-types:tributary-slot-granularity;
+ }
+ description
+ "Tributary slot granularity.
+ Applicable in case of mux services";
+ reference
+ "G.709/Y.1331, February 2016: Interfaces for the
+ Optical Transport Network (OTN)";
+ }
+
+ leaf dst-tributary-slot-count {
+ type uint16;
+ description
+ "Number of tributary slots used at the destination.";
+ }
+
+ container dst-tributary-slots {
+ description
+ "A list of tributary slots used by the client service.
+ Applicable in case of mux services";
+ leaf-list values {
+ type uint8;
+ description
+ "Tributary slot value";
+ reference
+ "G.709/Y.1331, February 2016: Interfaces for the
+ Optical Transport Network (OTN)";
+ }
+ }
+ }
+
+ /*
+ Note: Comment has been given to authors of TE Tunnel model to add
+ list of endpoints under config to support P2MP tunnel.
+ */
+
+ /*
+ * Data nodes
+ */
+
+ augment "/te:te/te:tunnels/te:tunnel" {
+ description
+ "Augment with additional parameters required for OTN service";
+ uses otn-tunnel-endpoint;
+ }
+
+ /*
+ * Augment TE bandwidth
+ */
+
+ /* Augment bandwidth of named-path-constraints */
+ augment "/te:te/te:globals/te:named-path-constraints/"
+ + "te:named-path-constraint/"
+ + "te:te-bandwidth/te:technology" {
+ description "OTN bandwidth.";
+ case otn {
+ uses otn-types:otn-path-bandwidth;
+ }
+ }
+
+ /* Augment bandwdith of tunnel */
+ augment "/te:te/te:tunnels/te:tunnel/"
+ + "te:te-bandwidth/te:technology" {
+ description "OTN bandwidth.";
+ case otn {
+ uses otn-types:otn-path-bandwidth;
+ }
+ }
+
+ /* Augment bandwidth of primary path */
+ augment "/te:te/te:tunnels/te:tunnel/"
+ + "te:p2p-primary-paths/te:p2p-primary-path/"
+ + "te:te-bandwidth/te:technology" {
+ description "OTN bandwidth.";
+ case otn {
+ uses otn-types:otn-path-bandwidth;
+ }
+ }
+
+ /* Augment bandwidth of reverse primary path */
+ augment "/te:te/te:tunnels/te:tunnel/"
+ + "te:p2p-primary-paths/te:p2p-primary-path/"
+ + "te:p2p-reverse-primary-path/"
+ + "te:te-bandwidth/te:technology" {
+ description "OTN bandwidth.";
+ case otn {
+ uses otn-types:otn-path-bandwidth;
+ }
+ }
+
+ /* Augment bandwidht of secondary path */
+ augment "/te:te/te:tunnels/te:tunnel/"
+ + "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ + "te:te-bandwidth/te:technology" {
+ description "OTN bandwidth.";
+ case otn {
+ uses otn-types:otn-path-bandwidth;
+ }
+ }
+
+ /*
+ * Augment TE label.
+ */
+
+ /* Augment label hop of route-object-exclude-always of named-path-constraints */
+ augment "/te:te/te:globals/te:named-path-constraints/"
+ + "te:named-path-constraint/te:explicit-route-objects/"
+ + "te:route-object-exclude-always/te:type/te:label/"
+ + "te:label-hop/te:te-label/te:technology" {
+ description "OTN label.";
+ case otn {
+ uses otn-types:otn-path-label;
+ }
+ }
+
+ /* Augment label hop of route-object-include-exclude of named-path-constraints */
+ augment "/te:te/te:globals/te:named-path-constraints/"
+ + "te:named-path-constraint/te:explicit-route-objects/"
+ + "te:route-object-include-exclude/te:type/te:label/"
+ + "te:label-hop/te:te-label/te:technology" {
+ description "OTN label.";
+ case otn {
+ uses otn-types:otn-path-label;
+ }
+ }
+
+
+ /* Augment label hop of route-object-exclude-always of primary path */
+ augment "/te:te/te:tunnels/te:tunnel/"
+ + "te:p2p-primary-paths/te:p2p-primary-path/"
+ + "te:explicit-route-objects/"
+ + "te:route-object-exclude-always/te:type/te:label/"
+ + "te:label-hop/te:te-label/te:technology" {
+ description "OTN label.";
+ case otn {
+ uses otn-types:otn-path-label;
+ }
+ }
+
+ /* Augment label hop of route-object-include-exclude of primary path */
+ augment "/te:te/te:tunnels/te:tunnel/"
+ + "te:p2p-primary-paths/te:p2p-primary-path/"
+ + "te:explicit-route-objects/"
+ + "te:route-object-include-exclude/te:type/te:label/"
+ + "te:label-hop/te:te-label/te:technology" {
+ description "OTN label.";
+ case otn {
+ uses otn-types:otn-path-label;
+ }
+ }
+
+ /* Augment label hop of route-exclude of primary path */
+ augment "/te:te/te:tunnels/te:tunnel/"
+ + "te:p2p-primary-paths/te:p2p-primary-path/"
+ + "te:optimizations/te:algorithm/te:metric/"
+ + "te:optimization-metric/te:explicit-route-exclude-objects/"
+ + "te:route-object-exclude-object/te:type/te:label/"
+ + "te:label-hop/te:te-label/te:technology" {
+ description "OTN label.";
+ case otn {
+ uses otn-types:otn-path-label;
+ }
+ }
+
+ /* Augment label hop of route-include of primary path */
+ augment "/te:te/te:tunnels/te:tunnel/"
+ + "te:p2p-primary-paths/te:p2p-primary-path/"
+ + "te:optimizations/te:algorithm/te:metric/"
+ + "te:optimization-metric/te:explicit-route-include-objects/"
+ + "te:route-object-include-object/te:type/te:label/"
+ + "te:label-hop/te:te-label/te:technology" {
+ description "OTN label.";
+ case otn {
+ uses otn-types:otn-path-label;
+ }
+ }
+
+ /* Augment label hop of path-route of primary path */
+ augment "/te:te/te:tunnels/te:tunnel/"
+ + "te:p2p-primary-paths/te:p2p-primary-path/"
+ + "te:state/te:path-properties/"
+ + "te:path-route-objects/te:path-computed-route-object/"
+ + "te:state/te:type/te:label/"
+ + "te:label-hop/te:te-label/te:technology" {
+ description "OTN label.";
+ case otn {
+ uses otn-types:otn-path-label;
+ }
+ }
+
+ /*
+ augment "/te:te/te:tunnels/te:tunnel/"
+ + "te:p2p-primary-paths/te:p2p-primary-path/"
+ + "te:state/te:lsps/te:lsp/te:record-route-subobjects/"
+ + "te:record-route-subobject/"
+ + "te:state/te:type/te:label/"
+ + "te:label-hop/te:te-label/te:technology" {
+ description "OTN label.";
+ case otn {
+ uses otn-types:otn-path-label;
+ }
+ }
+ */
+
+ /* Augment label hop of path-route of primary LSP */
+ augment "/te:te/te:tunnels/te:tunnel/"
+ + "te:p2p-primary-paths/te:p2p-primary-path/"
+ + "te:state/te:lsps/te:lsp/te:path-properties/"
+ + "te:path-route-objects/te:path-computed-route-object/"
+ + "te:state/te:type/te:label/"
+ + "te:label-hop/te:te-label/te:technology" {
+ description "OTN label.";
+ case otn {
+ uses otn-types:otn-path-label;
+ }
+ }
+
+ /* Augment label hop of route-object-exclude-always of reverse primary path */
+ augment "/te:te/te:tunnels/te:tunnel/"
+ + "te:p2p-primary-paths/te:p2p-primary-path/"
+ + "te:p2p-reverse-primary-path/"
+ + "te:explicit-route-objects/"
+ + "te:route-object-exclude-always/"
+ + "te:type/te:label/"
+ + "te:label-hop/te:te-label/te:technology" {
+ description "OTN label.";
+ case otn {
+ uses otn-types:otn-path-label;
+ }
+ }
+
+ /* Augment label hop of route-object-include-exclude of reverse primary path */
+ augment "/te:te/te:tunnels/te:tunnel/"
+ + "te:p2p-primary-paths/te:p2p-primary-path/"
+ + "te:p2p-reverse-primary-path/"
+ + "te:explicit-route-objects/"
+ + "te:route-object-include-exclude/"
+ + "te:type/te:label/"
+ + "te:label-hop/te:te-label/te:technology" {
+ description "OTN label.";
+ case otn {
+ uses otn-types:otn-path-label;
+ }
+ }
+
+ /* Augment label hop of route-exclude of reverse primary path */
+ augment "/te:te/te:tunnels/te:tunnel/"
+ + "te:p2p-primary-paths/te:p2p-primary-path/"
+ + "te:p2p-reverse-primary-path/"
+ + "te:optimizations/te:algorithm/te:metric/"
+ + "te:optimization-metric/te:explicit-route-exclude-objects/"
+ + "te:route-object-exclude-object/te:type/te:label/"
+ + "te:label-hop/te:te-label/te:technology" {
+ description "OTN label.";
+ case otn {
+ uses otn-types:otn-path-label;
+ }
+ }
+
+ /* Augment label hop of route-include of reverse primary path */
+ augment "/te:te/te:tunnels/te:tunnel/"
+ + "te:p2p-primary-paths/te:p2p-primary-path/"
+ + "te:p2p-reverse-primary-path/"
+ + "te:optimizations/te:algorithm/te:metric/"
+ + "te:optimization-metric/te:explicit-route-include-objects/"
+ + "te:route-object-include-object/te:type/te:label/"
+ + "te:label-hop/te:te-label/te:technology" {
+ description "OTN label.";
+ case otn {
+ uses otn-types:otn-path-label;
+ }
+ }
+
+ /* Augment label hop of label hop of path-route of reverse primary path */
+ augment "/te:te/te:tunnels/te:tunnel/"
+ + "te:p2p-primary-paths/te:p2p-primary-path/"
+ + "te:p2p-reverse-primary-path/"
+ + "te:state/te:path-properties/"
+ + "te:path-route-objects/te:path-computed-route-object/"
+ + "te:state/te:type/te:label/"
+ + "te:label-hop/te:te-label/te:technology" {
+ description "OTN label.";
+ case otn {
+ uses otn-types:otn-path-label;
+ }
+ }
+
+ /*
+ augment "/te:te/te:tunnels/te:tunnel/"
+ + "te:p2p-primary-paths/te:p2p-primary-path/"
+ + "te:p2p-reverse-primary-path/"
+ + "te:state/te:lsps/te:lsp/te:lsp-record-route-subobjects/"
+ + "te:record-route-subobject/"
+ + "te:type/te:label/"
+ + "te:label-hop/te:te-label/te:technology" {
+ description "OTN label.";
+ case otn {
+ uses otn-types:otn-path-label;
+ }
+ }
+ */
+
+ /* Augment label hop of path-route of reverse primary LSP */
+ augment "/te:te/te:tunnels/te:tunnel/"
+ + "te:p2p-primary-paths/te:p2p-primary-path/"
+ + "te:p2p-reverse-primary-path/"
+ + "te:state/te:lsps/te:lsp/te:path-properties/"
+ + "te:path-route-objects/te:path-computed-route-object/"
+ + "te:state/te:type/te:label/"
+ + "te:label-hop/te:te-label/te:technology" {
+ description "OTN label.";
+ case otn {
+ uses otn-types:otn-path-label;
+ }
+ }
+
+ /* Augment label hop of route-object-exclude-always of secondary path */
+ augment "/te:te/te:tunnels/te:tunnel/"
+ + "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ + "te:explicit-route-objects/"
+ + "te:route-object-exclude-always/te:type/te:label/"
+ + "te:label-hop/te:te-label/te:technology" {
+ description "OTN label.";
+ case otn {
+ uses otn-types:otn-path-label;
+ }
+ }
+
+ /* Augment label hop of route-object-include-exclude of secondary path */
+ augment "/te:te/te:tunnels/te:tunnel/"
+ + "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ + "te:explicit-route-objects/"
+ + "te:route-object-include-exclude/te:type/te:label/"
+ + "te:label-hop/te:te-label/te:technology" {
+ description "OTN label.";
+ case otn {
+ uses otn-types:otn-path-label;
+ }
+ }
+
+ /* Augment label hop of route-exclude of secondary path */
+ augment "/te:te/te:tunnels/te:tunnel/"
+ + "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ + "te:optimizations/te:algorithm/te:metric/"
+ + "te:optimization-metric/te:explicit-route-exclude-objects/"
+ + "te:route-object-exclude-object/te:type/te:label/"
+ + "te:label-hop/te:te-label/te:technology" {
+ description "OTN label.";
+ case otn {
+ uses otn-types:otn-path-label;
+ }
+ }
+
+ /* Augment label hop of route-include of secondary path */
+ augment "/te:te/te:tunnels/te:tunnel/"
+ + "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ + "te:optimizations/te:algorithm/te:metric/"
+ + "te:optimization-metric/te:explicit-route-include-objects/"
+ + "te:route-object-include-object/te:type/te:label/"
+ + "te:label-hop/te:te-label/te:technology" {
+ description "OTN label.";
+ case otn {
+ uses otn-types:otn-path-label;
+ }
+ }
+
+ /* Augment label hop of label hop of path-route of secondary path */
+ augment "/te:te/te:tunnels/te:tunnel/"
+ + "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ + "te:state/te:path-properties/te:path-route-objects/"
+ + "te:path-computed-route-object/te:state/te:type/te:label/"
+ + "te:label-hop/te:te-label/te:technology" {
+ description "OTN label.";
+ case otn {
+ uses otn-types:otn-path-label;
+ }
+ }
+
+ /*
+ augment "/te:te/te:tunnels/te:tunnel/"
+ + "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ + "te:state/te:lsps/te:lsp/te:lsp-record-route-subobjects/"
+ + "te:record-route-subobject/"
+ + "te:type/te:label/"
+ + "te:label-hop/te:te-label/te:technology" {
+ description "OTN label.";
+ case otn {
+ uses otn-types:otn-path-label;
+ }
+ }
+ */
+
+ /* Augment label hop of path-route of secondary LSP */
+ augment "/te:te/te:tunnels/te:tunnel/"
+ + "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ + "te:state/te:lsps/te:lsp/te:path-properties/"
+ + "te:path-route-objects/"
+ + "te:path-computed-route-object/te:state/te:type/te:label/"
+ + "te:label-hop/te:te-label/te:technology" {
+ description "OTN label.";
+ case otn {
+ uses otn-types:otn-path-label;
+ }
+ }
+
+ /*
+ augment "/te:te/te:lsp-state/"
+ + "te:lsp-record-route-subobjects/te:lsp-record-route-subobject/"
+ + "te:record-route-subobject/"
+ + "te:type/te:label/te:label-hop/te:te-label/te:technology" {
+ description "OTN label.";
+ case otn {
+ uses otn-types:otn-path-label;
+ }
+ }
+ */
+
+
+ grouping p2p-path-ero {
+ description
+ "TE tunnel ERO configuration grouping";
+
+ leaf te-default-metric {
+ type uint32;
+ description
+ "Traffic engineering metric.";
+ }
+ leaf te-delay-metric {
+ type uint32;
+ description
+ "Traffic engineering delay metric.";
+ }
+ leaf te-hop-metric {
+ type uint32;
+ description
+ "Traffic engineering hop metric.";
+ }
+ container explicit-route-objects {
+ description "Explicit route objects container";
+ list explicit-route-object {
+ key "index";
+ description
+ "List of explicit route objects";
+ leaf explicit-route-usage {
+ type identityref {
+ base te-types:route-usage-type;
+ }
+ description "An explicit-route hop action.";
+ }
+ uses te-types:explicit-route-hop {
+ augment "type/label/label-hop/te-label/technology" {
+ description "OTN label.";
+ case otn {
+ uses otn-types:otn-path-label;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ rpc otn-te-tunnel-path-compute {
+ description "OTN TE tunnel path computation";
+ input {
+ list request {
+ key "id";
+ description "A list of path computation requests.";
+
+ leaf id {
+ type uint8;
+ description
+ "Request ID.";
+ }
+ leaf type {
+ type identityref {
+ base te-types:tunnel-type;
+ }
+ description "TE tunnel type.";
+ }
+ leaf source {
+ type inet:ip-address;
+ description
+ "TE tunnel source address.";
+ }
+ leaf destination {
+ type inet:ip-address;
+ description
+ "TE tunnel destination address";
+ }
+ leaf src-tp-id {
+ type binary;
+ description
+ "TE tunnel source termination point identifier.";
+ }
+ leaf dst-tp-id {
+ type binary;
+ description
+ "TE tunnel destination termination point identifier.";
+ }
+ leaf switching-layer {
+ type identityref {
+ base te-types:switching-capabilities;
+ }
+ description
+ "Switching layer where the requests are computed.";
+ }
+ leaf encoding {
+ type identityref {
+ base te-types:lsp-encoding-types;
+ }
+ description "LSP encoding type";
+ }
+ leaf protection-type {
+ type identityref {
+ base te-types:lsp-protection-type;
+ }
+ description "LSP protection type";
+ }
+ leaf restoration-type {
+ type identityref {
+ base te-types:lsp-restoration-type;
+ }
+ description "LSP restoration type";
+ }
+ leaf provider-id {
+ type te-types:te-global-id;
+ description
+ "An identifier to uniquely identify a provider.";
+ }
+ leaf client-id {
+ type te-types:te-global-id;
+ description
+ "An identifier to uniquely identify a client.";
+ }
+ leaf te-topology-id {
+ type te-types:te-topology-id;
+ description
+ "It is presumed that a datastore will contain many
+ topologies. To distinguish between topologies it is
+ vital to have UNIQUE topology identifiers.";
+ }
+ leaf setup-priority {
+ type uint8 {
+ range "0..7";
+ }
+ description
+ "TE LSP setup priority";
+ }
+ leaf hold-priority {
+ type uint8 {
+ range "0..7";
+ }
+ description
+ "TE LSP hold priority";
+ }
+ leaf te-path-metric-type {
+ type identityref {
+ base te-types:path-metric-type;
+ }
+ default te-types:path-metric-te;
+ description
+ "The tunnel path metric type.";
+ }
+
+ leaf odu-type {
+ type identityref{
+ base otn-types:tributary-protocol-type;
+ }
+ description "Type of ODU";
+ }
+ container p2p-primary-paths {
+ description "Set of P2P primary paths container";
+ list p2p-primary-path {
+ key "name";
+ description
+ "List of primary paths for this tunnel.";
+ leaf name {
+ type string;
+ description "TE path name";
+ }
+ uses p2p-path-ero;
+ }
+ }
+ container p2p-secondary-paths {
+ description "Set of P2P secondary paths container";
+ list p2p-secondary-path {
+ key "name";
+ description
+ "List of secondary paths for this tunnel.";
+ leaf name {
+ type string;
+ description "TE path name";
+ }
+ uses p2p-path-ero;
+ }
+ }
+ uses otn-tunnel-endpoint;
+ }
+ }
+ output {
+ leaf return-code {
+ type enumeration {
+ enum success {
+ description "success";
+ }
+ enum aborted {
+ description "aborted";
+ }
+ enum destination-not-found {
+ description "destination-not-found";
+ }
+ enum invalid-argument {
+ description "invalid-argument";
+ }
+ enum no-memory {
+ description "no-memory";
+ }
+ enum no-path-found {
+ description "no-path-found";
+ }
+ enum other-error {
+ description "other-error";
+ }
+ enum some-path-not-found {
+ description "some-path-not-found";
+ }
+ enum source-not-found {
+ description "source-not-found";
+ }
+ enum topology-error {
+ description "topology-error";
+ }
+ }
+ description
+ "Return code";
+ }
+ list result {
+ key "id";
+ description
+ "A list of results for all requests.";
+
+ leaf id {
+ type uint8;
+ description
+ "Request ID";
+ }
+ container p2p-primary-paths {
+ description "Set of P2P primary paths container";
+ list p2p-primary-path {
+ key "name";
+ description
+ "List of resultant primary paths for this tunnel.";
+ leaf name {
+ type string;
+ description "TE path name";
+ }
+ uses p2p-path-ero;
+ }
+ }
+ container p2p-secondary-paths {
+ description "Set of P2P secondary paths container";
+ list p2p-secondary-path {
+ key "name";
+ description
+ "List of resultant secondary paths for this tunnel.";
+ leaf name {
+ type string;
+ description "TE path name";
+ }
+ uses p2p-path-ero;
+ }
+ }
+ }
+ }
+ }
+}