draft-ietf-ccamp-otn-tunnel-model-08.txt   draft-ietf-ccamp-otn-tunnel-model-09.txt 
CCAMP Working Group H. Zheng CCAMP Working Group H. Zheng
Internet-Draft I. Busi Internet-Draft I. Busi
Intended status: Standards Track Huawei Technologies Intended status: Standards Track Huawei Technologies
Expires: April 25, 2020 S. Belotti Expires: May 5, 2020 S. Belotti
Nokia Nokia
V. Lopez V. Lopez
Telefonica Telefonica
Y. Xu Y. Xu
CAICT CAICT
October 23, 2019 November 2, 2019
OTN Tunnel YANG Model OTN Tunnel YANG Model
draft-ietf-ccamp-otn-tunnel-model-08 draft-ietf-ccamp-otn-tunnel-model-09
Abstract Abstract
This document describes the YANG data model for OTN Tunnels. This document describes the YANG data model for OTN Tunnels.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on April 25, 2020. This Internet-Draft will expire on May 5, 2020.
Copyright Notice Copyright Notice
Copyright (c) 2019 IETF Trust and the persons identified as the Copyright (c) 2019 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 16 skipping to change at page 2, line 16
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Terminology and Notations . . . . . . . . . . . . . . . . . . 2 2. Terminology and Notations . . . . . . . . . . . . . . . . . . 2
3. OTN Tunnel Model Description . . . . . . . . . . . . . . . . 3 3. OTN Tunnel Model Description . . . . . . . . . . . . . . . . 3
3.1. Overview of OTN Tunnel Model . . . . . . . . . . . . . . 3 3.1. Overview of OTN Tunnel Model . . . . . . . . . . . . . . 3
3.2. OTN-specific Parameters in Tunnel Model . . . . . . . . . 3 3.2. OTN-specific Parameters in Tunnel Model . . . . . . . . . 3
3.3. OTN Path Compute RPC . . . . . . . . . . . . . . . . . . 4 3.3. OTN Path Compute RPC . . . . . . . . . . . . . . . . . . 4
4. OTN Tunnel YANG Tree . . . . . . . . . . . . . . . . . . . . 4 4. OTN Tunnel YANG Tree . . . . . . . . . . . . . . . . . . . . 4
5. OTN Tunnel YANG Code . . . . . . . . . . . . . . . . . . . . 13 5. OTN Tunnel YANG Code . . . . . . . . . . . . . . . . . . . . 14
6. Security Considerations . . . . . . . . . . . . . . . . . . . 34 6. Security Considerations . . . . . . . . . . . . . . . . . . . 30
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 35 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 31
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 36 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 32
9. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 36 9. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 32
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 37 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 33
10.1. Normative References . . . . . . . . . . . . . . . . . . 37 10.1. Normative References . . . . . . . . . . . . . . . . . . 33
10.2. Informative References . . . . . . . . . . . . . . . . . 38 10.2. Informative References . . . . . . . . . . . . . . . . . 34
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 39 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 35
1. Introduction 1. Introduction
OTN transport networks, specified in [ITU-Tg709], can carry various OTN transport networks, specified in [ITU-Tg709], can carry various
types of client services. In many cases, the client signal is types of client services. In many cases, the client signal is
carried over an OTN tunnel across connected domains in a multi-domain carried over an OTN tunnel across connected domains in a multi-domain
network. These OTN services can either be transported or switched in network. These OTN services can either be transported or switched in
the OTN network. If an OTN tunnel is switched, then additional the OTN network. If an OTN tunnel is switched, then additional
parameters need to be provided to create a Mux OTN service. parameters need to be provided to create a Mux OTN service.
skipping to change at page 4, line 18 skipping to change at page 4, line 18
is also supported for stateful path computation. Given the OTN is also supported for stateful path computation. Given the OTN
tunnel computed, the client may query and/or subscribe on the tunnel tunnel computed, the client may query and/or subscribe on the tunnel
to be notified whenever it changes. In addition, also a stateless to be notified whenever it changes. In addition, also a stateless
Remote Procedural Call (RPC) is specified. On receiving this RPC, Remote Procedural Call (RPC) is specified. On receiving this RPC,
the provider is expected to compute the available path subject to the the provider is expected to compute the available path subject to the
constraints specified in RPC and feedback to the client without any constraints specified in RPC and feedback to the client without any
changing of the OTN network or the OTN tunnels. changing of the OTN network or the OTN tunnels.
4. OTN Tunnel YANG Tree 4. OTN Tunnel YANG Tree
module: ietf-otn-tunnel module: ietf-otn-tunnel
augment /te:te/te:tunnels/te:tunnel: augment /te:te/te:tunnels/te:tunnel:
+--rw src-client-signal? identityref +--rw src-client-signal? identityref
+--rw dst-client-signal? identityref +--rw dst-client-signal? identityref
augment /te:te/te:globals/te:named-path-constraints augment /te:te/te:globals/te:named-path-constraints
/te:named-path-constraint/te:te-bandwidth/te:technology: /te:named-path-constraint/te:te-bandwidth
+--:(otn) /te:technology:
+--rw odu-type? identityref +--:(otn)
augment /te:te/te:tunnels/te:tunnel/te:te-bandwidth/te:technology: +--rw odu-type? identityref
+--:(otn) augment /te:te/te:tunnels/te:tunnel/te:te-bandwidth
+--rw odu-type? identityref /te:technology:
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths +--:(otn)
/te:p2p-primary-path/te:te-bandwidth/te:technology: +--rw odu-type? identityref
+--:(otn) augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
+--rw odu-type? identityref /te:p2p-primary-path/te:te-bandwidth
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths /te:technology:
/te:p2p-primary-path/te:p2p-primary-reverse-path +--:(otn)
/te:te-bandwidth/te:technology: +--rw odu-type? identityref
+--:(otn) augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
+--rw odu-type? identityref /te:p2p-primary-path/te:p2p-primary-reverse-path
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths /te:te-bandwidth/te:technology:
/te:p2p-secondary-path/te:te-bandwidth/te:technology: +--:(otn)
+--:(otn) +--rw odu-type? identityref
+--rw odu-type? identityref augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
augment /te:te/te:globals/te:named-path-constraints /te:p2p-secondary-path/te:te-bandwidth
/te:named-path-constraint/te:explicit-route-objects-always /te:technology:
/te:route-object-exclude-always/te:type/te:label +--:(otn)
/te:label-hop/te:te-label/te:technology: +--rw odu-type? identityref
+--:(otn) augment /te:te/te:globals/te:named-path-constraints
+--rw tpn? uint16 /te:named-path-constraint
+--rw tsg? identityref /te:explicit-route-objects-always
+--rw ts-list? string /te:route-object-exclude-always/te:type/te:label
augment /te:te/te:globals/te:named-path-constraints /te:label-hop/te:te-label/te:technology:
/te:named-path-constraint/te:explicit-route-objects-always +--:(otn)
/te:route-object-include-exclude/te:type/te:label +--rw tpn? uint16
/te:label-hop/te:te-label/te:technology: +--rw tsg? identityref
+--:(otn) +--rw ts-list? string
+--rw tpn? uint16 augment /te:te/te:globals/te:named-path-constraints
+--rw tsg? identityref /te:named-path-constraint
+--rw ts-list? string /te:explicit-route-objects-always
augment /te:te/te:globals/te:named-path-constraints /te:route-object-include-exclude/te:type
/te:named-path-constraint/te:path-in-segment /te:label/te:label-hop/te:te-label
/te:label-restrictions/te:label-restriction: /te:technology:
+--rw range-type? identityref +--:(otn)
+--rw tsg? identityref +--rw tpn? uint16
+--rw priority? uint8 +--rw tsg? identityref
augment /te:te/te:globals/te:named-path-constraints +--rw ts-list? string
/te:named-path-constraint/te:path-in-segment augment /te:te/te:globals/te:named-path-constraints
/te:label-restrictions/te:label-restriction /te:named-path-constraint/te:path-in-segment
/te:label-start/te:te-label/te:technology: /te:label-restrictions/te:label-restriction:
+--:(otn) +--rw range-type? identityref
+--rw (otn-label-type)? +--rw tsg? identityref
+--:(tributary-port) +--rw odu-type-list* identityref
| +--rw tpn? uint16 +--rw priority? uint8
+--:(tributary-slot) augment /te:te/te:globals/te:named-path-constraints
+--rw ts? uint16 /te:named-path-constraint/te:path-in-segment
augment /te:te/te:globals/te:named-path-constraints /te:label-restrictions/te:label-restriction
/te:named-path-constraint/te:path-in-segment /te:label-start/te:te-label/te:technology:
/te:label-restrictions/te:label-restriction +--:(otn)
/te:label-end/te:te-label/te:technology: +--rw (otn-label-type)?
+--:(otn) +--:(tributary-port)
+--rw (otn-label-type)? | +--rw tpn? uint16
+--:(tributary-port) +--:(tributary-slot)
| +--rw tpn? uint16 +--rw ts? uint16
+--:(tributary-slot) augment /te:te/te:globals/te:named-path-constraints
+--rw ts? uint16 /te:named-path-constraint/te:path-in-segment
augment /te:te/te:globals/te:named-path-constraints /te:label-restrictions/te:label-restriction
/te:named-path-constraint/te:path-out-segment /te:label-end/te:te-label/te:technology:
/te:label-restrictions/te:label-restriction: +--:(otn)
+--rw range-type? identityref +--rw (otn-label-type)?
+--rw tsg? identityref +--:(tributary-port)
+--rw priority? uint8 | +--rw tpn? uint16
augment /te:te/te:globals/te:named-path-constraints +--:(tributary-slot)
/te:named-path-constraint/te:path-out-segment +--rw ts? uint16
/te:label-restrictions/te:label-restriction augment /te:te/te:globals/te:named-path-constraints
/te:label-start/te:te-label/te:technology: /te:named-path-constraint/te:path-out-segment
+--:(otn) /te:label-restrictions/te:label-restriction:
+--rw (otn-label-type)? +--rw range-type? identityref
+--:(tributary-port) +--rw tsg? identityref
| +--rw tpn? uint16 +--rw odu-type-list* identityref
+--:(tributary-slot) +--rw priority? uint8
+--rw ts? uint16 augment /te:te/te:globals/te:named-path-constraints
/te:named-path-constraint/te:path-out-segment
/te:label-restrictions/te:label-restriction
/te:label-start/te:te-label/te:technology:
+--:(otn)
+--rw (otn-label-type)?
+--:(tributary-port)
| +--rw tpn? uint16
+--:(tributary-slot)
+--rw ts? uint16
augment /te:te/te:globals/te:named-path-constraints
/te:named-path-constraint/te:path-out-segment
/te:label-restrictions/te:label-restriction
/te:label-end/te:te-label/te:technology:
+--:(otn)
+--rw (otn-label-type)?
+--:(tributary-port)
| +--rw tpn? uint16
+--:(tributary-slot)
+--rw ts? uint16
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:
+--:(otn)
+--rw tpn? uint16
+--rw tsg? identityref
+--rw ts-list? string
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:
+--:(otn)
+--rw tpn? uint16
+--rw tsg? identityref
+--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path
/te:explicit-route-objects-always
/te:route-object-exclude-always/te:type/te:label
/te:label-hop/te:te-label/te:technology:
+--:(otn)
+--rw tpn? uint16
+--rw tsg? identityref
+--rw ts-list? string
augment /te:te/te:globals/te:named-path-constraints augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:named-path-constraint/te:path-out-segment /te:p2p-primary-path
/te:label-restrictions/te:label-restriction /te:explicit-route-objects-always
/te:label-end/te:te-label/te:technology: /te:route-object-include-exclude/te:type
+--:(otn) /te:label/te:label-hop/te:te-label
+--rw (otn-label-type)? /te:technology:
+--:(tributary-port) +--:(otn)
| +--rw tpn? uint16 +--rw tpn? uint16
+--:(tributary-slot) +--rw tsg? identityref
+--rw ts? uint16 +--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:optimizations/te:algorithm /te:p2p-primary-path/te:path-in-segment
/te:metric/te:optimization-metric /te:label-restrictions/te:label-restriction:
/te:explicit-route-exclude-objects +--rw range-type? identityref
/te:route-object-exclude-object/te:type/te:label +--rw tsg? identityref
/te:label-hop/te:te-label/te:technology: +--rw odu-type-list* identityref
+--:(otn) +--rw priority? uint8
+--rw tpn? uint16 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
+--rw tsg? identityref /te:p2p-primary-path/te:path-in-segment
+--rw ts-list? string /te:label-restrictions/te:label-restriction
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths /te:label-start/te:te-label/te:technology:
/te:p2p-primary-path/te:optimizations/te:algorithm +--:(otn)
/te:metric/te:optimization-metric +--rw (otn-label-type)?
/te:explicit-route-include-objects +--:(tributary-port)
/te:route-object-include-object/te:type/te:label | +--rw tpn? uint16
/te:label-hop/te:te-label/te:technology: +--:(tributary-slot)
+--:(otn) +--rw ts? uint16
+--rw tpn? uint16 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
+--rw tsg? identityref /te:p2p-primary-path/te:path-in-segment
+--rw ts-list? string /te:label-restrictions/te:label-restriction
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths /te:label-end/te:te-label/te:technology:
/te:p2p-primary-path/te:explicit-route-objects-always +--:(otn)
/te:route-object-exclude-always/te:type/te:label +--rw (otn-label-type)?
/te:label-hop/te:te-label/te:technology: +--:(tributary-port)
+--:(otn) | +--rw tpn? uint16
+--rw tpn? uint16 +--:(tributary-slot)
+--rw tsg? identityref +--rw ts? uint16
+--rw ts-list? string augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths /te:p2p-primary-path/te:path-out-segment
/te:p2p-primary-path/te:explicit-route-objects-always /te:label-restrictions/te:label-restriction:
/te:route-object-include-exclude/te:type/te:label +--rw range-type? identityref
/te:label-hop/te:te-label/te:technology: +--rw tsg? identityref
+--:(otn) +--rw odu-type-list* identityref
+--rw tpn? uint16 +--rw priority? uint8
+--rw tsg? identityref augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
+--rw ts-list? string /te:p2p-primary-path/te:path-out-segment
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths /te:label-restrictions/te:label-restriction
/te:p2p-primary-path/te:path-in-segment /te:label-start/te:te-label/te:technology:
/te:label-restrictions/te:label-restriction:
+--rw range-type? identityref
+--rw tsg? identityref
+--rw priority? uint8
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:path-in-segment
/te:label-restrictions/te:label-restriction
/te:label-start/te:te-label/te:technology:
+--:(otn)
+--rw (otn-label-type)?
+--:(tributary-port)
| +--rw tpn? uint16
+--:(tributary-slot)
+--rw ts? uint16
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:path-in-segment
/te:label-restrictions/te:label-restriction
/te:label-end/te:te-label/te:technology:
+--:(otn)
+--rw (otn-label-type)?
+--:(tributary-port)
| +--rw tpn? uint16
+--:(tributary-slot)
+--rw ts? uint16
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:path-out-segment
/te:label-restrictions/te:label-restriction:
+--rw range-type? identityref
+--rw tsg? identityref
+--rw priority? uint8
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:path-out-segment
/te:label-restrictions/te:label-restriction
/te:label-start/te:te-label/te:technology:
+--:(otn)
+--rw (otn-label-type)?
+--:(tributary-port)
| +--rw tpn? uint16
+--:(tributary-slot)
+--rw ts? uint16
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:path-out-segment
/te:label-restrictions/te:label-restriction
/te:label-end/te:te-label/te:technology:
+--:(otn)
+--rw (otn-label-type)?
+--:(tributary-port)
| +--rw tpn? uint16
+--:(tributary-slot)
+--rw ts? uint16
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:computed-paths-properties
/te:computed-path-properties/te:path-properties
/te:path-route-objects/te:path-computed-route-object
/te:type/te:label/te:label-hop/te:te-label
/te:technology:
+--:(otn)
+--ro tpn? uint16
+--ro tsg? identityref
+--ro ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:lsps/te:lsp
/te:lsp-record-route-information
/te:lsp-record-route-information/te:type/te:label
/te:label-hop/te:te-label/te:technology:
+--:(otn)
+--ro tpn? uint16
+--ro tsg? identityref
+--ro ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:lsps/te:lsp/te:path-properties
/te:path-route-objects/te:path-computed-route-object
/te:type/te:label/te:label-hop/te:te-label
/te:technology:
+--:(otn)
+--ro tpn? uint16
+--ro tsg? identityref
+--ro ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:p2p-primary-reverse-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:
+--:(otn)
+--rw tpn? uint16
+--rw tsg? identityref
+--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:p2p-primary-reverse-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:
+--:(otn) +--:(otn)
+--rw tpn? uint16 +--rw (otn-label-type)?
+--rw tsg? identityref +--:(tributary-port)
+--rw ts-list? string | +--rw tpn? uint16
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths +--:(tributary-slot)
/te:p2p-primary-path/te:p2p-primary-reverse-path +--rw ts? uint16
/te:explicit-route-objects-always augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:route-object-exclude-always/te:type/te:label /te:p2p-primary-path/te:path-out-segment
/te:label-hop/te:te-label/te:technology: /te:label-restrictions/te:label-restriction
+--:(otn) /te:label-end/te:te-label/te:technology:
+--rw tpn? uint16 +--:(otn)
+--rw tsg? identityref +--rw (otn-label-type)?
+--rw ts-list? string +--:(tributary-port)
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths | +--rw tpn? uint16
/te:p2p-primary-path/te:p2p-primary-reverse-path +--:(tributary-slot)
/te:explicit-route-objects-always +--rw ts? uint16
/te:route-object-include-exclude/te:type/te:label augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:label-hop/te:te-label/te:technology: /te:p2p-primary-path
+--:(otn) /te:computed-paths-properties
+--rw tpn? uint16 /te:computed-path-properties/te:path-properties
+--rw tsg? identityref /te:path-route-objects
+--rw ts-list? string /te:path-computed-route-object/te:type/te:label
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths /te:label-hop/te:te-label/te:technology:
/te:p2p-primary-path/te:p2p-primary-reverse-path +--:(otn)
/te:path-in-segment/te:label-restrictions +--ro tpn? uint16
/te:label-restriction: +--ro tsg? identityref
+--rw range-type? identityref +--ro ts-list? string
+--rw tsg? identityref augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
+--rw priority? uint8 /te:p2p-primary-path/te:lsps/te:lsp
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths /te:lsp-record-route-information
/te:p2p-primary-path/te:p2p-primary-reverse-path /te:lsp-record-route-information/te:type
/te:path-in-segment/te:label-restrictions /te:label/te:label-hop/te:te-label
/te:label-restriction/te:label-start/te:te-label /te:technology:
/te:technology: +--:(otn)
+--:(otn) +--ro tpn? uint16
+--rw (otn-label-type)? +--ro tsg? identityref
+--:(tributary-port) +--ro ts-list? string
| +--rw tpn? uint16 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
+--:(tributary-slot) /te:p2p-primary-path/te:lsps/te:lsp
+--rw ts? uint16 /te:path-properties/te:path-route-objects
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths /te:path-computed-route-object/te:type/te:label
/te:p2p-primary-path/te:p2p-primary-reverse-path /te:label-hop/te:te-label/te:technology:
/te:path-in-segment/te:label-restrictions +--:(otn)
/te:label-restriction/te:label-end/te:te-label +--ro tpn? uint16
/te:technology: +--ro tsg? identityref
+--:(otn) +--ro ts-list? string
+--rw (otn-label-type)? augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
+--:(tributary-port) /te:p2p-primary-path/te:p2p-primary-reverse-path
| +--rw tpn? uint16 /te:optimizations/te:algorithm/te:metric
+--:(tributary-slot) /te:optimization-metric
+--rw ts? uint16 /te:explicit-route-exclude-objects
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths /te:route-object-exclude-object/te:type/te:label
/te:p2p-primary-path/te:p2p-primary-reverse-path /te:label-hop/te:te-label/te:technology:
/te:path-out-segment/te:label-restrictions +--:(otn)
/te:label-restriction: +--rw tpn? uint16
+--rw range-type? identityref +--rw tsg? identityref
+--rw tsg? identityref +--rw ts-list? string
+--rw priority? uint8 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths /te:p2p-primary-path/te:p2p-primary-reverse-path
/te:p2p-primary-path/te:p2p-primary-reverse-path /te:optimizations/te:algorithm/te:metric
/te:path-out-segment/te:label-restrictions /te:optimization-metric
/te:label-restriction/te:label-start/te:te-label /te:explicit-route-include-objects
/te:technology: /te:route-object-include-object/te:type/te:label
+--:(otn) /te:label-hop/te:te-label/te:technology:
+--rw (otn-label-type)? +--:(otn)
+--:(tributary-port) +--rw tpn? uint16
| +--rw tpn? uint16 +--rw tsg? identityref
+--:(tributary-slot) +--rw ts-list? string
+--rw ts? uint16 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths /te:p2p-primary-path/te:p2p-primary-reverse-path
/te:p2p-primary-path/te:p2p-primary-reverse-path /te:explicit-route-objects-always
/te:path-out-segment/te:label-restrictions /te:route-object-exclude-always/te:type/te:label
/te:label-restriction/te:label-end/te:te-label /te:label-hop/te:te-label/te:technology:
/te:technology: +--:(otn)
+--:(otn) +--rw tpn? uint16
+--rw (otn-label-type)? +--rw tsg? identityref
+--:(tributary-port) +--rw ts-list? string
| +--rw tpn? uint16 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
+--:(tributary-slot) /te:p2p-primary-path/te:p2p-primary-reverse-path
+--rw ts? uint16 /te:explicit-route-objects-always
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths /te:route-object-include-exclude/te:type
/te:p2p-primary-path/te:p2p-primary-reverse-path /te:label/te:label-hop/te:te-label
/te:computed-paths-properties /te:technology:
/te:computed-path-properties +--:(otn)
/te:path-properties/te:path-route-objects +--rw tpn? uint16
/te:path-computed-route-object/te:type/te:label +--rw tsg? identityref
/te:label-hop/te:te-label/te:technology: +--rw ts-list? string
+--:(otn) augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
+--ro tpn? uint16 /te:p2p-primary-path/te:p2p-primary-reverse-path
+--ro tsg? identityref /te:path-in-segment/te:label-restrictions
+--ro ts-list? string /te:label-restriction:
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths +--rw range-type? identityref
/te:p2p-primary-path/te:p2p-primary-reverse-path +--rw tsg? identityref
/te:lsps/te:lsp/te:lsp-record-route-information +--rw odu-type-list* identityref
/te:lsp-record-route-information/te:type/te:label +--rw priority? uint8
/te:label-hop/te:te-label/te:technology: augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:p2p-primary-reverse-path
/te:path-in-segment/te:label-restrictions
/te:label-restriction/te:label-start/te:te-label
/te:technology:
+--:(otn)
+--rw (otn-label-type)?
+--:(tributary-port)
| +--rw tpn? uint16
+--:(tributary-slot)
+--rw ts? uint16
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:p2p-primary-reverse-path
/te:path-in-segment/te:label-restrictions
/te:label-restriction/te:label-end/te:te-label
/te:technology:
+--:(otn)
+--rw (otn-label-type)?
+--:(tributary-port)
| +--rw tpn? uint16
+--:(tributary-slot)
+--rw ts? uint16
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:p2p-primary-reverse-path
/te:path-out-segment/te:label-restrictions
/te:label-restriction:
+--rw range-type? identityref
+--rw tsg? identityref
+--rw odu-type-list* identityref
+--rw priority? uint8
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:p2p-primary-reverse-path
/te:path-out-segment/te:label-restrictions
/te:label-restriction/te:label-start/te:te-label
/te:technology:
+--:(otn)
+--rw (otn-label-type)?
+--:(tributary-port)
| +--rw tpn? uint16
+--:(tributary-slot)
+--rw ts? uint16
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:p2p-primary-reverse-path
/te:path-out-segment/te:label-restrictions
/te:label-restriction/te:label-end/te:te-label
/te:technology:
+--:(otn)
+--rw (otn-label-type)?
+--:(tributary-port)
| +--rw tpn? uint16
+--:(tributary-slot)
+--rw ts? uint16
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:p2p-primary-reverse-path
/te:computed-paths-properties
/te:computed-path-properties/te:path-properties
/te:path-route-objects
/te:path-computed-route-object/te:type/te:label
/te:label-hop/te:te-label/te:technology:
+--:(otn)
+--ro tpn? uint16
+--ro tsg? identityref
+--ro ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:p2p-primary-reverse-path
/te:lsps/te:lsp/te:lsp-record-route-information
/te:lsp-record-route-information/te:type
/te:label/te:label-hop/te:te-label
/te:technology:
+--:(otn)
+--ro tpn? uint16
+--ro tsg? identityref
+--ro ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:p2p-primary-reverse-path
/te:lsps/te:lsp/te:path-properties
/te:path-route-objects
/te:path-computed-route-object/te:type/te:label
/te:label-hop/te:te-label/te:technology:
+--:(otn)
+--ro tpn? uint16
+--ro tsg? identityref
+--ro ts-list? string
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:
+--:(otn)
+--rw tpn? uint16
+--rw tsg? identityref
+--rw ts-list? string
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:
+--:(otn)
+--rw tpn? uint16
+--rw tsg? identityref
+--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path
/te:explicit-route-objects-always
/te:route-object-exclude-always/te:type/te:label
/te:label-hop/te:te-label/te:technology:
+--:(otn)
+--rw tpn? uint16
+--rw tsg? identityref
+--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path
/te:explicit-route-objects-always
/te:route-object-include-exclude/te:type
/te:label/te:label-hop/te:te-label
/te:technology:
+--:(otn)
+--rw tpn? uint16
+--rw tsg? identityref
+--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path/te:path-in-segment
/te:label-restrictions/te:label-restriction:
+--rw range-type? identityref
+--rw tsg? identityref
+--rw odu-type-list* identityref
+--rw priority? uint8
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path/te:path-in-segment
/te:label-restrictions/te:label-restriction
/te:label-start/te:te-label/te:technology:
+--:(otn)
+--rw (otn-label-type)?
+--:(tributary-port)
| +--rw tpn? uint16
+--:(tributary-slot)
+--rw ts? uint16
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path/te:path-in-segment
/te:label-restrictions/te:label-restriction
/te:label-end/te:te-label/te:technology:
+--:(otn)
+--rw (otn-label-type)?
+--:(tributary-port)
| +--rw tpn? uint16
+--:(tributary-slot)
+--rw ts? uint16
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path/te:path-out-segment
/te:label-restrictions/te:label-restriction:
+--rw range-type? identityref
+--rw tsg? identityref
+--rw odu-type-list* identityref
+--rw priority? uint8
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path/te:path-out-segment
/te:label-restrictions/te:label-restriction
/te:label-start/te:te-label/te:technology:
+--:(otn)
+--rw (otn-label-type)?
+--:(tributary-port)
| +--rw tpn? uint16
+--:(tributary-slot)
+--rw ts? uint16
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path/te:path-out-segment
/te:label-restrictions/te:label-restriction
/te:label-end/te:te-label/te:technology:
+--:(otn)
+--rw (otn-label-type)?
+--:(tributary-port)
| +--rw tpn? uint16
+--:(tributary-slot)
+--rw ts? uint16
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path
/te:computed-paths-properties
/te:computed-path-properties/te:path-properties
/te:path-route-objects
/te:path-computed-route-object/te:type/te:label
/te:label-hop/te:te-label/te:technology:
+--:(otn)
+--ro tpn? uint16
+--ro tsg? identityref
+--ro ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path/te:lsps/te:lsp
/te:lsp-record-route-information
/te:lsp-record-route-information/te:type
/te:label/te:label-hop/te:te-label
/te:technology:
+--:(otn) +--:(otn)
+--ro tpn? uint16 +--ro tpn? uint16
+--ro tsg? identityref +--ro tsg? identityref
+--ro ts-list? string +--ro ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-primary-path/te:p2p-primary-reverse-path /te:p2p-secondary-path/te:lsps/te:lsp
/te:lsps/te:lsp/te:path-properties/te:path-route-objects /te:path-properties/te:path-route-objects
/te:path-computed-route-object/te:type/te:label /te:path-computed-route-object/te:type/te:label
/te:label-hop/te:te-label/te:technology: /te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--ro tpn? uint16 +--ro tpn? uint16
+--ro tsg? identityref +--ro tsg? identityref
+--ro ts-list? string +--ro ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths augment /te:te/te:lsps-state/te:lsp
/te:p2p-secondary-path/te:optimizations/te:algorithm /te:lsp-record-route-information
/te:metric/te:optimization-metric /te:lsp-record-route-information/te:type
/te:explicit-route-exclude-objects /te:label/te:label-hop/te:te-label
/te:route-object-exclude-object/te:type/te:label /te:technology:
/te:label-hop/te:te-label/te:technology: +--:(otn)
+--:(otn) +--ro tpn? uint16
+--rw tpn? uint16 +--ro tsg? identityref
+--rw tsg? identityref +--ro ts-list? string
+--rw ts-list? string
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:
+--:(otn)
+--rw tpn? uint16
+--rw tsg? identityref
+--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path/te:explicit-route-objects-always
/te:route-object-exclude-always/te:type/te:label
/te:label-hop/te:te-label/te:technology:
+--:(otn)
+--rw tpn? uint16
+--rw tsg? identityref
+--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path/te:explicit-route-objects-always
/te:route-object-include-exclude/te:type/te:label
/te:label-hop/te:te-label/te:technology:
+--:(otn)
+--rw tpn? uint16
+--rw tsg? identityref
+--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path/te:path-in-segment
/te:label-restrictions/te:label-restriction:
+--rw range-type? identityref
+--rw tsg? identityref
+--rw priority? uint8
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path/te:path-in-segment
/te:label-restrictions/te:label-restriction
/te:label-start/te:te-label/te:technology:
+--:(otn)
+--rw (otn-label-type)?
+--:(tributary-port)
| +--rw tpn? uint16
+--:(tributary-slot)
+--rw ts? uint16
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path/te:path-in-segment
/te:label-restrictions/te:label-restriction
/te:label-end/te:te-label/te:technology:
+--:(otn)
+--rw (otn-label-type)?
+--:(tributary-port)
| +--rw tpn? uint16
+--:(tributary-slot)
+--rw ts? uint16
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path/te:path-out-segment
/te:label-restrictions/te:label-restriction:
+--rw range-type? identityref
+--rw tsg? identityref
+--rw priority? uint8
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path/te:path-out-segment
/te:label-restrictions/te:label-restriction
/te:label-start/te:te-label/te:technology:
+--:(otn)
+--rw (otn-label-type)?
+--:(tributary-port)
| +--rw tpn? uint16
+--:(tributary-slot)
+--rw ts? uint16
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path/te:path-out-segment
/te:label-restrictions/te:label-restriction
/te:label-end/te:te-label/te:technology:
+--:(otn)
+--rw (otn-label-type)?
+--:(tributary-port)
| +--rw tpn? uint16
+--:(tributary-slot)
+--rw ts? uint16
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path/te:computed-paths-properties
/te:computed-path-properties/te:path-properties
/te:path-route-objects/te:path-computed-route-object
/te:type/te:label/te:label-hop/te:te-label/te:technology:
+--:(otn)
+--ro tpn? uint16
+--ro tsg? identityref
+--ro ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path/te:lsps/te:lsp
/te:lsp-record-route-information
/te:lsp-record-route-information/te:type/te:label
/te:label-hop/te:te-label/te:technology:
+--:(otn)
+--ro tpn? uint16
+--ro tsg? identityref
+--ro ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path/te:lsps/te:lsp/te:path-properties
/te:path-route-objects/te:path-computed-route-object
/te:type/te:label/te:label-hop/te:te-label/te:technology:
+--:(otn)
+--ro tpn? uint16
+--ro tsg? identityref
+--ro ts-list? string
augment /te:te/te:lsps-state/te:lsp
/te:lsp-record-route-information
/te:lsp-record-route-information/te:type/te:label
/te:label-hop/te:te-label/te:technology:
+--:(otn)
+--ro tpn? uint16
+--ro tsg? identityref
+--ro ts-list? string
5. OTN Tunnel YANG Code 5. OTN Tunnel YANG Code
<CODE BEGINS>file "ietf-otn-tunnel@2019-10-23.yang" <CODE BEGINS>file "ietf-otn-tunnel@2019-11-02.yang"
module ietf-otn-tunnel { module ietf-otn-tunnel {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-otn-tunnel"; namespace "urn:ietf:params:xml:ns:yang:ietf-otn-tunnel";
prefix "otn-tunnel"; prefix "otn-tunnel";
import ietf-te {
prefix "te";
reference
"I-D.ietf-teas-yang-te: A YANG Data Model for Traffic Engineering
Tunnels and Interfaces. ";
}
import ietf-layer1-types {
prefix "layer1-types";
reference
"I-D.ietf-ccamp-layer1-types: A YANG Data Model for Layer 1 Types. ";
}
organization import ietf-te {
"IETF CCAMP Working Group"; prefix "te";
contact reference
"WG Web: <http://tools.ietf.org/wg/ccamp/> "I-D.ietf-teas-yang-te: A YANG Data Model for Traffic Engineering
WG List: <mailto:ccamp@ietf.org> Tunnels and Interfaces. ";
}
Editor: Haomian Zheng import ietf-layer1-types {
<mailto:zhenghaomian@huawei.com> prefix "layer1-types";
reference
"I-D.ietf-ccamp-layer1-types:
A YANG Data Model for Layer 1 Types. ";
Editor: Italo Busi }
<mailto:italo.busi@huawei.com>
Editor: Sergio Belotti organization
<mailto:sergio.belotti@nokia.com> "IETF CCAMP Working Group";
contact
"WG Web: <http://tools.ietf.org/wg/ccamp/>
WG List: <mailto:ccamp@ietf.org>
Editor: Victor Lopez Editor: Haomian Zheng
<mailto:victor.lopezalvarez@telefonica.com> <mailto:zhenghaomian@huawei.com>
Editor: Yunbin Xu Editor: Italo Busi
<mailto:xuyunbin@ritt.cn>"; <mailto:italo.busi@huawei.com>
description Editor: Sergio Belotti
"This module defines a model for OTN Tunnel Services. <mailto:sergio.belotti@nokia.com>
Copyright (c) 2019 IETF Trust and the persons Editor: Victor Lopez
identified as authors of the code. All rights reserved. <mailto:victor.lopezalvarez@telefonica.com>
Redistribution and use in source and binary forms, with or Editor: Yunbin Xu
without modification, is permitted pursuant to, and subject <mailto:xuyunbin@ritt.cn>";
to the license terms contained in, the Simplified BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents
(https://trustee.ietf.org/license-info).";
revision "2019-10-23" {
description description
"Initial Revision"; "This module defines a model for OTN Tunnel Services.
reference The model fully conforms to the Network Management
"RFC XXXX: OTN Tunnel YANG Model"; Datastore Architecture (NMDA).
// RFC Ed.: replace XXXX with actual RFC number, update date
// information and remove this note
}
/* Copyright (c) 2019 IETF Trust and the persons
* Groupings identified as authors of the code. All rights reserved.
*/
grouping otn-tunnel-attributes { Redistribution and use in source and binary forms, with or
description "Parameters for OTN tunnel"; without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents
(https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see
the RFC itself for full legal notices.";
leaf src-client-signal { revision "2019-11-02" {
type identityref {
base layer1-types:client-signal;
}
description description
"Client signal at the source endpoint of the tunnel. "; "Initial Revision";
reference
"RFC XXXX: OTN Tunnel YANG Model";
// RFC Ed.: replace XXXX with actual RFC number, update date
// information and remove this note
} }
leaf dst-client-signal { /*
type identityref { * Groupings
base layer1-types:client-signal; */
grouping otn-tunnel-attributes {
description "Parameters for OTN tunnel";
leaf src-client-signal {
type identityref {
base layer1-types:client-signal;
}
description
"Client signal at the source endpoint of the tunnel. ";
} }
description
"Client signal at the destination endpoint of the tunnel";
}
} leaf dst-client-signal {
type identityref {
base layer1-types:client-signal;
}
description
"Client signal at the destination endpoint of the tunnel";
}
/* }
* Data nodes
*/
augment "/te:te/te:tunnels/te:tunnel" { /*
description * Data nodes
"Augment with additional parameters required for OTN service"; */
uses otn-tunnel-attributes;
}
/* augment "/te:te/te:tunnels/te:tunnel" {
* Augment TE bandwidth description
*/ "Augment with additional parameters required for OTN service";
/* Augment bandwidth of named-path-constraints */ uses otn-tunnel-attributes;
augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/"
+ "te:te-bandwidth/te:technology" {
description "OTN bandwidth.";
case otn {
uses layer1-types:otn-path-bandwidth;
} }
}
/* Augment bandwdith of tunnel */ /*
augment "/te:te/te:tunnels/te:tunnel/" * Augment TE bandwidth
+ "te:te-bandwidth/te:technology" { */
description "OTN bandwidth.";
case otn {
uses layer1-types:otn-path-bandwidth;
}
}
/* Augment bandwidth of primary path */ /* Augment bandwidth of named-path-constraints */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:p2p-primary-paths/te:p2p-primary-path/" + "te:named-path-constraint/"
+ "te:te-bandwidth/te:technology" { + "te:te-bandwidth/te:technology" {
description "OTN bandwidth."; description "OTN bandwidth.";
case otn { case otn {
uses layer1-types:otn-path-bandwidth; uses layer1-types:otn-path-bandwidth;
}
} }
} /* Augment bandwdith of tunnel */
augment "/te:te/te:tunnels/te:tunnel/"
/* Augment bandwidth of reverse primary path */ + "te:te-bandwidth/te:technology" {
augment "/te:te/te:tunnels/te:tunnel/" description "OTN bandwidth.";
+ "te:p2p-primary-paths/te:p2p-primary-path/" case otn {
+ "te:p2p-primary-reverse-path/" uses layer1-types:otn-path-bandwidth;
+ "te:te-bandwidth/te:technology" { }
description "OTN bandwidth.";
case otn {
uses layer1-types:otn-path-bandwidth;
} }
}
/* Augment bandwidth of secondary path */ /* Augment bandwidth of primary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:te-bandwidth/te:technology" { + "te:te-bandwidth/te:technology" {
description "OTN bandwidth."; description "OTN bandwidth.";
case otn { case otn {
uses layer1-types:otn-path-bandwidth; uses layer1-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/"
* Augment TE label. + "te:p2p-primary-reverse-path/"
*/ + "te:te-bandwidth/te:technology" {
description "OTN bandwidth.";
/* Augment label hop of route-object-exclude-always of named-path-constraints */ case otn {
augment "/te:te/te:globals/te:named-path-constraints/" uses layer1-types:otn-path-bandwidth;
+ "te:named-path-constraint/te:explicit-route-objects-always/" }
+ "te:route-object-exclude-always/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses layer1-types:otn-path-label;
} }
}
/* Augment label hop of route-object-include-exclude of named-path-constraints */ /* Augment bandwidth of secondary path */
augment "/te:te/te:globals/te:named-path-constraints/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:named-path-constraint/te:explicit-route-objects-always/" + "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:route-object-include-exclude/te:type/te:label/" + "te:te-bandwidth/te:technology" {
+ "te:label-hop/te:te-label/te:technology" { description "OTN bandwidth.";
description "OTN label."; case otn {
case otn { uses layer1-types:otn-path-bandwidth;
uses layer1-types:otn-path-label; }
} }
}
/* Augment label restrictions for the forwarding direction of path-in-segment of named-path-constraints */ /*
augment "/te:te/te:globals/te:named-path-constraints/" * Augment TE label.
+ "te:named-path-constraint/te:path-in-segment/" */
+ "te:label-restrictions/te:label-restriction" {
description "OTN label.";
uses layer1-types:otn-label-restriction;
}
/* Augment label restrictions start for the forwarding direction of path-in-segment of named-path-constraints */ /* Augment label hop of route-object-exclude-always
augment "/te:te/te:globals/te:named-path-constraints/" * of named-path-constraints */
+ "te:named-path-constraint/te:path-in-segment/" augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:label-restrictions/" + "te:named-path-constraint/te:explicit-route-objects-always/"
+ "te:label-restriction/te:label-start/" + "te:route-object-exclude-always/te:type/te:label/"
+ "te:te-label/te:technology" { + "te:label-hop/te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-link-label; uses layer1-types:otn-label-hop;
}
} }
}
/* Augment label restrictions end for the forwarding direction of path-in-segment of named-path-constraints */ /* Augment label hop of route-object-include-exclude
augment "/te:te/te:globals/te:named-path-constraints/" * of named-path-constraints */
+ "te:named-path-constraint/te:path-in-segment/" augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:label-restrictions/" + "te:named-path-constraint/te:explicit-route-objects-always/"
+ "te:label-restriction/te:label-end/" + "te:route-object-include-exclude/te:type/te:label/"
+ "te:te-label/te:technology" { + "te:label-hop/te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-link-label; uses layer1-types:otn-label-hop;
}
} }
}
/* Augment label restrictions for the forwarding direction of path-out-segment of named-path-constraints */ /* Augment label restrictions for the forwarding direction
augment "/te:te/te:globals/te:named-path-constraints/" * of path-in-segment of named-path-constraints */
+ "te:named-path-constraint/te:path-out-segment/" augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:label-restrictions/" + "te:named-path-constraint/te:path-in-segment/"
+ "te:label-restriction" { + "te:label-restrictions/te:label-restriction" {
description "OTN label."; description "OTN label.";
uses layer1-types:otn-label-restriction; uses layer1-types:otn-label-range-info;
}
/* Augment label restrictions start for the forwarding direction of path-out-segment of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:path-out-segment/"
+ "te:label-restrictions/"
+ "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" {
description "OTN label.";
case otn {
uses layer1-types:otn-link-label;
} }
}
/* Augment label restrictions end for the forwarding direction of path-out-segment of named-path-constraints */ /* Augment label restrictions start for the forwarding direction
augment "/te:te/te:globals/te:named-path-constraints/" * of path-in-segment of named-path-constraints */
+ "te:named-path-constraint/te:path-out-segment/" augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:label-restrictions/" + "te:named-path-constraint/te:path-in-segment/"
+ "te:label-restriction/te:label-end/" + "te:label-restrictions/"
+ "te:te-label/te:technology" { + "te:label-restriction/te:label-start/"
description "OTN label."; + "te:te-label/te:technology" {
case otn { description "OTN label.";
uses layer1-types:otn-link-label; case otn {
uses layer1-types:otn-label-start-end;
}
} }
}
/* Augment label hop of route-exclude of primary path */ /* Augment label restrictions end for the forwarding direction
augment "/te:te/te:tunnels/te:tunnel/" * of path-in-segment of named-path-constraints */
+ "te:p2p-primary-paths/te:p2p-primary-path/" augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:optimizations/te:algorithm/te:metric/" + "te:named-path-constraint/te:path-in-segment/"
+ "te:optimization-metric/te:explicit-route-exclude-objects/" + "te:label-restrictions/"
+ "te:route-object-exclude-object/te:type/te:label/" + "te:label-restriction/te:label-end/"
+ "te:label-hop/te:te-label/te:technology" { + "te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-path-label; uses layer1-types:otn-label-start-end;
}
} }
}
/* Augment label hop of route-include of primary path */ /* Augment label restrictions for the forwarding direction
augment "/te:te/te:tunnels/te:tunnel/" * of path-out-segment of named-path-constraints */
+ "te:p2p-primary-paths/te:p2p-primary-path/" augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:optimizations/te:algorithm/te:metric/" + "te:named-path-constraint/te:path-out-segment/"
+ "te:optimization-metric/te:explicit-route-include-objects/" + "te:label-restrictions/"
+ "te:route-object-include-object/te:type/te:label/" + "te:label-restriction" {
+ "te:label-hop/te:te-label/te:technology" { description "OTN label.";
description "OTN label."; uses layer1-types:otn-label-range-info;
case otn { }
uses layer1-types:otn-path-label; /* Augment label restrictions start for the forwarding direction
* of path-out-segment of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:path-out-segment/"
+ "te:label-restrictions/"
+ "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" {
description "OTN label.";
case otn {
uses layer1-types:otn-label-start-end;
}
} }
}
/* Augment label hop of route-object-exclude-always of primary path */ /* Augment label restrictions end for the forwarding direction
augment "/te:te/te:tunnels/te:tunnel/" * of path-out-segment of named-path-constraints */
+ "te:p2p-primary-paths/te:p2p-primary-path/" augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:explicit-route-objects-always/" + "te:named-path-constraint/te:path-out-segment/"
+ "te:route-object-exclude-always/te:type/te:label/" + "te:label-restrictions/"
+ "te:label-hop/te:te-label/te:technology" { + "te:label-restriction/te:label-end/"
description "OTN label."; + "te:te-label/te:technology" {
case otn { description "OTN label.";
case otn {
uses layer1-types:otn-label-start-end;
}
}
uses layer1-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 layer1-types:otn-label-hop;
}
} }
}
/* Augment label hop of route-object-include-exclude of primary path */ /* Augment label hop of route-include of primary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:explicit-route-objects-always/" + "te:optimizations/te:algorithm/te:metric/"
+ "te:route-object-include-exclude/te:type/te:label/" + "te:optimization-metric/te:explicit-route-include-objects/"
+ "te:label-hop/te:te-label/te:technology" { + "te:route-object-include-object/te:type/te:label/"
description "OTN label."; + "te:label-hop/te:te-label/te:technology" {
case otn { description "OTN label.";
uses layer1-types:otn-path-label; case otn {
uses layer1-types:otn-label-hop;
}
} }
}
/* Augment label restrictions for the forwarding direction of path-in-segment of primary path */ /* Augment label hop of route-object-exclude-always of
augment "/te:te/te:tunnels/te:tunnel/" * primary path */
+ "te:p2p-primary-paths/te:p2p-primary-path/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:path-in-segment/te:label-restrictions/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:label-restriction" { + "te:explicit-route-objects-always/"
description "OTN label."; + "te:route-object-exclude-always/te:type/te:label/"
uses layer1-types:otn-label-restriction; + "te:label-hop/te:te-label/te:technology" {
} description "OTN label.";
case otn {
/* Augment label restrictions start for the forwarding direction of path-in-segment of primary path */ uses layer1-types:otn-label-hop;
augment "/te:te/te:tunnels/te:tunnel/" }
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:path-in-segment/te:label-restrictions/"
+ "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" {
description "OTN label.";
case otn {
uses layer1-types:otn-link-label;
} }
}
/* Augment label restrictions end for the forwarding direction of path-in-segment of primary path */ /* Augment label hop of route-object-include-exclude of
augment "/te:te/te:tunnels/te:tunnel/" * primary path */
+ "te:p2p-primary-paths/te:p2p-primary-path/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:path-in-segment/te:label-restrictions/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:label-restriction/te:label-end/" + "te:explicit-route-objects-always/"
+ "te:te-label/te:technology" { + "te:route-object-include-exclude/te:type/te:label/"
description "OTN label."; + "te:label-hop/te:te-label/te:technology" {
case otn { description "OTN label.";
uses layer1-types:otn-link-label; case otn {
uses layer1-types:otn-label-hop;
}
} }
}
/* Augment label restrictions for the forwarding direction of path-out-segment of primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:path-out-segment/te:label-restrictions/"
+ "te:label-restriction" {
description "OTN label.";
uses layer1-types:otn-label-restriction;
}
/* Augment label restrictions start for the forwarding direction of path-out-segment of primary path */ /* Augment label restrictions for the forwarding direction
augment "/te:te/te:tunnels/te:tunnel/" * of path-in-segment of primary path */
+ "te:p2p-primary-paths/te:p2p-primary-path/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:path-out-segment/te:label-restrictions/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:label-restriction/te:label-start/" + "te:path-in-segment/te:label-restrictions/"
+ "te:te-label/te:technology" { + "te:label-restriction" {
description "OTN label.";
description "OTN label."; uses layer1-types:otn-label-range-info;
case otn {
uses layer1-types:otn-link-label;
} }
}
/* Augment label restrictions end for the forwarding direction of path-out-segment of primary path */ /* Augment label restrictions start for the forwarding direction
augment "/te:te/te:tunnels/te:tunnel/" * of path-in-segment of primary path */
+ "te:p2p-primary-paths/te:p2p-primary-path/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:path-out-segment/te:label-restrictions/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:label-restriction/te:label-end/" + "te:path-in-segment/te:label-restrictions/"
+ "te:te-label/te:technology" { + "te:label-restriction/te:label-start/"
description "OTN label."; + "te:te-label/te:technology" {
case otn { description "OTN label.";
uses layer1-types:otn-link-label; case otn {
uses layer1-types:otn-label-start-end;
}
} }
}
/* Augment label hop of path-route of primary path */ /* Augment label restrictions end for the forwarding direction
augment "/te:te/te:tunnels/te:tunnel/" * of path-in-segment of primary path */
+ "te:p2p-primary-paths/te:p2p-primary-path/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:computed-paths-properties/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:computed-path-properties/te:path-properties/" + "te:path-in-segment/te:label-restrictions/"
+ "te:path-route-objects/te:path-computed-route-object/" + "te:label-restriction/te:label-end/"
+ "te:type/te:label/" + "te:te-label/te:technology" {
+ "te:label-hop/te:te-label/te:technology" { description "OTN label.";
description "OTN label."; case otn {
case otn { uses layer1-types:otn-label-start-end;
uses layer1-types:otn-path-label; }
} }
}
/* Augment label hop of record-route of primary LSP */ /* Augment label restrictions for the forwarding direction of
augment "/te:te/te:tunnels/te:tunnel/" * path-out-segment of primary path */
+ "te:p2p-primary-paths/te:p2p-primary-path/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:lsps/te:lsp/te:lsp-record-route-information/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:lsp-record-route-information/te:type/te:label/" + "te:path-out-segment/te:label-restrictions/"
+ "te:label-hop/te:te-label/te:technology" { + "te:label-restriction" {
description "OTN label."; description "OTN label.";
case otn { uses layer1-types:otn-label-range-info;
uses layer1-types:otn-path-label;
} }
}
/* Augment label hop of path-route of primary LSP */ /* Augment label restrictions start for the forwarding direction
augment "/te:te/te:tunnels/te:tunnel/" * of path-out-segment of primary path */
+ "te:p2p-primary-paths/te:p2p-primary-path/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:lsps/te:lsp/te:path-properties/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:path-route-objects/te:path-computed-route-object/" + "te:path-out-segment/te:label-restrictions/"
+ "te:type/te:label/" + "te:label-restriction/te:label-start/"
+ "te:label-hop/te:te-label/te:technology" { + "te:te-label/te:technology" {
description "OTN label.";
case otn { description "OTN label.";
uses layer1-types:otn-path-label; case otn {
uses layer1-types:otn-label-start-end;
}
} }
}
/* Augment label hop of route-exclude of reverse primary path */ /* Augment label restrictions end for the forwarding direction
augment "/te:te/te:tunnels/te:tunnel/" * of path-out-segment of primary path */
+ "te:p2p-primary-paths/te:p2p-primary-path/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-reverse-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:optimizations/te:algorithm/te:metric/" + "te:path-out-segment/te:label-restrictions/"
+ "te:optimization-metric/te:explicit-route-exclude-objects/" + "te:label-restriction/te:label-end/"
+ "te:route-object-exclude-object/te:type/te:label/" + "te:te-label/te:technology" {
+ "te:label-hop/te:te-label/te:technology" { description "OTN label.";
description "OTN label."; case otn {
case otn { uses layer1-types:otn-label-start-end;
uses layer1-types:otn-path-label; }
} }
}
/* Augment label hop of route-include of reverse primary path */ /* Augment label hop of path-route of primary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-primary-reverse-path/" + "te:computed-paths-properties/"
+ "te:optimizations/te:algorithm/te:metric/" + "te:computed-path-properties/te:path-properties/"
+ "te:optimization-metric/te:explicit-route-include-objects/" + "te:path-route-objects/te:path-computed-route-object/"
+ "te:route-object-include-object/te:type/te:label/" + "te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" { + "te:label-hop/te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-path-label; uses layer1-types:otn-label-hop;
}
} }
}
/* Augment label hop of route-object-exclude-always of reverse primary path */ /* Augment label hop of record-route of primary LSP */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-primary-reverse-path/" + "te:lsps/te:lsp/te:lsp-record-route-information/"
+ "te:explicit-route-objects-always/" + "te:lsp-record-route-information/te:type/te:label/"
+ "te:route-object-exclude-always/" + "te:label-hop/te:te-label/te:technology" {
+ "te:type/te:label/" description "OTN label.";
+ "te:label-hop/te:te-label/te:technology" { case otn {
description "OTN label."; uses layer1-types:otn-label-hop;
case otn { }
uses layer1-types:otn-path-label;
} }
}
/* Augment label hop of route-object-include-exclude of reverse primary path */ /* Augment label hop of path-route of primary LSP */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-primary-reverse-path/" + "te:lsps/te:lsp/te:path-properties/"
+ "te:explicit-route-objects-always/" + "te:path-route-objects/te:path-computed-route-object/"
+ "te:route-object-include-exclude/" + "te:type/te:label/"
+ "te:type/te:label/" + "te:label-hop/te:te-label/te:technology" {
+ "te:label-hop/te:te-label/te:technology" { description "OTN label.";
description "OTN label."; case otn {
case otn { uses layer1-types:otn-label-hop;
uses layer1-types:otn-path-label; }
} }
}
/* Augment label restrictions for the forwarding direction of path-in-segment of reverse primary path */ /* Augment label hop of route-exclude of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-primary-reverse-path/" + "te:p2p-primary-reverse-path/"
+ "te:path-in-segment/te:label-restrictions/" + "te:optimizations/te:algorithm/te:metric/"
+ "te:label-restriction" { + "te:optimization-metric/te:explicit-route-exclude-objects/"
description "OTN label."; + "te:route-object-exclude-object/te:type/te:label/"
uses layer1-types:otn-label-restriction; + "te:label-hop/te:te-label/te:technology" {
} description "OTN label.";
case otn {
uses layer1-types:otn-label-hop;
}
}
/* Augment label restrictions start for the forwarding direction of path-in-segment of reverse primary path */ /* Augment label hop of route-include of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-primary-reverse-path/" + "te:p2p-primary-reverse-path/"
+ "te:path-in-segment/te:label-restrictions/" + "te:optimizations/te:algorithm/te:metric/"
+ "te:label-restriction/te:label-start/" + "te:optimization-metric/te:explicit-route-include-objects/"
+ "te:te-label/te:technology" { + "te:route-object-include-object/te:type/te:label/"
description "OTN label."; + "te:label-hop/te:te-label/te:technology" {
case otn { description "OTN label.";
uses layer1-types:otn-link-label; case otn {
uses layer1-types:otn-label-hop;
}
} }
}
/* Augment label restrictions end for the forwarding direction of path-in-segment of reverse primary path */ /* Augment label hop of route-object-exclude-always of
augment "/te:te/te:tunnels/te:tunnel/" * reverse primary path */
+ "te:p2p-primary-paths/te:p2p-primary-path/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-reverse-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:path-in-segment/te:label-restrictions/" + "te:p2p-primary-reverse-path/"
+ "te:label-restriction/te:label-end/" + "te:explicit-route-objects-always/"
+ "te:te-label/te:technology" { + "te:route-object-exclude-always/"
description "OTN label."; + "te:type/te:label/"
case otn { + "te:label-hop/te:te-label/te:technology" {
uses layer1-types:otn-link-label; description "OTN label.";
case otn {
uses layer1-types:otn-label-hop;
}
} }
}
/* Augment label restrictions for the forwarding direction of path-out-segment of reverse primary path */ /* Augment label hop of route-object-include-exclude of
augment "/te:te/te:tunnels/te:tunnel/" * reverse primary path */
+ "te:p2p-primary-paths/te:p2p-primary-path/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-reverse-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:path-out-segment/te:label-restrictions/" + "te:p2p-primary-reverse-path/"
+ "te:label-restriction" { + "te:explicit-route-objects-always/"
description "OTN label."; + "te:route-object-include-exclude/"
uses layer1-types:otn-label-restriction; + "te:type/te:label/"
} + "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses layer1-types:otn-label-hop;
}
}
/* Augment label restrictions start for the forwarding direction of path-out-segment of reverse primary path */ /* Augment label restrictions for the forwarding direction
augment "/te:te/te:tunnels/te:tunnel/" * of path-in-segment of reverse primary path */
+ "te:p2p-primary-paths/te:p2p-primary-path/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-reverse-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:path-out-segment/te:label-restrictions/" + "te:p2p-primary-reverse-path/"
+ "te:label-restriction/te:label-start/" + "te:path-in-segment/te:label-restrictions/"
+ "te:te-label/te:technology" { + "te:label-restriction" {
description "OTN label."; description "OTN label.";
case otn { uses layer1-types:otn-label-range-info;
uses layer1-types:otn-link-label;
} }
}
/* Augment label restrictions end for the forwarding direction of path-out-segment of reverse primary path */ /* Augment label restrictions start for the forwarding direction
* of path-in-segment of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-primary-reverse-path/"
+ "te:path-in-segment/te:label-restrictions/"
+ "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" {
description "OTN label.";
case otn {
uses layer1-types:otn-label-start-end;
}
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-primary-reverse-path/"
+ "te:path-out-segment/te:label-restrictions/"
+ "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" {
description "OTN label.";
case otn {
uses layer1-types:otn-link-label;
} }
}
/* Augment label hop of path-route of reverse primary path */ /* Augment label restrictions end for the forwarding direction
augment "/te:te/te:tunnels/te:tunnel/" * of path-in-segment of reverse primary path */
+ "te:p2p-primary-paths/te:p2p-primary-path/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-reverse-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:computed-paths-properties/te:computed-path-properties/te:path-properties/" + "te:p2p-primary-reverse-path/"
+ "te:path-route-objects/te:path-computed-route-object/" + "te:path-in-segment/te:label-restrictions/"
+ "te:type/te:label/" + "te:label-restriction/te:label-end/"
+ "te:label-hop/te:te-label/te:technology" { + "te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-path-label; uses layer1-types:otn-label-start-end;
}
} }
}
/* Augment label hop of record-route of reverse primary LSP */ /* Augment label restrictions for the forwarding direction
augment "/te:te/te:tunnels/te:tunnel/" * of path-out-segment of reverse primary path */
+ "te:p2p-primary-paths/te:p2p-primary-path/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-reverse-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:lsps/te:lsp/te:lsp-record-route-information/" + "te:p2p-primary-reverse-path/"
+ "te:lsp-record-route-information/te:type/te:label/" + "te:path-out-segment/te:label-restrictions/"
+ "te:label-hop/te:te-label/te:technology" { + "te:label-restriction" {
description "OTN label."; description "OTN label.";
case otn { uses layer1-types:otn-label-range-info;
uses layer1-types:otn-path-label;
} }
}
/* Augment label hop of path-route of reverse primary LSP */ /* Augment label restrictions start for the forwarding direction
augment "/te:te/te:tunnels/te:tunnel/" * of path-out-segment of reverse primary path */
+ "te:p2p-primary-paths/te:p2p-primary-path/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-reverse-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:lsps/te:lsp/te:path-properties/" + "te:p2p-primary-reverse-path/"
+ "te:path-route-objects/te:path-computed-route-object/" + "te:path-out-segment/te:label-restrictions/"
+ "te:type/te:label/" + "te:label-restriction/te:label-start/"
+ "te:label-hop/te:te-label/te:technology" { + "te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-path-label; uses layer1-types:otn-label-start-end;
}
} }
}
/* Augment label hop of route-exclude of secondary path */ /* Augment label restrictions end for the forwarding direction
augment "/te:te/te:tunnels/te:tunnel/" * of path-out-segment of reverse primary path */
+ "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."; augment "/te:te/te:tunnels/te:tunnel/"
case otn { + "te:p2p-primary-paths/te:p2p-primary-path/"
uses layer1-types:otn-path-label; + "te:p2p-primary-reverse-path/"
} + "te:path-out-segment/te:label-restrictions/"
} + "te:label-restriction/te:label-end/"
/* Augment label hop of route-include of secondary path */ + "te:te-label/te:technology" {
augment "/te:te/te:tunnels/te:tunnel/" description "OTN label.";
+ "te:p2p-secondary-paths/te:p2p-secondary-path/" case otn {
+ "te:optimizations/te:algorithm/te:metric/" uses layer1-types:otn-label-start-end;
+ "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 layer1-types:otn-path-label;
} }
}
/* Augment label hop of route-object-exclude-always of secondary path */ /* Augment label hop of path-route of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:explicit-route-objects-always/" + "te:p2p-primary-reverse-path/"
+ "te:route-object-exclude-always/te:type/te:label/" + "te:computed-paths-properties/te:computed-path-properties/"
+ "te:label-hop/te:te-label/te:technology" { + "te:path-properties/te:path-route-objects/"
description "OTN label."; + "te:path-computed-route-object/te:type/te:label/"
case otn { + "te:label-hop/te:te-label/te:technology" {
uses layer1-types:otn-path-label; description "OTN label.";
case otn {
uses layer1-types:otn-label-hop;
}
} }
}
/* Augment label hop of route-object-include-exclude of secondary path */ /* Augment label hop of record-route of reverse primary LSP */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:explicit-route-objects-always/" + "te:p2p-primary-reverse-path/"
+ "te:route-object-include-exclude/te:type/te:label/" + "te:lsps/te:lsp/te:lsp-record-route-information/"
+ "te:label-hop/te:te-label/te:technology" { + "te:lsp-record-route-information/te:type/te:label/"
description "OTN label."; + "te:label-hop/te:te-label/te:technology" {
case otn { description "OTN label.";
uses layer1-types:otn-path-label; case otn {
uses layer1-types:otn-label-hop;
}
} }
}
/* Augment label restrictions for the forwarding direction of path-in-segment of secondary path */ /* Augment label hop of path-route of reverse primary LSP */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:path-in-segment/te:label-restrictions/" + "te:p2p-primary-reverse-path/"
+ "te:label-restriction" { + "te:lsps/te:lsp/te:path-properties/"
+ "te:path-route-objects/te:path-computed-route-object/"
description "OTN label."; + "te:type/te:label/"
uses layer1-types:otn-label-restriction; + "te:label-hop/te:te-label/te:technology" {
} description "OTN label.";
case otn {
/* Augment label restrictions start for the forwarding direction of path-in-segment of secondary path */ uses layer1-types:otn-label-hop;
augment "/te:te/te:tunnels/te:tunnel/" }
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:path-in-segment/te:label-restrictions/"
+ "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" {
description "OTN label.";
case otn {
uses layer1-types:otn-link-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" {
/* Augment label restrictions end for the forwarding direction of path-in-segment of secondary path */ description "OTN label.";
augment "/te:te/te:tunnels/te:tunnel/" case otn {
+ "te:p2p-secondary-paths/te:p2p-secondary-path/" uses layer1-types:otn-label-hop;
+ "te:path-in-segment/te:label-restrictions/" }
+ "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" {
description "OTN label.";
case otn {
uses layer1-types:otn-link-label;
} }
}
/* Augment label restrictions for the forwarding direction of path-out-segment of secondary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:path-out-segment/te:label-restrictions/"
+ "te:label-restriction" {
description "OTN label.";
uses layer1-types:otn-label-restriction;
}
/* Augment label restrictions start for the forwarding direction of path-out-segment of secondary path */ /* Augment label hop of route-include of secondary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/" + "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:path-out-segment/te:label-restrictions/" + "te:optimizations/te:algorithm/te:metric/"
+ "te:label-restriction/te:label-start/" + "te:optimization-metric/te:explicit-route-include-objects/"
+ "te:te-label/te:technology" { + "te:route-object-include-object/te:type/te:label/"
description "OTN label."; + "te:label-hop/te:te-label/te:technology" {
case otn { description "OTN label.";
uses layer1-types:otn-link-label; case otn {
uses layer1-types:otn-label-hop;
}
} }
}
/* Augment label restrictions end for the forwarding direction of path-out-segment of secondary path */ /* Augment label hop of route-object-exclude-always
augment "/te:te/te:tunnels/te:tunnel/" * of secondary path */
+ "te:p2p-secondary-paths/te:p2p-secondary-path/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:path-out-segment/te:label-restrictions/" + "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:label-restriction/te:label-end/" + "te:explicit-route-objects-always/"
+ "te:te-label/te:technology" { + "te:route-object-exclude-always/te:type/te:label/"
description "OTN label."; + "te:label-hop/te:te-label/te:technology" {
case otn { description "OTN label.";
uses layer1-types:otn-link-label; case otn {
uses layer1-types:otn-label-hop;
}
} }
}
/* Augment label hop of path-route of secondary path */ /* Augment label hop of route-object-include-exclude of
augment "/te:te/te:tunnels/te:tunnel/" * secondary path */
+ "te:p2p-secondary-paths/te:p2p-secondary-path/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:computed-paths-properties/te:computed-path-properties/" + "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:path-properties/te:path-route-objects/" + "te:explicit-route-objects-always/"
+ "te:path-computed-route-object/te:type/te:label/" + "te:route-object-include-exclude/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" { + "te:label-hop/te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-path-label; uses layer1-types:otn-label-hop;
}
} }
}
/* Augment label hop of record-route of secondary LSP */ /* Augment label restrictions for the forwarding direction
augment "/te:te/te:tunnels/te:tunnel/" * of path-in-segment of secondary path */
+ "te:p2p-secondary-paths/te:p2p-secondary-path/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:lsps/te:lsp/te:lsp-record-route-information/" + "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:lsp-record-route-information/te:type/te:label/" + "te:path-in-segment/te:label-restrictions/"
+ "te:label-hop/te:te-label/te:technology" { + "te:label-restriction" {
description "OTN label."; description "OTN label.";
case otn { uses layer1-types:otn-label-range-info;
uses layer1-types:otn-path-label;
} }
}
/* Augment label hop of path-route of secondary LSP */ /* Augment label restrictions start for the forwarding direction
augment "/te:te/te:tunnels/te:tunnel/" * of path-in-segment of secondary path */
+ "te:p2p-secondary-paths/te:p2p-secondary-path/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:lsps/te:lsp/te:path-properties/" + "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:path-route-objects/" + "te:path-in-segment/te:label-restrictions/"
+ "te:path-computed-route-object/te:type/te:label/" + "te:label-restriction/te:label-start/"
+ "te:label-hop/te:te-label/te:technology" { + "te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-path-label; uses layer1-types:otn-label-start-end;
}
} }
}
/* Augment label hop of record-route of LSP */ /* Augment label restrictions end for the forwarding direction
augment "/te:te/te:lsps-state/" * of path-in-segment of secondary path */
+ "te:lsp/te:lsp-record-route-information/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:lsp-record-route-information/te:type/te:label/" + "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:label-hop/te:te-label/te:technology" { + "te:path-in-segment/te:label-restrictions/"
description "OTN label."; + "te:label-restriction/te:label-end/"
case otn { + "te:te-label/te:technology" {
uses layer1-types:otn-path-label; description "OTN label.";
case otn {
uses layer1-types:otn-label-start-end;
}
} }
}
/*
grouping p2p-path-ero {
description
"TE tunnel ERO configuration grouping";
leaf te-default-metric { /* Augment label restrictions for the forwarding direction
type uint32; * of path-out-segment of secondary path */
description augment "/te:te/te:tunnels/te:tunnel/"
"Traffic engineering metric."; + "te:p2p-secondary-paths/te:p2p-secondary-path/"
} + "te:path-out-segment/te:label-restrictions/"
leaf te-delay-metric { + "te:label-restriction" {
type uint32;
description
"Traffic engineering delay metric.";
}
leaf te-hop-metric {
type uint32;
description
"Traffic engineering hop metric.";
description "OTN label.";
uses layer1-types:otn-label-range-info;
} }
container explicit-route-objects-always {
description "Explicit route objects container"; /* Augment label restrictions start for the forwarding direction
list route-object-include-exclude { * of path-out-segment of secondary path */
key "index"; augment "/te:te/te:tunnels/te:tunnel/"
description + "te:p2p-secondary-paths/te:p2p-secondary-path/"
"List of explicit route objects"; + "te:path-out-segment/te:label-restrictions/"
leaf explicit-route-usage { + "te:label-restriction/te:label-start/"
type identityref { + "te:te-label/te:technology" {
base te-types:route-usage-type; description "OTN label.";
} case otn {
description "An explicit-route hop action."; uses layer1-types:otn-label-start-end;
}
uses te-types:explicit-route-hop {
augment "type/label/label-hop/te-label/technology" {
description "OTN label.";
case otn {
uses layer1-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:te-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."; /* Augment label restrictions end for the forwarding direction
} * of path-out-segment of secondary path */
leaf te-topology-id { augment "/te:te/te:tunnels/te:tunnel/"
type te-types:te-topology-id; + "te:p2p-secondary-paths/te:p2p-secondary-path/"
description + "te:path-out-segment/te:label-restrictions/"
"It is presumed that a datastore will contain many + "te:label-restriction/te:label-end/"
topologies. To distinguish between topologies it is + "te:te-label/te:technology" {
vital to have UNIQUE topology identifiers."; description "OTN label.";
} case otn {
leaf setup-priority { uses layer1-types:otn-label-start-end;
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 { /* Augment label hop of path-route of secondary path */
type identityref{ augment "/te:te/te:tunnels/te:tunnel/"
base layer1-types:odu-type; + "te:p2p-secondary-paths/te:p2p-secondary-path/"
} + "te:computed-paths-properties/"
description "Type of ODU"; + "te:computed-path-properties/"
} + "te:path-properties/te:path-route-objects/"
container p2p-primary-paths { + "te:path-computed-route-object/te:type/te:label/"
description "Set of P2P primary paths container"; + "te:label-hop/te:te-label/te:technology" {
list p2p-primary-path { description "OTN label.";
key "name"; case otn {
description uses layer1-types:otn-label-hop;
"List of primary paths for this tunnel."; }
leaf name { }
type string;
description "TE path name";
}
uses p2p-path-ero; /* Augment label hop of record-route of secondary LSP */
} augment "/te:te/te:tunnels/te:tunnel/"
} + "te:p2p-secondary-paths/te:p2p-secondary-path/"
container p2p-secondary-paths { + "te:lsps/te:lsp/te:lsp-record-route-information/"
description "Set of P2P secondary paths container"; + "te:lsp-record-route-information/te:type/te:label/"
list p2p-secondary-path { + "te:label-hop/te:te-label/te:technology" {
key "name";
description
"List of secondary paths for this tunnel.";
leaf name {
type string;
description "TE path name";
}
uses p2p-path-ero;
}
} description "OTN label.";
uses otn-tunnel-attributes; case otn {
uses layer1-types:otn-label-hop;
} }
} }
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";
} /* Augment label hop of path-route of secondary LSP */
enum topology-error { augment "/te:te/te:tunnels/te:tunnel/"
description "topology-error"; + "te:p2p-secondary-paths/te:p2p-secondary-path/"
} + "te:lsps/te:lsp/te:path-properties/"
} + "te:path-route-objects/"
description + "te:path-computed-route-object/te:type/te:label/"
"Return code"; + "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses layer1-types:otn-label-hop;
} }
list result { }
key "id";
description
"A list of results for all requests.";
leaf id { /* Augment label hop of record-route of LSP */
type uint8; augment "/te:te/te:lsps-state/"
description + "te:lsp/te:lsp-record-route-information/"
"Request ID"; + "te:lsp-record-route-information/te:type/te:label/"
} + "te:label-hop/te:te-label/te:technology" {
container p2p-primary-paths { description "OTN label.";
description "Set of P2P primary paths container"; case otn {
list p2p-primary-path { uses layer1-types:otn-label-hop;
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;
}
}
} }
} }
}*/ }
}
<CODE ENDS> <CODE ENDS>
6. Security Considerations 6. Security Considerations
The YANG module specified in this document defines a schema for data The YANG module specified in this document defines a schema for data
that is designed to be accessed via network management protocols such that is designed to be accessed via network management protocols such
as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer
is the secure transport layer, and the mandatory-to-implement secure is the secure transport layer, and the mandatory-to-implement secure
transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer
is HTTPS, and the mandatory-to-implement secure transport is TLS is HTTPS, and the mandatory-to-implement secure transport is TLS
[RFC8446]. [RFC8446].
skipping to change at page 37, line 8 skipping to change at page 33, line 8
Yunbo Li Yunbo Li
China Mobile China Mobile
Email: liyunbo@chinamobile.com Email: liyunbo@chinamobile.com
Dieter Beller Dieter Beller
Nokia Nokia
Email: dieter.beller@nokia.com Email: dieter.beller@nokia.com
Yanlei Zheng Yanlei Zheng
China Unicom China Unicom
Email: zhengyl@dimpt.com Email: zhengyanlei@chinaunicom.cn
Xian Zhang Xian Zhang
Huawei Technologies Huawei Technologies
Email: zhang.xian@huawei.com Email: zhang.xian@huawei.com
Lei Wang Lei Wang
China Mobile China Mobile
Email: wangleiyj@chinamobile.com Email: wangleiyj@chinamobile.com
Oscar Gonzalez de Dios Oscar Gonzalez de Dios
skipping to change at page 38, line 42 skipping to change at page 34, line 42
[RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol
Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018,
<https://www.rfc-editor.org/info/rfc8446>. <https://www.rfc-editor.org/info/rfc8446>.
10.2. Informative References 10.2. Informative References
[I-D.ietf-ccamp-transport-nbi-app-statement] [I-D.ietf-ccamp-transport-nbi-app-statement]
Busi, I., King, D., Zheng, H., and Y. Xu, "Transport Busi, I., King, D., Zheng, H., and Y. Xu, "Transport
Northbound Interface Applicability Statement", draft-ietf- Northbound Interface Applicability Statement", draft-ietf-
ccamp-transport-nbi-app-statement-06 (work in progress), ccamp-transport-nbi-app-statement-08 (work in progress),
September 2019. November 2019.
[I-D.ietf-teas-actn-yang] [I-D.ietf-teas-actn-yang]
Lee, Y., Zheng, H., Ceccarelli, D., Yoon, B., Dios, O., Lee, Y., Zheng, H., Ceccarelli, D., Yoon, B., Dios, O.,
Shin, J., and S. Belotti, "Applicability of YANG models Shin, J., and S. Belotti, "Applicability of YANG models
for Abstraction and Control of Traffic Engineered for Abstraction and Control of Traffic Engineered
Networks", draft-ietf-teas-actn-yang-04 (work in Networks", draft-ietf-teas-actn-yang-04 (work in
progress), August 2019. progress), August 2019.
[RFC7062] Zhang, F., Ed., Li, D., Li, H., Belotti, S., and D. [RFC7062] Zhang, F., Ed., Li, D., Li, H., Belotti, S., and D.
Ceccarelli, "Framework for GMPLS and PCE Control of G.709 Ceccarelli, "Framework for GMPLS and PCE Control of G.709
skipping to change at page 40, line 7 skipping to change at page 36, line 7
Email: sergio.belotti@nokia.com Email: sergio.belotti@nokia.com
Victor Lopez Victor Lopez
Telefonica Telefonica
Email: victor.lopezalvarez@telefonica.com Email: victor.lopezalvarez@telefonica.com
Yunbin Xu Yunbin Xu
CAICT CAICT
Email: xuyunbin@ritt.cn Email: xuyunbin@caict.ac.cn
 End of changes. 139 change blocks. 
1343 lines changed or deleted 1150 lines changed or added

This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/