Skip to main content

A YANG Data Model for Client-layer Topology
draft-zheng-ccamp-client-topo-yang-05

The information below is for an old version of the document.
Document Type
This is an older version of an Internet-Draft whose latest revision state is "Replaced".
Authors Haomian Zheng , Aihua Guo , Italo Busi , Yunbin Xu , Yang Zhao , Xufeng Liu
Last updated 2019-02-28
Replaced by draft-ietf-ccamp-eth-client-te-topo-yang
RFC stream (None)
Formats
Stream Stream state (No stream defined)
Consensus boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-zheng-ccamp-client-topo-yang-05
CCAMP Working Group                                             H. Zheng
Internet-Draft                                                    A. Guo
Intended status: Standards Track                                 I. Busi
Expires: September 2, 2019                           Huawei Technologies
                                                                   Y. Xu
                                                                   CAICT
                                                                 Y. Zhao
                                                            China Mobile
                                                                  X. Liu
                                                          Volta Networks
                                                           March 1, 2019

              A YANG Data Model for Client-layer Topology
                 draft-zheng-ccamp-client-topo-yang-05

Abstract

   A transport network is a server-layer network to provide connectivity
   services to its client.  In this draft the topology of client is
   described.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on September 2, 2019.

Copyright Notice

   Copyright (c) 2019 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (https://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents

Zheng, et al.           Expires September 2, 2019               [Page 1]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Terminology and Notations . . . . . . . . . . . . . . . . . .   3
   3.  YANG Model for Topology of Client Layer . . . . . . . . . . .   3
     3.1.  YANG Tree for Ethernet Topology . . . . . . . . . . . . .   3
   4.  YANG Code for Topology Client Layer . . . . . . . . . . . . .  16
     4.1.  The ETH Topology YANG Code  . . . . . . . . . . . . . . .  16
   5.  Considerations and Open Issue . . . . . . . . . . . . . . . .  56
   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  57
   7.  Manageability Considerations  . . . . . . . . . . . . . . . .  57
   8.  Security Considerations . . . . . . . . . . . . . . . . . . .  57
   9.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .  57
   10. Contributors  . . . . . . . . . . . . . . . . . . . . . . . .  57
   11. References  . . . . . . . . . . . . . . . . . . . . . . . . .  58
     11.1.  Normative References . . . . . . . . . . . . . . . . . .  58
     11.2.  Informative References . . . . . . . . . . . . . . . . .  58
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  59

1.  Introduction

   A transport network is a server-layer network designed to provide
   connectivity services for a client-layer network to carry the client
   traffic transparently across the server-layer network resources.  The
   topology model in Traffic-Engineered network has been defined in both
   generic way and technology-specific way.  The generic model, which is
   the base TE YANG model, can be found at [I-D.ietf-teas-yang-te-topo].
   Technology-specific models, such as OTN/WSON topology model, have
   also been defined in [I-D.ietf-ccamp-otn-topo-yang] and
   [I-D.ietf-ccamp-wson-yang] respectively.  Corresponding topology on
   client-layer is also required, to have a complete topology view from
   the perspective of network controllers.

   This document defines a data model of all client-layer Topology,
   using YANG language defined in [RFC7950].  The model is augmenting
   the generic TE topology model, and can be used by either applications
   exposing to a network controller or among controllers.  Furthermore,
   it can be used by an application for topology description in client-
   layer network.

Zheng, et al.           Expires September 2, 2019               [Page 2]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

2.  Terminology and Notations

   A simplified graphical representation of the data model is used in
   this document.  The meaning of the symbols in the YANG data tree
   presented later in this document is defined in [RFC8340].  They are
   provided below for reference.

   o  Brackets "[" and "]" enclose list keys.

   o  Abbreviations before data node names: "rw" means configuration
      (read-write) and "ro" state data (read-only).

   o  Symbols after data node names: "?" means an optional node, "!"
      means a presence container, and "*" denotes a list and leaf-list.

   o  Parentheses enclose choice and case nodes, and case nodes are also
      marked with a colon (":").

   o  Ellipsis ("...") stands for contents of subtrees that are not
      shown.

3.  YANG Model for Topology of Client Layer

3.1.  YANG Tree for Ethernet Topology

module: ietf-eth-te-topology
  augment /nw:networks/nw:network/nw:network-types/tet:te-topology:
    +--rw eth-tran-topology!
  augment /nw:networks/nw:network/nw:node/nt:termination-point:
    +--rw ltp-mac-address?                    yang:mac-address
    +--rw port-vlan-id?                       etht-types:vlanid
    +--rw maximum-frame-size?                 uint16
    +--rw (direction)?
    |  +--:(symmetrical)
    |  |  +--rw ingress-egress-bandwidth-profile
    |  |     +--rw bandwidth-profile-name?   string
    |  |     +--rw bandwidth-profile-type?   etht-types:bandwidth-profile-type
    |  |     +--rw CIR?                      uint64
    |  |     +--rw CBS?                      uint64
    |  |     +--rw EIR?                      uint64
    |  |     +--rw EBS?                      uint64
    |  |     +--rw color-aware?              boolean
    |  |     +--rw coupling-flag?            boolean
    |  +--:(asymmetrical)

Zheng, et al.           Expires September 2, 2019               [Page 3]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

    |     +--rw ingress-bandwidth-profile
    |     |  +--rw bandwidth-profile-name?   string
    |     |  +--rw bandwidth-profile-type?   etht-types:bandwidth-profile-type
    |     |  +--rw CIR?                      uint64
    |     |  +--rw CBS?                      uint64
    |     |  +--rw EIR?                      uint64
    |     |  +--rw EBS?                      uint64
    |     |  +--rw color-aware?              boolean
    |     |  +--rw coupling-flag?            boolean
    |     +--rw egress-bandwidth-profile
    |        +--rw bandwidth-profile-name?   string
    |        +--rw bandwidth-profile-type?   etht-types:bandwidth-profile-type
    |        +--rw CIR?                      uint64
    |        +--rw CBS?                      uint64
    |        +--rw EIR?                      uint64
    |        +--rw EBS?                      uint64
    |        +--rw color-aware?              boolean
    |        +--rw coupling-flag?            boolean
    +--rw svc!
       +--rw client-facing?               boolean
       +--rw supported-classification
       |  +--rw transparent?           boolean
       |  +--rw port-classification?   boolean
       |  +--rw vlan-classification
       |     +--rw vlan-tag-classification?   boolean
       |     +--rw outer-tag
       |     |  +--rw supported-tag-types*   etht-types:eth-tag-classify
       |     |  +--rw vlan-bundling?         boolean
       |     |  +--rw vlan-range?            etht-types:vid-range-type
       |     +--rw second-tag
       |        +--rw second-tag-classification?   boolean
       |        +--rw supported-tag-types*         etht-types:eth-tag-classify
       |        +--rw vlan-bundling?               boolean
       |        +--rw vlan-range?                  etht-types:vid-range-type
       +--rw supported-vlan-operations
          +--rw asymmetrical-operations?       boolean
          +--rw transparent-vlan-operations?   boolean
          +--rw vlan-pop
          |  +--rw vlan-pop-operations?   boolean
          |  +--rw max-pop-tags?          uint8
          +--rw vlan-push
             +--rw vlan-push-operation?   boolean
             +--rw outer-tag
             |  +--rw supported-tag-types*   etht-types:eth-tag-type
             |  +--rw vlan-range?            etht-types:vid-range-type
             +--rw second-tag
                +--rw push-second-tag?       boolean
                +--rw supported-tag-types*   etht-types:eth-tag-type

Zheng, et al.           Expires September 2, 2019               [Page 4]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

                +--rw vlan-range?            etht-types:vid-range-type
  augment /nw:networks/nw:network/nw:node/nt:termination-point/tet:te
          /tet:interface-switching-capability/tet:max-lsp-bandwidth
          /tet:te-bandwidth/tet:technology:
    +--:(eth)
       +--rw eth-bandwidth?   uint64
  augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes
          /tet:connectivity-matrices/tet:path-constraints
          /tet:te-bandwidth/tet:technology:
    +--:(eth)
       +--rw eth-bandwidth?   uint64
  augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes
          /tet:connectivity-matrices/tet:connectivity-matrix
          /tet:path-constraints/tet:te-bandwidth/tet:technology:
    +--:(eth)
       +--rw eth-bandwidth?   uint64
  augment /nw:networks/nw:network/nw:node/tet:te/tet:information-source-entry
          /tet:connectivity-matrices/tet:path-constraints
          /tet:te-bandwidth/tet:technology:
    +--:(eth)
       +--ro eth-bandwidth?   uint64
  augment /nw:networks/nw:network/nw:node/tet:te/tet:information-source-entry
          /tet:connectivity-matrices/tet:connectivity-matrix
          /tet:path-constraints/tet:te-bandwidth/tet:technology:
    +--:(eth)
       +--ro eth-bandwidth?   uint64
  augment /nw:networks/nw:network/nw:node/tet:te/tet:tunnel-termination-point
          /tet:client-layer-adaptation/tet:switching-capability
          /tet:te-bandwidth/tet:technology:
    +--:(eth)
       +--rw eth-bandwidth?   uint64
  augment /nw:networks/nw:network/nw:node/tet:te/tet:tunnel-termination-point
          /tet:local-link-connectivities/tet:path-constraints
          /tet:te-bandwidth/tet:technology:
    +--:(eth)
       +--rw eth-bandwidth?   uint64
  augment /nw:networks/nw:network/nw:node/tet:te/tet:tunnel-termination-point
          /tet:local-link-connectivities/tet:local-link-connectivity
          /tet:path-constraints/tet:te-bandwidth/tet:technology:
    +--:(eth)
       +--rw eth-bandwidth?   uint64
  augment /nw:networks/nw:network/nt:link/tet:te/tet:te-link-attributes
          /tet:interface-switching-capability/tet:max-lsp-bandwidth
          /tet:te-bandwidth/tet:technology:
    +--:(eth)
       +--rw eth-bandwidth?   uint64
  augment /nw:networks/nw:network/nt:link/tet:te/tet:te-link-attributes
          /tet:max-link-bandwidth/tet:te-bandwidth/tet:technology:

Zheng, et al.           Expires September 2, 2019               [Page 5]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

    +--:(eth)
       +--rw eth-bandwidth?   uint64
  augment /nw:networks/nw:network/nt:link/tet:te/tet:te-link-attributes
          /tet:max-resv-link-bandwidth/tet:te-bandwidth/tet:technology:
    +--:(eth)
       +--rw eth-bandwidth?   uint64
  augment /nw:networks/nw:network/nt:link/tet:te/tet:te-link-attributes
          /tet:unreserved-bandwidth/tet:te-bandwidth/tet:technology:
    +--:(eth)
       +--rw eth-bandwidth?   uint64
  augment /nw:networks/nw:network/nt:link/tet:te/tet:information-source-entry
          /tet:interface-switching-capability/tet:max-lsp-bandwidth
          /tet:te-bandwidth/tet:technology:
    +--:(eth)
       +--ro eth-bandwidth?   uint64
  augment /nw:networks/nw:network/nt:link/tet:te/tet:information-source-entry
          /tet:max-link-bandwidth/tet:te-bandwidth/tet:technology:
    +--:(eth)
       +--ro eth-bandwidth?   uint64
  augment /nw:networks/nw:network/nt:link/tet:te/tet:information-source-entry
          /tet:max-resv-link-bandwidth/tet:te-bandwidth/tet:technology:
    +--:(eth)
       +--ro eth-bandwidth?   uint64
  augment /nw:networks/nw:network/nt:link/tet:te/tet:information-source-entry
          /tet:unreserved-bandwidth/tet:te-bandwidth/tet:technology:
    +--:(eth)
       +--ro eth-bandwidth?   uint64
  augment /nw:networks/tet:te/tet:templates/tet:link-template
          /tet:te-link-attributes/tet:interface-switching-capability
          /tet:max-lsp-bandwidth/tet:te-bandwidth/tet:technology:
    +--:(eth)
       +--rw eth-bandwidth?   uint64
  augment /nw:networks/tet:te/tet:templates/tet:link-template
          /tet:te-link-attributes/tet:max-link-bandwidth
          /tet:te-bandwidth/tet:technology:
    +--:(eth)
       +--rw eth-bandwidth?   uint64
  augment /nw:networks/tet:te/tet:templates/tet:link-template
          /tet:te-link-attributes/tet:max-resv-link-bandwidth
          /tet:te-bandwidth/tet:technology:
    +--:(eth)
       +--rw eth-bandwidth?   uint64
  augment /nw:networks/tet:te/tet:templates/tet:link-template
          /tet:te-link-attributes/tet:unreserved-bandwidth
          /tet:te-bandwidth/tet:technology:
    +--:(eth)
       +--rw eth-bandwidth?   uint64
  augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes

Zheng, et al.           Expires September 2, 2019               [Page 6]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

          /tet:connectivity-matrices/tet:label-restrictions
          /tet:label-restriction:
    +--rw tag-type?   etht-types:eth-tag-type
    +--rw priority?   uint8
  augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes
          /tet:connectivity-matrices/tet:label-restrictions
          /tet:label-restriction/tet:label-start/tet:te-label/tet:technology:
    +--:(eth)
       +--rw vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes
          /tet:connectivity-matrices/tet:label-restrictions
          /tet:label-restriction/tet:label-end/tet:te-label/tet:technology:
    +--:(eth)
       +--rw vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes
          /tet:connectivity-matrices/tet:label-restrictions
          /tet:label-restriction/tet:label-step/tet:technology:
    +--:(eth)
       +--rw eth-step?   uint16
  augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes
          /tet:connectivity-matrices/tet:underlay/tet:primary-path
          /tet:path-element/tet:type/tet:label/tet:label-hop
          /tet:te-label/tet:technology:
    +--:(eth)
       +--rw vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes
          /tet:connectivity-matrices/tet:underlay/tet:backup-path
          /tet:path-element/tet:type/tet:label/tet:label-hop
          /tet:te-label/tet:technology:
    +--:(eth)
       +--rw vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes
          /tet:connectivity-matrices/tet:optimizations/tet:algorithm
          /tet:metric/tet:optimization-metric
          /tet:explicit-route-exclude-objects/tet:route-object-exclude-object
          /tet:type/tet:label/tet:label-hop/tet:te-label/tet:technology:
    +--:(eth)
       +--rw vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes
          /tet:connectivity-matrices/tet:optimizations/tet:algorithm
          /tet:metric/tet:optimization-metric
          /tet:explicit-route-include-objects/tet:route-object-include-object
          /tet:type/tet:label/tet:label-hop/tet:te-label/tet:technology:
    +--:(eth)
       +--rw vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes
          /tet:connectivity-matrices/tet:path-properties
          /tet:path-route-objects/tet:path-route-object/tet:type/tet:label

Zheng, et al.           Expires September 2, 2019               [Page 7]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

          /tet:label-hop/tet:te-label/tet:technology:
    +--:(eth)
       +--ro vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes
          /tet:connectivity-matrices/tet:connectivity-matrix/tet:from
          /tet:label-restrictions/tet:label-restriction:
    +--rw tag-type?   etht-types:eth-tag-type
    +--rw priority?   uint8
  augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes
          /tet:connectivity-matrices/tet:connectivity-matrix/tet:from
          /tet:label-restrictions/tet:label-restriction/tet:label-start
          /tet:te-label/tet:technology:
    +--:(eth)
       +--rw vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes
          /tet:connectivity-matrices/tet:connectivity-matrix/tet:from
          /tet:label-restrictions/tet:label-restriction/tet:label-end
          /tet:te-label/tet:technology:
    +--:(eth)
       +--rw vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes
          /tet:connectivity-matrices/tet:connectivity-matrix/tet:from
          /tet:label-restrictions/tet:label-restriction/tet:label-step
          /tet:technology:
    +--:(eth)
       +--rw eth-step?   uint16
  augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes
          /tet:connectivity-matrices/tet:connectivity-matrix/tet:to
          /tet:label-restrictions/tet:label-restriction:
    +--rw tag-type?   etht-types:eth-tag-type
    +--rw priority?   uint8
  augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes
          /tet:connectivity-matrices/tet:connectivity-matrix/tet:to
          /tet:label-restrictions/tet:label-restriction
          /tet:label-start/tet:te-label/tet:technology:
    +--:(eth)
       +--rw vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes
          /tet:connectivity-matrices/tet:connectivity-matrix/tet:to
          /tet:label-restrictions/tet:label-restriction/tet:label-end
          /tet:te-label/tet:technology:
    +--:(eth)
       +--rw vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes
          /tet:connectivity-matrices/tet:connectivity-matrix/tet:to
          /tet:label-restrictions/tet:label-restriction
          /tet:label-step/tet:technology:
    +--:(eth)

Zheng, et al.           Expires September 2, 2019               [Page 8]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

       +--rw eth-step?   uint16
  augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes
          /tet:connectivity-matrices/tet:connectivity-matrix/tet:underlay
          /tet:primary-path/tet:path-element/tet:type/tet:label
          /tet:label-hop/tet:te-label/tet:technology:
    +--:(eth)
       +--rw vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes
          /tet:connectivity-matrices/tet:connectivity-matrix/tet:underlay
          /tet:backup-path/tet:path-element/tet:type/tet:label
          /tet:label-hop/tet:te-label/tet:technology:
    +--:(eth)
       +--rw vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes
          /tet:connectivity-matrices/tet:connectivity-matrix
          /tet:optimizations/tet:algorithm/tet:metric
          /tet:optimization-metric/tet:explicit-route-exclude-objects
          /tet:route-object-exclude-object/tet:type/tet:label
          /tet:label-hop/tet:te-label/tet:technology:
    +--:(eth)
       +--rw vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes
          /tet:connectivity-matrices/tet:connectivity-matrix
          /tet:optimizations/tet:algorithm/tet:metric
          /tet:optimization-metric/tet:explicit-route-include-objects
          /tet:route-object-include-object/tet:type/tet:label
          /tet:label-hop/tet:te-label/tet:technology:
    +--:(eth)
       +--rw vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes
          /tet:connectivity-matrices/tet:connectivity-matrix
          /tet:path-properties/tet:path-route-objects/tet:path-route-object
          /tet:type/tet:label/tet:label-hop/tet:te-label/tet:technology:
    +--:(eth)
       +--ro vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:information-source-entry
          /tet:connectivity-matrices/tet:label-restrictions
          /tet:label-restriction:
    +--ro tag-type?   etht-types:eth-tag-type
    +--ro priority?   uint8
  augment /nw:networks/nw:network/nw:node/tet:te/tet:information-source-entry
          /tet:connectivity-matrices/tet:label-restrictions
          /tet:label-restriction/tet:label-start/tet:te-label/tet:technology:
    +--:(eth)
       +--ro vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:information-source-entry
          /tet:connectivity-matrices/tet:label-restrictions
          /tet:label-restriction/tet:label-end/tet:te-label/tet:technology:

Zheng, et al.           Expires September 2, 2019               [Page 9]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

    +--:(eth)
       +--ro vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:information-source-entry
          /tet:connectivity-matrices/tet:label-restrictions
          /tet:label-restriction/tet:label-step/tet:technology:
    +--:(eth)
       +--ro eth-step?   uint16
  augment /nw:networks/nw:network/nw:node/tet:te/tet:information-source-entry
          /tet:connectivity-matrices/tet:underlay/tet:primary-path
          /tet:path-element/tet:type/tet:label/tet:label-hop
          /tet:te-label/tet:technology:
    +--:(eth)
       +--ro vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:information-source-entry
          /tet:connectivity-matrices/tet:underlay/tet:backup-path
          /tet:path-element/tet:type/tet:label/tet:label-hop
          /tet:te-label/tet:technology:
    +--:(eth)
       +--ro vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:information-source-entry
          /tet:connectivity-matrices/tet:optimizations/tet:algorithm/tet:metric
          /tet:optimization-metric/tet:explicit-route-exclude-objects
          /tet:route-object-exclude-object/tet:type/tet:label
          /tet:label-hop/tet:te-label/tet:technology:
    +--:(eth)
       +--ro vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:information-source-entry
          /tet:connectivity-matrices/tet:optimizations/tet:algorithm/tet:metric
          /tet:optimization-metric/tet:explicit-route-include-objects
          /tet:route-object-include-object/tet:type/tet:label
          /tet:label-hop/tet:te-label/tet:technology:
    +--:(eth)
       +--ro vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:information-source-entry
          /tet:connectivity-matrices/tet:path-properties/tet:path-route-objects
          /tet:path-route-object/tet:type/tet:label/tet:label-hop
          /tet:te-label/tet:technology:
    +--:(eth)
       +--ro vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:information-source-entry
          /tet:connectivity-matrices/tet:connectivity-matrix/tet:from
          /tet:label-restrictions/tet:label-restriction:
    +--ro tag-type?   etht-types:eth-tag-type
    +--ro priority?   uint8
  augment /nw:networks/nw:network/nw:node/tet:te/tet:information-source-entry
          /tet:connectivity-matrices/tet:connectivity-matrix/tet:from
          /tet:label-restrictions/tet:label-restriction/tet:label-start
          /tet:te-label/tet:technology:

Zheng, et al.           Expires September 2, 2019              [Page 10]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

    +--:(eth)
       +--ro vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:information-source-entry
          /tet:connectivity-matrices/tet:connectivity-matrix/tet:from
          /tet:label-restrictions/tet:label-restriction/tet:label-end
          /tet:te-label/tet:technology:
    +--:(eth)
       +--ro vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:information-source-entry
          /tet:connectivity-matrices/tet:connectivity-matrix/tet:from
          /tet:label-restrictions/tet:label-restriction/tet:label-step
          /tet:technology:
    +--:(eth)
       +--ro eth-step?   uint16
  augment /nw:networks/nw:network/nw:node/tet:te/tet:information-source-entry
          /tet:connectivity-matrices/tet:connectivity-matrix/tet:to
          /tet:label-restrictions/tet:label-restriction:
    +--ro tag-type?   etht-types:eth-tag-type
    +--ro priority?   uint8
  augment /nw:networks/nw:network/nw:node/tet:te/tet:information-source-entry
          /tet:connectivity-matrices/tet:connectivity-matrix/tet:to
          /tet:label-restrictions/tet:label-restriction/tet:label-start
          /tet:te-label/tet:technology:
    +--:(eth)
       +--ro vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:information-source-entry
          /tet:connectivity-matrices/tet:connectivity-matrix/tet:to
          /tet:label-restrictions/tet:label-restriction/tet:label-end
          /tet:te-label/tet:technology:
    +--:(eth)
       +--ro vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:information-source-entry
          /tet:connectivity-matrices/tet:connectivity-matrix/tet:to
          /tet:label-restrictions/tet:label-restriction/tet:label-step
          /tet:technology:
    +--:(eth)
       +--ro eth-step?   uint16
  augment /nw:networks/nw:network/nw:node/tet:te/tet:information-source-entry
          /tet:connectivity-matrices/tet:connectivity-matrix/tet:underlay
          /tet:primary-path/tet:path-element/tet:type/tet:label
          /tet:label-hop/tet:te-label/tet:technology:
    +--:(eth)
       +--ro vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:information-source-entry
          /tet:connectivity-matrices/tet:connectivity-matrix/tet:underlay
          /tet:backup-path/tet:path-element/tet:type/tet:label/tet:label-hop
          /tet:te-label/tet:technology:
    +--:(eth)

Zheng, et al.           Expires September 2, 2019              [Page 11]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

       +--ro vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:information-source-entry
          /tet:connectivity-matrices/tet:connectivity-matrix/tet:optimizations
          /tet:algorithm/tet:metric/tet:optimization-metric
          /tet:explicit-route-exclude-objects/tet:route-object-exclude-object
          /tet:type/tet:label/tet:label-hop/tet:te-label/tet:technology:
    +--:(eth)
       +--ro vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:information-source-entry
          /tet:connectivity-matrices/tet:connectivity-matrix/tet:optimizations
          /tet:algorithm/tet:metric/tet:optimization-metric
          /tet:explicit-route-include-objects/tet:route-object-include-object
          /tet:type/tet:label/tet:label-hop/tet:te-label/tet:technology:
    +--:(eth)
       +--ro vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:information-source-entry
          /tet:connectivity-matrices/tet:connectivity-matrix/tet:path-properties
          /tet:path-route-objects/tet:path-route-object/tet:type/tet:label
          /tet:label-hop/tet:te-label/tet:technology:
    +--:(eth)
       +--ro vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:tunnel-termination-point
          /tet:local-link-connectivities/tet:label-restrictions
          /tet:label-restriction:
    +--rw tag-type?   etht-types:eth-tag-type
    +--rw priority?   uint8
  augment /nw:networks/nw:network/nw:node/tet:te/tet:tunnel-termination-point
          /tet:local-link-connectivities/tet:label-restrictions
          /tet:label-restriction/tet:label-start/tet:te-label/tet:technology:
    +--:(eth)
       +--rw vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:tunnel-termination-point
          /tet:local-link-connectivities/tet:label-restrictions
          /tet:label-restriction/tet:label-end/tet:te-label/tet:technology:
    +--:(eth)
       +--rw vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:tunnel-termination-point
          /tet:local-link-connectivities/tet:label-restrictions
          /tet:label-restriction/tet:label-step/tet:technology:
    +--:(eth)
       +--rw eth-step?   uint16
  augment /nw:networks/nw:network/nw:node/tet:te/tet:tunnel-termination-point
          /tet:local-link-connectivities/tet:underlay/tet:primary-path
          /tet:path-element/tet:type/tet:label/tet:label-hop/tet:te-label
          /tet:technology:
    +--:(eth)
       +--rw vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:tunnel-termination-point

Zheng, et al.           Expires September 2, 2019              [Page 12]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

          /tet:local-link-connectivities/tet:underlay/tet:backup-path
          /tet:path-element/tet:type/tet:label/tet:label-hop/tet:te-label
          /tet:technology:
    +--:(eth)
       +--rw vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:tunnel-termination-point
          /tet:local-link-connectivities/tet:optimizations/tet:algorithm
          /tet:metric/tet:optimization-metric/tet:explicit-route-exclude-objects
          /tet:route-object-exclude-object/tet:type/tet:label/tet:label-hop
          /tet:te-label/tet:technology:
    +--:(eth)
       +--rw vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:tunnel-termination-point
          /tet:local-link-connectivities/tet:optimizations/tet:algorithm
          /tet:metric/tet:optimization-metric/tet:explicit-route-include-objects
          /tet:route-object-include-object/tet:type/tet:label/tet:label-hop
          /tet:te-label/tet:technology:
    +--:(eth)
       +--rw vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:tunnel-termination-point
          /tet:local-link-connectivities/tet:path-properties
          /tet:path-route-objects/tet:path-route-object/tet:type/tet:label
          /tet:label-hop/tet:te-label/tet:technology:
    +--:(eth)
       +--ro vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:tunnel-termination-point
          /tet:local-link-connectivities/tet:local-link-connectivity
          /tet:label-restrictions/tet:label-restriction:
    +--rw tag-type?   etht-types:eth-tag-type
    +--rw priority?   uint8
  augment /nw:networks/nw:network/nw:node/tet:te/tet:tunnel-termination-point
          /tet:local-link-connectivities/tet:local-link-connectivity
          /tet:label-restrictions/tet:label-restriction/tet:label-start
          /tet:te-label/tet:technology:
    +--:(eth)
       +--rw vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:tunnel-termination-point
          /tet:local-link-connectivities/tet:local-link-connectivity
          /tet:label-restrictions/tet:label-restriction/tet:label-end
          /tet:te-label/tet:technology:
    +--:(eth)
       +--rw vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:tunnel-termination-point
          /tet:local-link-connectivities/tet:local-link-connectivity
          /tet:label-restrictions/tet:label-restriction/tet:label-step
          /tet:technology:
    +--:(eth)
       +--rw eth-step?   uint16

Zheng, et al.           Expires September 2, 2019              [Page 13]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

  augment /nw:networks/nw:network/nw:node/tet:te/tet:tunnel-termination-point
          /tet:local-link-connectivities/tet:local-link-connectivity
          /tet:underlay/tet:primary-path/tet:path-element/tet:type
          /tet:label/tet:label-hop/tet:te-label/tet:technology:
    +--:(eth)
       +--rw vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:tunnel-termination-point
          /tet:local-link-connectivities/tet:local-link-connectivity
          /tet:underlay/tet:backup-path/tet:path-element/tet:type/tet:label
          /tet:label-hop/tet:te-label/tet:technology:
    +--:(eth)
       +--rw vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:tunnel-termination-point
          /tet:local-link-connectivities/tet:local-link-connectivity
          /tet:optimizations/tet:algorithm/tet:metric/tet:optimization-metric
          /tet:explicit-route-exclude-objects/tet:route-object-exclude-object
          /tet:type/tet:label/tet:label-hop/tet:te-label/tet:technology:
    +--:(eth)
       +--rw vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:tunnel-termination-point
          /tet:local-link-connectivities/tet:local-link-connectivity
          /tet:optimizations/tet:algorithm/tet:metric/tet:optimization-metric
          /tet:explicit-route-include-objects/tet:route-object-include-object
          /tet:type/tet:label/tet:label-hop/tet:te-label/tet:technology:
    +--:(eth)
       +--rw vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nw:node/tet:te/tet:tunnel-termination-point
          /tet:local-link-connectivities/tet:local-link-connectivity
          /tet:path-properties/tet:path-route-objects/tet:path-route-object
          /tet:type/tet:label/tet:label-hop/tet:te-label/tet:technology:
    +--:(eth)
       +--ro vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nt:link/tet:te/tet:te-link-attributes
          /tet:underlay/tet:primary-path/tet:path-element/tet:type
          /tet:label/tet:label-hop/tet:te-label/tet:technology:
    +--:(eth)
       +--rw vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nt:link/tet:te/tet:te-link-attributes
          /tet:underlay/tet:backup-path/tet:path-element/tet:type
          /tet:label/tet:label-hop/tet:te-label/tet:technology:
    +--:(eth)
       +--rw vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nt:link/tet:te/tet:te-link-attributes
          /tet:label-restrictions/tet:label-restriction:
    +--rw tag-type?   etht-types:eth-tag-type
    +--rw priority?   uint8
  augment /nw:networks/nw:network/nt:link/tet:te/tet:te-link-attributes
          /tet:label-restrictions/tet:label-restriction/tet:label-start

Zheng, et al.           Expires September 2, 2019              [Page 14]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

          /tet:te-label/tet:technology:
    +--:(eth)
       +--rw vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nt:link/tet:te/tet:te-link-attributes
          /tet:label-restrictions/tet:label-restriction/tet:label-end
          /tet:te-label/tet:technology:
    +--:(eth)
       +--rw vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nt:link/tet:te/tet:te-link-attributes
          /tet:label-restrictions/tet:label-restriction/tet:label-step
          /tet:technology:
    +--:(eth)
       +--rw eth-step?   uint16
  augment /nw:networks/nw:network/nt:link/tet:te/tet:information-source-entry
          /tet:label-restrictions/tet:label-restriction:
    +--ro tag-type?   etht-types:eth-tag-type
    +--ro priority?   uint8
  augment /nw:networks/nw:network/nt:link/tet:te/tet:information-source-entry
          /tet:label-restrictions/tet:label-restriction/tet:label-start
          /tet:te-label/tet:technology:
    +--:(eth)
       +--ro vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nt:link/tet:te/tet:information-source-entry
          /tet:label-restrictions/tet:label-restriction/tet:label-end
          /tet:te-label/tet:technology:
    +--:(eth)
       +--ro vlanid?   etht-types:vlanid
  augment /nw:networks/nw:network/nt:link/tet:te/tet:information-source-entry
          /tet:label-restrictions/tet:label-restriction/tet:label-step
          /tet:technology:
    +--:(eth)
       +--ro eth-step?   uint16
  augment /nw:networks/tet:te/tet:templates/tet:link-template
          /tet:te-link-attributes/tet:underlay/tet:primary-path
          /tet:path-element/tet:type/tet:label/tet:label-hop
          /tet:te-label/tet:technology:
    +--:(eth)
       +--rw vlanid?   etht-types:vlanid
  augment /nw:networks/tet:te/tet:templates/tet:link-template
          /tet:te-link-attributes/tet:underlay/tet:backup-path
          /tet:path-element/tet:type/tet:label/tet:label-hop
          /tet:te-label/tet:technology:
    +--:(eth)
       +--rw vlanid?   etht-types:vlanid
  augment /nw:networks/tet:te/tet:templates/tet:link-template
          /tet:te-link-attributes/tet:label-restrictions
          /tet:label-restriction:
    +--rw tag-type?   etht-types:eth-tag-type

Zheng, et al.           Expires September 2, 2019              [Page 15]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

    +--rw priority?   uint8
  augment /nw:networks/tet:te/tet:templates/tet:link-template
          /tet:te-link-attributes/tet:label-restrictions
          /tet:label-restriction/tet:label-start/tet:te-label/tet:technology:
    +--:(eth)
       +--rw vlanid?   etht-types:vlanid
  augment /nw:networks/tet:te/tet:templates/tet:link-template
          /tet:te-link-attributes/tet:label-restrictions
          /tet:label-restriction/tet:label-end/tet:te-label/tet:technology:
    +--:(eth)
       +--rw vlanid?   etht-types:vlanid
  augment /nw:networks/tet:te/tet:templates/tet:link-template
          /tet:te-link-attributes/tet:label-restrictions
          /tet:label-restriction/tet:label-step/tet:technology:
    +--:(eth)
       +--rw eth-step?   uint16

4.  YANG Code for Topology Client Layer

4.1.  The ETH Topology YANG Code

<CODE BEGINS> file "ietf-eth-te-topology@2019-03-01.yang"

module ietf-eth-te-topology {
//      yang-version 1.1;

        namespace "urn:ietf:params:xml:ns:yang:ietf-eth-te-topology";

        prefix "ethtetopo";

        import ietf-network {
                prefix "nw";
        }

        import ietf-network-topology {
                prefix "nt";
        }

        import ietf-te-topology {
                prefix "tet";
        }

        import ietf-yang-types {
                prefix "yang";
        }

Zheng, et al.           Expires September 2, 2019              [Page 16]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

        import ietf-eth-tran-types {
                prefix "etht-types";
        }

        organization
                "Internet Engineering Task Force (IETF) CCAMP WG";
  contact
    "
      WG List: <mailto:ccamp@ietf.org>

      ID-draft editor:
        Haomian Zheng (zhenghaomian@huawei.com);
        Italo Busi (italo.busi@huawei.com);
        Aihua Guo (aihuaguo@huawei.com);
        Yunbin Xu (xuyunbin@ritt.cn);
        Yang Zhao (zhaoyangyjy@chinamobile.com);
        Xufeng Liu (Xufeng_Liu@jabil.com);
    ";

        description
                "This module defines a YANG data model for describing
                layer-2 Ethernet transport topologies.";

        revision 2019-03-01 {
                description
                        "Updated version to align with TE topology";
                reference
                        "draft-zheng-ccamp-client-topo-yang";
        }

        /*
        Groupings
        */

        grouping eth-tran-topology-type {
                description
                        "Identifies the Ethernet Transport topology type";

                container eth-tran-topology {
                        presence "indicates a topology type of Ethernet
                                                                Transport Network.";
                        description "Eth transport topology type";
                }
        }

        grouping ltp-bandwidth-profiles {
                description
                        "A grouping which represents the bandwidt profile(s) for the ETH LTP.";

Zheng, et al.           Expires September 2, 2019              [Page 17]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

                choice direction {
                        description
                                "Whether the bandwidth profiles are symmetrical or
                                 asymmetrical";
                        case symmetrical {
                                description
                                        "The same bandwidth profile is used to describe the ingress
                                        and the egress bandwidth profile.";

                                container ingress-egress-bandwidth-profile {
                                        description
                                                "The bandwith profile used in the ingress and egress direction.";
                                        uses etht-types:etht-bandwidth-profiles;
                                }
                        }
                        case asymmetrical {
                                description
                                        "Different ingress and egress bandwidth profiles
                                        can be specified.";
                                container ingress-bandwidth-profile {
                                        description
                                                "The bandwidth profile used in the ingress direction.";
                                        uses etht-types:etht-bandwidth-profiles;
                                }
                                container egress-bandwidth-profile {
                                        description
                                                "The bandwidth profile used in the egress direction.";
                                        uses etht-types:etht-bandwidth-profiles;
                                }
                        }
                }
        }

        grouping eth-ltp-attributes {
                description
                        "Ethernet transport link termination point attributes";

                /*
                        Open Issue: should we remove this attribute (duplicates with I2RS L2 attributes)?
                */
                leaf ltp-mac-address {
                        type yang:mac-address;
                        description "the MAC address of the LTP.";
                }
                /*
                        Open Issue: should we remove this attribute (duplicates with I2RS L2 attributes)?
                */
                leaf port-vlan-id {

Zheng, et al.           Expires September 2, 2019              [Page 18]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

                        type etht-types:vlanid;
                        description "the port VLAN ID of the LTP.";
                }
                /*
                        Open Issue: should we remove this attribute (duplicates with I2RS L2 attributes)?
                */
                leaf maximum-frame-size {
                        type uint16 {
                                range "64 .. 65535";
                        }
                        description
                                "Maximum frame size";
                }
                uses ltp-bandwidth-profiles;
        }

        grouping svc-vlan-classification {
                description
                        "Grouping defining the capabilities for VLAN classification.";

                leaf-list supported-tag-types {
                        type etht-types:eth-tag-classify;
                        description
                                "List of VLAN tag types that can be used for the VLAN classification.
                                In case VLAN classification is not supported, the list is empty.";
                }
                leaf vlan-bundling {
                        type boolean;
                        description
                                "In case VLAN classification is supported, indicates whether VLAN bundling classification is also supported.";
                }
                leaf vlan-range {
                        type etht-types:vid-range-type;
                        description
                                "In case VLAN classification is supported, indicates the of available VLAN ID values.";
                }
        }

        grouping svc-vlan-push {
                description
                        "Grouping defining the capabilities for VLAN push or swap operations.";

                leaf-list supported-tag-types {
                        type etht-types:eth-tag-type;
                        description
                                "List of VLAN tag types that can be used to push or swap a VLAN tag.
                                In case VLAN push/swap is not supported, the list is empty.";
                }

Zheng, et al.           Expires September 2, 2019              [Page 19]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

                leaf vlan-range {
                        type etht-types:vid-range-type;
                        description
                                "In case VLAN push/swap operation is supported, the range of available VLAN ID values.";
                }
        }

        grouping eth-ltp-svc-attributes {
                description
                        "Ethernet link termination point (LTP) service attributes.";

                leaf client-facing {
                        type boolean;
                        description
                                "indicates whether this LTP is a client-facing ltp.";
                }

                container supported-classification {
                        description
                                "Service classification capabilities supported by the ETH LTP.";
                        leaf transparent{
                                type boolean;
                                description
                                        "Indicates that the ETH LTP support transparent ETH client service.";
                        }
                        leaf port-classification {
                                type boolean;
                                description
                                        "Indicates that the ETH LTP support port-based service classification.";
                        }
                        container vlan-classification {
                                description
                                        "Service classification capabilities based on the VLAN tag(s)
                                        supported by the ETH LTP.";

                                leaf vlan-tag-classification {
                                        type boolean;
                                        description
                                                "Indicates that the ETH LTP supports VLAN service classification.";
                                }
                                container outer-tag {
                                        description
                                                "Service classification capabilities based on the outer VLAN tag,
                                                supported by the ETH LTP.";
                                        uses svc-vlan-classification;
                                }
                                container second-tag {
                                        description

Zheng, et al.           Expires September 2, 2019              [Page 20]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

                                                "Service classification capabilities based on the second VLAN tag,
                                                supported by the ETH LTP.";
                                        /*
                                                Open issue: indicates that second-tag-classification can be True only if
                                                outer-tag-classification is also True.
                                        */
                                        leaf second-tag-classification {
                                                type boolean;
                                                description
                                                        "Indicates that the ETH LTP support  VLAN service classification
                                                        based on the second VLAN tag.";
                                        }
                                        uses svc-vlan-classification;
                                }
                        }
                }

                container supported-vlan-operations {
                description
                                        "Description.";
                        leaf asymmetrical-operations {
                                type boolean;
                                description
                                        "Indicates whether the ETH LTP supports also asymmetrical VLAN operations.
                                        It is assumed that symmetrical VLAN operations are alwyas supported.";
                        }
                        leaf transparent-vlan-operations {
                                type boolean;
                                description
                                        "Indicates that the ETH LTP supports transparent operations.";
                        }
                        container vlan-pop {
                                description
                                        "Indicates VLAN pop or swap operations capabilities.";

                                leaf vlan-pop-operations {
                                        type boolean;
                                        description
                                                "Indicates that the ETH LTP supports VLAN pop or swap operations.";
                                }
                                leaf max-pop-tags {
                                        type uint8 {
                                                range "1..2";
                                        }
                                        description
                                                "Indicates the maximum number of tags that can be popped/swapped.";
                                }
                        }

Zheng, et al.           Expires September 2, 2019              [Page 21]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

                        container vlan-push {
                                description
                                        "Indicates VLAN push or swap operations capabilities.";

                                leaf vlan-push-operation {
                                        type boolean;
                                        description
                                                "Indicates that the ETH LTP supports VLAN push or swap operations.";
                                }
                                container outer-tag {
                                        description
                                                "Indicates the supported VLAN operation capabilities on the outer VLAN tag.";
                                        uses svc-vlan-push;
                                }
                                container second-tag {
                                        description
                                                "Indicates the supported VLAN operation capabilities on the second VLAN tag.";

                                        leaf push-second-tag {
                                                type boolean;
                                                description
                                                        "Indicates that the ETH LTP supports VLAN push or swap operations
                                                        for the second VLAN tag.";
                                        }
                                        uses svc-vlan-push;
                                }
                        }
                }
        }

        /*
        Data nodes
        */

        augment "/nw:networks/nw:network/nw:network-types/tet:te-topology" {
                description
                        "Augment network types to include ETH transport newtork";

                uses eth-tran-topology-type;
        }

        augment "/nw:networks/nw:network/nw:node/nt:termination-point" {
                when "../../nw:network-types/tet:te-topology/eth-tran-topology" {
                        description
                                "Augment only for ETH transport network";
                }
                description
                        "Augment ETH LTP attributes";

Zheng, et al.           Expires September 2, 2019              [Page 22]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

                uses eth-ltp-attributes;
                container svc {
                        presence "client-facing LTP.";

                        description
                                "ETH LTP Service attributes.";
                        uses eth-ltp-svc-attributes;
                }
        }

  /*
   * Augment TE bandwidth
   */

  /* Augment maximum LSP bandwidth of link terminationpoint (LTP) */
  augment "/nw:networks/nw:network/nw:node/nt:termination-point/"
        + "tet:te/"
        + "tet:interface-switching-capability/tet:max-lsp-bandwidth/"
        + "tet:te-bandwidth/tet:technology" {
    when "../../../../../../nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment Ethernet TE bandwidth";
    }
    description "Ethernet bandwidth.";
    case eth {
      uses etht-types:eth-bandwidth;
    }
  }
  /* Augment bandwidth path constraints of connectivity-matrices */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:path-constraints/tet:te-bandwidth/tet:technology" {
    when "../../../../../../nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment Ethernet TE bandwidth";
    }
    description "Ethernet bandwidth.";
    case eth {
      uses etht-types:eth-bandwidth;
    }
  }

  /* Augment bandwidth path constraints of connectivity-matrix */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/"
        + "tet:path-constraints/tet:te-bandwidth/tet:technology" {
    when "../../../../../../../nw:network-types/tet:te-topology/"

Zheng, et al.           Expires September 2, 2019              [Page 23]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

       + "ethtetopo:eth-tran-topology" {
      description "Augment Ethernet TE bandwidth";
    }
    description "Ethernet bandwidth.";
    case eth {
      uses etht-types:eth-bandwidth;
    }
  }

  /* Augment bandwidth path constraints of connectivity-matrices information-source */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/tet:connectivity-matrices/"
        + "tet:path-constraints/tet:te-bandwidth/tet:technology" {
    when "../../../../../../nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment Ethernet TE bandwidth";
    }
    description "Ethernet bandwidth.";
    case eth {
      uses etht-types:eth-bandwidth;
    }
  }

  /* Augment bandwidth path constraints of connectivity-matrix information-source */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/"
        + "tet:path-constraints/tet:te-bandwidth/tet:technology" {
    when "../../../../../../../nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment Ethernet TE bandwidth";
    }
    description "Ethernet bandwidth.";
    case eth {
      uses etht-types:eth-bandwidth;
    }
  }

  /* Augment client bandwidth of tunnel termination point (TTP) */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:tunnel-termination-point/"
        + "tet:client-layer-adaptation/tet:switching-capability/"
        + "tet:te-bandwidth/tet:technology" {
    when "../../../../../../nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment Ethernet TE bandwidth";
    }
    description "Ethernet bandwidth.";

Zheng, et al.           Expires September 2, 2019              [Page 24]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

    case eth {
      uses etht-types:eth-bandwidth;
    }
  }

  /* Augment bandwidth path constraints of local-link-connectivities */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:tunnel-termination-point/"
        + "tet:local-link-connectivities/tet:path-constraints/"
        + "tet:te-bandwidth/tet:technology" {
    when "../../../../../../nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment Ethernet TE bandwidth";
    }
    description "Ethernet bandwidth.";
    case eth {
      uses etht-types:eth-bandwidth;
    }
  }

  /* Augment bandwidth path constraints of local-link-connectivity (LLC) */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:tunnel-termination-point/"
        + "tet:local-link-connectivities/"
        + "tet:local-link-connectivity/tet:path-constraints/"
        + "tet:te-bandwidth/tet:technology" {
    when "../../../../../../../nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment Ethernet TE bandwidth";
    }
    description "Ethernet bandwidth.";
    case eth {
      uses etht-types:eth-bandwidth;
    }
  }

  /* Augment maximum LSP bandwidth of TE link */
  augment "/nw:networks/nw:network/nt:link/tet:te/"
        + "tet:te-link-attributes/"
        + "tet:interface-switching-capability/tet:max-lsp-bandwidth/"
        + "tet:te-bandwidth/tet:technology" {
    when "../../../../../../nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Ethernet TE bandwidth.";
    }
    description "Ethernet bandwidth.";
    case eth {
      uses etht-types:eth-bandwidth;

Zheng, et al.           Expires September 2, 2019              [Page 25]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

    }
  }

  /* Augment maximum bandwidth of TE link */
  augment "/nw:networks/nw:network/nt:link/tet:te/"
        + "tet:te-link-attributes/"
        + "tet:max-link-bandwidth/"
        + "tet:te-bandwidth/tet:technology" {
    when "../../../../../nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Ethernet TE bandwidth.";
    }
    description "Ethernet bandwidth.";
    case eth {
      uses etht-types:eth-bandwidth;
    }
  }

  /* Augment maximum reservable bandwidth of TE link */
  augment "/nw:networks/nw:network/nt:link/tet:te/"
        + "tet:te-link-attributes/"
        + "tet:max-resv-link-bandwidth/"
        + "tet:te-bandwidth/tet:technology" {
    when "../../../../../nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Ethernet TE bandwidth.";
    }
    description "Ethernet bandwidth.";
    case eth {
      uses etht-types:eth-bandwidth;
    }
  }

  /* Augment unreserved bandwidth of TE Link */
  augment "/nw:networks/nw:network/nt:link/tet:te/"
        + "tet:te-link-attributes/"
        + "tet:unreserved-bandwidth/"
        + "tet:te-bandwidth/tet:technology" {
    when "../../../../../nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Ethernet TE bandwidth.";
    }
    description "Ethernet bandwidth.";
    case eth {
      uses etht-types:eth-bandwidth;
    }
  }
  /* Augment maximum LSP bandwidth of TE link information-source */

Zheng, et al.           Expires September 2, 2019              [Page 26]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

  augment "/nw:networks/nw:network/nt:link/tet:te/"
        + "tet:information-source-entry/"
        + "tet:interface-switching-capability/"
        + "tet:max-lsp-bandwidth/"
        + "tet:te-bandwidth/tet:technology" {
    when "../../../../../../nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Ethernet TE bandwidth.";
    }
    description "Ethernet bandwidth.";
    case eth {
      uses etht-types:eth-bandwidth;
    }
  }

  /* Augment maximum bandwidth of TE link information-source */
  augment "/nw:networks/nw:network/nt:link/tet:te/"
        + "tet:information-source-entry/"
        + "tet:max-link-bandwidth/"
        + "tet:te-bandwidth/tet:technology" {
    when "../../../../../nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Ethernet TE bandwidth.";
    }
    description "Ethernet bandwidth.";
    case eth {
      uses etht-types:eth-bandwidth;
    }
  }

  /* Augment maximum reservable bandwidth of TE link information-source */
  augment "/nw:networks/nw:network/nt:link/tet:te/"
        + "tet:information-source-entry/"
        + "tet:max-resv-link-bandwidth/"
        + "tet:te-bandwidth/tet:technology" {
    when "../../../../../nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Ethernet TE bandwidth.";
    }
    description "Ethernet bandwidth.";
    case eth {
      uses etht-types:eth-bandwidth;
    }
  }

  /* Augment unreserved bandwidth of TE link information-source */
  augment "/nw:networks/nw:network/nt:link/tet:te/"
        + "tet:information-source-entry/"

Zheng, et al.           Expires September 2, 2019              [Page 27]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

        + "tet:unreserved-bandwidth/"
        + "tet:te-bandwidth/tet:technology" {
    when "../../../../../nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Ethernet TE bandwidth.";
    }
    description "Ethernet bandwidth.";
    case eth {
      uses etht-types:eth-bandwidth;
    }
  }

  /* Augment maximum LSP bandwidth of TE link template */
  augment "/nw:networks/tet:te/tet:templates/"
        + "tet:link-template/tet:te-link-attributes/"
        + "tet:interface-switching-capability/"
        + "tet:max-lsp-bandwidth/"
        + "tet:te-bandwidth/tet:technology" {
/*
    when "../../../../../../nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Ethernet TE bandwidth.";
    }
*/
    description "Ethernet bandwidth.";
    case eth {
      uses etht-types:eth-bandwidth;
    }
  }

  /* Augment maximum bandwidth of TE link template */
  augment "/nw:networks/tet:te/tet:templates/"
        + "tet:link-template/tet:te-link-attributes/"
        + "tet:max-link-bandwidth/"
        + "tet:te-bandwidth/tet:technology" {
/*
    when "../../../../../nw:network-types/tet:te-topology/"
        + "ethtetopo:eth-tran-topology" {
      description "Ethernet TE bandwidth.";
    }
*/
    description "Ethernet bandwidth.";
    case eth {
      uses etht-types:eth-bandwidth;
    }
  }

  /* Augment maximum reservable bandwidth of TE link template */

Zheng, et al.           Expires September 2, 2019              [Page 28]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

  augment "/nw:networks/tet:te/tet:templates/"
        + "tet:link-template/tet:te-link-attributes/"
        + "tet:max-resv-link-bandwidth/"
        + "tet:te-bandwidth/tet:technology" {
/*
    when "../../../../../nw:network-types/tet:te-topology/"
        + "ethtetopo:eth-tran-topology" {
      description "Ethernet TE bandwidth.";
    }
*/
    description "Ethernet bandwidth.";
    case eth {
      uses etht-types:eth-bandwidth;
    }
  }

  /* Augment unreserved bandwidth of TE link template */
  augment "/nw:networks/tet:te/tet:templates/"
        + "tet:link-template/tet:te-link-attributes/"
        + "tet:unreserved-bandwidth/"
        + "tet:te-bandwidth/tet:technology" {
/*
    when "../../../../../../nw:network-types/tet:te-topology/"
        + "ethtetopo:eth-tran-topology" {
      description "Ethernet TE bandwidth.";
    }
*/
    description "Ethernet bandwidth.";
    case eth {
      uses etht-types:eth-bandwidth;
    }
  }

  /*
   * Augment TE label.
   */

  /* Augment label restrictions of connectivity-matrices */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:label-restrictions/tet:label-restriction" {
    when "../../../../../../nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label restriction.";
    uses etht-types:eth-label-restriction;
  }

Zheng, et al.           Expires September 2, 2019              [Page 29]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

  /* Augment label restrictions start of connectivity-matrices */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:label-restrictions/tet:label-restriction/tet:label-start/"
        + "tet:te-label/tet:technology" {
    when "../../../../../../../../nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment label restrictions end of connectivity-matrices */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:label-restrictions/tet:label-restriction/tet:label-end/"
        + "tet:te-label/tet:technology" {
    when "../../../../../../../../nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment label restrictions step of connectivity-matrices */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:label-restrictions/tet:label-restriction/tet:label-step/"
        + "tet:technology" {
    when "../../../../../../../nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label-step;
    }
  }

  /* Augment label hop of underlay primary path of connectivity-matrices */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"

Zheng, et al.           Expires September 2, 2019              [Page 30]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

        + "tet:underlay/tet:primary-path/tet:path-element/"
        + "tet:type/tet:label/tet:label-hop/"
        + "tet:te-label/tet:technology" {
    when "../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }
  /* Augment label hop of underlay backup path of connectivity-matrices */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:underlay/tet:backup-path/tet:path-element/"
        + "tet:type/tet:label/tet:label-hop/"
        + "tet:te-label/tet:technology" {
    when "../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment label hop of route-exclude of connectivity-matrices */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:optimizations/tet:algorithm/tet:metric/"
        + "tet:optimization-metric/"
        + "tet:explicit-route-exclude-objects/"
        + "tet:route-object-exclude-object/"
        + "tet:type/tet:label/tet:label-hop/"
        + "tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }

Zheng, et al.           Expires September 2, 2019              [Page 31]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

  }

  /* Augment label hop of route-include of connectivity-matrices (added) */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:optimizations/tet:algorithm/tet:metric/"
        + "tet:optimization-metric/"
        + "tet:explicit-route-include-objects/"
        + "tet:route-object-include-object/"
        + "tet:type/tet:label/tet:label-hop/"
        + "tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment label hop of path-route of connectivity-matrices */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:path-properties/tet:path-route-objects/"
        + "tet:path-route-object/tet:type/tet:label/tet:label-hop/"
        + "tet:te-label/tet:technology"{
    when "../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment ingress label restrictions of connectivity-matrix */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/tet:from/"
        + "tet:label-restrictions/tet:label-restriction" {
    when "../../../../../../../../nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }

Zheng, et al.           Expires September 2, 2019              [Page 32]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

    description "Ethernet label.";
    uses etht-types:eth-label-restriction;
  }

  /* Augment ingress label restrictions start of connectivity-matrix */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/tet:from/"
        + "tet:label-restrictions/tet:label-restriction/tet:label-start/"
        + "tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment ingress label restrictions end of connectivity-matrix */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/tet:from/"
        + "tet:label-restrictions/tet:label-restriction/tet:label-end/"
        + "tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment ingress label restrictions step of connectivity-matrix */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/tet:from/"
        + "tet:label-restrictions/tet:label-restriction/tet:label-step/"
        + "tet:technology" {
    when "../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";

Zheng, et al.           Expires September 2, 2019              [Page 33]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label-step;
    }
  }

  /* Augment egress label restrictions of connectivity-matrix */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/tet:to/"
        + "tet:label-restrictions/tet:label-restriction" {
    when "../../../../../../../../nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    uses etht-types:eth-label-restriction;
  }

  /* Augment egress label restrictions start of connectivity-matrix */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/tet:to/"
        + "tet:label-restrictions/tet:label-restriction/tet:label-start/"
        + "tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment egress label restrictions end of connectivity-matrix */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/tet:to/"
        + "tet:label-restrictions/tet:label-restriction/tet:label-end/"
        + "tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }

Zheng, et al.           Expires September 2, 2019              [Page 34]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment egress label restrictions step of connectivity-matrix */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/tet:to/"
        + "tet:label-restrictions/tet:label-restriction/tet:label-step/"
        + "tet:technology" {
    when "../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label-step;
    }
  }

  /* Augment label hop of underlay primary path of connectivity-matrix */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/"
        + "tet:underlay/tet:primary-path/tet:path-element/"
        + "tet:type/tet:label/tet:label-hop/"
        + "tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment label hop of underlay backup path of connectivity-matrix */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/"
        + "tet:underlay/tet:backup-path/tet:path-element/"
        + "tet:type/tet:label/tet:label-hop/"
        + "tet:te-label/tet:technology" {

Zheng, et al.           Expires September 2, 2019              [Page 35]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment label hop of route-exclude of connectivity-matrix */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/tet:optimizations/"
        + "tet:algorithm/tet:metric/tet:optimization-metric/"
        + "tet:explicit-route-exclude-objects/"
        + "tet:route-object-exclude-object/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment label hop of route-include of connectivity-matrix */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/tet:optimizations/"
        + "tet:algorithm/tet:metric/tet:optimization-metric/"
        + "tet:explicit-route-include-objects/"
        + "tet:route-object-include-object/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

Zheng, et al.           Expires September 2, 2019              [Page 36]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

  /* Augment label hop of path-route of connectivity-matrix */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/"
        + "tet:path-properties/tet:path-route-objects/"
        + "tet:path-route-object/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment label restrictions of connectivity-matrices information-source */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/"
        + "tet:connectivity-matrices/tet:label-restrictions/tet:label-restriction" {
    when "../../../../../../nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    uses etht-types:eth-label-restriction;
  }

  /* Augment label restrictions start of connectivity-matrices information-source */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/"
        + "tet:connectivity-matrices/tet:label-restrictions/tet:label-restriction/"
        + "tet:label-start/tet:te-label/tet:technology" {
    when "../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment label restrictions end of connectivity-matrices information-source */
  augment "/nw:networks/nw:network/nw:node/tet:te/"

Zheng, et al.           Expires September 2, 2019              [Page 37]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

        + "tet:information-source-entry/"
        + "tet:connectivity-matrices/tet:label-restrictions/tet:label-restriction/"
        + "tet:label-end/tet:te-label/tet:technology" {
    when "../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment label restrictions step of connectivity-matrices information-source */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/"
        + "tet:connectivity-matrices/tet:label-restrictions/tet:label-restriction/"
        + "tet:label-step/tet:technology" {
    when "../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label-step;
    }
  }

  /* Augment label hop of underlay primary path of connectivity-matrices information-source */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/tet:connectivity-matrices/"
        + "tet:underlay/tet:primary-path/tet:path-element/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment label hop of underlay backup path of connectivity-matrices information-source */
  augment "/nw:networks/nw:network/nw:node/tet:te/"

Zheng, et al.           Expires September 2, 2019              [Page 38]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

        + "tet:information-source-entry/tet:connectivity-matrices/"
        + "tet:underlay/tet:backup-path/tet:path-element/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment label hop of route-exclude of connectivity-matrices information-source */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/tet:connectivity-matrices/"
        + "tet:optimizations/tet:algorithm/tet:metric/"
        + "tet:optimization-metric/"
        + "tet:explicit-route-exclude-objects/"
        + "tet:route-object-exclude-object/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment label hop of route-include of connectivity-matrices information-source */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/tet:connectivity-matrices/"
        + "tet:optimizations/tet:algorithm/tet:metric/"
        + "tet:optimization-metric/"
        + "tet:explicit-route-include-objects/"
        + "tet:route-object-include-object/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {

Zheng, et al.           Expires September 2, 2019              [Page 39]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

      uses etht-types:eth-label;
    }
  }

  /* Augment label hop of path-route of connectivity-matrices information-source */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/tet:connectivity-matrices/"
        + "tet:path-properties/tet:path-route-objects/"
        + "tet:path-route-object/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment ingress label restrictions of connectivity-matrix information-source */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/"
        + "tet:from/tet:label-restrictions/tet:label-restriction" {
    when "../../../../../../../../nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    uses etht-types:eth-label-restriction;
  }

  /* Augment ingress label restrictions start of connectivity-matrix information-source */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/"
        + "tet:from/tet:label-restrictions/tet:label-restriction/"
        + "tet:label-start/tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;

Zheng, et al.           Expires September 2, 2019              [Page 40]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

    }
  }

  /* Augment ingress label restrictions end of connectivity-matrix information-source */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/"
        + "tet:from/tet:label-restrictions/tet:label-restriction/"
        + "tet:label-end/tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment ingress label restrictions step of connectivity-matrix information-source */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/"
        + "tet:from/tet:label-restrictions/tet:label-restriction/"
        + "tet:label-step/tet:technology" {
    when "../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label-step;
    }
  }

  /* Augment egress label restrictions of connectivity-matrix information-source */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/"
        + "tet:to/tet:label-restrictions/tet:label-restriction" {
    when "../../../../../../../../nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    uses etht-types:eth-label-restriction;

Zheng, et al.           Expires September 2, 2019              [Page 41]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

  }

  /* Augment egress label restrictions start of connectivity-matrix information-source */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/"
        + "tet:to/tet:label-restrictions/tet:label-restriction/"
        + "tet:label-start/tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment egress label restrictions end of connectivity-matrix information-source */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/"
        + "tet:to/tet:label-restrictions/tet:label-restriction/"
        + "tet:label-end/tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment egress label restrictions step of connectivity-matrix information-source */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/"
        + "tet:to/tet:label-restrictions/tet:label-restriction/"
        + "tet:label-step/tet:technology" {
    when "../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";

Zheng, et al.           Expires September 2, 2019              [Page 42]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

    case eth {
      uses etht-types:eth-label-step;
    }
  }

  /* Augment label hop of underlay primary path of connectivity-matrix information-source */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/"
        + "tet:underlay/tet:primary-path/tet:path-element/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment label hop of underlay backup path of connectivity-matrix information-source */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/"
        + "tet:underlay/tet:backup-path/tet:path-element/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment label hop of route-exclude of connectivity-matrix information-source */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/"
        + "tet:optimizations/tet:algorithm/tet:metric/"
        + "tet:optimization-metric/"
        + "tet:explicit-route-exclude-objects/"
        + "tet:route-object-exclude-object/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {

Zheng, et al.           Expires September 2, 2019              [Page 43]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

    when "../../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment label hop of route-include of connectivity-matrix information-source */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/"
        + "tet:optimizations/tet:algorithm/tet:metric/"
        + "tet:optimization-metric/"
        + "tet:explicit-route-include-objects/"
        + "tet:route-object-include-object/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment label hop of path-route of connectivity-matrix information-source */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/"
        + "tet:path-properties/tet:path-route-objects/"
        + "tet:path-route-object/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

Zheng, et al.           Expires September 2, 2019              [Page 44]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

  /* Augment label restrictions of local-link-connectivities */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:tunnel-termination-point/"
        + "tet:local-link-connectivities/"
        + "tet:label-restrictions/tet:label-restriction" {
    when "../../../../../../nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    uses etht-types:eth-label-restriction;
  }

  /* Augment label restrictions start of local-link-connectivities */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:tunnel-termination-point/"
        + "tet:local-link-connectivities/"
        + "tet:label-restrictions/tet:label-restriction/tet:label-start/"
        + "tet:te-label/tet:technology" {
    when "../../../../../../../../nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment label restrictions end of local-link-connectivities */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:tunnel-termination-point/"
        + "tet:local-link-connectivities/"
        + "tet:label-restrictions/tet:label-restriction/tet:label-end/"
        + "tet:te-label/tet:technology"{
    when "../../../../../../../../nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment label restrictions step of local-link-connectivities */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:tunnel-termination-point/"

Zheng, et al.           Expires September 2, 2019              [Page 45]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

        + "tet:local-link-connectivities/"
        + "tet:label-restrictions/tet:label-restriction/tet:label-step/"
        + "tet:technology"{
    when "../../../../../../../nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label-step;
    }
  }

  /* Augment label hop of underlay primary path of local-link-connectivities */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:tunnel-termination-point/"
        + "tet:local-link-connectivities/"
        + "tet:underlay/tet:primary-path/tet:path-element/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment label hop of underlay backup path of local-link-connectivities */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:tunnel-termination-point/"
        + "tet:local-link-connectivities/"
        + "tet:underlay/tet:backup-path/tet:path-element/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment label hop of route-exclude of local-link-connectivities */

Zheng, et al.           Expires September 2, 2019              [Page 46]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:tunnel-termination-point/"
        + "tet:local-link-connectivities/"
        + "tet:optimizations/tet:algorithm/tet:metric/"
        + "tet:optimization-metric/"
        + "tet:explicit-route-exclude-objects/"
        + "tet:route-object-exclude-object/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment label hop of route-include of local-link-connectivities */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:tunnel-termination-point/"
        + "tet:local-link-connectivities/"
        + "tet:optimizations/tet:algorithm/tet:metric/"
        + "tet:optimization-metric/"
        + "tet:explicit-route-include-objects/"
        + "tet:route-object-include-object/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment label hop of path-route of local-link-connectivities */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:tunnel-termination-point/"
        + "tet:local-link-connectivities/"
        + "tet:path-properties/tet:path-route-objects/"
        + "tet:path-route-object/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"

Zheng, et al.           Expires September 2, 2019              [Page 47]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment label restrictions of local-link-connectivity (LLC) */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:tunnel-termination-point/"
        + "tet:local-link-connectivities/"
        + "tet:local-link-connectivity/"
        + "tet:label-restrictions/tet:label-restriction" {
    when "../../../../../../../nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    uses etht-types:eth-label-restriction;
  }

  /* Augment label restrictions start of local-link-connectivity (LLC) */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:tunnel-termination-point/"
        + "tet:local-link-connectivities/"
        + "tet:local-link-connectivity/"
        + "tet:label-restrictions/tet:label-restriction/"
        + "tet:label-start/tet:te-label/tet:technology" {
    when "../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment label restrictions end of local-link-connectivity (LLC) */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:tunnel-termination-point/"
        + "tet:local-link-connectivities/"
        + "tet:local-link-connectivity/"
        + "tet:label-restrictions/tet:label-restriction/"
        + "tet:label-end/tet:te-label/tet:technology" {

Zheng, et al.           Expires September 2, 2019              [Page 48]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

    when "../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment label restrictions step of local-link-connectivity (LLC) */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:tunnel-termination-point/"
        + "tet:local-link-connectivities/"
        + "tet:local-link-connectivity/"
        + "tet:label-restrictions/tet:label-restriction/"
        + "tet:label-step/tet:technology" {
    when "../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label-step;
    }
  }

  /* Augment label hop of underlay primary path of local-link-connectivity (LLC) */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:tunnel-termination-point/"
        + "tet:local-link-connectivities/"
        + "tet:local-link-connectivity/"
        + "tet:underlay/tet:primary-path/tet:path-element/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment label hop of underlay backup path of local-link-connectivity (LLC) */

Zheng, et al.           Expires September 2, 2019              [Page 49]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:tunnel-termination-point/"
        + "tet:local-link-connectivities/"
        + "tet:local-link-connectivity/"
        + "tet:underlay/tet:backup-path/tet:path-element/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment label hop of route-exclude of local-link-connectivity (LLC) */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:tunnel-termination-point/"
        + "tet:local-link-connectivities/"
        + "tet:local-link-connectivity/"
        + "tet:optimizations/tet:algorithm/tet:metric/"
        + "tet:optimization-metric/"
        + "tet:explicit-route-exclude-objects/"
        + "tet:route-object-exclude-object/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment label hop of route-include of local-link-connectivity (LLC) */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:tunnel-termination-point/"
        + "tet:local-link-connectivities/"
        + "tet:local-link-connectivity/"
        + "tet:optimizations/tet:algorithm/tet:metric/"
        + "tet:optimization-metric/"
        + "tet:explicit-route-include-objects/"
        + "tet:route-object-include-object/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {

Zheng, et al.           Expires September 2, 2019              [Page 50]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

    when "../../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment label hop of path-route of local-link-connectivity (LLC) */
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:tunnel-termination-point/"
        + "tet:local-link-connectivities/"
        + "tet:local-link-connectivity/"
        + "tet:path-properties/tet:path-route-objects/"
        + "tet:path-route-object/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment label hop of underlay primary path of TE link */
  augment "/nw:networks/nw:network/nt:link/tet:te/"
        + "tet:te-link-attributes/"
        + "tet:underlay/tet:primary-path/tet:path-element/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment label hop of underlay backup path of TE link */
  augment "/nw:networks/nw:network/nt:link/tet:te/"

Zheng, et al.           Expires September 2, 2019              [Page 51]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

        + "tet:te-link-attributes/"
        + "tet:underlay/tet:backup-path/tet:path-element/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment label restrictions of TE link */
  augment "/nw:networks/nw:network/nt:link/tet:te/"
        + "tet:te-link-attributes/"
        + "tet:label-restrictions/tet:label-restriction" {
    when "../../../../../nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    uses etht-types:eth-label-restriction;
  }

  /* Augment label restrictions start of TE link */
  augment "/nw:networks/nw:network/nt:link/tet:te/"
        + "tet:te-link-attributes/"
        + "tet:label-restrictions/tet:label-restriction/"
        + "tet:label-start/tet:te-label/tet:technology" {
    when "../../../../../../../nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment label restrictions end of TE link */
  augment "/nw:networks/nw:network/nt:link/tet:te/"
        + "tet:te-link-attributes/"
        + "tet:label-restrictions/tet:label-restriction/"
        + "tet:label-end/tet:te-label/tet:technology" {
    when "../../../../../../../nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {

Zheng, et al.           Expires September 2, 2019              [Page 52]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment label restrictions step of TE link */
  augment "/nw:networks/nw:network/nt:link/tet:te/"
        + "tet:te-link-attributes/"
        + "tet:label-restrictions/tet:label-restriction/"
        + "tet:label-step/tet:technology" {
    when "../../../../../../nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label-step;
    }
  }

  /* Augment label restrictions of TE link information-source */
  augment "/nw:networks/nw:network/nt:link/tet:te/"
        + "tet:information-source-entry/"
        + "tet:label-restrictions/tet:label-restriction" {
    when "../../../../../nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    uses etht-types:eth-label-restriction;
  }

  /* Augment label restrictions start of TE link information-source */
  augment "/nw:networks/nw:network/nt:link/tet:te/"
        + "tet:information-source-entry/"
        + "tet:label-restrictions/tet:label-restriction/"
        + "tet:label-start/tet:te-label/tet:technology" {
    when "../../../../../../../nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }

Zheng, et al.           Expires September 2, 2019              [Page 53]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

  }
  /* Augment label restrictions end of TE link information-source */
  augment "/nw:networks/nw:network/nt:link/tet:te/"
        + "tet:information-source-entry/"
        + "tet:label-restrictions/tet:label-restriction/"
        + "tet:label-end/tet:te-label/tet:technology" {
    when "../../../../../../../nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment label restrictions step of TE link information-source */
  augment "/nw:networks/nw:network/nt:link/tet:te/"
        + "tet:information-source-entry/"
        + "tet:label-restrictions/tet:label-restriction/"
        + "tet:label-step/tet:technology" {
    when "../../../../../../nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label-step;
    }
  }

  /* Augment label hop of underlay primary path of TE link template */
  augment "/nw:networks/tet:te/tet:templates/"
        + "tet:link-template/tet:te-link-attributes/"
        + "tet:underlay/tet:primary-path/tet:path-element/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
/*
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "ethtetopo:eth-tran-topology" {
                         description "Augment ETH TE label";
    }
*/
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

Zheng, et al.           Expires September 2, 2019              [Page 54]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

  /* Augment label hop of underlay backup path of TE link template */
  augment "/nw:networks/tet:te/tet:templates/"
        + "tet:link-template/tet:te-link-attributes/"
        + "tet:underlay/tet:backup-path/tet:path-element/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
/*
    when "../../../../../../../../../../nw:network-types/tet:te-topology/"
        + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
*/
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment label restrictions of TE link template */
  augment "/nw:networks/tet:te/tet:templates/"
        + "tet:link-template/tet:te-link-attributes/"
        + "tet:label-restrictions/tet:label-restriction" {
/*
    when "../../../../../nw:network-types/tet:te-topology/"
        + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
*/
    description "Ethernet label.";
    uses etht-types:eth-label-restriction;
  }

  /* Augment label restrictions start of TE link template */
  augment "/nw:networks/tet:te/tet:templates/"
        + "tet:link-template/tet:te-link-attributes/"
        + "tet:label-restrictions/tet:label-restriction/"
        + "tet:label-start/tet:te-label/tet:technology" {
/*
    when "../../../../../../../nw:network-types/tet:te-topology/"
        + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
*/
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

Zheng, et al.           Expires September 2, 2019              [Page 55]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

  /* Augment label restrictions end of TE link template */
  augment "/nw:networks/tet:te/tet:templates/"
        + "tet:link-template/tet:te-link-attributes/"
        + "tet:label-restrictions/tet:label-restriction/"
        + "tet:label-end/tet:te-label/tet:technology" {
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label;
    }
  }

  /* Augment label restrictions step of TE link template */
  augment "/nw:networks/tet:te/tet:templates/"
        + "tet:link-template/tet:te-link-attributes/"
        + "tet:label-restrictions/tet:label-restriction/"
        + "tet:label-step/tet:technology" {
/*
    when "../../../../../../nw:network-types/tet:te-topology/"
        + "ethtetopo:eth-tran-topology" {
      description "Augment ETH TE label";
    }
*/
    description "Ethernet label.";
    case eth {
      uses etht-types:eth-label-step;
    }
  }
}

<CODE ENDS>

5.  Considerations and Open Issue

   Editor Notes: This section is used to note temporary discussion/
   conclusion that to be fixed in the future version, and will be
   removed before publication.  201902: we have noticed that Ethernet is
   the only client signal (on the perspective of OTN) which need a
   topology.  So it is possible that the title of this document will be
   changed to "A YANG Data Model for Ethernet Topology".  The proposal
   of this work is that the document will follow up the progress of
   draft-zheng-ccamp-client-signal-yang, with draft-zheng-ccamp-client-
   tunnel-yang together.  201902: will have to align with TE topology
   model, currently is a totally different format with necessary
   parameters, a big change is expected.

Zheng, et al.           Expires September 2, 2019              [Page 56]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

6.  IANA Considerations

   TBD.

7.  Manageability Considerations

   TBD.

8.  Security Considerations

   The data following the model defined in this document is exchanged
   via, for example, the interface between an orchestrator and a
   transport network controller.  The security concerns mentioned in
   [I-D.ietf-teas-yang-te-topo] for using ietf-te-topology.yang model
   also applies to this document.

   The YANG module defined in this document can be accessed via the
   RESTCONF protocol defined in [RFC8040], or maybe via the NETCONF
   protocol [RFC6241].

   There are a number of data nodes defined in the YANG module which are
   writable/creatable/deletable (i.e., config true, which is the
   default).  These data nodes may be considered sensitive or vulnerable
   in some network environments.  Write operations (e.g., POST) to these
   data nodes without proper protection can have a negative effect on
   network operations.

   Editors note: to list specific subtrees and data nodes and their
   sensitivity/vulnerability.

9.  Acknowledgements

   We would like to thank Igor Bryskin and Daniel King for their
   comments and discussions.

10.  Contributors

   Yanlei Zheng
   China Unicom
   Email: zhengyl@dimpt.com

   Zhe Liu
   Huawei Technologies,
   Email: liuzhe123@huawei.com

   Zheyu Fan
   Huawei Technologies,
   Email: fanzheyu2@huawei.com

Zheng, et al.           Expires September 2, 2019              [Page 57]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

   Sergio Belotti
   Nokia,
   Email: sergio.belotti@nokia.com

   Yingxi Yao
   Shanghai Bell,
   yingxi.yao@nokia-sbell.com

   Giuseppe Fioccola
   Huawei Technologies
   giuseppe.fioccola@huawei.com

11.  References

11.1.  Normative References

   [I-D.ietf-ccamp-otn-topo-yang]
              Zheng, H., Guo, A., Busi, I., Sharma, A., Liu, X.,
              Belotti, S., Xu, Y., Wang, L., and O. Dios, "A YANG Data
              Model for Optical Transport Network Topology", draft-ietf-
              ccamp-otn-topo-yang-06 (work in progress), February 2019.

   [I-D.ietf-teas-yang-te-topo]
              Liu, X., Bryskin, I., Beeram, V., Saad, T., Shah, H., and
              O. Dios, "YANG Data Model for Traffic Engineering (TE)
              Topologies", draft-ietf-teas-yang-te-topo-19 (work in
              progress), February 2019.

   [RFC6241]  Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed.,
              and A. Bierman, Ed., "Network Configuration Protocol
              (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011,
              <https://www.rfc-editor.org/info/rfc6241>.

   [RFC7950]  Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language",
              RFC 7950, DOI 10.17487/RFC7950, August 2016,
              <https://www.rfc-editor.org/info/rfc7950>.

   [RFC8040]  Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF
              Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017,
              <https://www.rfc-editor.org/info/rfc8040>.

11.2.  Informative References

   [I-D.ietf-ccamp-wson-yang]
              Lee, Y., Dhody, D., Guo, A., Lopezalvarez, V., and D.
              King, "A YANG Data Model for WSON (Wavelength Switched
              Optical Networks)", draft-ietf-ccamp-wson-yang-19 (work in
              progress), February 2019.

Zheng, et al.           Expires September 2, 2019              [Page 58]
Internet-Draft      ETH Topology Transport YANG Model         March 2019

   [RFC8340]  Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams",
              BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018,
              <https://www.rfc-editor.org/info/rfc8340>.

Authors' Addresses

   Haomian Zheng
   Huawei Technologies
   H1-1-A043S Huawei Industrial Base, Songshanhu
   Dongguan, Guangdong  523808
   China

   Email: zhenghaomian@huawei.com

   Aihua Guo
   Huawei Technologies

   Email: aihuaguo@huawei.com

   Italo Busi
   Huawei Technologies

   Email: Italo.Busi@huawei.com

   Yunbin Xu
   CAICT

   Email: xuyunbin@ritt.cn

   Yang Zhao
   China Mobile

   Email: zhaoyangyjy@chinamobile.com

   Xufeng Liu
   Volta Networks

   Email: xufeng.liu.ietf@gmail.com

Zheng, et al.           Expires September 2, 2019              [Page 59]