< draft-ietf-ccamp-otn-tunnel-model-15.txt   draft-ietf-ccamp-otn-tunnel-model-16.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: 8 September 2022 S. Belotti Expires: 10 October 2022 S. Belotti
V. Lopez V. Lopez
Nokia Nokia
Y. Xu Y. Xu
CAICT CAICT
7 March 2022 8 April 2022
OTN Tunnel YANG Model OTN Tunnel YANG Model
draft-ietf-ccamp-otn-tunnel-model-15 draft-ietf-ccamp-otn-tunnel-model-16
Abstract Abstract
This document describes the YANG data model for tunnels in OTN TE This document describes the YANG data model for tunnels in OTN TE
networks. The model can be used to do the configuration in order to networks. The model can be used to do the configuration in order to
establish the tunnel in OTN network. This work is independent with establish the tunnel in OTN network. This work is independent with
the control plane protocols. The YANG data model defined in this the control plane protocols.
document conforms to the Network Management Datastore Architecture
(NMDA).
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 8 September 2022. This Internet-Draft will expire on 10 October 2022.
Copyright Notice Copyright Notice
Copyright (c) 2022 IETF Trust and the persons identified as the Copyright (c) 2022 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 (https://trustee.ietf.org/ Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document. license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights Please review these documents carefully, as they describe your rights
and restrictions with respect to this document. Code Components and restrictions with respect to this document. Code Components
extracted from this document must include Revised BSD License text as extracted from this document must include Revised BSD License text as
described in Section 4.e of the Trust Legal Provisions and are described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Revised BSD License. provided without warranty as described in the Revised BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Terminology and Notations . . . . . . . . . . . . . . . . . . 2 1.1. Terminology and Notations . . . . . . . . . . . . . . . . 2
3. OTN Tunnel Model Description . . . . . . . . . . . . . . . . 3 1.2. Tree Diagram . . . . . . . . . . . . . . . . . . . . . . 3
3.1. Overview of OTN Tunnel Model . . . . . . . . . . . . . . 3 1.3. Prefix in Data Node Names . . . . . . . . . . . . . . . . 3
3.2. Bandwidth Augmentation . . . . . . . . . . . . . . . . . 4 2. OTN Tunnel Model Description . . . . . . . . . . . . . . . . 3
3.3. Label Augmentation . . . . . . . . . . . . . . . . . . . 4 2.1. Overview of OTN Tunnel Model . . . . . . . . . . . . . . 4
4. OTN Tunnel YANG Tree . . . . . . . . . . . . . . . . . . . . 4 2.2. Bandwidth Augmentation . . . . . . . . . . . . . . . . . 4
5. OTN Tunnel YANG Code . . . . . . . . . . . . . . . . . . . . 21 2.3. Label Augmentation . . . . . . . . . . . . . . . . . . . 5
6. Security Considerations . . . . . . . . . . . . . . . . . . . 42 3. OTN Tunnel YANG Tree . . . . . . . . . . . . . . . . . . . . 5
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 43 4. OTN Tunnel YANG Code . . . . . . . . . . . . . . . . . . . . 23
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 43 5. Security Considerations . . . . . . . . . . . . . . . . . . . 44
9. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 43 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 45
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 43 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 45
10.1. Normative References . . . . . . . . . . . . . . . . . . 44 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 45
10.2. Informative References . . . . . . . . . . . . . . . . . 45 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 46
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 46 9.1. Normative References . . . . . . . . . . . . . . . . . . 46
9.2. Informative References . . . . . . . . . . . . . . . . . 47
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 48
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 signals. In many cases, the client signal is carried types of client signals. In many cases, the client signal is carried
over an OTN tunnel across connected domains in a multi-domain over an OTN tunnel across connected domains in a multi-domain
network. network.
This document provides YANG model for creating OTN tunnel. The model This document provides YANG model for creating OTN tunnel. The model
augments the generic TE Tunnel model specified in augments the generic TE Tunnel model specified in
[I-D.ietf-teas-yang-te]. [I-D.ietf-teas-yang-te].
2. Terminology and Notations 1.1. Terminology and Notations
A simplified graphical representation of the data model is used in Refer to [I-D.ietf-ccamp-otn-topo-yang] for the OTN specific terms
this document. The meaning of the symbols in the YANG data tree terms used in this document.
presented later in this draft is defined in [RFC8340]. They are
provided below for reference.
* Brackets "[" and "]" enclose list keys. The following terms are defined in [RFC7950] and are not redefined
here:
* Abbreviations before data node names: "rw" means configuration * client
(read-write) and "ro" state data (read-only).
* Symbols after data node names: "?" means an optional node, "!" * server
means a presence container, and "*" denotes a list and leaf-list. * augment
* Parentheses enclose choice and case nodes, and case nodes are also * data model
marked with a colon (":").
* Ellipsis ("...") stands for contents of subtrees that are not * data node
shown.
* More OTN specific terms can be found in The following terms are defined in [RFC6241] and are not redefined
[I-D.ietf-ccamp-otn-topo-yang]. here:
3. OTN Tunnel Model Description * configuration data
3.1. Overview of OTN Tunnel Model * state data
The terminology for describing YANG data models is found in
[RFC7950].
1.2. Tree Diagram
A simplified graphical representation of the data model is used in
Section 3 of this this document. The meaning of the symbols in these
diagrams is defined in [RFC8340].
1.3. Prefix in Data Node Names
In this document, names of data nodes and other data model objects
are prefixed using the standard prefix associated with the
corresponding YANG imported modules, as shown in the following table.
+-------------+-------------------------+------------------------+
| Prefix | YANG module | Reference |
+-------------+-------------------------+------------------------+
| l1-types | ietf-layer1-types | [RFCYYYY] |
| otntnl | ietf-otn-tunnel | [RFCXXXX] |
| te | ietf-te | [RFCZZZZ] |
+-------------+-------------------------+------------------------+
Table 1: Prefixes and Corresponding YANG Modules
RFC Editor Note: Please replace XXXX with the number assigned to the
RFC once this draft becomes an RFC. Please replace YYYY with the RFC
numbers assigned to [I-D.ietf-ccamp-layer1-types]. Please replace
ZZZZ with the RFC numbers assigned to [I-D.ietf-teas-yang-te].
2. OTN Tunnel Model Description
2.1. Overview of OTN Tunnel Model
This document aims to describe the data model for OTN tunnel. The This document aims to describe the data model for OTN tunnel. The
OTN tunnel model is using TE tunnel [I-D.ietf-teas-yang-te] as a OTN tunnel model is using TE tunnel [I-D.ietf-teas-yang-te] as a
basic model and augments it with OTN-specific parameters, including basic model and augments it with OTN-specific parameters, including
the bandwidth information and label information. Figure 1 shows the the bandwidth information and label information. Figure 1 shows the
augmentation relationship. augmentation relationship.
+----------------+ +----------------+
TE generic | ietf-te | TE generic | ietf-te |
+----------------+ +----------------+
skipping to change at page 4, line 13 skipping to change at page 4, line 43
document for augmentation of the generic TE tunnel model. document for augmentation of the generic TE tunnel model.
More scenarios and model applications can be found in More scenarios and model applications can be found in
[I-D.ietf-ccamp-transport-nbi-app-statement] and [I-D.ietf-ccamp-transport-nbi-app-statement] and
[I-D.ietf-teas-actn-yang]. [I-D.ietf-teas-actn-yang].
The YANG module ietf-otn-tunnel defined in this document conforms to The YANG module ietf-otn-tunnel defined in this document conforms to
the Network Management Datastore Architecture (NMDA) defined in the Network Management Datastore Architecture (NMDA) defined in
[RFC8342]. [RFC8342].
3.2. Bandwidth Augmentation 2.2. Bandwidth Augmentation
The model augments all the occurrences of the te-bandwidth container The model augments all the occurrences of the te-bandwidth container
with the OTN technology specific attributes using the otn-link- with the OTN technology specific attributes using the otn-link-
bandwidth and otn-path-bandwidth groupings defined in bandwidth and otn-path-bandwidth groupings defined in
[I-D.ietf-ccamp-layer1-types]. [I-D.ietf-ccamp-layer1-types].
3.3. Label Augmentation 2.3. Label Augmentation
The model augments all the occurrences of the label-restriction list The model augments all the occurrences of the label-restriction list
with OTN technology specific attributes using the otn-label-range- with OTN technology specific attributes using the otn-label-range-
info grouping defined in [I-D.ietf-ccamp-layer1-types]. info grouping defined in [I-D.ietf-ccamp-layer1-types].
Moreover, the model augments all the occurrences of the te-label Moreover, the model augments all the occurrences of the te-label
container with the OTN technology specific attributes using the otn- container with the OTN technology specific attributes using the otn-
label-start-end, otn-label-hop and otn-label-step groupings defined label-start-end, otn-label-hop and otn-label-step groupings defined
in [I-D.ietf-ccamp-layer1-types]. in [I-D.ietf-ccamp-layer1-types].
4. OTN Tunnel YANG Tree 3. OTN Tunnel YANG Tree
module: ietf-otn-tunnel module: ietf-otn-tunnel
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/te:technology:
+--:(otn) +--:(otn)
+--rw otn +--rw otn
+--rw odu-type? identityref +--rw odu-type? identityref
+--rw (oduflex-type)? +--rw (oduflex-type)?
+--:(generic) +--:(generic)
skipping to change at page 8, line 44 skipping to change at page 9, line 29
| +--ro gfp-k? gfp-k | +--ro gfp-k? gfp-k
+--:(flexe-client) +--:(flexe-client)
| +--ro flexe-client flexe-client-rate | +--ro flexe-client flexe-client-rate
+--:(flexe-aware) +--:(flexe-aware)
| +--ro flexe-aware-n uint16 | +--ro flexe-aware-n uint16
+--:(packet) +--:(packet)
+--ro opuflex-payload-rate uint64 +--ro opuflex-payload-rate uint64
augment /te:te/te:globals/te:named-path-constraints augment /te:te/te:globals/te:named-path-constraints
/te:named-path-constraint/te:path-in-segment /te:named-path-constraint/te:path-in-segment
/te:label-restrictions/te:label-restriction: /te:label-restrictions/te:label-restriction:
+--rw range-type? otn-label-range-type +--rw otn-label-range
+--rw tsg? identityref +--rw range-type? otn-label-range-type
+--rw odu-type-list* identityref +--rw tsg? identityref
+--rw priority? uint8 +--rw odu-type-list* identityref
+--rw priority? uint8
augment /te:te/te:globals/te:named-path-constraints augment /te:te/te:globals/te:named-path-constraints
/te:named-path-constraint/te:path-out-segment /te:named-path-constraint/te:path-out-segment
/te:label-restrictions/te:label-restriction: /te:label-restrictions/te:label-restriction:
+--rw range-type? otn-label-range-type +--rw otn-label-range
+--rw tsg? identityref +--rw range-type? otn-label-range-type
+--rw odu-type-list* identityref +--rw tsg? identityref
+--rw priority? uint8 +--rw odu-type-list* identityref
+--rw priority? uint8
augment /te:te/te:tunnels/te:tunnel/te:primary-paths augment /te:te/te:tunnels/te:tunnel/te:primary-paths
/te:primary-path/te:path-in-segment/te:label-restrictions /te:primary-path/te:path-in-segment/te:label-restrictions
/te:label-restriction: /te:label-restriction:
+--rw range-type? otn-label-range-type +--rw otn-label-range
+--rw tsg? identityref +--rw range-type? otn-label-range-type
+--rw odu-type-list* identityref +--rw tsg? identityref
+--rw priority? uint8 +--rw odu-type-list* identityref
+--rw priority? uint8
augment /te:te/te:tunnels/te:tunnel/te:primary-paths augment /te:te/te:tunnels/te:tunnel/te:primary-paths
/te:primary-path/te:path-out-segment /te:primary-path/te:path-out-segment
/te:label-restrictions/te:label-restriction: /te:label-restrictions/te:label-restriction:
+--rw range-type? otn-label-range-type +--rw otn-label-range
+--rw tsg? identityref +--rw range-type? otn-label-range-type
+--rw odu-type-list* identityref +--rw tsg? identityref
+--rw priority? uint8 +--rw odu-type-list* identityref
+--rw priority? uint8
augment /te:te/te:tunnels/te:tunnel/te:primary-paths augment /te:te/te:tunnels/te:tunnel/te:primary-paths
/te:primary-path/te:primary-reverse-path /te:primary-path/te:primary-reverse-path
/te:path-in-segment/te:label-restrictions /te:path-in-segment/te:label-restrictions
/te:label-restriction: /te:label-restriction:
+--rw range-type? otn-label-range-type +--rw otn-label-range
+--rw tsg? identityref +--rw range-type? otn-label-range-type
+--rw odu-type-list* identityref +--rw tsg? identityref
+--rw priority? uint8 +--rw odu-type-list* identityref
+--rw priority? uint8
augment /te:te/te:tunnels/te:tunnel/te:primary-paths augment /te:te/te:tunnels/te:tunnel/te:primary-paths
/te:primary-path/te:primary-reverse-path /te:primary-path/te:primary-reverse-path
/te:path-out-segment/te:label-restrictions /te:path-out-segment/te:label-restrictions
/te:label-restriction: /te:label-restriction:
+--rw range-type? otn-label-range-type +--rw otn-label-range
+--rw tsg? identityref +--rw range-type? otn-label-range-type
+--rw odu-type-list* identityref +--rw tsg? identityref
+--rw priority? uint8 +--rw odu-type-list* identityref
+--rw priority? uint8
augment /te:te/te:tunnels/te:tunnel/te:secondary-paths augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
/te:secondary-path/te:path-in-segment /te:secondary-path/te:path-in-segment
/te:label-restrictions/te:label-restriction: /te:label-restrictions/te:label-restriction:
+--rw range-type? otn-label-range-type +--rw otn-label-range
+--rw tsg? identityref +--rw range-type? otn-label-range-type
+--rw odu-type-list* identityref +--rw tsg? identityref
+--rw priority? uint8 +--rw odu-type-list* identityref
+--rw priority? uint8
augment /te:te/te:tunnels/te:tunnel/te:secondary-paths augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
/te:secondary-path/te:path-out-segment /te:secondary-path/te:path-out-segment
/te:label-restrictions/te:label-restriction: /te:label-restrictions/te:label-restriction:
+--rw range-type? otn-label-range-type +--rw otn-label-range
+--rw tsg? identityref +--rw range-type? otn-label-range-type
+--rw odu-type-list* identityref +--rw tsg? identityref
+--rw priority? uint8 +--rw odu-type-list* identityref
+--rw priority? uint8
augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
/te:secondary-reverse-path/te:path-in-segment /te:secondary-reverse-path/te:path-in-segment
/te:label-restrictions/te:label-restriction: /te:label-restrictions/te:label-restriction:
+--rw range-type? otn-label-range-type +--rw otn-label-range
+--rw tsg? identityref +--rw range-type? otn-label-range-type
+--rw odu-type-list* identityref +--rw tsg? identityref
+--rw priority? uint8 +--rw odu-type-list* identityref
+--rw priority? uint8
augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
/te:secondary-reverse-path/te:path-out-segment /te:secondary-reverse-path/te:path-out-segment
/te:label-restrictions/te:label-restriction: /te:label-restrictions/te:label-restriction:
+--rw range-type? otn-label-range-type +--rw otn-label-range
+--rw tsg? identityref +--rw range-type? otn-label-range-type
+--rw odu-type-list* identityref +--rw tsg? identityref
+--rw priority? uint8 +--rw odu-type-list* identityref
+--rw priority? uint8
augment /te:te/te:globals/te:named-path-constraints augment /te:te/te:globals/te:named-path-constraints
/te:named-path-constraint /te:named-path-constraint
/te:explicit-route-objects-always /te:explicit-route-objects-always
/te:route-object-exclude-always/te:type/te:label /te:route-object-exclude-always/te:type/te:label
/te:label-hop/te:te-label/te:technology: /te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw otn-tpn? otn-tpn +--rw otn
+--rw tsg? identityref +--rw tpn? otn-tpn
+--rw ts-list? string +--rw tsg? identityref
+--rw ts-list? string
augment /te:te/te:globals/te:named-path-constraints augment /te:te/te:globals/te:named-path-constraints
/te:named-path-constraint /te:named-path-constraint
/te:explicit-route-objects-always /te:explicit-route-objects-always
/te:route-object-include-exclude/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:
+--:(otn) +--:(otn)
+--rw otn-tpn? otn-tpn +--rw otn
+--rw tsg? identityref +--rw tpn? otn-tpn
+--rw ts-list? string +--rw tsg? identityref
+--rw ts-list? string
augment /te:te/te:globals/te:named-path-constraints augment /te:te/te:globals/te:named-path-constraints
/te:named-path-constraint/te:path-in-segment /te:named-path-constraint/te:path-in-segment
/te:label-restrictions/te:label-restriction /te:label-restrictions/te:label-restriction
/te:label-start/te:te-label/te:technology: /te:label-start/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw (range-type)? +--rw otn
+--:(trib-port) +--rw (range-type)?
| +--rw otn-tpn? otn-tpn +--:(trib-port)
+--:(trib-slot) | +--rw tpn? otn-tpn
+--rw otn-ts? otn-ts +--:(trib-slot)
+--rw ts? otn-ts
augment /te:te/te:globals/te:named-path-constraints augment /te:te/te:globals/te:named-path-constraints
/te:named-path-constraint/te:path-in-segment /te:named-path-constraint/te:path-in-segment
/te:label-restrictions/te:label-restriction/te:label-end /te:label-restrictions/te:label-restriction/te:label-end
/te:te-label/te:technology: /te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw (range-type)? +--rw otn
+--:(trib-port) +--rw (range-type)?
| +--rw otn-tpn? otn-tpn +--:(trib-port)
+--:(trib-slot) | +--rw tpn? otn-tpn
+--rw otn-ts? otn-ts +--:(trib-slot)
+--rw ts? otn-ts
augment /te:te/te:globals/te:named-path-constraints augment /te:te/te:globals/te:named-path-constraints
/te:named-path-constraint/te:path-in-segment /te:named-path-constraint/te:path-in-segment
/te:label-restrictions/te:label-restriction/te:label-step /te:label-restrictions/te:label-restriction/te:label-step
/te:technology: /te:technology:
+--:(otn) +--:(otn)
+--rw (range-type)? +--rw otn
+--:(trib-port) +--rw (range-type)?
| +--rw otn-tpn? otn-tpn +--:(trib-port)
+--:(trib-slot) | +--rw tpn? otn-tpn
+--rw otn-ts? otn-ts +--:(trib-slot)
+--rw ts? otn-ts
augment /te:te/te:globals/te:named-path-constraints augment /te:te/te:globals/te:named-path-constraints
/te:named-path-constraint/te:path-out-segment /te:named-path-constraint/te:path-out-segment
/te:label-restrictions/te:label-restriction /te:label-restrictions/te:label-restriction
/te:label-start/te:te-label/te:technology: /te:label-start/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw (range-type)? +--rw otn
+--:(trib-port) +--rw (range-type)?
| +--rw otn-tpn? otn-tpn +--:(trib-port)
+--:(trib-slot) | +--rw tpn? otn-tpn
+--rw otn-ts? otn-ts +--:(trib-slot)
+--rw ts? otn-ts
augment /te:te/te:globals/te:named-path-constraints augment /te:te/te:globals/te:named-path-constraints
/te:named-path-constraint/te:path-out-segment /te:named-path-constraint/te:path-out-segment
/te:label-restrictions/te:label-restriction/te:label-end /te:label-restrictions/te:label-restriction/te:label-end
/te:te-label/te:technology: /te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw (range-type)? +--rw otn
+--:(trib-port) +--rw (range-type)?
| +--rw otn-tpn? otn-tpn +--:(trib-port)
+--:(trib-slot) | +--rw tpn? otn-tpn
+--rw otn-ts? otn-ts +--:(trib-slot)
+--rw ts? otn-ts
augment /te:te/te:globals/te:named-path-constraints augment /te:te/te:globals/te:named-path-constraints
/te:named-path-constraint/te:path-out-segment /te:named-path-constraint/te:path-out-segment
/te:label-restrictions/te:label-restriction/te:label-step /te:label-restrictions/te:label-restriction/te:label-step
/te:technology: /te:technology:
+--:(otn) +--:(otn)
+--rw (range-type)? +--rw otn
+--:(trib-port) +--rw (range-type)?
| +--rw otn-tpn? otn-tpn +--:(trib-port)
+--:(trib-slot) | +--rw tpn? otn-tpn
+--rw otn-ts? otn-ts +--:(trib-slot)
+--rw ts? otn-ts
augment /te:te/te:tunnels/te:tunnel/te:primary-paths augment /te:te/te:tunnels/te:tunnel/te:primary-paths
/te:primary-path/te:optimizations/te:algorithm/te:metric /te:primary-path/te:optimizations/te:algorithm/te:metric
/te:optimization-metric/te:explicit-route-exclude-objects /te:optimization-metric/te:explicit-route-exclude-objects
/te:route-object-exclude-object/te:type/te:label /te:route-object-exclude-object/te:type/te:label
/te:label-hop/te:te-label/te:technology: /te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw otn-tpn? otn-tpn +--rw otn
+--rw tsg? identityref +--rw tpn? otn-tpn
+--rw ts-list? string +--rw tsg? identityref
+--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:primary-paths augment /te:te/te:tunnels/te:tunnel/te:primary-paths
/te:primary-path/te:optimizations/te:algorithm/te:metric /te:primary-path/te:optimizations/te:algorithm/te:metric
/te:optimization-metric/te:explicit-route-include-objects /te:optimization-metric/te:explicit-route-include-objects
/te:route-object-include-object/te:type/te:label /te:route-object-include-object/te:type/te:label
/te:label-hop/te:te-label/te:technology: /te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw otn-tpn? otn-tpn +--rw otn
+--rw tsg? identityref +--rw tpn? otn-tpn
+--rw ts-list? string +--rw tsg? identityref
+--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:primary-paths augment /te:te/te:tunnels/te:tunnel/te:primary-paths
/te:primary-path/te:explicit-route-objects-always /te:primary-path/te:explicit-route-objects-always
/te:route-object-exclude-always/te:type/te:label /te:route-object-exclude-always/te:type/te:label
/te:label-hop/te:te-label/te:technology: /te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw otn-tpn? otn-tpn +--rw otn
+--rw tsg? identityref +--rw tpn? otn-tpn
+--rw ts-list? string +--rw tsg? identityref
+--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:primary-paths augment /te:te/te:tunnels/te:tunnel/te:primary-paths
/te:primary-path/te:explicit-route-objects-always /te:primary-path/te:explicit-route-objects-always
/te:route-object-include-exclude/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:
+--:(otn) +--:(otn)
+--rw otn-tpn? otn-tpn +--rw otn
+--rw tsg? identityref +--rw tpn? otn-tpn
+--rw ts-list? string +--rw tsg? identityref
+--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:primary-paths augment /te:te/te:tunnels/te:tunnel/te:primary-paths
/te:primary-path/te:path-in-segment/te:label-restrictions /te:primary-path/te:path-in-segment/te:label-restrictions
/te:label-restriction/te:label-start/te:te-label /te:label-restriction/te:label-start/te:te-label
/te:technology: /te:technology:
+--:(otn) +--:(otn)
+--rw (range-type)? +--rw otn
+--:(trib-port) +--rw (range-type)?
| +--rw otn-tpn? otn-tpn +--:(trib-port)
+--:(trib-slot) | +--rw tpn? otn-tpn
+--rw otn-ts? otn-ts +--:(trib-slot)
+--rw ts? otn-ts
augment /te:te/te:tunnels/te:tunnel/te:primary-paths augment /te:te/te:tunnels/te:tunnel/te:primary-paths
/te:primary-path/te:path-in-segment/te:label-restrictions /te:primary-path/te:path-in-segment/te:label-restrictions
/te:label-restriction/te:label-end/te:te-label /te:label-restriction/te:label-end/te:te-label
/te:technology: /te:technology:
+--:(otn) +--:(otn)
+--rw (range-type)? +--rw otn
+--:(trib-port) +--rw (range-type)?
| +--rw otn-tpn? otn-tpn +--:(trib-port)
+--:(trib-slot) | +--rw tpn? otn-tpn
+--rw otn-ts? otn-ts +--:(trib-slot)
+--rw ts? otn-ts
augment /te:te/te:tunnels/te:tunnel/te:primary-paths augment /te:te/te:tunnels/te:tunnel/te:primary-paths
/te:primary-path/te:path-in-segment/te:label-restrictions /te:primary-path/te:path-in-segment/te:label-restrictions
/te:label-restriction/te:label-step/te:technology: /te:label-restriction/te:label-step/te:technology:
+--:(otn) +--:(otn)
+--rw (range-type)? +--rw otn
+--:(trib-port) +--rw (range-type)?
| +--rw otn-tpn? otn-tpn +--:(trib-port)
+--:(trib-slot) | +--rw tpn? otn-tpn
+--rw otn-ts? otn-ts +--:(trib-slot)
+--rw ts? otn-ts
augment /te:te/te:tunnels/te:tunnel/te:primary-paths augment /te:te/te:tunnels/te:tunnel/te:primary-paths
/te:primary-path/te:path-out-segment /te:primary-path/te:path-out-segment
/te:label-restrictions/te:label-restriction /te:label-restrictions/te:label-restriction
/te:label-start/te:te-label/te:technology: /te:label-start/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw (range-type)? +--rw otn
+--:(trib-port) +--rw (range-type)?
| +--rw otn-tpn? otn-tpn +--:(trib-port)
+--:(trib-slot) | +--rw tpn? otn-tpn
+--rw otn-ts? otn-ts +--:(trib-slot)
+--rw ts? otn-ts
augment /te:te/te:tunnels/te:tunnel/te:primary-paths augment /te:te/te:tunnels/te:tunnel/te:primary-paths
/te:primary-path/te:path-out-segment /te:primary-path/te:path-out-segment
/te:label-restrictions/te:label-restriction/te:label-end /te:label-restrictions/te:label-restriction/te:label-end
/te:te-label/te:technology: /te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw (range-type)? +--rw otn
+--:(trib-port) +--rw (range-type)?
| +--rw otn-tpn? otn-tpn +--:(trib-port)
+--:(trib-slot) | +--rw tpn? otn-tpn
+--rw otn-ts? otn-ts +--:(trib-slot)
+--rw ts? otn-ts
augment /te:te/te:tunnels/te:tunnel/te:primary-paths augment /te:te/te:tunnels/te:tunnel/te:primary-paths
/te:primary-path/te:path-out-segment /te:primary-path/te:path-out-segment
/te:label-restrictions/te:label-restriction/te:label-step /te:label-restrictions/te:label-restriction/te:label-step
/te:technology: /te:technology:
+--:(otn) +--:(otn)
+--rw (range-type)? +--rw otn
+--:(trib-port) +--rw (range-type)?
| +--rw otn-tpn? otn-tpn +--:(trib-port)
+--:(trib-slot) | +--rw tpn? otn-tpn
+--rw otn-ts? otn-ts +--:(trib-slot)
+--rw ts? otn-ts
augment /te:te/te:tunnels/te:tunnel/te:primary-paths augment /te:te/te:tunnels/te:tunnel/te:primary-paths
/te:primary-path/te:computed-paths-properties /te:primary-path/te:computed-paths-properties
/te:computed-path-properties/te:path-properties /te:computed-path-properties/te:path-properties
/te:path-route-objects/te:path-route-object/te:type /te:path-route-objects/te:path-route-object/te:type
/te:label/te:label-hop/te:te-label/te:technology: /te:label/te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--ro otn-tpn? otn-tpn +--ro otn
+--ro tsg? identityref +--ro tpn? otn-tpn
+--ro ts-list? string +--ro tsg? identityref
+--ro ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:primary-paths augment /te:te/te:tunnels/te:tunnel/te:primary-paths
/te:primary-path/te:primary-reverse-path/te:optimizations /te:primary-path/te:primary-reverse-path/te:optimizations
/te:algorithm/te:metric/te:optimization-metric /te:algorithm/te:metric/te:optimization-metric
/te:explicit-route-exclude-objects /te:explicit-route-exclude-objects
/te:route-object-exclude-object/te:type/te:label /te:route-object-exclude-object/te:type/te:label
/te:label-hop/te:te-label/te:technology: /te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw otn-tpn? otn-tpn +--rw otn
+--rw tsg? identityref +--rw tpn? otn-tpn
+--rw ts-list? string +--rw tsg? identityref
+--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:primary-paths augment /te:te/te:tunnels/te:tunnel/te:primary-paths
/te:primary-path/te:primary-reverse-path/te:optimizations /te:primary-path/te:primary-reverse-path/te:optimizations
/te:algorithm/te:metric/te:optimization-metric /te:algorithm/te:metric/te:optimization-metric
/te:explicit-route-include-objects /te:explicit-route-include-objects
/te:route-object-include-object/te:type/te:label /te:route-object-include-object/te:type/te:label
/te:label-hop/te:te-label/te:technology: /te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw otn-tpn? otn-tpn +--rw otn
+--rw tsg? identityref +--rw tpn? otn-tpn
+--rw ts-list? string +--rw tsg? identityref
+--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:primary-paths augment /te:te/te:tunnels/te:tunnel/te:primary-paths
/te:primary-path/te:primary-reverse-path /te:primary-path/te:primary-reverse-path
/te:explicit-route-objects-always /te:explicit-route-objects-always
/te:route-object-exclude-always/te:type/te:label /te:route-object-exclude-always/te:type/te:label
/te:label-hop/te:te-label/te:technology: /te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw otn-tpn? otn-tpn +--rw otn
+--rw tsg? identityref +--rw tpn? otn-tpn
+--rw ts-list? string +--rw tsg? identityref
+--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:primary-paths augment /te:te/te:tunnels/te:tunnel/te:primary-paths
/te:primary-path/te:primary-reverse-path /te:primary-path/te:primary-reverse-path
/te:explicit-route-objects-always /te:explicit-route-objects-always
/te:route-object-include-exclude/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:
+--:(otn) +--:(otn)
+--rw otn-tpn? otn-tpn +--rw otn
+--rw tsg? identityref +--rw tpn? otn-tpn
+--rw ts-list? string +--rw tsg? identityref
+--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:primary-paths augment /te:te/te:tunnels/te:tunnel/te:primary-paths
/te:primary-path/te:primary-reverse-path /te:primary-path/te:primary-reverse-path
/te:path-in-segment/te:label-restrictions /te:path-in-segment/te:label-restrictions
/te:label-restriction/te:label-start/te:te-label /te:label-restriction/te:label-start/te:te-label
/te:technology: /te:technology:
+--:(otn) +--:(otn)
+--rw (range-type)? +--rw otn
+--:(trib-port) +--rw (range-type)?
| +--rw otn-tpn? otn-tpn +--:(trib-port)
+--:(trib-slot) | +--rw tpn? otn-tpn
+--rw otn-ts? otn-ts +--:(trib-slot)
+--rw ts? otn-ts
augment /te:te/te:tunnels/te:tunnel/te:primary-paths augment /te:te/te:tunnels/te:tunnel/te:primary-paths
/te:primary-path/te:primary-reverse-path /te:primary-path/te:primary-reverse-path
/te:path-in-segment/te:label-restrictions /te:path-in-segment/te:label-restrictions
/te:label-restriction/te:label-end/te:te-label /te:label-restriction/te:label-end/te:te-label
/te:technology: /te:technology:
+--:(otn) +--:(otn)
+--rw (range-type)? +--rw otn
+--:(trib-port) +--rw (range-type)?
| +--rw otn-tpn? otn-tpn +--:(trib-port)
+--:(trib-slot) | +--rw tpn? otn-tpn
+--rw otn-ts? otn-ts +--:(trib-slot)
+--rw ts? otn-ts
augment /te:te/te:tunnels/te:tunnel/te:primary-paths augment /te:te/te:tunnels/te:tunnel/te:primary-paths
/te:primary-path/te:primary-reverse-path /te:primary-path/te:primary-reverse-path
/te:path-in-segment/te:label-restrictions /te:path-in-segment/te:label-restrictions
/te:label-restriction/te:label-step/te:technology: /te:label-restriction/te:label-step/te:technology:
+--:(otn) +--:(otn)
+--rw (range-type)? +--rw otn
+--:(trib-port) +--rw (range-type)?
| +--rw otn-tpn? otn-tpn +--:(trib-port)
+--:(trib-slot) | +--rw tpn? otn-tpn
+--rw otn-ts? otn-ts +--:(trib-slot)
+--rw ts? otn-ts
augment /te:te/te:tunnels/te:tunnel/te:primary-paths augment /te:te/te:tunnels/te:tunnel/te:primary-paths
/te:primary-path/te:primary-reverse-path /te:primary-path/te:primary-reverse-path
/te:path-out-segment/te:label-restrictions /te:path-out-segment/te:label-restrictions
/te:label-restriction/te:label-start/te:te-label /te:label-restriction/te:label-start/te:te-label
/te:technology: /te:technology:
+--:(otn) +--:(otn)
+--rw (range-type)? +--rw otn
+--:(trib-port) +--rw (range-type)?
| +--rw otn-tpn? otn-tpn +--:(trib-port)
+--:(trib-slot) | +--rw tpn? otn-tpn
+--rw otn-ts? otn-ts +--:(trib-slot)
+--rw ts? otn-ts
augment /te:te/te:tunnels/te:tunnel/te:primary-paths augment /te:te/te:tunnels/te:tunnel/te:primary-paths
/te:primary-path/te:primary-reverse-path /te:primary-path/te:primary-reverse-path
/te:path-out-segment/te:label-restrictions /te:path-out-segment/te:label-restrictions
/te:label-restriction/te:label-end/te:te-label /te:label-restriction/te:label-end/te:te-label
/te:technology: /te:technology:
+--:(otn) +--:(otn)
+--rw (range-type)? +--rw otn
+--:(trib-port) +--rw (range-type)?
| +--rw otn-tpn? otn-tpn +--:(trib-port)
+--:(trib-slot) | +--rw tpn? otn-tpn
+--rw otn-ts? otn-ts +--:(trib-slot)
+--rw ts? otn-ts
augment /te:te/te:tunnels/te:tunnel/te:primary-paths augment /te:te/te:tunnels/te:tunnel/te:primary-paths
/te:primary-path/te:primary-reverse-path /te:primary-path/te:primary-reverse-path
/te:path-out-segment/te:label-restrictions /te:path-out-segment/te:label-restrictions
/te:label-restriction/te:label-step/te:technology: /te:label-restriction/te:label-step/te:technology:
+--:(otn) +--:(otn)
+--rw (range-type)? +--rw otn
+--:(trib-port) +--rw (range-type)?
| +--rw otn-tpn? otn-tpn +--:(trib-port)
+--:(trib-slot) | +--rw tpn? otn-tpn
+--rw otn-ts? otn-ts +--:(trib-slot)
+--rw ts? otn-ts
augment /te:te/te:tunnels/te:tunnel/te:primary-paths augment /te:te/te:tunnels/te:tunnel/te:primary-paths
/te:primary-path/te:primary-reverse-path /te:primary-path/te:primary-reverse-path
/te:computed-paths-properties/te:computed-path-properties /te:computed-paths-properties/te:computed-path-properties
/te:path-properties/te:path-route-objects /te:path-properties/te:path-route-objects
/te:path-route-object/te:type/te:label/te:label-hop /te:path-route-object/te:type/te:label/te:label-hop
/te:te-label/te:technology: /te:te-label/te:technology:
+--:(otn) +--:(otn)
+--ro otn-tpn? otn-tpn +--ro otn
+--ro tsg? identityref +--ro tpn? otn-tpn
+--ro ts-list? string +--ro tsg? identityref
+--ro ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:secondary-paths augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
/te:secondary-path/te:optimizations/te:algorithm /te:secondary-path/te:optimizations/te:algorithm
/te:metric/te:optimization-metric /te:metric/te:optimization-metric
/te:explicit-route-exclude-objects /te:explicit-route-exclude-objects
/te:route-object-exclude-object/te:type/te:label /te:route-object-exclude-object/te:type/te:label
/te:label-hop/te:te-label/te:technology: /te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw otn-tpn? otn-tpn +--rw otn
+--rw tsg? identityref +--rw tpn? otn-tpn
+--rw ts-list? string +--rw tsg? identityref
+--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:secondary-paths augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
/te:secondary-path/te:optimizations/te:algorithm /te:secondary-path/te:optimizations/te:algorithm
/te:metric/te:optimization-metric /te:metric/te:optimization-metric
/te:explicit-route-include-objects /te:explicit-route-include-objects
/te:route-object-include-object/te:type/te:label /te:route-object-include-object/te:type/te:label
/te:label-hop/te:te-label/te:technology: /te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw otn-tpn? otn-tpn +--rw otn
+--rw tsg? identityref +--rw tpn? otn-tpn
+--rw ts-list? string +--rw tsg? identityref
+--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:secondary-paths augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
/te:secondary-path/te:explicit-route-objects-always /te:secondary-path/te:explicit-route-objects-always
/te:route-object-exclude-always/te:type/te:label /te:route-object-exclude-always/te:type/te:label
/te:label-hop/te:te-label/te:technology: /te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw otn-tpn? otn-tpn +--rw otn
+--rw tsg? identityref +--rw tpn? otn-tpn
+--rw ts-list? string +--rw tsg? identityref
+--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:secondary-paths augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
/te:secondary-path/te:explicit-route-objects-always /te:secondary-path/te:explicit-route-objects-always
/te:route-object-include-exclude/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:
+--:(otn) +--:(otn)
+--rw otn-tpn? otn-tpn +--rw otn
+--rw tsg? identityref +--rw tpn? otn-tpn
+--rw ts-list? string +--rw tsg? identityref
+--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:secondary-paths augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
/te:secondary-path/te:path-in-segment /te:secondary-path/te:path-in-segment
/te:label-restrictions/te:label-restriction /te:label-restrictions/te:label-restriction
/te:label-start/te:te-label/te:technology: /te:label-start/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw (range-type)? +--rw otn
+--:(trib-port) +--rw (range-type)?
| +--rw otn-tpn? otn-tpn +--:(trib-port)
+--:(trib-slot) | +--rw tpn? otn-tpn
+--rw otn-ts? otn-ts +--:(trib-slot)
+--rw ts? otn-ts
augment /te:te/te:tunnels/te:tunnel/te:secondary-paths augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
/te:secondary-path/te:path-in-segment /te:secondary-path/te:path-in-segment
/te:label-restrictions/te:label-restriction/te:label-end /te:label-restrictions/te:label-restriction/te:label-end
/te:te-label/te:technology: /te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw (range-type)? +--rw otn
+--:(trib-port) +--rw (range-type)?
| +--rw otn-tpn? otn-tpn +--:(trib-port)
+--:(trib-slot) | +--rw tpn? otn-tpn
+--rw otn-ts? otn-ts +--:(trib-slot)
+--rw ts? otn-ts
augment /te:te/te:tunnels/te:tunnel/te:secondary-paths augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
/te:secondary-path/te:path-in-segment /te:secondary-path/te:path-in-segment
/te:label-restrictions/te:label-restriction/te:label-step /te:label-restrictions/te:label-restriction/te:label-step
/te:technology: /te:technology:
+--:(otn) +--:(otn)
+--rw (range-type)? +--rw otn
+--:(trib-port) +--rw (range-type)?
| +--rw otn-tpn? otn-tpn +--:(trib-port)
+--:(trib-slot) | +--rw tpn? otn-tpn
+--rw otn-ts? otn-ts +--:(trib-slot)
+--rw ts? otn-ts
augment /te:te/te:tunnels/te:tunnel/te:secondary-paths augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
/te:secondary-path/te:path-out-segment /te:secondary-path/te:path-out-segment
/te:label-restrictions/te:label-restriction /te:label-restrictions/te:label-restriction
/te:label-start/te:te-label/te:technology: /te:label-start/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw (range-type)? +--rw otn
+--:(trib-port) +--rw (range-type)?
| +--rw otn-tpn? otn-tpn +--:(trib-port)
+--:(trib-slot) | +--rw tpn? otn-tpn
+--rw otn-ts? otn-ts +--:(trib-slot)
+--rw ts? otn-ts
augment /te:te/te:tunnels/te:tunnel/te:secondary-paths augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
/te:secondary-path/te:path-out-segment /te:secondary-path/te:path-out-segment
/te:label-restrictions/te:label-restriction/te:label-end /te:label-restrictions/te:label-restriction/te:label-end
/te:te-label/te:technology: /te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw (range-type)? +--rw otn
+--:(trib-port) +--rw (range-type)?
| +--rw otn-tpn? otn-tpn +--:(trib-port)
+--:(trib-slot) | +--rw tpn? otn-tpn
+--rw otn-ts? otn-ts +--:(trib-slot)
+--rw ts? otn-ts
augment /te:te/te:tunnels/te:tunnel/te:secondary-paths augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
/te:secondary-path/te:path-out-segment /te:secondary-path/te:path-out-segment
/te:label-restrictions/te:label-restriction/te:label-step /te:label-restrictions/te:label-restriction/te:label-step
/te:technology: /te:technology:
+--:(otn) +--:(otn)
+--rw (range-type)? +--rw otn
+--:(trib-port) +--rw (range-type)?
| +--rw otn-tpn? otn-tpn +--:(trib-port)
+--:(trib-slot) | +--rw tpn? otn-tpn
+--rw otn-ts? otn-ts +--:(trib-slot)
+--rw ts? otn-ts
augment /te:te/te:tunnels/te:tunnel/te:secondary-paths augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
/te:secondary-path/te:computed-paths-properties /te:secondary-path/te:computed-paths-properties
/te:computed-path-properties/te:path-properties /te:computed-path-properties/te:path-properties
/te:path-route-objects/te:path-route-object/te:type /te:path-route-objects/te:path-route-object/te:type
/te:label/te:label-hop/te:te-label/te:technology: /te:label/te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--ro otn-tpn? otn-tpn +--ro otn
+--ro tsg? identityref +--ro tpn? otn-tpn
+--ro ts-list? string +--ro tsg? identityref
+--ro ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
/te:secondary-reverse-path/te:optimizations/te:algorithm /te:secondary-reverse-path/te:optimizations/te:algorithm
/te:metric/te:optimization-metric /te:metric/te:optimization-metric
/te:explicit-route-exclude-objects /te:explicit-route-exclude-objects
/te:route-object-exclude-object/te:type/te:label /te:route-object-exclude-object/te:type/te:label
/te:label-hop/te:te-label/te:technology: /te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw otn-tpn? otn-tpn +--rw otn
+--rw tsg? identityref +--rw tpn? otn-tpn
+--rw ts-list? string +--rw tsg? identityref
+--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
/te:secondary-reverse-path/te:optimizations/te:algorithm /te:secondary-reverse-path/te:optimizations/te:algorithm
/te:metric/te:optimization-metric /te:metric/te:optimization-metric
/te:explicit-route-include-objects /te:explicit-route-include-objects
/te:route-object-include-object/te:type/te:label /te:route-object-include-object/te:type/te:label
/te:label-hop/te:te-label/te:technology: /te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw otn-tpn? otn-tpn +--rw otn
+--rw tsg? identityref +--rw tpn? otn-tpn
+--rw ts-list? string +--rw tsg? identityref
+--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
/te:secondary-reverse-path /te:secondary-reverse-path
/te:explicit-route-objects-always /te:explicit-route-objects-always
/te:route-object-exclude-always/te:type/te:label /te:route-object-exclude-always/te:type/te:label
/te:label-hop/te:te-label/te:technology: /te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw otn-tpn? otn-tpn +--rw otn
+--rw tsg? identityref +--rw tpn? otn-tpn
+--rw ts-list? string +--rw tsg? identityref
+--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
/te:secondary-reverse-path /te:secondary-reverse-path
/te:explicit-route-objects-always /te:explicit-route-objects-always
/te:route-object-include-exclude/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:
+--:(otn) +--:(otn)
+--rw otn-tpn? otn-tpn +--rw otn
+--rw tsg? identityref +--rw tpn? otn-tpn
+--rw ts-list? string +--rw tsg? identityref
+--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
/te:secondary-reverse-path/te:path-in-segment /te:secondary-reverse-path/te:path-in-segment
/te:label-restrictions/te:label-restriction /te:label-restrictions/te:label-restriction
/te:label-start/te:te-label/te:technology: /te:label-start/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw (range-type)? +--rw otn
+--:(trib-port) +--rw (range-type)?
| +--rw otn-tpn? otn-tpn +--:(trib-port)
+--:(trib-slot) | +--rw tpn? otn-tpn
+--rw otn-ts? otn-ts +--:(trib-slot)
+--rw ts? otn-ts
augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
/te:secondary-reverse-path/te:path-in-segment /te:secondary-reverse-path/te:path-in-segment
/te:label-restrictions/te:label-restriction/te:label-end /te:label-restrictions/te:label-restriction/te:label-end
/te:te-label/te:technology: /te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw (range-type)? +--rw otn
+--:(trib-port) +--rw (range-type)?
| +--rw otn-tpn? otn-tpn +--:(trib-port)
+--:(trib-slot) | +--rw tpn? otn-tpn
+--rw otn-ts? otn-ts +--:(trib-slot)
+--rw ts? otn-ts
augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
/te:secondary-reverse-path/te:path-in-segment /te:secondary-reverse-path/te:path-in-segment
/te:label-restrictions/te:label-restriction/te:label-step /te:label-restrictions/te:label-restriction/te:label-step
/te:technology: /te:technology:
+--:(otn) +--:(otn)
+--rw (range-type)? +--rw otn
+--:(trib-port) +--rw (range-type)?
| +--rw otn-tpn? otn-tpn +--:(trib-port)
+--:(trib-slot) | +--rw tpn? otn-tpn
+--rw otn-ts? otn-ts +--:(trib-slot)
+--rw ts? otn-ts
augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
/te:secondary-reverse-path/te:path-out-segment /te:secondary-reverse-path/te:path-out-segment
/te:label-restrictions/te:label-restriction /te:label-restrictions/te:label-restriction
/te:label-start/te:te-label/te:technology: /te:label-start/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw (range-type)? +--rw otn
+--:(trib-port) +--rw (range-type)?
| +--rw otn-tpn? otn-tpn +--:(trib-port)
+--:(trib-slot) | +--rw tpn? otn-tpn
+--rw otn-ts? otn-ts +--:(trib-slot)
+--rw ts? otn-ts
augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
/te:secondary-reverse-path/te:path-out-segment /te:secondary-reverse-path/te:path-out-segment
/te:label-restrictions/te:label-restriction/te:label-end /te:label-restrictions/te:label-restriction/te:label-end
/te:te-label/te:technology: /te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw (range-type)? +--rw otn
+--:(trib-port) +--rw (range-type)?
| +--rw otn-tpn? otn-tpn +--:(trib-port)
+--:(trib-slot) | +--rw tpn? otn-tpn
+--rw otn-ts? otn-ts +--:(trib-slot)
+--rw ts? otn-ts
augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
/te:secondary-reverse-path/te:path-out-segment /te:secondary-reverse-path/te:path-out-segment
/te:label-restrictions/te:label-restriction/te:label-step /te:label-restrictions/te:label-restriction/te:label-step
/te:technology: /te:technology:
+--:(otn) +--:(otn)
+--rw (range-type)? +--rw otn
+--:(trib-port) +--rw (range-type)?
| +--rw otn-tpn? otn-tpn +--:(trib-port)
+--:(trib-slot) | +--rw tpn? otn-tpn
+--rw otn-ts? otn-ts +--:(trib-slot)
+--rw ts? otn-ts
augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
/te:secondary-reverse-path/te:computed-paths-properties /te:secondary-reverse-path/te:computed-paths-properties
/te:computed-path-properties/te:path-properties /te:computed-path-properties/te:path-properties
/te:path-route-objects/te:path-route-object/te:type /te:path-route-objects/te:path-route-object/te:type
/te:label/te:label-hop/te:te-label/te:technology: /te:label/te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--ro otn-tpn? otn-tpn +--ro otn
+--ro tsg? identityref +--ro tpn? otn-tpn
+--ro ts-list? string +--ro tsg? identityref
+--ro ts-list? string
augment /te:te/te:lsps/te:lsp/te:lsp-record-route-information augment /te:te/te:lsps/te:lsp/te:lsp-record-route-information
/te:lsp-record-route-information/te:type/te:label /te:lsp-record-route-information/te:type/te:label
/te:label-hop/te:te-label/te:technology: /te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--ro otn-tpn? otn-tpn +--ro otn
+--ro tsg? identityref +--ro tpn? otn-tpn
+--ro ts-list? string +--ro tsg? identityref
+--ro ts-list? string
5. OTN Tunnel YANG Code 4. OTN Tunnel YANG Code
<CODE BEGINS> <CODE BEGINS>
file "ietf-otn-tunnel@2021-06-25.yang" file "ietf-otn-tunnel@2022-03-10.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-tnl";
import ietf-te { import ietf-te {
prefix "te"; prefix "te";
revision-date "2021-02-20"; revision-date "2021-02-20";
reference reference
"I-D.ietf-teas-yang-te-19: A YANG Data Model for Traffic "I-D.ietf-teas-yang-te-19: A YANG Data Model for Traffic
Engineering Tunnels and Interfaces. "; Engineering Tunnels and Interfaces. ";
} }
import ietf-layer1-types { import ietf-layer1-types {
prefix "l1-types"; prefix "l1-types";
reference reference
"I-D.ietf-ccamp-layer1-types: "I-D.ietf-ccamp-layer1-types:
A YANG Data Model for Layer 1 Types. "; A YANG Data Model for Layer 1 Types. ";
} }
organization organization
"IETF CCAMP Working Group"; "IETF CCAMP Working Group";
contact contact
"WG Web: <http://tools.ietf.org/wg/ccamp/> "WG Web: <http://tools.ietf.org/wg/ccamp/>
WG List: <mailto:ccamp@ietf.org> WG List: <mailto:ccamp@ietf.org>
Editor: Haomian Zheng Editor: Haomian Zheng
<mailto:zhenghaomian@huawei.com> <mailto:zhenghaomian@huawei.com>
skipping to change at page 21, line 48 skipping to change at page 23, line 48
Editor: Italo Busi Editor: Italo Busi
<mailto:italo.busi@huawei.com> <mailto:italo.busi@huawei.com>
Editor: Sergio Belotti Editor: Sergio Belotti
<mailto:sergio.belotti@nokia.com> <mailto:sergio.belotti@nokia.com>
Editor: Victor Lopez Editor: Victor Lopez
<mailto:victor.lopezalvarez@telefonica.com> <mailto:victor.lopezalvarez@telefonica.com>
Editor: Yunbin Xu Editor: Yunbin Xu
<mailto:xuyunbin@ritt.cn>"; <mailto:xuyunbin@caict.ac.cn>";
description description
"This module defines a model for OTN Tunnel Services. "This module defines a model for OTN Tunnel Services.
The model fully conforms to the Network Management The model fully conforms to the Network Management
Datastore Architecture (NMDA). Datastore Architecture (NMDA).
Copyright (c) 2021 IETF Trust and the persons Copyright (c) 2022 IETF Trust and the persons
identified as authors of the code. All rights reserved. identified as authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD License to the license terms contained in, the Simplified BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents Relating to IETF Documents
(https://trustee.ietf.org/license-info). (https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see This version of this YANG module is part of RFC XXXX; see
the RFC itself for full legal notices."; the RFC itself for full legal notices.";
revision "2021-06-25" { revision "2022-03-10" {
description description
"Updated revision to align with the latest TE tunnel model."; "Updated revision to align with the latest TE tunnel model.";
reference reference
"RFC XXXX: OTN Tunnel YANG Model"; "RFC XXXX: OTN Tunnel YANG Model";
// RFC Ed.: replace XXXX with actual RFC number, update date // RFC Ed.: replace XXXX with actual RFC number, update date
// information and remove this note // information and remove this note
} }
/* /*
* Data nodes * Data nodes
skipping to change at page 42, line 21 skipping to change at page 44, line 21
+ "te:label-hop/te:te-label/te:technology" { + "te:label-hop/te:te-label/te:technology" {
description description
"Augment TE label hop for the record route of the LSP."; "Augment TE label hop for the record route of the LSP.";
case otn { case otn {
uses l1-types:otn-label-hop; uses l1-types:otn-label-hop;
} }
} }
} }
<CODE ENDS> <CODE ENDS>
6. Security Considerations 5. 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].
The NETCONF access control model [RFC8341] provides the means to The NETCONF access control model [RFC8341] provides the means to
skipping to change at page 43, line 5 skipping to change at page 45, line 5
[I-D.ietf-teas-yang-te]are also applicable to their subtrees in the [I-D.ietf-teas-yang-te]are also applicable to their subtrees in the
module defined in this document. module defined in this document.
Some of the readable data nodes in this YANG module may be considered Some of the readable data nodes in this YANG module may be considered
sensitive or vulnerable in some network environments. It is thus sensitive or vulnerable in some network environments. It is thus
important to control read access (e.g., via get, get-config, or important to control read access (e.g., via get, get-config, or
notification) to these data nodes. Considerations in Section 10 of notification) to these data nodes. Considerations in Section 10 of
[I-D.ietf-teas-yang-te]are also applicable to their subtrees in the [I-D.ietf-teas-yang-te]are also applicable to their subtrees in the
module defined in this document. module defined in this document.
7. IANA Considerations 6. IANA Considerations
It is proposed that IANA should assign new URIs from the "IETF XML It is proposed that IANA should assign new URIs from the "IETF XML
Registry" [RFC3688] as follows: Registry" [RFC3688] as follows:
URI: urn:ietf:params:xml:ns:yang:ietf-otn-tunnel URI: urn:ietf:params:xml:ns:yang:ietf-otn-tunnel
Registrant Contact: The IESG Registrant Contact: The IESG
XML: N/A; the requested URI is an XML namespace. XML: N/A; the requested URI is an XML namespace.
This document registers following YANG modules in the YANG Module This document registers following YANG modules in the YANG Module
Names registry [RFC7950]. Names registry [RFC7950].
name: ietf-otn-tunnel name: ietf-otn-tunnel
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-tnl
reference: RFC XXXX reference: RFC XXXX
8. Acknowledgements RFC Editor Note: Please replace XXXX with the number assigned to the
RFC once this draft becomes an RFC.
7. Acknowledgements
TBD. TBD.
9. Contributors 8. Contributors
Aihua Guo Futurewei Email: aihuaguo.ietf@gmail.com Aihua Guo Futurewei Email: aihuaguo.ietf@gmail.com
Anurag Sharma Google Email: ansha@google.com Anurag Sharma Google Email: ansha@google.com
Rajan Rao Infinera Email: rrao@infinera.com Rajan Rao Infinera Email: rrao@infinera.com
Yunbo Li China Mobile Email: liyunbo@chinamobile.com Yunbo Li China Mobile Email: liyunbo@chinamobile.com
Dieter Beller Nokia Email: dieter.beller@nokia.com Dieter Beller Nokia Email: dieter.beller@nokia.com
Yanlei Zheng China Unicom Email: zhengyanlei@chinaunicom.cn Yanlei Zheng China Unicom Email: zhengyanlei@chinaunicom.cn
Xian Zhang Huawei Technologies Email: zhang.xian@huawei.com Xian Zhang Huawei Technologies Email: zhang.xian@huawei.com
Lei Wang China Mobile Email: wangleiyj@chinamobile.com Lei Wang China Mobile Email: wangleiyj@chinamobile.com
Oscar Gonzalez de Dios Telefonica Email: Oscar Gonzalez de Dios Telefonica Email:
oscar.gonzalezdedios@telefonica.com oscar.gonzalezdedios@telefonica.com
10. References 9. References
10.1. Normative References
9.1. Normative References
[I-D.ietf-ccamp-layer1-types] [I-D.ietf-ccamp-layer1-types]
Zheng, H. and I. Busi, "A YANG Data Model for Layer 1 Zheng, H. and I. Busi, "A YANG Data Model for Layer 1
Types", Work in Progress, Internet-Draft, draft-ietf- Types", Work in Progress, Internet-Draft, draft-ietf-
ccamp-layer1-types-12, 7 March 2022, ccamp-layer1-types-13, 8 April 2022,
<https://www.ietf.org/archive/id/draft-ietf-ccamp-layer1- <https://www.ietf.org/archive/id/draft-ietf-ccamp-layer1-
types-12.txt>. types-13.txt>.
[I-D.ietf-ccamp-otn-topo-yang] [I-D.ietf-ccamp-otn-topo-yang]
Zheng, H., Busi, I., Liu, X., Belotti, S., and O. G. D. Zheng, H., Busi, I., Liu, X., Belotti, S., and O. G. D.
Dios, "A YANG Data Model for Optical Transport Network Dios, "A YANG Data Model for Optical Transport Network
Topology", Work in Progress, Internet-Draft, draft-ietf- Topology", Work in Progress, Internet-Draft, draft-ietf-
ccamp-otn-topo-yang-13, 12 July 2021, ccamp-otn-topo-yang-14, 7 March 2022,
<https://www.ietf.org/archive/id/draft-ietf-ccamp-otn- <https://www.ietf.org/archive/id/draft-ietf-ccamp-otn-
topo-yang-13.txt>. topo-yang-14.txt>.
[I-D.ietf-teas-yang-te] [I-D.ietf-teas-yang-te]
Saad, T., Gandhi, R., Liu, X., Beeram, V. P., Bryskin, I., Saad, T., Gandhi, R., Liu, X., Beeram, V. P., Bryskin, I.,
and O. G. D. Dios, "A YANG Data Model for Traffic and O. G. D. Dios, "A YANG Data Model for Traffic
Engineering Tunnels, Label Switched Paths and Interfaces", Engineering Tunnels, Label Switched Paths and Interfaces",
Work in Progress, Internet-Draft, draft-ietf-teas-yang-te- Work in Progress, Internet-Draft, draft-ietf-teas-yang-te-
29, 7 February 2022, <https://www.ietf.org/archive/id/ 29, 7 February 2022, <https://www.ietf.org/archive/id/
draft-ietf-teas-yang-te-29.txt>. draft-ietf-teas-yang-te-29.txt>.
[ITU-Tg709] [ITU-Tg709]
skipping to change at page 45, line 27 skipping to change at page 47, line 33
[RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K.,
and R. Wilton, "Network Management Datastore Architecture and R. Wilton, "Network Management Datastore Architecture
(NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018,
<https://www.rfc-editor.org/info/rfc8342>. <https://www.rfc-editor.org/info/rfc8342>.
[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 9.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", Work in Northbound Interface Applicability Statement", Work in
Progress, Internet-Draft, draft-ietf-ccamp-transport-nbi- Progress, Internet-Draft, draft-ietf-ccamp-transport-nbi-
app-statement-13, 29 September 2021, app-statement-14, 25 March 2022,
<https://www.ietf.org/archive/id/draft-ietf-ccamp- <https://www.ietf.org/archive/id/draft-ietf-ccamp-
transport-nbi-app-statement-13.txt>. transport-nbi-app-statement-14.txt>.
[I-D.ietf-teas-actn-yang] [I-D.ietf-teas-actn-yang]
Lee, Y., Zheng, H., Ceccarelli, D., Yoon, B. Y., and S. Lee, Y., Zheng, H., Ceccarelli, D., Yoon, B. Y., and S.
Belotti, "Applicability of YANG models for Abstraction and Belotti, "Applicability of YANG models for Abstraction and
Control of Traffic Engineered Networks", Work in Progress, Control of Traffic Engineered Networks", Work in Progress,
Internet-Draft, draft-ietf-teas-actn-yang-08, 8 September Internet-Draft, draft-ietf-teas-actn-yang-09, 7 March
2021, <https://www.ietf.org/archive/id/draft-ietf-teas- 2022, <https://www.ietf.org/archive/id/draft-ietf-teas-
actn-yang-08.txt>. actn-yang-09.txt>.
[RFC7062] Zhang, F., Ed., Li, D., Li, H., Belotti, S., and D.
Ceccarelli, "Framework for GMPLS and PCE Control of G.709
Optical Transport Networks", RFC 7062,
DOI 10.17487/RFC7062, November 2013,
<https://www.rfc-editor.org/info/rfc7062>.
[RFC7138] Ceccarelli, D., Ed., Zhang, F., Belotti, S., Rao, R., and
J. Drake, "Traffic Engineering Extensions to OSPF for
GMPLS Control of Evolving G.709 Optical Transport
Networks", RFC 7138, DOI 10.17487/RFC7138, March 2014,
<https://www.rfc-editor.org/info/rfc7138>.
[RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams",
BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018,
<https://www.rfc-editor.org/info/rfc8340>. <https://www.rfc-editor.org/info/rfc8340>.
Authors' Addresses Authors' Addresses
Haomian Zheng Haomian Zheng
Huawei Technologies Huawei Technologies
H1, Huawei Xiliu Beipo Village, Songshan Lake H1, Huawei Xiliu Beipo Village, Songshan Lake
 End of changes. 106 change blocks. 
341 lines changed or deleted 424 lines changed or added

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