draft-ietf-ccamp-flexigrid-yang-01.txt   draft-ietf-ccamp-flexigrid-yang-02.txt 
CCAMP Working Group J.E. Lopez de Vergara CCAMP Working Group J.E. Lopez de Vergara
Internet Draft Universidad Autonoma de Madrid Internet Draft Universidad Autonoma de Madrid
Intended status: Standards Track Daniel Perdices Intended status: Standards Track D. Perdices
Expires: February 11, 2019 Naudit HPCN Expires: April 25, 2019 Naudit HPCN
V. Lopez V. Lopez
O. Gonzalez de Dios O. Gonzalez de Dios
Telefonica I+D/GCTO Telefonica I+D/GCTO
D. King D. King
Lancaster University Lancaster University
Y. Lee Y. Lee
Huawei Huawei
G. Galimberti G. Galimberti
Cisco Photonics Srl Cisco Photonics Srl
August 10, 2018 October 22, 2018
YANG data model for Flexi-Grid Optical Networks YANG data model for Flexi-Grid Optical Networks
draft-ietf-ccamp-flexigrid-yang-01.txt draft-ietf-ccamp-flexigrid-yang-02.txt
Status of this Memo Status of this Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. This document may not be modified, provisions of BCP 78 and BCP 79. This document may not be modified,
and derivative works of it may not be created, except to publish it and derivative works of it may not be created, except to publish it
as an RFC and to translate it into languages other than English. as an RFC and to translate it into languages other than English.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
skipping to change at page 1, line 43 skipping to change at page 1, line 43
months and may be updated, replaced, or obsoleted by other documents months and may be updated, replaced, or obsoleted by other documents
at any time. It is inappropriate to use Internet-Drafts as at any time. It is inappropriate to use Internet-Drafts as
reference material or to cite them other than as "work in progress." reference material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html http://www.ietf.org/shadow.html
This Internet-Draft will expire on February 11, 2019. This Internet-Draft will expire on April 25, 2019.
Copyright Notice Copyright Notice
Copyright (c) 2018 IETF Trust and the persons identified as the Copyright (c) 2018 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 29 skipping to change at page 2, line 29
Table of Contents Table of Contents
1. Introduction .............................................. 2 1. Introduction .............................................. 2
2. Conventions used in this document ......................... 3 2. Conventions used in this document ......................... 3
3. Flexi-grid network topology model overview ................ 3 3. Flexi-grid network topology model overview ................ 3
4. Main building blocks of the Flexi-grid TED................. 4 4. Main building blocks of the Flexi-grid TED................. 4
4.1 Formal Syntax ......................................... 7 4.1 Formal Syntax ......................................... 7
5. Example of use ............................................ 8 5. Example of use ............................................ 8
6. Flexi-grid TED YANG Model.................................. 9 6. Flexi-grid TED YANG Model.................................. 9
6.1. YANG Model - Tree .................................... 9 6.1. YANG Model - Tree .................................... 9
6.2. YANG Model - Code .................................... 10 6.2. YANG Model - Code .................................... 27
6.3. License .............................................. 19 6.3. License .............................................. 64
7. Security Considerations ................................... 20 7. Security Considerations ................................... 65
8. IANA Considerations ....................................... 20 8. IANA Considerations ....................................... 65
9. References ................................................ 20 9. References ................................................ 65
9.1. Normative References ................................. 20 9.1. Normative References ................................. 65
9.2. Informative References ............................... 21 9.2. Informative References ............................... 66
10. Contributors ............................................. 21 10. Contributors ............................................. 66
11. Acknowledgments .......................................... 22 11. Acknowledgments .......................................... 67
Authors' Addresses ........................................... 22 Authors' Addresses ........................................... 67
1. Introduction 1. Introduction
Internet-based traffic is dramatically increasing every year. Internet-based traffic is dramatically increasing every year.
Moreover, such traffic is also becoming more dynamic. Thus, Moreover, such traffic is also becoming more dynamic. Thus,
transport networks need to evolve from current DWDM systems towards transport networks need to evolve from current DWDM systems towards
elastic optical networks, based on flexi-grid transmission and elastic optical networks, based on flexi-grid transmission and
switching technologies [RFC7698]. This technology aims at increasing switching technologies [RFC7698]. This technology aims at increasing
both transport network scalability and flexibility, allowing the both transport network scalability and flexibility, allowing the
optimization of bandwidth usage. optimization of bandwidth usage.
skipping to change at page 9, line 18 skipping to change at page 9, line 18
each situation. Note that every element in the flexi-grid TED has a each situation. Note that every element in the flexi-grid TED has a
reference, and this is the way in which they are called in the media reference, and this is the way in which they are called in the media
channel. We refer to channel. We refer to
[I-D.draft-ietf-ccamp-flexigrid-media-channel-yang] to complete [I-D.draft-ietf-ccamp-flexigrid-media-channel-yang] to complete
this example. this example.
6. Flexi-grid TED YANG Model 6. Flexi-grid TED YANG Model
6.1. Yang Model - Tree Structure 6.1. Yang Model - Tree Structure
module: ietf-flexi-grid-topology module: ietf-flex-grid-topology
augment /nd:networks/nd:network/nd:node/tet:te/tet:te-node-attributes augment /nw:networks/nw:network/nw:network-types/tet:te-topology:
+--rw interfaces* [name] +--rw flex-grid-topology!
+--rw name string augment /nw:networks/nw:network/nt:link/tet:te/tet:te-link-attributes:
+--rw port-number? uint32 augment /nw:networks/nw:network/nw:node/nt:termination-point/tet:te:
+--rw input-port? boolean +--rw supported-payload-types* [index]
+--rw output-port? boolean | +--rw index uint16
+--rw description? string | +--rw payload-type? string
+--rw type? interface-type +--rw client-facing? boolean
+--rw numbered-interface augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes:
| +--rw n-i-ip-address? inet:ip-address +--rw flex-grid-node
+--rw unnumbered-interface +--rw node-type? identityref
+--rw u-i-ip-address? inet:ip-address augment /nw:networks/nw:network/nw:node/tet:te/
+--rw label? uint32 tet:tunnel-termination-point:
flexi-grid-connectivity-matrix-attributes +--rw supported-operational-modes* layer0-types:operational-mode
augment /nd:networks/nd:network/nd:node/tet:te/ +--rw configured-operational-modes? layer0-types:operational-mode
tet:te-node-attributes/tet:connectivity-matrices/ +--rw supported-fec-types* identityref
tet:connectivity-matrix: +--rw supported-termination-types* identityref
+--rw connections* [input-port-id] +--rw supports-bit-stuffing? boolean
+--rw input-port-id flexi-grid-node-port-ref +--rw is-tunable? boolean
+--rw output-port-id? flexi-grid-node-port-ref +--rw max-subcarrier-channel-num? uint8
+--rw supports-flex-grid? boolean
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:
+--:(flex-grid)
+--rw bandwidth-type? identityref
augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes/
tet:connectivity-matrices/tet:path-constraints/tet:te-bandwidth/
tet:technology:
+--:(flex-grid)
+--rw supported-bandwidth-list* identityref
flexi-grid-transponder augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes/
augment /nd:networks/nd:network/nd:node/tet:te/ tet:connectivity-matrices/tet:connectivity-matrix/
tet:tunnel-termination-point: tet:path-constraints/tet:te-bandwidth/tet:technology:
+--rw available-operational-mode* operational-mode +--:(flex-grid)
+--rw operational-mode? operational-mode +--rw supported-bandwidth-list* identityref
augment /nw:networks/nw:network/nw:node/tet:te/
tet:information-source-entry/tet:connectivity-matrices/
tet:path-constraints/tet:te-bandwidth/tet:technology:
+--:(flex-grid)
+--ro supported-bandwidth-list* identityref
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:
+--:(flex-grid)
+--ro supported-bandwidth-list* identityref
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:
+--:(flex-grid)
+--rw supported-bandwidth-list* identityref
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:
+--:(flex-grid)
+--rw supported-bandwidth-list* identityref
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:
+--:(flex-grid)
+--rw supported-bandwidth-list* identityref
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:
+--:(flex-grid)
+--rw bandwidth-type? identityref
augment /nw:networks/nw:network/nt:link/tet:te/tet:te-link-attributes/
tet:max-link-bandwidth/tet:te-bandwidth/tet:technology:
+--:(flex-grid)
+--rw supported-bandwidth-list* identityref
augment /nw:networks/nw:network/nt:link/tet:te/tet:te-link-attributes/
tet:max-resv-link-bandwidth/tet:te-bandwidth/tet:technology:
+--:(flex-grid)
+--rw supported-bandwidth-list* identityref
augment /nw:networks/nw:network/nt:link/tet:te/tet:te-link-attributes/
tet:unreserved-bandwidth/tet:te-bandwidth/tet:technology:
+--:(flex-grid)
+--rw supported-bandwidth-list* identityref
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:
+--:(flex-grid)
+--ro bandwidth-type? identityref
augment /nw:networks/nw:network/nt:link/tet:te/
ttet:information-source-entry/et:max-link-bandwidth/
tet:te-bandwidth/tet:technology:
+--:(flex-grid)
+--ro supported-bandwidth-list* identityref
augment /nw:networks/nw:network/nt:link/tet:te/
tet:information-source-entry/tet:max-resv-link-bandwidth/
tet:te-bandwidth/tet:technology:
+--:(flex-grid)
+--ro supported-bandwidth-list* identityref
augment /nw:networks/nw:network/nt:link/tet:te/
tet:information-source-entry/tet:unreserved-bandwidth/
tet:te-bandwidth/tet:technology:
+--:(flex-grid)
+--ro supported-bandwidth-list* identityref
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:
+--:(flex-grid)
+--rw bandwidth-type? identityref
augment /nw:networks/tet:te/tet:templates/tet:link-template/
tet:te-link-attributes/tet:max-link-bandwidth/tet:te-bandwidth/
tet:technology:
+--:(flex-grid)
+--rw supported-bandwidth-list* identityref
augment /nw:networks/tet:te/tet:templates/tet:link-template/
tet:te-link-attributes/tet:max-resv-link-bandwidth/tet:te-bandwidth/
tet:technology:
+--:(flex-grid)
+--rw supported-bandwidth-list* identityref
augment /nw:networks/tet:te/tet:templates/tet:link-template/
tet:te-link-attributes/tet:unreserved-bandwidth/tet:te-bandwidth/
tet:technology:
+--:(flex-grid)
+--rw supported-bandwidth-list* identityref
augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes/
tet:connectivity-matrices/tet:label-restrictions/
tet:label-restriction:
+--rw grid-type? identityref
+--rw priority? uint8
+--rw flex-grid
+--rw nominal-central-frequency-granularity? frequency-ghz
+--rw slot-width-granularity? frequency-ghz
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:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
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:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
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:
+--:(flex-grid)
+--rw (single-or-super-channel)?
+--:(single)
| +--rw central-frequency? frequency-thz
| +--rw slot-width? frequency-ghz
+--:(super)
+--rw subcarrier-channels* [central-frequency]
+--rw central-frequency frequency-thz
+--rw slot-width? frequency-ghz
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:
+--:(flex-grid)
+--rw (single-or-super-channel)?
+--:(single)
| +--rw central-frequency? frequency-thz
| +--rw slot-width? frequency-ghz
+--:(super)
+--rw subcarrier-channels* [central-frequency]
+--rw central-frequency frequency-thz
+--rw slot-width? frequency-ghz
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:
+--:(flex-grid)
+--rw (single-or-super-channel)?
+--:(single)
| +--rw central-frequency? frequency-thz
| +--rw slot-width? frequency-ghz
+--:(super)
+--rw subcarrier-channels* [central-frequency]
+--rw central-frequency frequency-thz
+--rw slot-width? frequency-ghz
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:
+--:(flex-grid)
+--rw (single-or-super-channel)?
+--:(single)
| +--rw central-frequency? frequency-thz
| +--rw slot-width? frequency-ghz
+--:(super)
+--rw subcarrier-channels* [central-frequency]
+--rw central-frequency frequency-thz
+--rw slot-width? frequency-ghz
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:
+--:(flex-grid)
+--ro (single-or-super-channel)?
+--:(single)
| +--ro central-frequency? frequency-thz
| +--ro slot-width? frequency-ghz
+--:(super)
+--ro subcarrier-channels* [central-frequency]
+--ro central-frequency frequency-thz
+--ro slot-width? frequency-ghz
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 grid-type? identityref
+--rw priority? uint8
+--rw flex-grid
+--rw nominal-central-frequency-granularity? frequency-ghz
+--rw slot-width-granularity? frequency-ghz
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:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
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:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
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 grid-type? identityref
+--rw priority? uint8
+--rw flex-grid
+--rw nominal-central-frequency-granularity? frequency-ghz
+--rw slot-width-granularity? frequency-ghz
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:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
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:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
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:
+--:(flex-grid)
+--rw (single-or-super-channel)?
+--:(single)
| +--rw central-frequency? frequency-thz
| +--rw slot-width? frequency-ghz
+--:(super)
+--rw subcarrier-channels* [central-frequency]
+--rw central-frequency frequency-thz
+--rw slot-width? frequency-ghz
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:
+--:(flex-grid)
+--rw (single-or-super-channel)?
+--:(single)
| +--rw central-frequency? frequency-thz
| +--rw slot-width? frequency-ghz
+--:(super)
+--rw subcarrier-channels* [central-frequency]
+--rw central-frequency frequency-thz
+--rw slot-width? frequency-ghz
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:
+--:(flex-grid)
+--rw (single-or-super-channel)?
+--:(single)
| +--rw central-frequency? frequency-thz
| +--rw slot-width? frequency-ghz
+--:(super)
+--rw subcarrier-channels* [central-frequency]
+--rw central-frequency frequency-thz
+--rw slot-width? frequency-ghz
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:
+--:(flex-grid)
+--rw (single-or-super-channel)?
+--:(single)
| +--rw central-frequency? frequency-thz
| +--rw slot-width? frequency-ghz
+--:(super)
+--rw subcarrier-channels* [central-frequency]
+--rw central-frequency frequency-thz
+--rw slot-width? frequency-ghz
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:
+--:(flex-grid)
+--ro (single-or-super-channel)?
+--:(single)
| +--ro central-frequency? frequency-thz
| +--ro slot-width? frequency-ghz
+--:(super)
+--ro subcarrier-channels* [central-frequency]
+--ro central-frequency frequency-thz
+--ro slot-width? frequency-ghz
augment /nw:networks/nw:network/nw:node/tet:te/
tet:information-source-entry/tet:connectivity-matrices/
tet:label-restrictions/tet:label-restriction:
+--ro grid-type? identityref
+--ro priority? uint8
+--ro flex-grid
+--ro nominal-central-frequency-granularity? frequency-ghz
+--ro slot-width-granularity? frequency-ghz
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:
+--:(flex-grid)
+--ro central-frequency? frequency-thz
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:
+--:(flex-grid)
+--ro central-frequency? frequency-thz
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:
+--:(flex-grid)
+--ro (single-or-super-channel)?
+--:(single)
| +--ro central-frequency? frequency-thz
| +--ro slot-width? frequency-ghz
+--:(super)
+--ro subcarrier-channels* [central-frequency]
+--ro central-frequency frequency-thz
+--ro slot-width? frequency-ghz
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:
+--:(flex-grid)
+--ro (single-or-super-channel)?
+--:(single)
| +--ro central-frequency? frequency-thz
| +--ro slot-width? frequency-ghz
+--:(super)
+--ro subcarrier-channels* [central-frequency]
+--ro central-frequency frequency-thz
+--ro slot-width? frequency-ghz
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:
+--:(flex-grid)
+--ro (single-or-super-channel)?
+--:(single)
| +--ro central-frequency? frequency-thz
| +--ro slot-width? frequency-ghz
+--:(super)
+--ro subcarrier-channels* [central-frequency]
+--ro central-frequency frequency-thz
+--ro slot-width? frequency-ghz
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:
+--:(flex-grid)
+--ro (single-or-super-channel)?
+--:(single)
| +--ro central-frequency? frequency-thz
| +--ro slot-width? frequency-ghz
+--:(super)
+--ro subcarrier-channels* [central-frequency]
+--ro central-frequency frequency-thz
+--ro slot-width? frequency-ghz
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:
+--:(flex-grid)
+--ro (single-or-super-channel)?
+--:(single)
| +--ro central-frequency? frequency-thz
| +--ro slot-width? frequency-ghz
+--:(super)
+--ro subcarrier-channels* [central-frequency]
+--ro central-frequency frequency-thz
+--ro slot-width? frequency-ghz
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 grid-type? identityref
+--ro priority? uint8
+--ro flex-grid
+--ro nominal-central-frequency-granularity? frequency-ghz
+--ro slot-width-granularity? frequency-ghz
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:
+--:(flex-grid)
+--ro central-frequency? frequency-thz
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:
+--:(flex-grid)
+--ro central-frequency? frequency-thz
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 grid-type? identityref
+--ro priority? uint8
+--ro flex-grid
+--ro nominal-central-frequency-granularity? frequency-ghz
+--ro slot-width-granularity? frequency-ghz
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:
+--:(flex-grid)
+--ro central-frequency? frequency-thz
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:
+--:(flex-grid)
+--ro central-frequency? frequency-thz
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:
+--:(flex-grid)
+--ro (single-or-super-channel)?
+--:(single)
| +--ro central-frequency? frequency-thz
| +--ro slot-width? frequency-ghz
+--:(super)
+--ro subcarrier-channels* [central-frequency]
+--ro central-frequency frequency-thz
+--ro slot-width? frequency-ghz
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:
+--:(flex-grid)
+--ro (single-or-super-channel)?
+--:(single)
| +--ro central-frequency? frequency-thz
| +--ro slot-width? frequency-ghz
+--:(super)
+--ro subcarrier-channels* [central-frequency]
+--ro central-frequency frequency-thz
+--ro slot-width? frequency-ghz
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:
+--:(flex-grid)
+--ro (single-or-super-channel)?
+--:(single)
| +--ro central-frequency? frequency-thz
| +--ro slot-width? frequency-ghz
+--:(super)
+--ro subcarrier-channels* [central-frequency]
+--ro central-frequency frequency-thz
+--ro slot-width? frequency-ghz
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:
+--:(flex-grid)
+--ro (single-or-super-channel)?
+--:(single)
| +--ro central-frequency? frequency-thz
| +--ro slot-width? frequency-ghz
+--:(super)
+--ro subcarrier-channels* [central-frequency]
+--ro central-frequency frequency-thz
+--ro slot-width? frequency-ghz
augment /nw:networks/nw:network/nw:node/tet:te/
tet:information-source-entry/tet:connectivity-matrices/es/
tet:connectivity-matrix/tet:path-propertitet:path-route-objects/
tet:path-route-object/tet:type/tet:label/tet:label-hop/tet:te-label/
tet:technology:
+--:(flex-grid)
+--ro (single-or-super-channel)?
+--:(single)
| +--ro central-frequency? frequency-thz
| +--ro slot-width? frequency-ghz
+--:(super)
+--ro subcarrier-channels* [central-frequency]
+--ro central-frequency frequency-thz
+--ro slot-width? frequency-ghz
augment /nw:networks/nw:network/nw:node/tet:te/
tet:tunnel-termination-point/tet:local-link-connectivities/
tet:label-restrictions/tet:label-restriction:
+--rw grid-type? identityref
+--rw priority? uint8
+--rw flex-grid
+--rw nominal-central-frequency-granularity? frequency-ghz
+--rw slot-width-granularity? frequency-ghz
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:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
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:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
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:
+--:(flex-grid)
+--rw (single-or-super-channel)?
+--:(single)
| +--rw central-frequency? frequency-thz
| +--rw slot-width? frequency-ghz
+--:(super)
+--rw subcarrier-channels* [central-frequency]
+--rw central-frequency frequency-thz
+--rw slot-width? frequency-ghz
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:
+--:(flex-grid)
+--rw (single-or-super-channel)?
+--:(single)
| +--rw central-frequency? frequency-thz
| +--rw slot-width? frequency-ghz
+--:(super)
+--rw subcarrier-channels* [central-frequency]
+--rw central-frequency frequency-thz
+--rw slot-width? frequency-ghz
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:
+--:(flex-grid)
+--rw (single-or-super-channel)?
+--:(single)
| +--rw central-frequency? frequency-thz
| +--rw slot-width? frequency-ghz
+--:(super)
+--rw subcarrier-channels* [central-frequency]
+--rw central-frequency frequency-thz
+--rw slot-width? frequency-ghz
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:
+--:(flex-grid)
+--rw (single-or-super-channel)?
+--:(single)
| +--rw central-frequency? frequency-thz
| +--rw slot-width? frequency-ghz
+--:(super)
+--rw subcarrier-channels* [central-frequency]
+--rw central-frequency frequency-thz
+--rw slot-width? frequency-ghz
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:
+--:(flex-grid)
+--ro (single-or-super-channel)?
+--:(single)
| +--ro central-frequency? frequency-thz
| +--ro slot-width? frequency-ghz
+--:(super)
+--ro subcarrier-channels* [central-frequency]
+--ro central-frequency frequency-thz
+--ro slot-width? frequency-ghz
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 grid-type? identityref
+--rw priority? uint8
+--rw flex-grid
+--rw nominal-central-frequency-granularity? frequency-ghz
+--rw slot-width-granularity? frequency-ghz
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:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
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:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
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:
+--:(flex-grid)
+--rw (single-or-super-channel)?
+--:(single)
| +--rw central-frequency? frequency-thz
| +--rw slot-width? frequency-ghz
+--:(super)
+--rw subcarrier-channels* [central-frequency]
+--rw central-frequency frequency-thz
+--rw slot-width? frequency-ghz
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:
+--:(flex-grid)
+--rw (single-or-super-channel)?
+--:(single)
| +--rw central-frequency? frequency-thz
| +--rw slot-width? frequency-ghz
+--:(super)
+--rw subcarrier-channels* [central-frequency]
+--rw central-frequency frequency-thz
+--rw slot-width? frequency-ghz
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:
+--:(flex-grid)
+--rw (single-or-super-channel)?
+--:(single)
| +--rw central-frequency? frequency-thz
| +--rw slot-width? frequency-ghz
+--:(super)
+--rw subcarrier-channels* [central-frequency]
+--rw central-frequency frequency-thz
+--rw slot-width? frequency-ghz
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:
+--:(flex-grid)
+--rw (single-or-super-channel)?
+--:(single)
| +--rw central-frequency? frequency-thz
| +--rw slot-width? frequency-ghz
+--:(super)
+--rw subcarrier-channels* [central-frequency]
+--rw central-frequency frequency-thz
+--rw slot-width? frequency-ghz
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:
+--:(flex-grid)
+--ro (single-or-super-channel)?
+--:(single)
| +--ro central-frequency? frequency-thz
| +--ro slot-width? frequency-ghz
+--:(super)
+--ro subcarrier-channels* [central-frequency]
+--ro central-frequency frequency-thz
+--ro slot-width? frequency-ghz
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:
+--:(flex-grid)
+--rw (single-or-super-channel)?
+--:(single)
| +--rw central-frequency? frequency-thz
| +--rw slot-width? frequency-ghz
+--:(super)
+--rw subcarrier-channels* [central-frequency]
+--rw central-frequency frequency-thz
+--rw slot-width? frequency-ghz
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:
+--:(flex-grid)
+--rw (single-or-super-channel)?
+--:(single)
| +--rw central-frequency? frequency-thz
| +--rw slot-width? frequency-ghz
+--:(super)
+--rw subcarrier-channels* [central-frequency]
+--rw central-frequency frequency-thz
+--rw slot-width? frequency-ghz
augment /nw:networks/nw:network/nt:link/tet:te/tet:te-link-attributes/
tet:label-restrictions/tet:label-restriction:
+--rw grid-type? identityref
+--rw priority? uint8
+--rw flex-grid
+--rw nominal-central-frequency-granularity? frequency-ghz
+--rw slot-width-granularity? frequency-ghz
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:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
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:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
augment /nw:networks/nw:network/nt:link/tet:te/
tet:information-source-entry/tet:label-restrictions/
tet:label-restriction:
+--ro grid-type? identityref
+--ro priority? uint8
+--ro flex-grid
+--ro nominal-central-frequency-granularity? frequency-ghz
+--ro slot-width-granularity? frequency-ghz
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:
+--:(flex-grid)
+--ro central-frequency? frequency-thz
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:
+--:(flex-grid)
+--ro central-frequency? frequency-thz
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:
+--:(flex-grid)
+--rw (single-or-super-channel)?
+--:(single)
| +--rw central-frequency? frequency-thz
| +--rw slot-width? frequency-ghz
+--:(super)
+--rw subcarrier-channels* [central-frequency]
+--rw central-frequency frequency-thz
+--rw slot-width? frequency-ghz
augment /nw:networks/tet:te/tet:templates/tet:link-template/
tet:te-link-attributes/tet:underlay/tet:backup-path/
ttet:path-element/et:type/tet:label/tet:label-hop/tet:te-label/
tet:technology:
+--:(flex-grid)
+--rw (single-or-super-channel)?
+--:(single)
| +--rw central-frequency? frequency-thz
| +--rw slot-width? frequency-ghz
+--:(super)
+--rw subcarrier-channels* [central-frequency]
+--rw central-frequency frequency-thz
+--rw slot-width? frequency-ghz
augment /nw:networks/tet:te/tet:templates/tet:link-template/
tet:te-link-attributes/tet:label-restrictions/tet:label-restriction:
+--rw grid-type? identityref
+--rw priority? uint8
+--rw flex-grid
+--rw nominal-central-frequency-granularity? frequency-ghz
+--rw slot-width-granularity? frequency-ghz
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:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
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:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
A.2. YANG Model - Code A.2. YANG Model - Code
<CODE BEGINS> file "ietf-flexi-grid-ted@2018-08-11.yang" <CODE BEGINS> file "ietf-flexi-grid-ted@2018-10-22.yang"
module ietf-flexi-grid-ted { module ietf-flex-grid-topology {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-flexi-grid-ted"; namespace "urn:ietf:params:xml:ns:yang:ietf-flex-grid-topology";
prefix "fg-ted";
prefix "flex-grid";
import ietf-network { import ietf-network {
prefix "nd"; prefix "nw";
} }
import ietf-network-topology { import ietf-network-topology {
prefix "lnk"; prefix "nt";
} }
import ietf-te-topology { import ietf-te-topology {
prefix "tet"; prefix "tet";
} }
import ietf-inet-types {
prefix "inet"; import ietf-layer0-types {
prefix "layer0-types";
} }
/*
import ietf-network-state { organization
prefix "nd-s"; "IETF CCAMP Working Group";
contact
"WG Web: <http://tools.ietf.org/wg/ccamp/>
WG List: <mailto:ccamp@ietf.org>
WG Chair: Daniele Ceccarelli
<mailto:daniele.ceccarelli@ericsson.com>
WG Chair: Fatai Zhang
<mailto:zhangfatai@huawei.com>
Editor: Jorge E. Lopez de Vergara <jorge.lopez_vergara@uam.es>
Editor: Daniel Perdices Burrero <daniel.perdices@naudit.es>
Editor: Victor Lopez Alvarez <victor.lopezalvarez@telefonica.com>
Editor: Young Lee <leeyoung@huawei.com>
Editor: Aihua Guo <aihuaguo@huawei.com>";
description
"This module defines a model for Flex-grid topology
Copyright (c) 2018 IETF Trust and the persons identified
as authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with
or without modification, is permitted pursuant to, and
subject to the license terms contained in, the Simplified BSD
License set forth in Section 4.c of the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info).";
revision 2018-10-22 {
description
"version 1.";
reference
"RFC XXX: A Yang Data Model for Flex-grid Optical Networks ";
} }
import ietf-network-topology-state {
prefix "lnk-s"; /*
* Groupings
*/
grouping flex-grid-node-attributes {
description "Flex-grid node attributes.";
container flex-grid-node {
description "Flex-grid node attrtibutes.";
leaf node-type {
type identityref {
base layer0-types:layer0-node-type;
}
description "Flex-grid node type.";
}
}
} }
import ietf-te-topology-state {
prefix "tet-s"; grouping flex-grid-link-attributes {
description
"Future flex-grid link attributes extensions";
} }
*/ grouping flex-grid-tp-attributes {
description "flex-grid-tp-attributes";
organization list supported-payload-types {
"IETF CCAMP Working Group"; key "index";
description
"Supported payload types of a TP. The payload type is defined
as the generalized PIDs in GMPLS.";
leaf index {
type uint16;
description "payload type index";
}
leaf payload-type {
type string;
description "the payload type supported by this client tp";
reference
"http://www.iana.org/assignments/gmpls-sig-parameters
/gmpls-sig-parameters.xhtml";
}
}
leaf client-facing {
type boolean;
default 'false';
description
"Indicating if it is a client-facing TP.";
}
}
contact grouping flex-grid-ttp-attributes {
"Editor: Jorge Lopez de Vergara description
<jorge.lopez_vergara@uam.es>"; "Flex-grid tunnel termination point (e.g.tranponder)
attributes";
leaf-list supported-operational-modes {
type layer0-types:operational-mode;
description description
"This module contains a collection of YANG definitions for "List of all supported vendor-specific
a Flexi-Grid Traffic Engineering Database (TED). mode identifiers";
}
leaf configured-operational-modes {
type layer0-types:operational-mode;
description
"Vendor-specific mode identifier configured
on the TTP.";
}
Copyright (c) 2018 IETF Trust and the persons identified as leaf-list supported-fec-types {
authors of the code. All rights reserved. type identityref {
base layer0-types:fec-type;
}
description
"List of all supported FEC types by this TTP.";
}
Redistribution and use in source and binary forms, with or leaf-list supported-termination-types {
without modification, is permitted pursuant to, and subject type identityref {
to the license terms contained in, the Simplified BSD base layer0-types:term-type;
License set forth in Section 4.c of the IETF Trust's Legal }
Provisions Relating to IETF Documents description
(http://trustee.ietf.org/license-info)."; "List of all supported termination types by this TTP.";
}
revision 2018-08-11 { leaf supports-bit-stuffing {
description type boolean;
"version 8."; description
"Indicate whether bit stuffing is supported by this TTP.";
}
reference leaf is-tunable {
"RFC XXX: A Yang Data Model for type boolean;
Flexi-Grid Optical Networks "; description
"Indicates if the TTP, or transponder, is tunable. Tunable
transponders are assumed to be fully tunable to any of the
96 channels within DWDM C-band.";
}
leaf max-subcarrier-channel-num {
type uint8 {
range "1..max";
} }
default 1;
description
"Indicate the maximum number of subcarrier channels for
super-channel transponders. When the value equals 1 it
represents regular single-channel transponder.";
}
leaf supports-flex-grid {
type boolean;
description
"Indicates if the TTP, or transponder, supports flex grid.";
}
}
/* /*
Typedefs * Data nodes
*/ */
typedef operational-mode { augment "/nw:networks/nw:network/nw:network-types"
type string; + "/tet:te-topology" {
description description "flex-grid-topology augmented";
"Vendor-specific mode that guarantees interoperability. container flex-grid-topology {
It must be an string with the following format: presence "indicates a topology of Flex Grid";
B-DScW-ytz(v) where all these attributes are conformant description
to the ITU-T recomendation"; "Container to identify Flex-grid topology type";
reference "ITU-T G.698.2 (11/2009) Section 5.3"; }
} }
typedef interface-type { augment "/nw:networks/nw:network/nt:link/tet:te"
type enumeration { + "/tet:te-link-attributes" {
enum numbered-interface { when "/nw:networks/nw:network/nw:network-types"
description "The interface is numbered"; +"/tet:te-topology/flex-grid:flex-grid-topology" {
} description "This augment is only valid for flex-grid.";
enum unnumbered-interface { }
description "The interface is unnumbered"; description "Flex-grid Link augmentation.";
} uses flex-grid-link-attributes;
}
description
"Enumeration that defines if an interface is numbered or
unnumbered";
} }
/*
Typedef related to references augment "/nw:networks/nw:network/nw:node/nt:termination-point/"
+ "tet:te" {
when "/nw:networks/nw:network/nw:network-types"
+"/tet:te-topology/flex-grid:flex-grid-topology" {
description "This augment is only valid for flex-grid.";
}
description "Flex-grid TP attributes.";
uses flex-grid-tp-attributes;
}
augment "/nw:networks/nw:network/nw:node/tet:te"
+ "/tet:te-node-attributes" {
when "/nw:networks/nw:network/nw:network-types"
+"/tet:te-topology/flex-grid:flex-grid-topology" {
description "This augment is only valid for flex-grid.";
}
description "Flex-grid Node augmentation.";
uses flex-grid-node-attributes;
}
augment "/nw:networks/nw:network/nw:node/tet:te"
+ "/tet:tunnel-termination-point" {
when "/nw:networks/nw:network/nw:network-types"
+"/tet:te-topology/flex-grid:flex-grid-topology" {
description "This augment is only valid for flex-grid.";
}
description "Flex-grid tunnel termination point augmentation.";
uses flex-grid-ttp-attributes;
}
/*
* Augment TE bandwidth
*/ */
typedef flexi-grid-link-ref {
type leafref {
path
"/nd:networks/nd:network/lnk:link/lnk:link-id";
}
description /* Augment maximum LSP bandwidth of link terminationpoint (LTP) */
"This type is used by data models that need to reference augment "/nw:networks/nw:network/nw:node/nt:termination-point/"
a flexi-grid optical link."; + "tet:te/"
} + "tet:interface-switching-capability/tet:max-lsp-bandwidth/"
+ "tet:te-bandwidth/tet:technology" {
when "../../../../../../nw:network-types/tet:te-topology/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE bandwidth";
}
description "flex-grid bandwidth.";
case flex-grid {
uses layer0-types:flex-grid-path-bandwidth;
}
}
typedef flexi-grid-node-port-ref { /* Augment bandwidth path constraints of connectivity-matrices */
type leafref { augment "/nw:networks/nw:network/nw:node/tet:te/"
path "/nd:networks/nd:network/nd:node/tet:te/" + "tet:te-node-attributes/tet:connectivity-matrices/"
+"tet:te-node-attributes/fg-ted:interfaces/" + "tet:path-constraints/tet:te-bandwidth/tet:technology" {
+"fg-ted:port-number"; when "../../../../../../nw:network-types/tet:te-topology/"
} + "flex-grid:flex-grid-topology" {
description description "Augment flex-grid TE bandwidth";
"This type is used by data models that need to reference }
a flexi-grid port."; description "flex-grid bandwidth.";
} case flex-grid {
uses layer0-types:flex-grid-link-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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE bandwidth";
}
description "flex-grid bandwidth.";
case flex-grid {
uses layer0-types:flex-grid-link-bandwidth;
}
}
typedef flexi-grid-transponder-ref { /* Augment bandwidth path constraints of connectivity-matrices
type leafref { information-source */
path "/nd:networks/nd:network/nd:node/tet:te/"+ augment "/nw:networks/nw:network/nw:node/tet:te/"
"tet:tunnel-termination-point/tet:tunnel-tp-id"; + "tet:information-source-entry/tet:connectivity-matrices/"
} + "tet:path-constraints/tet:te-bandwidth/tet:technology" {
description when "../../../../../../nw:network-types/tet:te-topology/"
"This type is used by data models that need to reference + "flex-grid:flex-grid-topology" {
a trasponder."; description "Augment flex-grid TE bandwidth";
} }
description "flex-grid bandwidth.";
case flex-grid {
uses layer0-types:flex-grid-link-bandwidth;
}
}
/* /* Augment bandwidth path constraints of connectivity-matrix
Groupings of attributes 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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE bandwidth";
}
description "flex-grid bandwidth.";
case flex-grid {
uses layer0-types:flex-grid-link-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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE bandwidth";
}
description "flex-grid bandwidth.";
case flex-grid {
uses layer0-types:flex-grid-link-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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE bandwidth";
}
description "flex-grid bandwidth.";
case flex-grid {
uses layer0-types:flex-grid-link-bandwidth;
}
}
/* Augment bandwidth path constraints of local-link-connectivity (LLC)
*/ */
grouping flexi-grid-network-type { augment "/nw:networks/nw:network/nw:node/tet:te/"
container flexi-grid-network { + "tet:tunnel-termination-point/"
presence "indicates a flexi-grid optical network"; + "tet:local-link-connectivities/"
description "flexi-grid optical network"; + "tet:local-link-connectivity/tet:path-constraints/"
} + "tet:te-bandwidth/tet:technology" {
description "If present, it indicates a flexi-grid when "../../../../../../../nw:network-types/tet:te-topology/"
optical TED network"; + "flex-grid:flex-grid-topology" {
} description "Augment flex-grid TE bandwidth";
grouping flexi-grid-node-attributes { }
description "Set of attributes of an optical node."; description "flex-grid bandwidth.";
case flex-grid {
uses layer0-types:flex-grid-link-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/"
+ "flex-grid:flex-grid-topology" {
description "flex-grid TE bandwidth.";
}
description "flex-grid bandwidth.";
case flex-grid {
uses layer0-types:flex-grid-path-bandwidth;
}
}
list interfaces { /* Augment maximum bandwidth of TE link */
key "name"; augment "/nw:networks/nw:network/nt:link/tet:te/"
unique "port-number"; + "tet:te-link-attributes/"
description "List of interfaces contained in the node"; + "tet:max-link-bandwidth/"
leaf name { + "tet:te-bandwidth/tet:technology" {
type string; when "../../../../../nw:network-types/tet:te-topology/"
description "Interface name"; + "flex-grid:flex-grid-topology" {
} description "flex-grid TE bandwidth.";
leaf port-number { }
type uint32; description "flex-grid bandwidth.";
description "Number of the port used by the interface"; case flex-grid {
} uses layer0-types:flex-grid-link-bandwidth;
}
}
leaf input-port { /* Augment maximum reservable bandwidth of TE link */
type boolean; augment "/nw:networks/nw:network/nt:link/tet:te/"
description "Determines if the port is an input port"; + "tet:te-link-attributes/"
} + "tet:max-resv-link-bandwidth/"
leaf output-port { + "tet:te-bandwidth/tet:technology" {
type boolean; when "../../../../../nw:network-types/tet:te-topology/"
description + "flex-grid:flex-grid-topology" {
"Determines if the port is an output port"; description "flex-grid TE bandwidth.";
} }
leaf description { description "flex-grid bandwidth.";
type string; case flex-grid {
description "Description of the interface"; uses layer0-types:flex-grid-link-bandwidth;
} }
leaf type { }
type interface-type; /* Augment unreserved bandwidth of TE Link */
description "Determines the type of the interface"; augment "/nw:networks/nw:network/nt:link/tet:te/"
} + "tet:te-link-attributes/"
container numbered-interface { + "tet:unreserved-bandwidth/"
when "../fg-ted:type = + "tet:te-bandwidth/tet:technology" {
'numbered-interface'" { when "../../../../../nw:network-types/tet:te-topology/"
description + "flex-grid:flex-grid-topology" {
"If the interface is a numbered interface"; description "flex-grid TE bandwidth.";
} }
description "Container that defines an numbered description "flex-grid bandwidth.";
interface with an ip-address"; case flex-grid {
leaf n-i-ip-address{ uses layer0-types:flex-grid-link-bandwidth;
type inet:ip-address; }
description "IP address of the numbered interface"; }
}
}
container unnumbered-interface {
when "../fg-ted:type =
'unnumbered-interface'" {
description
"If the interface is an unnumbered interface";
}
description "Container that defines an unnumbered
interface with an ip-address and a label";
leaf u-i-ip-address{
type inet:ip-address;
description "IP address of the interface";
}
leaf label {
type uint32;
description "Number as label for the interface";
}
}
}
}
grouping flexi-grid-link-attributes { /* Augment maximum LSP bandwidth of TE link information-source */
description "Set of attributes of an optical link"; augment "/nw:networks/nw:network/nt:link/tet:te/"
leaf-list available-label-flexi-grid { + "tet:information-source-entry/"
type bits { + "tet:interface-switching-capability/"
bit is-available{ + "tet:max-lsp-bandwidth/"
description "Set to 1 when it is available"; + "tet:te-bandwidth/tet:technology" {
} when "../../../../../../nw:network-types/tet:te-topology/"
} + "flex-grid:flex-grid-topology" {
description description "flex-grid TE bandwidth.";
"Array of bits that determines whether a spectral }
slot is available or not."; description "flex-grid bandwidth.";
} case flex-grid {
uses layer0-types:flex-grid-path-bandwidth;
}
}
leaf N-max { /* Augment maximum bandwidth of TE link information-source */
type int32; augment "/nw:networks/nw:network/nt:link/tet:te/"
description "Maximum number of channels available."; + "tet:information-source-entry/"
} + "tet:max-link-bandwidth/"
+ "tet:te-bandwidth/tet:technology" {
when "../../../../../nw:network-types/tet:te-topology/"
+ "flex-grid:flex-grid-topology" {
description "flex-grid TE bandwidth.";
}
description "flex-grid bandwidth.";
case flex-grid {
uses layer0-types:flex-grid-link-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/"
+ "flex-grid:flex-grid-topology" {
description "flex-grid TE bandwidth.";
}
description "flex-grid bandwidth.";
case flex-grid {
uses layer0-types:flex-grid-link-bandwidth;
}
}
leaf base-frequency { /* Augment unreserved bandwidth of TE link information-source */
type decimal64 { augment "/nw:networks/nw:network/nt:link/tet:te/"
fraction-digits 5; + "tet:information-source-entry/"
} + "tet:unreserved-bandwidth/"
units THz; + "tet:te-bandwidth/tet:technology" {
default 193.1; when "../../../../../nw:network-types/tet:te-topology/"
description "Default central frequency"; + "flex-grid:flex-grid-topology" {
reference "rfc7698"; description "flex-grid TE bandwidth.";
} }
leaf nominal-central-frequency-granularity { description "flex-grid bandwidth.";
type decimal64 { case flex-grid {
fraction-digits 5; uses layer0-types:flex-grid-link-bandwidth;
} }
units GHz; }
default 6.25;
description
"It is the spacing between allowed nominal central
frequencies and it is set to 6.25 GHz";
reference "rfc7698";
}
leaf slot-width-granularity { /* Augment maximum LSP bandwidth of TE link template */
type decimal64 { augment "/nw:networks/tet:te/tet:templates/"
fraction-digits 5; + "tet:link-template/tet:te-link-attributes/"
} + "tet:interface-switching-capability/"
units GHz; + "tet:max-lsp-bandwidth/"
default 12.5; + "tet:te-bandwidth/tet:technology" {
description "Minimum space between slot widths"; /*
reference "rfc7698"; when "../../../../../../nw:network-types/tet:te-topology/"
} + "flex-grid:flex-grid-topology" {
} description "flex-grid TE bandwidth.";
}
*/
description "flex-grid bandwidth.";
case flex-grid {
uses layer0-types:flex-grid-path-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/"
+ "flex-grid:flex-grid-topology" {
description "flex-grid TE bandwidth.";
}
*/
description "flex-grid bandwidth.";
case flex-grid {
uses layer0-types:flex-grid-link-bandwidth;
}
}
grouping flexi-grid-transponder-attributes { /* Augment maximum reservable bandwidth of TE link template */
description "Configuration of an optical transponder"; augment "/nw:networks/tet:te/tet:templates/"
leaf-list available-operational-mode { + "tet:link-template/tet:te-link-attributes/"
type operational-mode; + "tet:max-resv-link-bandwidth/"
description "List of all vendor-specific supported + "tet:te-bandwidth/tet:technology" {
mode identifiers"; /*
} when "../../../../../nw:network-types/tet:te-topology/"
+ "flex-grid:flex-grid-topology" {
description "flex-grid TE bandwidth.";
}
*/
description "flex-grid bandwidth.";
case flex-grid {
uses layer0-types:flex-grid-link-bandwidth;
}
}
leaf operational-mode { /* Augment unreserved bandwidth of TE link template */
type operational-mode; augment "/nw:networks/tet:te/tet:templates/"
description "Vendor-specific mode identifier"; + "tet:link-template/tet:te-link-attributes/"
} + "tet:unreserved-bandwidth/"
} + "tet:te-bandwidth/tet:technology" {
grouping flexi-grid-connectivity-matrix-attributes { /*
description "Connectivity matrix between the input and when "../../../../../../nw:network-types/tet:te-topology/"
output ports"; + "flex-grid:flex-grid-topology" {
list connections { description "flex-grid TE bandwidth.";
key "input-port-id"; }
leaf input-port-id { */
type flexi-grid-node-port-ref; description "flex-grid bandwidth.";
description "Identifier of the input port"; case flex-grid {
} uses layer0-types:flex-grid-link-bandwidth;
leaf output-port-id { }
type flexi-grid-node-port-ref; }
description "Identifier of the output port";
}
description "List of connections between input and
output ports";
}
}
/* /*
Augments * Augment TE label.
*/ */
augment "/nd:networks/nd:network/nd:network-types" {
uses flexi-grid-network-type;
description "Augment network-types including flexi-grid
topology";
}
augment "/nd:networks/nd:network/lnk:link/tet:te" + /* Augment label restrictions of connectivity-matrices */
"/tet:te-link-attributes" { augment "/nw:networks/nw:network/nw:node/tet:te/"
when "/nd:networks/nd:network/nd:network-types/ + "tet:te-node-attributes/tet:connectivity-matrices/"
fg-ted:flexi-grid-network" { + "tet:label-restrictions/tet:label-restriction" {
description "Augment only for Flexigrid network."; when "../../../../../../nw:network-types/tet:te-topology/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
} }
description "Augment link configuration"; description "flex-grid label.";
uses flexi-grid-link-attributes; uses layer0-types:flex-grid-label-restriction;
} }
/* NMDA Compliant
augment "/nd-s:networks/nd-s:network/nd-s:network-types" { /* Augment label restrictions start of connectivity-matrices */
uses flexi-grid-network-type; augment "/nw:networks/nw:network/nw:node/tet:te/"
description "Augment network-types including flexi-grid + "tet:te-node-attributes/tet:connectivity-matrices/"
topology"; + "tet:label-restrictions/tet:label-restriction/"
} + "tet:label-start/"
augment "/nd-s:networks/nd-s:network/lnk-s:link/tet-s:te" + + "tet:te-label/tet:technology" {
"/tet-s:te-link-attributes" { when "../../../../../../../../nw:network-types/tet:te-topology/"
when "/nd-s:networks/nd-s:network/nd-s:network-types/ + "flex-grid:flex-grid-topology" {
fg-ted:flexi-grid-network" { description "Augment flex-grid TE label";
description "Augment only for Flexigrid network."; }
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
} }
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
description "Augment link state"; /* Augment label hop of underlay primary path of connectivity-matrices
uses flexi-grid-link-attributes; */
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes/tet:connectivity-matrices/"
+ "tet:underlay/tet:primary-path/tet:path-element/"
+ "tet:type/tet:label/tet:label-hop/"
+ "tet:te-label/tet:technology" {
when "../../../../../../../../../"
+ "nw:network-types/tet:te-topology/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-label;
}
} }
*/
augment "/nd:networks/nd:network/nd:node/tet:te" +
"/tet:te-node-attributes" {
when "/nd:networks/nd:network/nd:network-types/
fg-ted:flexi-grid-network" {
description "Augment only for Flexigrid network.";
}
uses flexi-grid-node-attributes;
description "Augment node config with flexi-grid attributes";
}
/* NMDA Compliant
augment "/nd-s:networks/nd-s:network/nd-s:node/tet-s:te" +
"/tet-s:te-node-attributes" {
when "/nd-s:networks/nd-s:network/nd-s:network-types/
fg-ted:flexi-grid-network" {
description "Augment only for Flexigrid network.";
}
uses flexi-grid-node-attributes; /* Augment label hop of underlay backup path of connectivity-matrices
description "Augment node state with flexi-grid attributes";
}
*/ */
augment "/nd:networks/nd:network/nd:node/tet:te"+ augment "/nw:networks/nw:network/nw:node/tet:te/"
"/tet:te-node-attributes/tet:connectivity-matrices/"+ + "tet:te-node-attributes/tet:connectivity-matrices/"
"tet:connectivity-matrix" { + "tet:underlay/tet:backup-path/tet:path-element/"
when "/nd:networks/nd:network/nd:network-types/ + "tet:type/tet:label/tet:label-hop/"
fg-ted:flexi-grid-network" { + "tet:te-label/tet:technology" {
description "Augment only for Flexigrid network."; when "../../../../../../../../../"
} + "nw:network-types/tet:te-topology/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-label;
}
}
uses flexi-grid-connectivity-matrix-attributes; /* Augment label hop of route-include of connectivity-matrices (added)
description "Augment node connectivity-matrix for node config"; */
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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
} }
/* NMDA Compliant description "flex-grid label.";
augment "/nd-s:networks/nd-s:network/nd-s:node/tet-s:te"+ case flex-grid {
"/tet-s:te-node-attributes/tet-s:connectivity-matrices/"+ uses layer0-types:flex-grid-path-label;
"tet-s:connectivity-matrix" { }
when "/nd-s:networks/nd-s:network/nd-s:network-types/ }
fg-ted:flexi-grid-network"{ /* Augment label hop of path-route of connectivity-matrices */
description "Augment only for Flexigrid network."; 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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-label;
}
}
uses flexi-grid-connectivity-matrix-attributes; /* Augment ingress label restrictions of connectivity-matrix */
description "Augment node connectivity-matrix for node config"; 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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
} }
*/ description "flex-grid label.";
uses layer0-types:flex-grid-label-restriction;
}
augment "/nd:networks/nd:network/nd:node/tet:te"+ /* Augment ingress label restrictions start of connectivity-matrix */
"/tet:tunnel-termination-point" { augment "/nw:networks/nw:network/nw:node/tet:te/"
when "/nd:networks/nd:network/nd:network-types/ + "tet:te-node-attributes/tet:connectivity-matrices/"
fg-ted:flexi-grid-network"{ + "tet:connectivity-matrix/tet:from/"
description "Augment only for Flexigrid network."; + "tet:label-restrictions/tet:label-restriction/"
} + "tet:label-start/"
uses flexi-grid-transponder-attributes; + "tet:te-label/tet:technology" {
description "Augment node state with transponder attributes"; when "../../../../../../../../../../"
} + "nw:network-types/tet:te-topology/"
/* NMDA Compliant + "flex-grid:flex-grid-topology" {
augment "/nd-s:networks/nd-s:network/nd-s:node/tet-s:te"+ description "Augment flex-grid TE label";
"/tet-s:tunnel-termination-point" { }
when "/nd-s:networks/nd-s:network/nd-s:network-types/ description "flex-grid label.";
fg-ted:flexi-grid-network"{ case flex-grid {
description "Augment only for Flexigrid network."; uses layer0-types:flex-grid-link-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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
uses flexi-grid-transponder-attributes; /* Augment egress label restrictions of connectivity-matrix */
description "Augment node state with transponder attributes"; 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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
uses layer0-types:flex-grid-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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* 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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-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" {
when "../../../../../../../../../../"
+ "nw:network-types/tet:te-topology/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-label;
}
}
/* 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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
uses layer0-types:flex-grid-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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* Augment label restrictions end 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-end/tet:te-label/tet:technology" {
when "../../../../../../../../"
+ "nw:network-types/tet:te-topology/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* 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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-label;
}
}
/* Augment label hop of underlay backup path of connectivity-matrices
information-source */
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:information-source-entry/tet:connectivity-matrices/"
+ "tet:underlay/tet:backup-path/tet:path-element/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when "../../../../../../../../../"
+ "nw:network-types/tet:te-topology/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
uses layer0-types:flex-grid-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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* 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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* 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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
uses layer0-types:flex-grid-label-restriction;
}
/* 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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* 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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-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" {
when "../../../../../../../../../../../"
+ "nw:network-types/tet:te-topology/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-label;
}
}
/* 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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
uses layer0-types:flex-grid-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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* 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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-label;
}
}
/* Augment label hop of route-exclude of local-link-connectivities */
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:tunnel-termination-point/"
+ "tet:local-link-connectivities/"
+ "tet:optimizations/tet:algorithm/tet:metric/"
+ "tet:optimization-metric/"
+ "tet:explicit-route-exclude-objects/"
+ "tet:route-object-exclude-object/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when "../../../../../../../../../../"
+ "nw:network-types/tet:te-topology/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
uses layer0-types:flex-grid-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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-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" {
when "../../../../../../../../../"
+ "nw:network-types/tet:te-topology/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* 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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-label;
}
}
/* Augment label hop of underlay backup path of
local-link-connectivity (LLC) */
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:tunnel-termination-point/"
+ "tet:local-link-connectivities/"
+ "tet:local-link-connectivity/"
+ "tet:underlay/tet:backup-path/tet:path-element/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when "../../../../../../../../../../"
+ "nw:network-types/tet:te-topology/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-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" {
when "../../../../../../../../../../../"
+ "nw:network-types/tet:te-topology/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-label;
}
}
/* Augment label hop of underlay backup path of TE link */
augment "/nw:networks/nw:network/nt:link/tet:te/"
+ "tet:te-link-attributes/"
+ "tet:underlay/tet:backup-path/tet:path-element/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when "../../../../../../../../"
+ "nw:network-types/tet:te-topology/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
uses layer0-types:flex-grid-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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* 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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
uses layer0-types:flex-grid-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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* 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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* 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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
*/
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-label;
}
}
/* 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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
*/
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
*/
description "flex-grid label.";
uses layer0-types:flex-grid-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/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
*/
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* 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" {
/*
when "../../../../../../../nw:network-types/tet:te-topology/"
+ "flex-grid:flex-grid-topology" {
description "Augment flex-grid TE label";
}
*/
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
}
<CODE ENDS> <CODE ENDS>
A.3. License A.3. License
Copyright (c) 2018 IETF Trust and the persons identified as authors Copyright (c) 2018 IETF Trust and the persons identified as authors
of the code. All rights reserved. of the code. All rights reserved.
Redistribution and use in source and binary forms, with or without Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions modification, are permitted provided that the following conditions
are met: are met:
skipping to change at page 21, line 25 skipping to change at page 66, line 25
[I-D.draft-ietf-teas-yang-te-topo] Liu, X., Bryskin, I., Pavan [I-D.draft-ietf-teas-yang-te-topo] Liu, X., Bryskin, I., Pavan
Beeram, V., Saad, T., Shah, H., Gonzalez De Dios, O., "YANG Beeram, V., Saad, T., Shah, H., Gonzalez De Dios, O., "YANG
Data Model for TE Topologies", Internet Draft Data Model for TE Topologies", Internet Draft
draft-ietf-teas-yang-te-topo-18.txt, 2018. draft-ietf-teas-yang-te-topo-18.txt, 2018.
[I-D.draft-dharini-ccamp-dwdm-if-yang] Galimberti, G., Kunze, R., [I-D.draft-dharini-ccamp-dwdm-if-yang] Galimberti, G., Kunze, R.,
Lam, K., Hiremagalur, D., Grammel, G., Fang, L., Ratterree, G., Lam, K., Hiremagalur, D., Grammel, G., Fang, L., Ratterree, G.,
Eds., "A YANG model to manage the optical interface parameters Eds., "A YANG model to manage the optical interface parameters
for an external transponder in a WDM network", Internet Draft, for an external transponder in a WDM network", Internet Draft,
draft-dharini-ccamp-dwdm-if-param-yang-05.txt, 2018. draft-dharini-ccamp-dwdm-if-param-yang-06.txt, 2018.
[I-D.draft-ietf-ccamp-wson-yang] Lee, Y. Dhody, D., Zhang, X., Guo, [I-D.draft-ietf-ccamp-wson-yang] Lee, Y. Dhody, D., Zhang, X., Guo,
A., Lopez, V., King, D., Yoon, B.,"A Yang Data Model for WSON A., Lopez, V., King, D., Yoon, B.,"A Yang Data Model for WSON
Optical Networks", Internet Draft, Optical Networks", Internet Draft,
draft-ietf-ccamp-wson-yang-10.txt, 2018. draft-ietf-ccamp-wson-yang-14.txt, 2018.
[I-D.draft-ietf-ccamp-flexigrid-media-channel-yang] Lopez de [I-D.draft-ietf-ccamp-flexigrid-media-channel-yang] Lopez de
Vergara, J., Perdices, D., Lopez, V., Gonzalez de Dios, O., Vergara, J., Perdices, D., Lopez, V., Gonzalez de Dios, O.,
King, D., Lee, Y., Galimberti, G., "YANG data model for King, D., Lee, Y., Galimberti, G., "YANG data model for
Flexi-Grid media-channels", Internet Draft, Flexi-Grid media-channels", Internet Draft,
draft-ietf-ccamp-flexigrid-media-channel-yang-00, 2018. draft-ietf-ccamp-flexigrid-media-channel-yang-00, 2018.
10. Contributors 10. Contributors
The model presented in this paper was contributed to by more people The model presented in this paper was contributed to by more people
skipping to change at page 22, line 16 skipping to change at page 67, line 16
The work presented in this Internet-Draft has been partially funded The work presented in this Internet-Draft has been partially funded
by the European Commission under the project H2020 METRO-HAUL by the European Commission under the project H2020 METRO-HAUL
(Metro High bandwidth, 5G Application-aware optical network, with (Metro High bandwidth, 5G Application-aware optical network, with
edge storage, compUte and low Latency), Grant Agreement number: edge storage, compUte and low Latency), Grant Agreement number:
761727, and by the Spanish Ministry of Economy and Competitiveness 761727, and by the Spanish Ministry of Economy and Competitiveness
under the project TRAFICA, MINECO/FEDER TEC2015-69417-C2-1-R. under the project TRAFICA, MINECO/FEDER TEC2015-69417-C2-1-R.
Authors' Addresses Authors' Addresses
Jorge E. Lopez de Vergara Jorge E. Lopez de Vergara Mendez
Universidad Autonoma de Madrid Universidad Autonoma de Madrid
Escuela Politecnica Superior Escuela Politecnica Superior
C/Francisco Tomas y Valiente, 11 C/Francisco Tomas y Valiente, 11
E-28049 Madrid, Spain E-28049 Madrid, Spain
Email: jorge.lopez_vergara@uam.es Email: jorge.lopez_vergara@uam.es
Daniel Perdices Burrero Daniel Perdices Burrero
Naudit High Performance Computing and Networking, S.L. Naudit High Performance Computing and Networking, S.L.
C/Faraday, 7 C/Faraday, 7
E-28049 Madrid, Spain E-28049 Madrid, Spain
Email: daniel.perdices@naudit.es Email: daniel.perdices@naudit.es
Victor Lopez Victor Lopez Alvarez
Telefonica I+D/GCTO Telefonica I+D/GCTO
Distrito Telefonica Distrito Telefonica
E-28050 Madrid, Spain E-28050 Madrid, Spain
Email: victor.lopezalvarez@telefonica.com Email: victor.lopezalvarez@telefonica.com
Oscar Gonzalez de Dios Oscar Gonzalez de Dios
Telefonica I+D/GCTO Telefonica I+D/GCTO
Distrito Telefonica Distrito Telefonica
E-28050 Madrid, Spain E-28050 Madrid, Spain
 End of changes. 66 change blocks. 
369 lines changed or deleted 2466 lines changed or added

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