module ietf-wson-topology { //TODO: FIXME //yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-wson-topology"; prefix "wson"; import ietf-network { prefix "nd"; } import ietf-network-topology { prefix "lnk"; } import ietf-inet-types { prefix "inet"; } import ietf-te-topology { prefix "tet"; } import ietf-te-wson-types { //Modified prefix "te-wson-types"; } //NOT NEEDED /*import ietf-transport-types { prefix "tran-types"; } */ organization "IETF CCAMP Working Group"; contact "Editor: Young Lee "; description "This module contains a collection of YANG definitions for RWA WSON. Copyright (c) 2016 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; revision 2017-10-09 { description "version 8."; reference "RFC XXX: A Yang Data Model for WSON Optical Networks "; } typedef wson-topology-id { type inet:uri; description "The WSON Topology ID"; } grouping wson-topology-type { description "wson-topology type"; container wson-topology { presence "indicates a topology of wson"; description "Container to identify wson topology type"; } } grouping wson-node-attributes { description "WSON node attributes"; container wson-node { description "WSON node attrtibutes."; leaf node-type { type identityref { base te-wson-types:wson-node-type; } description "WSON node type."; } } } grouping wson-wavelength-availability-range{ description "wavelength availability range"; leaf wavelength-availability-range{ type te-wson-types:wavelength-range-type; description "range that indicates if a wavelength is available or not on each channel at specified priority level."; } } grouping wson-link-attributes { description "WSON link attributes"; leaf channel-num { type int32; description "Number of OCh channels available"; } leaf first-channel-frequency { type decimal64 { fraction-digits 5; } units THz; description "First channel frequency in the grid"; } 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, .."; } list available-wavelength-info{ key "priority"; max-elements "8"; description "List of available wavelength channels on this link"; leaf priority { type uint8 { range "0..7"; } description "priority"; } uses wson-wavelength-availability-range; } } grouping wson-tp-attributes { description "wson-tp-attributes"; leaf client-facing { type empty; description "if present, it means this tp is a client- facing tp. adding/dropping client signal flow."; } /* //can it be fully covered by interface-switching-capability of base TE model? leaf-list supported-client-signals { type identityref { base tran-types:client-signal; } description "Supported client signals at this TP"; } */ } grouping wson-ttp-attributes { description "WSON tunnel termination point (e.g. tranponder) attributes"; leaf-list available-operational-mode { type te-wson-types:operational-mode; description "List of all vendor-specific supported mode identifiers"; } leaf operational-mode { type te-wson-types:operational-mode; description "Vendor-specific mode identifier"; } } /* AUGMENTS */ augment "/nd:networks/nd:network/nd:network-types" + "/tet:te-topology" { description "wson-topology augmented"; uses wson-topology-type; } //FIXING NMDA augment "/nd:networks/nd:network/nd:node/tet:te" +"/tet:te-node-attributes/tet:connectivity-matrices" + "/tet:connectivity-matrix" { when "/nd:networks/nd:network/nd:network-types" +"/tet:te-topology/wson:wson-topology" { description "This augment is only valid for WSON connectivity matrix."; } description "WSON connectivity matrix config augmentation"; uses wson-wavelength-availability-range; } //REMOVING /* augment "/nd:networks/nd:network/nd:node/tet:te/tet:state" +"/tet:te-node-attributes/tet:connectivity-matrices" + "/tet:connectivity-matrix" { when "/nd:networks/nd:network/nd:network-types" +"/tet:te-topology/wson-topology" { description "This augment is only valid for WSON connectivity matrix."; } description "WSON connectivity matrix state augmentation"; uses wson-wavelength-availability-range; }*/ //FIXING NMDA augment "/nd:networks/nd:network/lnk:link/tet:te" + "/tet:te-link-attributes" { when "/nd:networks/nd:network/nd:network-types" +"/tet:te-topology/wson:wson-topology" { description "This augment is only valid for WSON."; } description "WSON Link augmentation."; uses wson-link-attributes; } //REMOVING /* augment "/nd:networks/nd:network/lnk:link/tet:te/tet:state" + "/tet:te-link-attributes" { when "/nd:networks/nd:network/nd:network-types" +"/tet:te-topology/wson:wson-topology" { description "This augment is only valid for WSON."; } description "WSON Link augmentation."; uses wson-link-attributes; }*/ //FIXING NMDA augment "/nd:networks/nd:network/nd:node/tet:te" + "/tet:te-node-attributes" { when "/nd:networks/nd:network/nd:network-types" +"/tet:te-topology/wson:wson-topology" { description "This augment is only valid for WSON."; } description "WSON Node augmentation."; uses wson-node-attributes; } //REMOVING /* augment "/nd:networks/nd:network/nd:node/tet:te/tet:state" + "/tet:te-node-attributes" { when "/nd:networks/nd:network/nd:network-types" +"/tet:te-topology/wson:wson-topology" { description "This augment is only valid for WSON."; } description "WSON Node augmentation."; uses wson-node-attributes; }*/ //FIXING NMDA augment "/nd:networks/nd:network/nd:node/tet:te" + "/tet:tunnel-termination-point" { when "/nd:networks/nd:network/nd:network-types" +"/tet:te-topology/wson:wson-topology" { description "This augment is only valid for WSON."; } description "WSON tunnel termination point augmentation."; uses wson-ttp-attributes; } //removing /*augment "/nd:networks/nd:network/nd:node/tet:te" + "/tet:tunnel-termination-point/tet:state" { when "/nd:networks/nd:network/nd:network-types" +"/tet:te-topology/wson:wson-topology" { description "This augment is only valid for WSON."; } description "WSON tunnel termination point augmentation."; uses wson-ttp-attributes; }*/ }