draft-ietf-ccamp-wson-yang-04.txt   draft-ietf-ccamp-wson-yang-05.txt 
CCAMP Working Group Y. Lee (Editor) CCAMP Working Group Y. Lee (Editor)
D. Dhody D. Dhody
X. Zhang X. Zhang
Internet Draft Huawei Internet Draft A. Guo
Intended status: Standard Track A. Guo Intended status: Standard Track Huawei
Huawei
V. Lopez V. Lopez
Telefonica Telefonica
D. King D. King
U. of Lancaster U. of Lancaster
B. Yoon
ETRI
Expires: July 20, 2017 Jan 20, 2017 B. Yoon
ETRI
R.Vilalta
CTTC
Expires: August 21, 2017 February 21, 2017
A Yang Data Model for WSON Optical Networks A Yang Data Model for WSON Optical Networks
draft-ietf-ccamp-wson-yang-04.txt draft-ietf-ccamp-wson-yang-05.txt
Abstract Abstract
This document provides a YANG data model for the routing and This document provides a YANG data model for the routing and
wavelength assignment (RWA) TE topology in wavelength switched wavelength assignment (RWA) TE topology in wavelength switched
optical networks (WSONs). optical networks (WSONs).
Status of this Memo Status of this Memo
This Internet-Draft is submitted to IETF in full conformance with This Internet-Draft is submitted to IETF in full conformance with
skipping to change at page 1, line 48 skipping to change at page 1, line 53
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 July 20, 2017. This Internet-Draft will expire on August 21, 2017.
Copyright Notice Copyright Notice
Copyright (c) 2017 IETF Trust and the persons identified as the Copyright (c) 2017 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
carefully, as they describe your rights and restrictions with carefully, as they describe your rights and restrictions with
respect to this document. Code Components extracted from this respect to this document. Code Components extracted from this
document must include Simplified BSD License text as described in document must include Simplified BSD License text as described in
Section 4.e of the Trust Legal Provisions and are provided without Section 4.e of the Trust Legal Provisions and are provided without
warranty as described in the Simplified BSD License. warranty as described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction...................................................2 1. Introduction...................................................2
2. YANG Model (Tree Structure)....................................3 2. YANG Model (Tree Structure)....................................3
3. WSON-RWA YANG Model............................................4 3. WSON-RWA YANG Model............................................4
4. Security Considerations.......................................10 4. Security Considerations.......................................11
5. IANA Considerations...........................................10 5. IANA Considerations...........................................11
6. Acknowledgments...............................................10 6. Acknowledgments...............................................11
7. References....................................................11 7. References....................................................12
7.1. Normative References.....................................11 7.1. Normative References.....................................12
7.2. Informative References...................................11 7.2. Informative References...................................12
8. Contributors..................................................11 8. Contributors..................................................12
Authors' Addresses...............................................11 Authors' Addresses...............................................12
1. Introduction 1. Introduction
This document provides a YANG data model for the routing and This document provides a YANG data model for the routing and
wavelength assignment (RWA) Traffic Engineering (TE) topology in wavelength assignment (RWA) Traffic Engineering (TE) topology in
wavelength switched optical networks (WSONs). The YANG model wavelength switched optical networks (WSONs). The YANG model
described in this document is a WSON technology-specific Yang model described in this document is a WSON technology-specific Yang model
based on the information model developed in [RFC7446] and the two based on the information model developed in [RFC7446] and the two
encoding documents [RFC7581] and [RFC7579] that developed protocol encoding documents [RFC7581] and [RFC7579] that developed protocol
independent encodings based on [RFC7446]. This document augments the independent encodings based on [RFC7446]. This document augments the
generic TE topology draft [TE-TOPO]. the generic TE topology draft [TE-TOPO].
What is not in scope of this document is both impairment-aware WSON What is not in scope of this document is both impairment-aware WSON
and flex-grid. and flex-grid.
2. YANG Model (Tree Structure) 2. YANG Model (Tree Structure)
module: ietf-wson-topology module: ietf-wson-topology
augment /nd:networks/nd:network/nd:network-types/tet:te-topology: augment /nd:networks/nd:network/nd:network-types:
+--rw wson-topology! +--rw wson-topology!
augment /nd:networks/nd:network/nd:node/tet:te/tet:config/tet:te-node-attribut augment /nd:networks/nd:network/nd:node/tet:te/tet:config/tet:te-node-
es/tet:connectivity-matrix: attributes/tet:connectivity-matrix:
+--rw wson-matrix +--rw matrix-interface* [in-port-id]
+--rw device-type? devicetype +--rw in-port-id wson-interface-ref
+--rw dir? directionality +--rw out-port-id? wson-interface-ref
+--rw matrix-interface* [in-port-id] augment /nd:networks/nd:network/nd:node/tet:te/tet:state/tet:te-node-
+--rw in-port-id wson-interface-ref attributes/tet:connectivity-matrix:
+--rw out-port-id? wson-interface-ref +--ro matrix-interface* [in-port-id]
augment /nd:networks/nd:network/lnk:link/tet:te/tet:config: +--ro in-port-id wson-interface-ref
+--rw wavelength-available-bitmap* boolean +--ro out-port-id? wson-interface-ref
augment /nd:networks/nd:network/nd:node/tet:te/tet:config: augment /nd:networks/nd:network/lnk:link/tet:te/tet:config/tet:te-link-attributes:
+--rw resource-pool* [resource-pool-id] +--rw channel-max? int32
+--rw resource-pool-id uint32 +--rw default-frequency? decimal64
+--rw pool-state? boolean +--rw channel-spacing? decimal64
+--rw matrix-interface* [in-port-id] +--rw wavelength-available-bitmap* binary
+--rw in-port-id wson-interface-ref augment /nd:networks/nd:network/lnk:link/tet:te/tet:state/tet:te-link-attributes:
+--rw out-port-id? wson-interface-ref +--ro channel-max? int32
+--ro default-frequency? decimal64
+--ro channel-spacing? decimal64
+--ro wavelength-available-bitmap* binary
augment /nd:networks/nd:network/nd:node/tet:te/tet:config/tet:te-node-attributes:
+--rw wson-node
| +--rw device-type? devicetype
| +--rw dir? directionality
| +--rw interfaces* [name]
| +--rw name string
| +--rw port-number? uint32
| +--rw input-port? boolean
| +--rw output-port? boolean
| +--rw description? string
+--rw resource-pool* [resource-pool-id]
+--rw resource-pool-id uint32
+--rw pool-state? boolean
+--rw matrix-interface* [in-port-id]
+--rw in-port-id wson-interface-ref
+--rw out-port-id? wson-interface-ref
augment /nd:networks/nd:network/nd:node/tet:te/tet:state/tet:te-node-attributes:
+--ro wson-node
| +--ro device-type? devicetype
| +--ro dir? directionality
| +--ro interfaces* [name]
| +--ro name string
| +--ro port-number? uint32
| +--ro input-port? boolean
| +--ro output-port? boolean
| +--ro description? string
+--ro resource-pool* [resource-pool-id]
+--ro resource-pool-id uint32
+--ro pool-state? boolean
+--ro matrix-interface* [in-port-id]
+--ro in-port-id wson-interface-ref
+--ro out-port-id? wson-interface-ref
3. WSON-RWA YANG Model 3. WSON-RWA YANG Model
<CODE BEGINS> file "ietf-wson-topology@2016-07-09.yang" <CODE BEGINS> file "ietf-wson-topology@2017-02-21.yang"
module ietf-wson-topology {
yang-version 1.1;
module ietf-wson-topology {
namespace "urn:ietf:params:xml:ns:yang:ietf-wson-topology"; namespace "urn:ietf:params:xml:ns:yang:ietf-wson-topology";
prefix wson; prefix "wson";
import ietf-network { import ietf-network {
prefix "nd"; prefix "nd";
} }
import ietf-network-topology { import ietf-network-topology {
prefix "lnk"; prefix "lnk";
} }
import ietf-inet-types { import ietf-inet-types {
prefix "inet"; prefix "inet";
} }
import ietf-te-topology { import ietf-te-topology {
prefix "tet"; prefix "tet";
} }
organization organization
"IETF CCAMP Working Group"; "IETF CCAMP Working Group";
contact contact
"Editor: Young Lee <leeyoung@huawei.com>"; "Editor: Young Lee <leeyoung@huawei.com>";
description description
"This module contains a collection of YANG definitions for "This module contains a collection of YANG definitions for
RWA WSON. RWA WSON.
Copyright (c) 2016 IETF Trust and the persons identified as Copyright (c) 2016 IETF Trust and the persons identified as
authors of the code. All rights reserved. authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD to the license terms contained in, the Simplified BSD
License set forth in Section 4.c of the IETF Trust's Legal License set forth in Section 4.c of the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info)."; (http://trustee.ietf.org/license-info).";
revision 2016-07-09 { revision 2017-02-21 {
description description
"Version 3"; "version 5.";
reference reference
"RFC XXX: A Yang Data Model for WSON Optical Networks "; "RFC XXX: A Yang Data Model for WSON Optical Networks ";
} }
typedef wson-topology-id { typedef wson-topology-id {
type inet:uri; type inet:uri;
description description
"The WSON Topology ID"; "The WSON Topology ID";
} }
typedef wson-node-id { typedef wson-node-id {
type inet:ip-address; type inet:ip-address;
description description
"The WSON Node ID"; "The WSON Node ID";
} }
typedef devicetype { typedef devicetype {
type enumeration { type enumeration {
enum adm { enum adm {
value 1; value 1;
description description
"Device is ADM"; "Device is ADM";
}
}
enum roadm { enum roadm {
value 2; value 2;
description description
"Device is ROAMD/OXC"; "Device is ROAMD/OXC";
}
} }
} description
description "device type: fixed (ADM) or switched (ROADM/OXC)";
"device type: fixed (ADM) or switched (ROADM/OXC)";
} }
typedef directionality { typedef directionality {
type enumeration { type enumeration {
enum bidir { enum bidir {
value 0; value 0;
description description
"bi-directional"; "bi-directional";
} }
enum input { enum input {
value 1; value 1;
description description
"input direction"; "input direction";
} }
enum output { enum output {
value 2; value 2;
description description
"output direction"; "output direction";
}
} }
} description
description "The directionality of link set";
"The directionality of link set";
} }
typedef wson-interface-ref { typedef wson-interface-ref {
type leafref { type leafref {
path "/nd:networks/nd:network/lnk:link/lnk:link-id"; path "/nd:networks/nd:network/nd:node/tet:te/tet:config"
} + "/tet:te-node-attributes/wson:wson-node/"
description + "wson:interfaces/wson:name";
"This type is used by data models that need to }
reference WSON interface.";
}
grouping wson-topology-type {
description
"Identifies the wson topology type.";
container wson-topology {
presence "Indicates WSON topology.";
description description
"Its presence identifies the WSON topology type."; "This type is used by data models that need to
} reference WSON interface.";
} // wson-topology-type }
grouping wson-topology-type {
description "wson-topology type";
container wson-topology {
presence "indicates a topology of wson";
description
"Container to identify wson topology type";
}
}
augment "/nd:networks/nd:network/nd:network-types" grouping wson-node-attributes {
+ "/tet:te-topology" { description "wson node attributes";
container wson-node {
description "WSON node attrtibutes.";
leaf device-type {
type devicetype;
description
"device type: fixed (ADM) or switched
(ROADM/OXC)";
}
leaf dir {
type directionality;
description
"bi-directionality or input or output
of link set";
}
list interfaces {
key "name";
unique "port-number"; // TODO Puerto y TP ID
description "List of interfaces contained in the node";
uses node-interface;
}
}
}
description "Augment network-types to include WSON topology"; grouping node-interface {
uses wson-topology-type { description "node interface definition";
description leaf name {
"An empty WSON container to identify type string;
the topology type."; description "Interface name";
} }
leaf port-number {
type uint32;
description "Number of the port used by the interface";
}
leaf input-port {
type boolean;
description "Determines if the port is an input port";
}
leaf output-port {
type boolean;
description
"Determines if the port is an output port";
}
leaf description {
type string;
description "Description of the interface";
}
} }
augment "/nd:networks/nd:network/nd:node/tet:te/tet:config" grouping available-wavelength {
+"/tet:te-node-attributes" description "describe available wavelengths";
+"/tet:connectivity-matrix" { leaf-list wavelength-available-bitmap {
when "nd:network-types/tet:te-topology/wson-topology" { type binary;
description description
"This augment is only valid for WSON."; "array of bits (i.e., bitmap) that indicates
} if a wavelength is available or not on each
description "WSON Connectivity Matrix augmentation."; channel.";
container wson-matrix{
description "WSON specific Matrix.";
leaf device-type {
type devicetype;
description
"device type: fixed (ADM) or switched
(ROADM/OXC)";
}
leaf dir {
type directionality;
description
"bi-directionality or input or output
of link set";
} }
}
grouping wson-link-attributes {
description "Set of WSON link attributes";
leaf channel-max {
type int32;
description "Maximum Number of OCh channels available
by the node";
}
leaf default-frequency {
type decimal64 {
fraction-digits 5;
}
units THz;
default 193.1;
description "Default Central Frequency";
}
leaf channel-spacing {
type decimal64 {
fraction-digits 5;
}
units GHz;
description "This is fixed channel spacing for WSON,
e.g, 12.5, 25, 50, 100, ..";
}
}
grouping wson-connectivity-matrix {
description "wson connectivity matrix";
list matrix-interface { list matrix-interface {
key "in-port-id"; key "in-port-id";
description description
"matrix-interface describes input-ports "matrix-interface describes input-ports
and out-ports around a connectivity and out-ports around a connectivity
matrix"; matrix";
leaf in-port-id { leaf in-port-id {
type wson-interface-ref; type wson-interface-ref;
description description
"The reference to in-port"; "The reference to in-port";
} }
leaf out-port-id { leaf out-port-id {
type wson-interface-ref; type wson-interface-ref;
description description
"The reference to out-port"; "The reference to out-port";
} }
} }
}
} }
augment "/nd:networks/nd:network/lnk:link/tet:te/tet:config" { grouping resource-pool-attributes {
description "resource pool describes regeneration or wave converter";
list resource-pool {
key "resource-pool-id";
description
"The resource pool list";
when "nd:network-types/tet:te-topology/wson-topology" { leaf resource-pool-id {
type uint32;
description
"The resource pool ID";
}
description leaf pool-state {
"This augment is only valid for WSON."; type boolean;
} description
description "WSON Link augmentation."; "TRUE is state UP; FALSE is state down";
}
leaf-list wavelength-available-bitmap { uses wson-connectivity-matrix;
type boolean; }
description
"array of bits (i.e., bitmap) that indicates
if a wavelength is available or not on each
channel.";
}
} }
augment "/nd:networks/nd:network/nd:node/tet:te/tet:config" {
when "nd:network-types/tet:te-topology/wson-topology" {
description
"This augment is only valid for WSON.";
}
description "WSON Node augmentation.";
list resource-pool {
key "resource-pool-id";
description
"The resource pool list";
leaf resource-pool-id { augment "/nd:networks/nd:network/nd:network-types" {
type uint32; description "wson-topology augmented";
description uses wson-topology-type;
"The resource pool ID"; }
augment "/nd:networks/nd:network/nd:node/tet:te/tet:config"
+"/tet:te-node-attributes/tet:connectivity-matrix" {
when "/nd:networks/nd:network/nd:network-types"
+"/wson-topology" {
description
"This augment is only valid for WSON connectivity
matrix.";
} }
description "WSON connectivity matrix config augmentation";
uses wson-connectivity-matrix;
}
leaf pool-state { augment "/nd:networks/nd:network/nd:node/tet:te/tet:state"
type boolean; +"/tet:te-node-attributes/tet:connectivity-matrix" {
description when "/nd:networks/nd:network/nd:network-types"
"TRUE is state UP; FALSE is state down"; +"/wson-topology" {
description
"This augment is only valid for WSON connectivity
matrix.";
}
description "WSON connectivity matrix state augmentation";
uses wson-connectivity-matrix;
}
augment "/nd:networks/nd:network/lnk:link/tet:te/tet:config"
+ "/tet:te-link-attributes" {
when "/nd:networks/nd:network/nd:network-types"
+"/wson-topology" {
description
"This augment is only valid for WSON.";
} }
description "WSON Link augmentation.";
list matrix-interface { uses wson-link-attributes;
key "in-port-id"; uses available-wavelength;
}
description augment "/nd:networks/nd:network/lnk:link/tet:te/tet:state"
"pool is described as matrix-interface + "/tet:te-link-attributes" {
with input-ports and output-ports when "/nd:networks/nd:network/nd:network-types"
around the pool"; +"/wson-topology" {
description
"This augment is only valid for WSON.";
}
description "WSON Link augmentation.";
leaf in-port-id { uses wson-link-attributes;
type wson-interface-ref; uses available-wavelength;
}
augment "/nd:networks/nd:network/nd:node/tet:te/tet:config"
+ "/tet:te-node-attributes" {
when "/nd:networks/nd:network/nd:network-types"
+"/wson-topology" {
description description
"The reference to in-interface"; "This augment is only valid for WSON.";
}
description "WSON Node augmentation.";
} uses wson-node-attributes;
uses resource-pool-attributes;
}
leaf out-port-id { augment "/nd:networks/nd:network/nd:node/tet:te/tet:state"
type wson-interface-ref; + "/tet:te-node-attributes" {
when "/nd:networks/nd:network/nd:network-types"
+"/wson-topology" {
description description
"The reference to out-interface"; "This augment is only valid for WSON.";
}
} }
} description "WSON Node augmentation.";
uses wson-node-attributes;
uses resource-pool-attributes;
} }
}
<CODE ENDS> }
<CODE ENDS>
4. Security Considerations 4. Security Considerations
TDB TDB
5. IANA Considerations 5. IANA Considerations
TDB TDB
6. Acknowledgments 6. Acknowledgments
skipping to change at line 436 skipping to change at page 13, line 28
Daniel King Daniel King
University of Lancaster University of Lancaster
Email: d.king@lancaster.ac.uk Email: d.king@lancaster.ac.uk
Bin Yeong Yoon Bin Yeong Yoon
ETRI ETRI
218 Gaijeongro, Yuseong-gu 218 Gaijeongro, Yuseong-gu
Daejeon, Korea Daejeon, Korea
Email: byyun@etri.re.kr Email: byyun@etri.re.kr
Ricard Vilalta
CTTC
Email: ricard.vilalta@cttc.es
 End of changes. 59 change blocks. 
209 lines changed or deleted 344 lines changed or added

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