draft-ietf-ccamp-flexigrid-media-channel-yang-00.txt   draft-ietf-ccamp-flexigrid-media-channel-yang-01.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: November 27, 2018 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
May 24, 2018 October 22, 2018
YANG data model for Flexi-Grid media-channels YANG data model for Flexi-Grid media-channels
draft-ietf-ccamp-flexigrid-media-channel-yang-00.txt draft-ietf-ccamp-flexigrid-media-channel-yang-01.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 November 27, 2018 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 25 skipping to change at page 2, line 25
It is also grounded on other defined YANG abstract models. It is also grounded on other defined YANG abstract models.
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 media-channel overview ......................... 3 3. Flexi-grid media-channel overview ......................... 3
4. Example of use ............................................ 4 4. Example of use ............................................ 4
5. Media Channel YANG Model .................................. 5 5. Media Channel YANG Model .................................. 5
5.1. YANG Model - Tree .................................... 5 5.1. YANG Model - Tree .................................... 5
5.2. YANG Model - Code .................................... 6 5.2. YANG Model - Code .................................... 20
5.3. License .............................................. 10 5.3. License .............................................. 41
6. Security Considerations ................................... 10 6. Security Considerations ................................... 42
7. IANA Considerations ....................................... 10 7. IANA Considerations ....................................... 42
8. References ................................................ 11 8. References ................................................ 42
8.1. Normative References ................................. 11 8.1. Normative References ................................. 42
8.2. Informative References ............................... 11 8.2. Informative References ............................... 43
9. Contributors .............................................. 11 9. Contributors .............................................. 43
10. Acknowledgments ........................................... 11 10. Acknowledgments ........................................... 43
Authors' Addresses ............................................ 12 Authors' Addresses ............................................ 43
1. Introduction 1. Introduction
Transport networks are evolving from current DWDM systems towards Transport networks are evolving 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]. Such technology aims at increasing switching technologies [RFC7698]. Such 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.
While [I-D.draft-ietf-ccamp-flexigrid-yang] focuses on flexi-grid While [I-D.draft-ietf-ccamp-flexigrid-yang] focuses on flexi-grid
skipping to change at page 5, line 23 skipping to change at page 5, line 23
are going to use, providing information about the slots, and what are going to use, providing information about the slots, and what
nodes are connected. nodes are connected.
3. Finally, the flexi-grid TED has to be updated with each element 3. Finally, the flexi-grid TED has to be updated with each element
usage status each time a media channel is created or torn down. usage status each time a media channel is created or torn down.
5. Media Channel YANG Model 5. Media Channel YANG Model
5.1. YANG Model - Tree 5.1. YANG Model - Tree
module: ietf-flexi-grid-media-channel module: ietf-flex-grid-media-channel
augment /te:te/te:tunnels/te:tunnel: augment /te:te/te:tunnels/te:tunnel:
+--rw source-port? fg-ted:flexi-grid-node-port-ref +--rw src-client-signal? identityref
+--rw destination-port? fg-ted:flexi-grid-node-port-ref +--rw dst-client-signal? identityref
+--rw effective-freq-slot +--rw fec-type? identityref
+--rw N? int32 +--rw termination-type? identityref
+--rw M? int32 +--rw bit-stuffing? boolean
augment /te:te/te:tunnels/te:tunnel/te:state: augment /te:te/te:globals/te:named-path-constraints/
+--ro source-port? fg-ted:flexi-grid-node-port-ref te:named-path-constraint/te:te-bandwidth/te:technology:
+--ro destination-port? fg-ted:flexi-grid-node-port-ref +--:(flex-grid)
+--ro effective-freq-slot +--rw bandwidth-type? identityref
+--ro N? int32 augment /te:te/te:tunnels/te:tunnel/te:te-bandwidth/te:technology:
+--ro M? int32 +--:(flex-grid)
augment /te:te/te:lsps-state/te:lsp: +--rw bandwidth-type? identityref
+--ro N? int32 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/
+--ro M? int32 te:p2p-primary-path/te:te-bandwidth/te:technology:
+--ro source-port? fg-ted:flexi-grid-node-port-ref +--:(flex-grid)
+--ro destination-port? fg-ted:flexi-grid-node-port-ref +--rw bandwidth-type? identityref
+--ro link? fg-ted:flexi-grid-link-ref augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/
+--ro bidirectional? boolean te:p2p-primary-path/te:p2p-reverse-primary-path/te:te-bandwidth/
te:technology:
+--:(flex-grid)
+--rw bandwidth-type? identityref
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/
te:p2p-secondary-path/te:te-bandwidth/te:technology:
+--:(flex-grid)
+--rw bandwidth-type? identityref
augment /te:te/te:globals/te:named-path-constraints/
te:named-path-constraint/te:explicit-route-objects/
te:route-object-exclude-always/te:type/te:label/te:label-hop/
te:te-label/te:technology:
+--:(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 /te:te/te:globals/te:named-path-constraints/
te:named-path-constraint/te:explicit-route-objects/
te:route-object-include-exclude/te:type/te:label/te:label-hop/
te:te-label/te:technology:
+--:(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 /te:te/te:globals/te:named-path-constraints/
te:named-path-constraint/te:path-in-segment/te:forward/
te:label-restrictions/te: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 /te:te/te:globals/te:named-path-constraints/
te:named-path-constraint/te:path-in-segment/te:forward/
te:label-restrictions/te:label-restriction/te:label-start/
te:te-label/te:technology:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
augment /te:te/te:globals/te:named-path-constraints/
te:named-path-constraint/te:path-in-segment/te:forward/
te:label-restrictions/te:label-restriction/te:label-end/
te:te-label/te:technology:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
augment /te:te/te:globals/te:named-path-constraints/
te:named-path-constraint/te:path-in-segment/te:reverse/
te:label-restrictions/te: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 /te:te/te:globals/te:named-path-constraints/
te:named-path-constraint/te:path-in-segment/te:reverse/
te:label-restrictions/te:label-restriction/te:label-start/
te:te-label/te:technology:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
augment /te:te/te:globals/te:named-path-constraints/
te:named-path-constraint/te:path-in-segment/te:reverse/
te:label-restrictions/te:label-restriction/te:label-end/
te:te-label/te:technology:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
augment /te:te/te:globals/te:named-path-constraints/
te:named-path-constraint/te:path-out-segment/te:forward/
te:label-restrictions/te: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 /te:te/te:globals/te:named-path-constraints/
te:named-path-constraint/te:path-out-segment/te:forward/
te:label-restrictions/te:label-restriction/te:label-start/
te:te-label/te:technology:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
augment /te:te/te:globals/te:named-path-constraints/
te:named-path-constraint/te:path-out-segment/te:forward/
te:label-restrictions/te:label-restriction/te:label-end/
te:te-label/te:technology:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
augment /te:te/te:globals/te:named-path-constraints/
te:named-path-constraint/te:path-out-segment/te:reverse/
te:label-restrictions/te: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 /te:te/te:globals/te:named-path-constraints/
te:named-path-constraint/te:path-out-segment/te:reverse/
te:label-restrictions/te:label-restriction/te:label-start/
te:te-label/te:technology:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
augment /te:te/te:globals/te:named-path-constraints/
te:named-path-constraint/te:path-out-segment/te:reverse/
te:label-restrictions/te:label-restriction/te:label-end/
te:te-label/te:technology:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/
te:p2p-primary-path/te:optimizations/te:algorithm/te:metric/
te:optimization-metric/te:explicit-route-exclude-objects/
te:route-object-exclude-object/te:type/te:label/te:label-hop/
te:te-label/te:technology:
+--:(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 /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/
te:p2p-primary-path/te:optimizations/te:algorithm/te:metric/
te:optimization-metric/te:explicit-route-include-objects/
te:route-object-include-object/te:type/te:label/te:label-hop/
te:te-label/te:technology:
+--:(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 /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/
te:p2p-primary-path/te:explicit-route-objects/
te:route-object-exclude-always/te:type/te:label/te:label-hop/
te:te-label/te:technology:
+--:(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 /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/
te:p2p-primary-path/te:explicit-route-objects/
te:route-object-include-exclude/te:type/te:label/te:label-hop/
te:te-label/te:technology:
+--:(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 /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/
te:p2p-primary-path/te:path-in-segment/te:forward/
te:label-restrictions/te: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 /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/
te:p2p-primary-path/te:path-in-segment/te:forward/
te:label-restrictions/te:label-restriction/te:label-start/
te:te-label/te:technology:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/
te:p2p-primary-path/te:path-in-segment/te:forward/
te:label-restrictions/te:label-restriction/te:label-end/
te:te-label/te:technology:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/
te:p2p-primary-path/te:path-in-segment/te:reverse/
te:label-restrictions/te: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 /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/
te:p2p-primary-path/te:path-in-segment/te:reverse/
te:label-restrictions/te:label-restriction/te:label-start/
te:te-label/te:technology:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/
te:p2p-primary-path/te:path-in-segment/te:reverse/
te:label-restrictions/te:label-restriction/te:label-end/
te:te-label/te:technology:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/
te:p2p-primary-path/te:path-out-segment/te:forward/
te:label-restrictions/te: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 /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/
te:p2p-primary-path/te:path-out-segment/te:forward/
te:label-restrictions/te:label-restriction/te:label-start/
te:te-label/te:technology:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/
te:p2p-primary-path/te:path-out-segment/te:forward/
te:label-restrictions/te:label-restriction/te:label-end/
te:te-label/te:technology:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/
te:p2p-primary-path/te:path-out-segment/te:reverse/
te:label-restrictions/te: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 /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/
te:p2p-primary-path/te:path-out-segment/te:reverse/
te:label-restrictions/te:label-restriction/te:label-start/
te:te-label/te:technology:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/
te:p2p-primary-path/te:path-out-segment/te:reverse/
te:label-restrictions/te:label-restriction/te:label-end/
te:te-label/te:technology:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/
te:p2p-primary-path/te:state/te:path-properties/
te:path-route-objects/te:path-computed-route-object/te:state/
te:type/te:label/te:label-hop/te:te-label/te:technology:
+--:(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 /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/
te:p2p-primary-path/te:state/te:lsps/te:lsp/
te:lsp-record-route-subobjects/te:record-route-subobject/te:type/
te:label/te:label-hop/te:te-label/te:technology:
+--:(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 /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/
te:p2p-primary-path/te:state/te:lsps/te:lsp/te:path-properties/
te:path-route-objects/te:path-computed-route-object/te:state/
te:type/te:label/te:label-hop/te:te-label/te:technology:
+--:(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 /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/
te:p2p-primary-path/te:p2p-reverse-primary-path/
te:optimizations/te:algorithm/te:metric/te:optimization-metric/
te:explicit-route-exclude-objects/te:route-object-exclude-object/
te:type/te:label/te:label-hop/te:te-label/te:technology:
+--:(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 /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/
te:p2p-primary-path/te:p2p-reverse-primary-path/
te:optimizations/te:algorithm/te:metric/te:optimization-metric/
te:explicit-route-include-objects/te:route-object-include-object/
te:type/te:label/te:label-hop/te:te-label/te:technology:
+--:(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 /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/
te:p2p-primary-path/te:p2p-reverse-primary-path/
te:explicit-route-objects/te:route-object-exclude-always/
te:type/te:label/te:label-hop/te:te-label/te:technology:
+--:(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 /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/
te:p2p-primary-path/te:p2p-reverse-primary-path/
te:explicit-route-objects/te:route-object-include-exclude/
te:type/te:label/te:label-hop/te:te-label/te:technology:
+--:(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 /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/
te:p2p-primary-path/te:p2p-reverse-primary-path/
te:path-in-segment/te:forward/te:label-restrictions/
te: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 /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/
te:p2p-primary-path/te:p2p-reverse-primary-path/te:path-in-segment/
te:forward/te:label-restrictions/te:label-restriction/
te:label-start/te:te-label/te:technology:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/
te:p2p-primary-path/te:p2p-reverse-primary-path/te:path-in-segment/
te:forward/te:label-restrictions/te:label-restriction/te:label-end/
te:te-label/te:technology:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/
te:p2p-primary-path/te:p2p-reverse-primary-path/
te:path-in-segment/te:reverse/te:label-restrictions/
te: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 /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/
te:p2p-primary-path/te:p2p-reverse-primary-path/
te:path-in-segment/te:reverse/te:label-restrictions/
te:label-restriction/te:label-start/te:te-label/te:technology:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/
te:p2p-primary-path/te:p2p-reverse-primary-path/
te:path-in-segment/te:reverse/te:label-restrictions/
te:label-restriction/te:label-end/te:te-label/te:technology:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/
te:p2p-primary-path/te:p2p-reverse-primary-path/
te:path-out-segment/te:forward/te:label-restrictions/
te: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 /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/
te:p2p-primary-path/te:p2p-reverse-primary-path/
te:path-out-segment/te:forward/te:label-restrictions/
te:label-restriction/te:label-start/te:te-label/te:technology:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/
te:p2p-primary-path/te:p2p-reverse-primary-path/
te:path-out-segment/te:forward/te:label-restrictions/
te:label-restriction/te:label-end/te:te-label/te:technology:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/
te:p2p-primary-path/te:p2p-reverse-primary-path/
te:path-out-segment/te:reverse/te:label-restrictions/
te: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 /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/
te:p2p-primary-path/te:p2p-reverse-primary-path/
te:path-out-segment/te:reverse/te:label-restrictions/
te:label-restriction/te:label-start/te:te-label/te:technology:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/
te:p2p-primary-path/te:p2p-reverse-primary-path/
te:path-out-segment/te:reverse/te:label-restrictions/
te:label-restriction/te:label-end/te:te-label/te:technology:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/
te:p2p-primary-path/te:p2p-reverse-primary-path/
te:state/te:path-properties/te:path-route-objects/
te:path-computed-route-object/te:state/te:type/te:label/
te:label-hop/te:te-label/te:technology:
+--:(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 /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/
te:p2p-primary-path/te:p2p-reverse-primary-path/te:state/te:lsps/
te:lsp/te:lsp-record-route-subobjects/te:record-route-subobject/
te:type/te:label/te:label-hop/te:te-label/te:technology:
+--:(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 /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/
te:p2p-primary-path/te:p2p-reverse-primary-path/
te:state/te:lsps/te:lsp/te:path-properties/te:path-route-objects/
te:path-computed-route-object/te:state/te:type/te:label/
te:label-hop/te:te-label/te:technology:
+--:(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 /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/
te:p2p-secondary-path/te:optimizations/te:algorithm/te:metric/
te:optimization-metric/te:explicit-route-exclude-objects/
te:route-object-exclude-object/te:type/te:label/te:label-hop/
te:te-label/te:technology:
+--:(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 /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/
te:p2p-secondary-path/te:optimizations/te:algorithm/te:metric/
te:optimization-metric/te:explicit-route-include-objects/
te:route-object-include-object/te:type/te:label/te:label-hop/
te:te-label/te:technology:
+--:(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 /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/
te:p2p-secondary-path/te:explicit-route-objects/
te:route-object-exclude-always/te:type/te:label/
te:label-hop/te:te-label/te:technology:
+--:(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 /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/
te:p2p-secondary-path/te:explicit-route-objects/
te:route-object-include-exclude/te:type/te:label/
te:label-hop/te:te-label/te:technology:
+--:(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 /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/
te:p2p-secondary-path/te:path-in-segment/te:forward/
te:label-restrictions/te: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 /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/
te:p2p-secondary-path/te:path-in-segment/te:forward/
te:label-restrictions/te:label-restriction/te:label-start/
te:te-label/te:technology:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/
te:p2p-secondary-path/te:path-in-segment/te:forward/
te:label-restrictions/te:label-restriction/te:label-end/
te:te-label/te:technology:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/
te:p2p-secondary-path/te:path-in-segment/te:reverse/
te:label-restrictions/te: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 /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/
te:p2p-secondary-path/te:path-in-segment/te:reverse/
te:label-restrictions/te:label-restriction/te:label-start/
te:te-label/te:technology:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/
te:p2p-secondary-path/te:path-in-segment/te:reverse/
te:label-restrictions/te:label-restriction/te:label-end/
te:te-label/te:technology:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/
te:p2p-secondary-path/te:path-out-segment/te:forward/
te:label-restrictions/te: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 /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/
te:p2p-secondary-path/te:path-out-segment/te:forward/
te:label-restrictions/te:label-restriction/te:label-start/
te:te-label/te:technology:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/
te:p2p-secondary-path/te:path-out-segment/te:forward/
te:label-restrictions/te:label-restriction/te:label-end/
te:te-label/te:technology:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/
te:p2p-secondary-path/te:path-out-segment/te:reverse/
te:label-restrictions/te: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 /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/
te:p2p-secondary-path/te:path-out-segment/te:reverse/
te:label-restrictions/te:label-restriction/te:label-start/
te:te-label/te:technology:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/
te:p2p-secondary-path/te:path-out-segment/te:reverse/
te:label-restrictions/te:label-restriction/te:label-end/
te:te-label/te:technology:
+--:(flex-grid)
+--rw central-frequency? frequency-thz
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/
te:p2p-secondary-path/te:state/te:path-properties/
te:path-route-objects/te:path-computed-route-object/
te:state/te:type/te:label/te:label-hop/te:te-label/
te:technology:
+--:(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 /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/
te:p2p-secondary-path/te:state/te:lsps/te:lsp/
te:lsp-record-route-subobjects/te:record-route-subobject/
te:type/te:label/te:label-hop/te:te-label/te:technology:
+--:(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 /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/
te:p2p-secondary-path/te:state/te:lsps/te:lsp/
te:path-properties/te:path-route-objects/
te:path-computed-route-object/te:state/te:type/te:label/
te:label-hop/te:te-label/te:technology:
+--:(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 /te:te/te:lsps-state/te:lsp/te:lsp-record-route-subobjects/
te:record-route-subobject/te:type/te:label/te:label-hop/
te:te-label/te: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 /te:tunnels-rpc/te:input/te:tunnel-info/tepc:path-request:
+---- src-client-signal? identityref
+---- dst-client-signal? identityref
+---- fec-type? identityref
+---- termination-type? identityref
+---- bit-stuffing? boolean
+---- wavelength-assignment? identityref
5.2. YANG Model - Code 5.2. YANG Model - Code
<CODE BEGINS> file "ietf-flexi-grid-media-channel@2018-05-24.yang" <CODE BEGINS> file "ietf-flexi-grid-media-channel@2018-10-22.yang"
module ietf-flexi-grid-media-channel { module ietf-flex-grid-media-channel {
yang-version 1.1; yang-version 1.1;
namespace namespace "urn:ietf:params:xml:ns:yang:ietf-flex-grid-media-channel";
"urn:ietf:params:xml:ns:yang:ietf-flexi-grid-media-channel"; prefix "flex-grid-tunnel";
prefix "fg-mc";
import ietf-flexi-grid-ted { import ietf-te { prefix "te"; }
prefix "fg-ted"; import ietf-layer0-types{ prefix "layer0-types"; }
} import ietf-te-path-computation { prefix "tepc"; }
import ietf-otn-types { prefix "otn-types"; }
import ietf-te { organization
prefix "te"; "IETF CCAMP Working Group";
}
import ietf-network { contact
prefix "nd"; "WG Web: <http://tools.ietf.org/wg/ccamp/>
} WG List: <mailto:ccamp@ietf.org>
organization
"IETF CCAMP Working Group";
contact
"Editor: Jorge Lopez de Vergara
<jorge.lopez_vergara@uam.es>";
description WG Chair: Daniele Ceccarelli
"This module contains a collection of YANG definitions for <mailto:daniele.ceccarelli@ericsson.com>
a Flexi-Grid media channel.
Copyright (c) 2018 IETF Trust and the persons identified as WG Chair: Fatai Zhang
authors of the code. All rights reserved. <mailto:zhangfatai@huawei.com>
Redistribution and use in source and binary forms, with or Editor: Jorge E. Lopez de Vergara <jorge.lopez_vergara@uam.es>
without modification, is permitted pursuant to, and subject Editor: Daniel Perdices Burrero <daniel.perdices@naudit.es>
to the license terms contained in, the Simplified BSD Editor: Victor Lopez Alvarez <victor.lopezalvarez@telefonica.com>
License set forth in Section 4.c of the IETF Trust's Legal Editor: Young Lee <leeyoung@huawei.com>";
Provisions Relating to IETF Documents description
(http://trustee.ietf.org/license-info)."; "This module defines a model for Flex-grid Tunnel Services.";
revision 2018-05-24 { revision "2018-10-22" {
description description
"version 0.1"; "version 1";
reference "version 1";
}
reference /* Groupings. */
"RFC XXX: A Yang Data Model for Flexi-Grid media-channels";
} grouping flex-grid-tunnel-attributes {
grouping flexi-grid-media-channel { description "Parameters for flexgrid tunnel.";
description
"Media association that represents both the topology leaf src-client-signal {
(i.e., path through the media) and the resource type identityref {
(frequency slot) that it occupies. As a topological base otn-types:client-signal;
construct, it represents a (effective) frequency slot
supported by a concatenation of media elements (fibers,
amplifiers, filters, switching matrices...). This term
is used to identify the end-to-end physical layer entity
with its corresponding (one or more) frequency slots
local at each link filters.";
reference "rfc7698";
leaf source-port {
type fg-ted:flexi-grid-node-port-ref;
description "Source port";
}
leaf destination-port {
type fg-ted:flexi-grid-node-port-ref;
description "Destination port";
}
container effective-freq-slot {
description "The effective frequency slot is an attribute
of a media channel and, being a frequency slot, it is
described by its nominal central frequency and slot
width";
reference "rfc7698";
leaf N {
type int32;
description
"Is used to determine the Nominal Central
Frequency. The set of nominal central frequencies
can be built using the following expression:
f = 193.1 THz + n x 0.00625 THz,
where 193.1 THz is ITU-T ''anchor frequency'' for
transmission over the C band, n is a positive or
negative integer including 0.";
reference "rfc7698";
}
leaf M {
type int32;
description
"Is used to determine the slot width. A slot width
is constrained to be M x SWG (that is, M x 12.5 GHz),
where M is an integer greater than or equal to 1.";
reference "rfc7698";
}
} }
}
grouping link-channel-attributes {
description description
"A link channel is one of the concatenated elements of "Client signal at the source endpoint of
the media channel."; the tunnel.";
leaf N { }
type int32;
description leaf dst-client-signal {
"Is used to determine the Nominal Central Frequency. type identityref {
The set of nominal central frequencies can be built base otn-types:client-signal;
using the following expression:
f = 193.1 THz + n x 0.00625 THz,
where 193.1 THz is ITU-T ''anchor frequency'' for
transmission over the C band, n is a positive or
negative integer including 0.";
reference "rfc7698";
}
leaf M {
type int32;
description
"Is used to determine the slot width. A slot
width is constrained to be M x SWG (that is,
M x 12.5 GHz), where M is an integer greater than
or equal to 1.";
reference "rfc7698";
}
leaf source-port {
type fg-ted:flexi-grid-node-port-ref;
description "Source port of the link channel";
} }
leaf destination-port { description
type fg-ted:flexi-grid-node-port-ref; "Client signal at the destination endpoint of
description "Destination port of the link channel"; the tunnel.";
}
leaf fec-type {
type identityref {
base layer0-types:fec-type;
} }
leaf link { description
type fg-ted:flexi-grid-link-ref; "FEC type.";
description "Link of the link channel"; }
leaf termination-type {
type identityref {
base layer0-types:term-type;
} }
leaf bidirectional { description
type boolean; "Termination type.";
description }
"Determines whether the link is bidirectional or leaf bit-stuffing {
not"; type boolean;
description
"Bit stuffing enabled/disabled.";
}
}
grouping flex-grid-path-constraints {
description
"Global named path constraints configuration
grouping for flexi-grid tunnel";
leaf wavelength-assignment {
type identityref {
base layer0-types:wavelength-assignment;
} }
} description "Wavelength Allocation Method";
/* Augment for media-channel */ }
augment "/te:te/te:tunnels/te:tunnel" { }
when "/nd:networks/nd:network/nd:network-types/
fg-ted:flexi-grid-network"{
description "Augment only for Flexigrid network.";
}
description "Augment tunnel with media-channel config";
uses flexi-grid-media-channel;
} /*
* Data nodes
*/
augment "/te:te/te:tunnels/te:tunnel/te:state" { augment "/te:te/te:tunnels/te:tunnel" {
when "/nd:networks/nd:network/nd:network-types/ description
fg-ted:flexi-grid-network"{ "Augment with additional parameters required for flex-grid
description "Augment only for Flexigrid network."; tunnel.";
} uses flex-grid-tunnel-attributes;
uses flexi-grid-media-channel; }
description "Augment tunnel with media-channel state";
} /*
* Augment TE bandwidth
*/
/* Augment for LSP */ /* Augment bandwidth of named-path-constraints */
augment "/te:te/te:lsps-state/te:lsp" { augment "/te:te/te:globals/te:named-path-constraints/"
when "/nd:networks/nd:network/nd:network-types/ + "te:named-path-constraint/"
fg-ted:flexi-grid-network"{ + "te:te-bandwidth/te:technology" {
description "Augment only for Flexigrid network."; description "flex-grid bandwidth.";
} case flex-grid {
uses link-channel-attributes; uses layer0-types:flex-grid-path-bandwidth;
description "Augment LSP for paths"; }
} }
/* Augment bandwdith of tunnel */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:te-bandwidth/te:technology" {
description "flex-grid bandwidth.";
case flex-grid {
uses layer0-types:flex-grid-path-bandwidth;
}
}
/* Augment bandwidth of primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:te-bandwidth/te:technology" {
description "flex-grid bandwidth.";
case flex-grid {
uses layer0-types:flex-grid-path-bandwidth;
}
}
/* Augment bandwidth of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-reverse-primary-path/"
+ "te:te-bandwidth/te:technology" {
description "flex-grid bandwidth.";
case flex-grid {
uses layer0-types:flex-grid-path-bandwidth;
}
}
/* Augment bandwidht of secondary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:te-bandwidth/te:technology" {
description "flex-grid bandwidth.";
case flex-grid {
uses layer0-types:flex-grid-path-bandwidth;
}
}
/*
* Augment TE label.
*/
/* Augment label hop of route-object-exclude-always of
named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:explicit-route-objects/"
+ "te:route-object-exclude-always/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-label;
}
}
/* Augment label hop of route-object-include-exclude of
named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:explicit-route-objects/"
+ "te:route-object-include-exclude/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-label;
}
}
/* Augment label restrictions for the forwarding direction of
path-in-segment of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:path-in-segment/"
+ "te:forward/te:label-restrictions/"
+ "te:label-restriction" {
description "flex-grid label.";
uses layer0-types:flex-grid-label-restriction;
}
/* Augment label restrictions start for the forwarding direction of
path-in-segment of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:path-in-segment/"
+ "te:forward/te:label-restrictions/"
+ "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* Augment label restrictions end for the forwarding direction of
path-in-segment of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:path-in-segment/"
+ "te:forward/te:label-restrictions/"
+ "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* Augment label restrictions for the reverse direction of
path-in-segment of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:path-in-segment/"
+ "te:reverse/te:label-restrictions/"
+ "te:label-restriction" {
description "flex-grid label.";
uses layer0-types:flex-grid-label-restriction;
}
/* Augment label restrictions start for the reverse direction of
path-in-segment of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:path-in-segment/"
+ "te:reverse/te:label-restrictions/"
+ "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* Augment label restrictions end for the reverse direction of
path-in-segment of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:path-in-segment/"
+ "te:reverse/te:label-restrictions/"
+ "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* Augment label restrictions for the forwarding direction of
path-out-segment of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:path-out-segment/"
+ "te:forward/te:label-restrictions/"
+ "te:label-restriction" {
description "flex-grid label.";
uses layer0-types:flex-grid-label-restriction;
}
/* Augment label restrictions start for the forwarding direction of
path-out-segment of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:path-out-segment/"
+ "te:forward/te:label-restrictions/"
+ "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* Augment label restrictions end for the forwarding direction of
path-out-segment of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:path-out-segment/"
+ "te:forward/te:label-restrictions/"
+ "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* Augment label restrictions for the reverse direction of
path-out-segment of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:path-out-segment/"
+ "te:reverse/te:label-restrictions/"
+ "te:label-restriction" {
description "flex-grid label.";
uses layer0-types:flex-grid-label-restriction;
}
/* Augment label restrictions start for the reverse direction of
path-out-segment of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:path-out-segment/"
+ "te:reverse/te:label-restrictions/"
+ "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* Augment label restrictions end for the reverse direction of
path-out-segment of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:path-out-segment/"
+ "te:reverse/te:label-restrictions/"
+ "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* Augment label hop of route-exclude of primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:optimizations/te:algorithm/te:metric/"
+ "te:optimization-metric/te:explicit-route-exclude-objects/"
+ "te:route-object-exclude-object/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-label;
}
}
/* Augment label hop of route-include of primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:optimizations/te:algorithm/te:metric/"
+ "te:optimization-metric/te:explicit-route-include-objects/"
+ "te:route-object-include-object/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-label;
}
}
/* Augment label hop of route-object-exclude-always of primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:explicit-route-objects/"
+ "te:route-object-exclude-always/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-label;
}
}
/* Augment label hop of route-object-include-exclude of primary path
*/
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:explicit-route-objects/"
+ "te:route-object-include-exclude/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-label;
}
}
/* Augment label restrictions for the forwarding direction of
path-in-segment of primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:path-in-segment/te:forward/te:label-restrictions/"
+ "te:label-restriction" {
description "flex-grid label.";
uses layer0-types:flex-grid-label-restriction;
}
/* Augment label restrictions start for the forwarding direction of
path-in-segment of primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:path-in-segment/te:forward/te:label-restrictions/"
+ "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* Augment label restrictions end for the forwarding direction of
path-in-segment of primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:path-in-segment/te:forward/te:label-restrictions/"
+ "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* Augment label restrictions for the reverse direction of
path-in-segment of primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:path-in-segment/te:reverse/te:label-restrictions/"
+ "te:label-restriction" {
description "flex-grid label.";
uses layer0-types:flex-grid-label-restriction;
}
/* Augment label restrictions start for the reverse direction of
path-in-segment of primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:path-in-segment/te:reverse/te:label-restrictions/"
+ "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* Augment label restrictions end for the reverse direction of
path-in-segment of primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:path-in-segment/te:reverse/te:label-restrictions/"
+ "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* Augment label restrictions for the forwarding direction of
path-out-segment of primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:path-out-segment/te:forward/te:label-restrictions/"
+ "te:label-restriction" {
description "flex-grid label.";
uses layer0-types:flex-grid-label-restriction;
}
/* Augment label restrictions start for the forwarding direction of
path-out-segment of primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:path-out-segment/te:forward/te:label-restrictions/"
+ "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* Augment label restrictions end for the forwarding direction of
path-out-segment of primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:path-out-segment/te:forward/te:label-restrictions/"
+ "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* Augment label restrictions for the reverse direction of
path-out-segment of primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:path-out-segment/te:reverse/te:label-restrictions/"
+ "te:label-restriction" {
description "flex-grid label.";
uses layer0-types:flex-grid-label-restriction;
}
/* Augment label restrictions start for the reverse direction of
path-out-segment of primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:path-out-segment/te:reverse/te:label-restrictions/"
+ "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* Augment label restrictions end for the reverse direction of
path-out-segment of primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:path-out-segment/te:reverse/te:label-restrictions/"
+ "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* Augment label hop of path-route of primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:state/te:path-properties/"
+ "te:path-route-objects/te:path-computed-route-object/"
+ "te:state/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-label;
}
}
/* Augment label hop of record-route of primary LSP */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:state/te:lsps/te:lsp/te:lsp-record-route-subobjects/"
+ "te:record-route-subobject/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-label;
}
}
/* Augment label hop of path-route of primary LSP */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:state/te:lsps/te:lsp/te:path-properties/"
+ "te:path-route-objects/te:path-computed-route-object/"
+ "te:state/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-label;
}
}
/* Augment label hop of route-exclude of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-reverse-primary-path/"
+ "te:optimizations/te:algorithm/te:metric/"
+ "te:optimization-metric/te:explicit-route-exclude-objects/"
+ "te:route-object-exclude-object/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-label;
}
}
/* Augment label hop of route-include of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-reverse-primary-path/"
+ "te:optimizations/te:algorithm/te:metric/"
+ "te:optimization-metric/te:explicit-route-include-objects/"
+ "te:route-object-include-object/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-label;
}
}
/* Augment label hop of route-object-exclude-always of reverse
primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-reverse-primary-path/"
+ "te:explicit-route-objects/"
+ "te:route-object-exclude-always/"
+ "te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-label;
}
}
/* Augment label hop of route-object-include-exclude of reverse
primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-reverse-primary-path/"
+ "te:explicit-route-objects/"
+ "te:route-object-include-exclude/"
+ "te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-label;
}
}
/* Augment label restrictions for the forwarding direction of
path-in-segment of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-reverse-primary-path/"
+ "te:path-in-segment/te:forward/te:label-restrictions/"
+ "te:label-restriction" {
description "flex-grid label.";
uses layer0-types:flex-grid-label-restriction;
}
/* Augment label restrictions start for the forwarding direction of
path-in-segment of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-reverse-primary-path/"
+ "te:path-in-segment/te:forward/te:label-restrictions/"
+ "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* Augment label restrictions end for the forwarding direction of
path-in-segment of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-reverse-primary-path/"
+ "te:path-in-segment/te:forward/te:label-restrictions/"
+ "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* Augment label restrictions for the reverse direction of
path-in-segment of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-reverse-primary-path/"
+ "te:path-in-segment/te:reverse/te:label-restrictions/"
+ "te:label-restriction" {
description "flex-grid label.";
uses layer0-types:flex-grid-label-restriction;
}
/* Augment label restrictions start for the reverse direction of
path-in-segment of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-reverse-primary-path/"
+ "te:path-in-segment/te:reverse/te:label-restrictions/"
+ "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* Augment label restrictions end for the reverse direction of
path-in-segment of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-reverse-primary-path/"
+ "te:path-in-segment/te:reverse/te:label-restrictions/"
+ "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* Augment label restrictions for the forwarding direction of
path-out-segment of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-reverse-primary-path/"
+ "te:path-out-segment/te:forward/te:label-restrictions/"
+ "te:label-restriction" {
description "flex-grid label.";
uses layer0-types:flex-grid-label-restriction;
}
/* Augment label restrictions start for the forwarding direction of
path-out-segment of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-reverse-primary-path/"
+ "te:path-out-segment/te:forward/te:label-restrictions/"
+ "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* Augment label restrictions end for the forwarding direction of
path-out-segment of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-reverse-primary-path/"
+ "te:path-out-segment/te:forward/te:label-restrictions/"
+ "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* Augment label restrictions for the reverse direction of
path-out-segment of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-reverse-primary-path/"
+ "te:path-out-segment/te:reverse/te:label-restrictions/"
+ "te:label-restriction" {
description "flex-grid label.";
uses layer0-types:flex-grid-label-restriction;
}
/* Augment label restrictions start for the reverse direction of
path-out-segment of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-reverse-primary-path/"
+ "te:path-out-segment/te:reverse/te:label-restrictions/"
+ "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* Augment label restrictions end for the reverse direction of
path-out-segment of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-reverse-primary-path/"
+ "te:path-out-segment/te:reverse/te:label-restrictions/"
+ "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* Augment label hop of path-route of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-reverse-primary-path/"
+ "te:state/te:path-properties/"
+ "te:path-route-objects/te:path-computed-route-object/"
+ "te:state/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-label;
}
}
/* Augment label hop of record-route of reverse primary LSP */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-reverse-primary-path/"
+ "te:state/te:lsps/te:lsp/te:lsp-record-route-subobjects/"
+ "te:record-route-subobject/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-label;
}
}
/* Augment label hop of path-route of reverse primary LSP */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-reverse-primary-path/"
+ "te:state/te:lsps/te:lsp/te:path-properties/"
+ "te:path-route-objects/te:path-computed-route-object/"
+ "te:state/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-label;
}
}
/* Augment label hop of route-exclude of secondary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:optimizations/te:algorithm/te:metric/"
+ "te:optimization-metric/te:explicit-route-exclude-objects/"
+ "te:route-object-exclude-object/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-label;
}
}
/* Augment label hop of route-include of secondary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:optimizations/te:algorithm/te:metric/"
+ "te:optimization-metric/te:explicit-route-include-objects/"
+ "te:route-object-include-object/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-label;
}
}
/* Augment label hop of route-object-exclude-always of secondary path
*/
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:explicit-route-objects/"
+ "te:route-object-exclude-always/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-label;
}
}
/* Augment label hop of route-object-include-exclude of secondary
path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:explicit-route-objects/"
+ "te:route-object-include-exclude/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-label;
}
}
/* Augment label restrictions for the forwarding direction of
path-in-segment of secondary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:path-in-segment/te:forward/te:label-restrictions/"
+ "te:label-restriction" {
description "flex-grid label.";
uses layer0-types:flex-grid-label-restriction;
}
/* Augment label restrictions start for the forwarding direction of
path-in-segment of secondary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:path-in-segment/te:forward/te:label-restrictions/"
+ "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* Augment label restrictions end for the forwarding direction of
path-in-segment of secondary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:path-in-segment/te:forward/te:label-restrictions/"
+ "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* Augment label restrictions for the reverse direction of
path-in-segment of secondary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:path-in-segment/te:reverse/te:label-restrictions/"
+ "te:label-restriction" {
description "flex-grid label.";
uses layer0-types:flex-grid-label-restriction;
}
/* Augment label restrictions start for the reverse direction of
path-in-segment of secondary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:path-in-segment/te:reverse/te:label-restrictions/"
+ "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* Augment label restrictions end for the reverse direction of
path-in-segment of secondary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:path-in-segment/te:reverse/te:label-restrictions/"
+ "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* Augment label restrictions for the forwarding direction of
path-out-segment of secondary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:path-out-segment/te:forward/te:label-restrictions/"
+ "te:label-restriction" {
description "flex-grid label.";
uses layer0-types:flex-grid-label-restriction;
}
/* Augment label restrictions start for the forwarding direction of
path-out-segment of secondary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:path-out-segment/te:forward/te:label-restrictions/"
+ "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* Augment label restrictions end for the forwarding direction of
path-out-segment of secondary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:path-out-segment/te:forward/te:label-restrictions/"
+ "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* Augment label restrictions for the reverse direction of
path-out-segment of secondary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:path-out-segment/te:reverse/te:label-restrictions/"
+ "te:label-restriction" {
description "flex-grid label.";
uses layer0-types:flex-grid-label-restriction;
}
/* Augment label restrictions start for the reverse direction of
path-out-segment of secondary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:path-out-segment/te:reverse/te:label-restrictions/"
+ "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* Augment label restrictions end for the reverse direction of
path-out-segment of secondary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:path-out-segment/te:reverse/te:label-restrictions/"
+ "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-link-label;
}
}
/* Augment label hop of path-route of secondary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:state/te:path-properties/te:path-route-objects/"
+ "te:path-computed-route-object/te:state/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-label;
}
}
/* Augment label hop of record-route of secondary LSP */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:state/te:lsps/te:lsp/te:lsp-record-route-subobjects/"
+ "te:record-route-subobject/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-label;
}
}
/* Augment label hop of path-route of secondary LSP */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:state/te:lsps/te:lsp/te:path-properties/"
+ "te:path-route-objects/"
+ "te:path-computed-route-object/te:state/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-label;
}
}
/* Augment label hop of record-route of LSP */
augment "/te:te/te:lsps-state/"
+ "te:lsp/te:lsp-record-route-subobjects/"
+ "te:record-route-subobject/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "flex-grid label.";
case flex-grid {
uses layer0-types:flex-grid-path-label;
}
}
augment "/te:tunnels-rpc/te:input/te:tunnel-info/"
+ "tepc:path-request" {
description
"Augment with additional constraints flex-grid
tunnel.";
uses flex-grid-tunnel-attributes;
uses flex-grid-path-constraints;
}
} }
<CODE ENDS> <CODE ENDS>
5.3. License 5.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:
o Redistributions of source code must retain the above copyright o Redistributions of source code must retain the above copyright
skipping to change at page 11, line 29 skipping to change at page 43, line 15
8.2. Informative References 8.2. Informative References
[RFC7698] Gonzalez de Dios, O., Casellas, R., Eds. "Framework and [RFC7698] Gonzalez de Dios, O., Casellas, R., Eds. "Framework and
Requirements for GMPLS-Based Control of Flexi-Grid Dense Requirements for GMPLS-Based Control of Flexi-Grid Dense
Wavelength Division Multiplexing (DWDM) Networks", Wavelength Division Multiplexing (DWDM) Networks",
RFC7698, November 2015. RFC7698, November 2015.
[I-D.draft-ietf-ccamp-flexigrid-yang] Lopez de Vergara, J., [I-D.draft-ietf-ccamp-flexigrid-yang] Lopez de Vergara, J.,
Perdices, D., Lopez, V., Gonzalez de Dios, O., King, D., Perdices, D., Lopez, V., Gonzalez de Dios, O., King, D.,
Lee, Y., Galimberti, G., "YANG data model for Flexi-Grid Lee, Y., Galimberti, G., "YANG data model for Flexi-Grid
Optical Networks", Internet Draft, Optical Networks", Internet Draft,
draft-ietf-ccamp-flexigrid-yang-00, 2018. draft-ietf-ccamp-flexigrid-yang-02, 2018.
[I-D.draft-ietf-teas-yang-te] [I-D.draft-ietf-teas-yang-te]
Saad, T., Gandhi, R., Liu, X., Beeram, V., Shah, H., Saad, T., Gandhi, R., Liu, X., Beeram, V., Shah, H.,
Bryskin, I., Chen, X., Jones, R., and B. Wen, "A YANG Data Bryskin, I., Chen, X., Jones, R., and B. Wen, "A YANG Data
Model for Traffic Engineering Tunnels and Interfaces", Model for Traffic Engineering Tunnels and Interfaces",
draft-ietf-teas-yang-te-14, 2018. draft-ietf-teas-yang-te-17, 2018.
9. Contributors 9. 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
than can be listed on the author list. Additional contributors than can be listed on the author list. Additional contributors
include: include:
o Zafar Ali, Cisco Systems o Zafar Ali, Cisco Systems
o Daniel Michaud Vallinoto, Universidad Autonoma de Madrid o Daniel Michaud Vallinoto, Universidad Autonoma de Madrid
 End of changes. 32 change blocks. 
185 lines changed or deleted 1703 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/