Add files via upload
diff --git a/release/models/opendevice-channel-monitor@2018-05-15.yang b/release/models/opendevice-channel-monitor@2018-05-15.yang
new file mode 100644
index 0000000..c92ab90
--- /dev/null
+++ b/release/models/opendevice-channel-monitor@2018-05-15.yang
@@ -0,0 +1,481 @@
+module opendevice-channel-monitor {
+ yang-version 1;
+ namespace "http://www.opendevice.net/yang/opendeivce-channels-monitor";
+ prefix "od-chan-mon";
+ import opendevice-types {
+ prefix "od-types";
+ revision-date 2017-10-08;
+ }
+
+ organization "Infinera";
+ contact
+ "support@infinera.com";
+ description
+ "This model describes operational state data for an optical
+ channel monitor (OCM) for optical transport line system
+ elements such as wavelength routers (ROADMs) and amplifiers.
+ It represent the information obtain by an OCM and not the device itself.
+
+ An optical channel is characterized by an optical spectrum band having a lower
+ and an upper frequency. Once provisioned, this channel can have information
+ reported about it like optical power spectral density (PSD). Also, this channel is what is
+ switched at a ROADM node.
+
+ The flex-channel-monitors list and the channel-monitors are two model of optical channel monitorl,
+
+ The channel-monitor model is used for OCM where channels are pre-fixed.
+
+ The flex-channel-monitors is used for OCM products where channels
+ are dynamically provisioned. A product would support one of these lists, not
+ both.
+
+ A flex-channel-monitor can contain sub-channels (carriers) within it. The support for carriers
+ is indicated by the multi-carrier feature.
+
+ An flex-channel-monitors can also support raising of alarms when its PSD cross provisioned thresholds.
+ ";
+ revision 2018-05-15 {
+ description "cleanup comment";
+ }
+
+ revision 2017-10-08 {
+ description
+ "Use opendevice-types
+ Yang version 1";
+ }
+
+ revision 2017-09-18;
+
+ feature flex-channel-monitors {
+ description
+ "The flex-channel monitor and prefix-channel-monitors features
+ are mutually exlusive. A product would normally support one of these
+ features and not both.
+
+ A flex-channel-monitors is intended to be used in products that
+ dynamically create monitored channels.";
+ }
+
+ feature prefix-channel-monitors {
+ description
+ "The flex-channel monitor and prefix-channel-monitors features
+ are mutually exlusive. A product would normally support one of these
+ features and not both.
+
+ An prefix-channel-monitors is intended to be used in products that
+ have a fixed channel-plan and therefore do not create channels
+ dynamically.";
+ }
+
+ feature multi-carrier {
+ description
+ "The multi-carrier feature provides for specifying multiple sub-channels
+ or carriers within a channel.";
+ }
+
+ grouping media-channel-psd-state {
+ description
+ "Operational state data for the media channel PSD";
+
+ leaf lower-frequency {
+ type od-types:dwdm-frequency-ghz;
+ description
+ "Lower frequency of the specified PSD";
+ }
+
+ leaf upper-frequency {
+ type od-types:dwdm-frequency-ghz;
+ description
+ "Upper frequency of the specified PSD";
+ }
+
+ leaf psd {
+ type od-types:optical-psd;
+ units dBm/GHz;
+
+ }
+ leaf valid-data {
+ type boolean;
+ description "True if measured values are valid";
+ }
+
+ }
+
+
+ grouping media-channel-psd-top {
+ description
+ "Top-level grouping ";
+
+ container channels {
+ description
+ "Enclosing container for the list of values describing
+ the power spectral density distribution";
+
+ list channel {
+ key "lower-frequency upper-frequency";
+ config false;
+ description
+ "List of tuples describing the PSD distribution";
+
+ leaf lower-frequency {
+ type leafref {
+ path "../state/lower-frequency";
+ }
+ description
+ "Reference to the list key";
+ }
+
+ leaf upper-frequency {
+ type leafref {
+ path "../state/upper-frequency";
+ }
+ description
+ "Reference to the list key";
+ }
+
+
+ container state {
+
+ config false;
+
+ description
+ "Operational state data for PSD";
+
+ uses media-channel-psd-state;
+ }
+ }
+ }
+ }
+
+ grouping flex-media-carrier-psd-config {
+ description
+ "Configuration data for media channel carrier definitions";
+
+ leaf name {
+ type string;
+ description
+ "Identifier for the defined media channel";
+ }
+
+ leaf lower-frequency {
+ type od-types:dwdm-frequency-ghz;
+ description
+ "The lower frequency for the spectrum defined by this media
+ channel";
+ }
+
+ leaf upper-frequency {
+ type od-types:dwdm-frequency-ghz;
+ description
+ "The upper frequency for the spectrum defined by this media
+ channel";
+ }
+
+ }
+
+ grouping flex-media-carrier-psd-state {
+ description
+ "Operational state data for the media channel PSD";
+
+ leaf actual-lower-frequency {
+ type od-types:dwdm-frequency-ghz;
+ description
+ "Lower frequency of the specified PSD";
+ }
+
+ leaf actual-upper-frequency {
+ type od-types:dwdm-frequency-ghz;
+ description
+ "Upper frequency of the specified PSD";
+ }
+
+ leaf psd {
+ type od-types:optical-psd;
+ }
+ leaf valid-data {
+ type boolean;
+ description "True if measured values are valid";
+ }
+
+ }
+
+
+ grouping flex-media-carrier-psd-top {
+ description
+ "Top-level grouping ";
+
+ container carriers {
+ description
+ "Enclosing container for the list of media-carrier";
+
+ list carrier {
+ key name;
+ description
+ "List describing the PSD distribution";
+
+ leaf name {
+ type leafref {
+ path "../config/name";
+ }
+ description
+ "Reference to the list key";
+ }
+ container config {
+ uses flex-media-carrier-psd-config;
+ }
+
+
+
+ container state {
+
+ config false;
+
+ description
+ "Operational state data for PSD";
+ uses flex-media-carrier-psd-config;
+
+
+ uses flex-media-carrier-psd-state;
+ }
+ }
+ }
+ }
+
+ grouping flex-media-channel-psd-config {
+ description
+ "Configuration data for media channel definitions";
+
+ leaf name {
+ type string;
+ description
+ "Identifier for the defined media channel";
+ }
+
+ leaf lower-frequency {
+ type od-types:dwdm-frequency-ghz;
+ description
+ "The lower frequency for the spectrum defined by this media
+ channel";
+ }
+
+ leaf upper-frequency {
+ type od-types:dwdm-frequency-ghz;
+ description
+ "The upper frequency for the spectrum defined by this media
+ channel";
+ }
+
+ }
+
+ grouping flex-media-channel-psd-state {
+ description
+ "Operational state data for the media channel PSD";
+
+ leaf actual-lower-frequency {
+ type od-types:dwdm-frequency-ghz;
+ description
+ "Lower frequency of the specified PSD";
+ }
+
+ leaf actual-upper-frequency {
+ type od-types:dwdm-frequency-ghz;
+ description
+ "Upper frequency of the specified PSD";
+ }
+
+ leaf psd {
+ type od-types:optical-psd;
+ units dBm/GHz;
+ description
+ "Power spectral density expressed in nanowatts per
+ megahertz, nW/MHz. These units allow the value to often
+ be greater than 1.0. It also avoids dealing with zero values
+ for 0dBm. For example, a 40GHz wide channel
+ with 0dBm power would be:
+ 0dBm = 1mW = 10^6nW
+ 40GHz = 40,000MHz
+ 0dBm/40GHz = 10^6nW/40,000MHz = 1000/40 = 25";
+ }
+ leaf valid-data {
+ type boolean;
+ description "True if measured values are valid";
+ }
+
+ }
+
+
+ grouping flex-media-channel-psd-top {
+ description
+ "Top-level grouping ";
+
+ container channels {
+ description
+ "Enclosing container for the list of media-channel";
+
+ list channel {
+ key name;
+ description
+ "List describing the PSD distribution";
+
+ leaf name {
+ type leafref {
+ path "../config/name";
+ }
+ description
+ "Reference to the list key";
+ }
+ container config {
+ uses flex-media-channel-psd-config;
+ }
+
+
+
+ container state {
+
+ config false;
+
+ description
+ "Operational state data for PSD";
+ uses flex-media-channel-psd-config;
+
+
+ uses flex-media-channel-psd-state;
+ }
+ uses flex-media-carrier-psd-top;
+
+ }
+ }
+ }
+
+ grouping channel-monitor-config {
+ description
+ "Configuration data for the optical channel monitor";
+
+ leaf name {
+ type string ;
+ description
+ "Reference to the optical channel monitor (OCM) name.
+ ";
+ }
+
+ leaf monitor-port {
+ type string ;
+ description
+ "Reference to the name of the port that the
+ OCM channel monitor is physically connected
+
+ ";
+ }
+ }
+
+ grouping channel-monitor-state {
+ description
+ "Operational state data ";
+ }
+
+ grouping channel-monitor-top {
+ description
+ "Top-level grouping ";
+
+ container channel-monitors {
+ description
+ "Top-level container for optical channel monitors";
+
+ list channel-monitor {
+ key "name monitor-port";
+ description
+ "List of channel monitors, keyed by channel monitor name.";
+
+ leaf name {
+ type leafref {
+ path "../config/name";
+ }
+ description
+ "References the optical channel monitor name";
+ }
+ leaf monitor-port {
+ type leafref {
+ path "../config/monitor-port";
+ }
+ }
+
+
+ container config {
+ description
+ "Configuration data ";
+
+ uses channel-monitor-config;
+ }
+
+ container state {
+
+ config false;
+
+ description
+ "Operational state data ";
+
+ uses channel-monitor-config;
+ uses channel-monitor-state;
+ }
+
+ uses media-channel-psd-top;
+ }
+ }
+ }
+
+ grouping flex-channel-monitor-top {
+ description
+ "Top-level grouping ";
+
+ container flex-channel-monitors {
+ description
+ "Top-level container for optical channel monitors";
+
+ list channel-monitor {
+ key "name monitor-port";
+ description
+ "List of channel monitors, keyed by channel monitor name.";
+
+ leaf name {
+ type leafref {
+ path "../config/name";
+ }
+ description
+ "References the optical channel monitor name";
+ }
+ leaf monitor-port {
+ type leafref {
+ path "../config/monitor-port";
+ }
+ }
+
+
+ container config {
+ description
+ "Configuration data ";
+
+ uses channel-monitor-config;
+ }
+
+ container state {
+
+ config false;
+
+ description
+ "Operational state data ";
+
+ uses channel-monitor-config;
+ uses channel-monitor-state;
+ }
+
+ uses flex-media-channel-psd-top;
+ }
+ }
+ }
+
+ uses channel-monitor-top;
+ uses flex-channel-monitor-top;
+
+
+
+}
\ No newline at end of file
diff --git a/release/models/opendevice-edfa@2018-05-15.yang b/release/models/opendevice-edfa@2018-05-15.yang
new file mode 100644
index 0000000..812803d
--- /dev/null
+++ b/release/models/opendevice-edfa@2018-05-15.yang
@@ -0,0 +1,367 @@
+module opendevice-edfa {
+ yang-version 1;
+ namespace "http://www.opendevice.net/yang/opendevice-edfa";
+ prefix "od-edfa";
+ import opendevice-types {
+ prefix "od-types";
+ revision-date 2017-10-08;
+ }
+
+
+ organization "Infinera";
+ contact
+ "support@infinera.com";
+ description
+ "This model describes configuration and operational state data for
+ optical amplifiers, deployed as part of a transport line system.";
+ revision 2018-05-15 {
+ description "cleanup comment";
+ }
+
+ revision 2017-10-08;
+ revision 2017-09-19 {
+ description "Remove identityref";
+ }
+
+ revision 2017-07-08 {
+ description "Initial revision";
+ }
+
+ feature gain-mask-supported {
+ description "This feature means the device supports gain-mask specification.";
+ }
+ feature tilk-mask-supported {
+ description "This feature means the device supports tilk-mask specification.";
+ }
+ feature switched-gain-supported {
+ description "This feature means the device supports switched-gain.";
+ }
+ typedef optical-amplification-type {
+ type enumeration {
+ enum edfa {
+ value 1;
+ }
+ enum backward-raman {
+ value 2;
+ description "Backward pumping Raman amplifier";
+ }
+ enum forward-raman {
+ value 3;
+ description "Forward pumping Raman amplifier";
+ }
+ }
+ description "Type definition for different types of optical amplifiers";
+ }
+ typedef optical-control-mode {
+ type enumeration {
+ enum constant-gain {
+ value 1;
+ description "Value indicates that constant-gain is the optical-control-mode";
+ }
+ enum constant-power {
+ value 2;
+ description "Value indicates that constant-power is the control-mode";
+ }
+ }
+ default "constant-gain";
+ description
+ "Type definition for different types of optical amplifier
+ operating modes";
+ }
+ typedef operational-mode {
+ type enumeration {
+ enum auto {
+ value 1;
+ description "Under this mode, the optical amplifier configuration (system) is controlled by a controller";
+ }
+ enum manual {
+ value 2;
+ description "Under this mode, the optical amplifier configuration (base) is controled manually";
+ }
+ }
+ default "auto";
+ description "Determine the configuration set used to configure the optical amplifier";
+ }
+ typedef gain-range {
+ type enumeration {
+ enum gain-range-1;
+ enum gain-range-2;
+ enum gain-range-3;
+ }
+ }
+
+ grouping edfa-operational-spectrum-spec {
+ description "Define the operational band associated to the EDFA ";
+ container optical-spectrum-spec {
+ leaf optical-band-type {
+ type identityref {
+ base od-types:optical-band;
+ }
+ }
+ leaf lower-frequency {
+ type od-types:dwdm-frequency-mhz;
+ }
+ leaf upper-frequency {
+ type od-types:dwdm-frequency-mhz;
+ }
+ }
+ }
+ grouping edfa-gain-mask-spec {
+ container gain-mask-specs {
+ list gain-mask {
+ key "min-gain max-gain";
+ leaf min-gain {
+ type decimal64 {
+ fraction-digits 2;
+ }
+ units dB;
+ }
+ leaf max-gain {
+ type decimal64 {
+ fraction-digits 2;
+ }
+ units dB;
+ }
+ list gain-mask {
+ key index;
+ min-elements 1;
+ max-elements 32;
+ ordered-by system;
+ leaf index {
+ type uint8;
+ }
+ container gain-polygone {
+ container low-gain-min-power-out {
+ leaf pwr-in {
+ type decimal64 {
+ fraction-digits 2;
+ }
+ units dBm;
+ }
+ leaf pwr-out {
+ type decimal64 {
+ fraction-digits 2;
+ }
+ units dBm;
+ }
+ }
+ container low-gain-max-power-out {
+ leaf pwr-in {
+ type decimal64 {
+ fraction-digits 2;
+ }
+ units dBm;
+ }
+ leaf pwr-out {
+ type decimal64 {
+ fraction-digits 2;
+ }
+ units dBm;
+ }
+ }
+ container high-gain-min-power-out {
+ leaf pwr-in {
+ type decimal64 {
+ fraction-digits 2;
+ }
+ units dBm;
+ }
+ leaf pwr-out {
+ type decimal64 {
+ fraction-digits 2;
+ }
+ units dBm;
+ }
+ }
+ container high-gain-max-power-out {
+ leaf pwr-in {
+ type decimal64 {
+ fraction-digits 2;
+ }
+ units dBm;
+ }
+ leaf pwr-out {
+ type decimal64 {
+ fraction-digits 2;
+ }
+ units dBm;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ grouping edfa-tild-mask_spec;
+ grouping edfa-noise-figure-spec;
+ grouping edfa-specification-top {
+ container specification {
+ container state {
+ config false;
+ uses edfa-operational-spectrum-spec;
+ uses edfa-gain-mask-spec;
+ uses edfa-tild-mask_spec;
+ uses edfa-noise-figure-spec;
+ }
+ }
+ }
+ grouping edfa-system-config {
+ uses edfa-base-config;
+ }
+ grouping edfa-system-state {
+ uses edfa-base-state;
+ }
+ grouping edfa-system-top {
+ container system {
+ container config {
+ uses edfa-system-config;
+ }
+ container state {
+ config false;
+ uses edfa-system-config;
+ uses edfa-system-state;
+ }
+ }
+ }
+ grouping edfa-base-config {
+
+ leaf target-gain {
+ type decimal64 {
+ fraction-digits 2;
+ range "0..max";
+ }
+ units dB;
+ description "When in constantGain mode, this indicates the target gain in dB the amplifier is to maintain.";
+ }
+ leaf target-tilt {
+ type decimal64 {
+ fraction-digits 2;
+ }
+ units dB;
+ description
+ "Indicates the gain tilt applied over the spectrum. This is a a measure
+ in dB of the gain slope from low to high frequency. A gain tilt of 0 dB means no tilt.";
+
+ }
+ leaf target-output-power {
+ type decimal64 {
+ fraction-digits 2;
+ }
+ units dBm;
+ description
+ "When in constantPower mode, this indicates the target power in
+ dBm the amplifier is to maintain.";
+ }
+ leaf control-mode {
+ type optical-control-mode;
+ description "The operating mode of the amplifier";
+ }
+ leaf gain-range-selection {
+ type gain-range;
+ default "gain-range-1";
+ }
+
+ leaf enabled {
+ type boolean;
+ description "Turns power on / off to the amplifiers gain module.";
+ } }
+ grouping edfa-base-state{
+ leaf ingress-sensor-power {
+ type decimal64 {
+ fraction-digits 3;
+ }
+ units dBm;
+ }
+ leaf egress-sensor-power {
+ type decimal64 {
+ fraction-digits 3;
+ }
+ units dBm;
+ }
+ leaf measured-sensor-gain {
+ type decimal64 {
+ fraction-digits 3;
+ }
+ units dB;
+ }
+ leaf psd-ase-actual-mc-band {
+ type decimal64 {
+ fraction-digits 5;
+ }
+ units dBm/GHz;
+ }
+}
+ grouping edfa-base-top {
+ container base {
+ container config {
+ uses edfa-base-config;
+ }
+ container state {
+ config false;
+ uses edfa-base-config;
+ uses edfa-base-state;
+ }
+ }
+ }
+
+ grouping edfa-config {
+ description "Configuration data for optical amplifiers";
+ leaf name {
+ type string;
+ description
+ "User-defined name assigned to identify a specific amplifier
+ in the device";
+ }
+ leaf controller-mode {
+ type operational-mode ;
+ description
+ "Select the mode of operation of the device, manual or autoo. In manual mode, the base configuration
+ is used. In auto, the system configuration is used";
+
+ }
+
+ }
+ grouping edfa-state {
+ description
+ "Operational state data for optical amplifiers
+ ";
+ }
+
+
+ grouping edfa-top {
+ description "Top-level grouping for EDFA optical amplifier data";
+ container edfas {
+ description "Enclosing container for list of edfas
+ ";
+ list edfa {
+ key name;
+ description "List of EDFA optical amplifiers present in the device";
+ leaf name {
+ type leafref {
+ path "../config/name";
+ }
+ description "Reference to the name of the amplifier";
+ }
+ container config {
+ description "Configuration data for the amplifier";
+ uses edfa-config;
+ }
+ container state {
+ config false;
+ description "Operational state data for the amplifier";
+ uses edfa-config;
+
+ uses edfa-state;
+ }
+ uses edfa-base-top;
+ uses edfa-system-top;
+
+ }
+
+ }
+
+ }
+
+ uses edfa-top;
+
+}
\ No newline at end of file
diff --git a/release/models/opendevice-power-monitor@2017-10-08.yang b/release/models/opendevice-power-monitor@2017-10-08.yang
new file mode 100644
index 0000000..6ed0070
--- /dev/null
+++ b/release/models/opendevice-power-monitor@2017-10-08.yang
@@ -0,0 +1,102 @@
+module opendevice-power-monitor {
+ yang-version 1;
+ namespace "http://www.opendevice.net/yang/opendevice-power-monitor";
+ prefix "od-power-mon";
+ import opendevice-types {
+ prefix "od-types";
+ revision-date 2017-10-08;
+ }
+ organization "The power monitor provide the list of pd-sensor that are available on an equipmentsen";
+ revision 2017-10-08 {
+ description
+ "Use opendevice-types
+ yang version 1";
+ }
+ revision 2017-09-29;
+
+
+ grouping power-monitor-config {
+ description
+ "Configuration data for the optical power monitor";
+
+ leaf sensor-port {
+ type string ;
+ description
+ "Reference to the name of the sensor port that the
+ PD sensor is reporting power information
+
+ ";
+ }
+ }
+
+ grouping power-monitor-state {
+ description
+ "Operational state data ";
+
+ leaf lower-frequency {
+ type od-types:dwdm-frequency-ghz;
+ description
+ "Lower frequency associated to the sensor";
+ }
+
+ leaf upper-frequency {
+ type od-types:dwdm-frequency-ghz;
+ description
+ "Upper frequency associated to the sensor";
+ }
+
+ leaf mesured-power {
+ type od-types:optical-power-dBm;
+ units dBm;
+
+ }
+ leaf valid-data {
+ type boolean;
+ description "True if measured values are valid";
+ }
+ }
+
+ grouping power-monitor-top {
+ description
+ "Top-level grouping ";
+
+ container power-monitors {
+ description
+ "Top-level container for optical power monitors";
+
+ list power-monitor {
+ key sensor-port;
+ description
+ "List of channel monitors, keyed by channel monitor name.";
+
+ leaf sensor-port {
+ type leafref {
+ path "../config/sensor-port";
+ }
+ description
+ "References the optical channel monitor name";
+ }
+
+
+ container config {
+ description
+ "Configuration data ";
+
+ uses power-monitor-config;
+ }
+
+ container state {
+
+ config false;
+
+ description
+ "Operational state data ";
+
+ uses power-monitor-config;
+ uses power-monitor-state;
+ }
+ }
+ }
+ }
+
+ uses power-monitor-top;}
\ No newline at end of file
diff --git a/release/models/opendevice-voa@2018-05-15.yang b/release/models/opendevice-voa@2018-05-15.yang
new file mode 100644
index 0000000..d86558d
--- /dev/null
+++ b/release/models/opendevice-voa@2018-05-15.yang
@@ -0,0 +1,326 @@
+module opendevice-voa {
+ yang-version 1;
+ namespace "http://www.opendevice.net/yang/opendevice-voa";
+ prefix "od-voa";
+ import opendevice-types {
+ prefix "od-types";
+ revision-date 2017-10-08;
+ }
+
+ organization "Infinera";
+ contact
+ "support@infinera.com";
+ description
+ "
+ This model describes configuration and operational state data for
+ optical VOAs, deployed as part of a transport line system.";
+ revision 2018-05-15 {
+ description "cleanup comment";
+ }
+
+ revision 2017-10-08 {
+ description
+ "Import opendevice-types
+ yang version 1
+ cleanup to match other device
+ remove specification for POC";
+ }
+
+ revision 2017-07-27;
+
+ feature power-control-supported {
+ description
+ "This feature means the device supports power control of a channel.";
+ }
+
+ feature attenuation-control-supported {
+ description
+ "This feature means the device supports attenuation control of a channel.";
+ }
+
+
+ typedef optical-power-absolute {
+ type decimal64 {
+ fraction-digits 2;
+ range "-100.00..100.00";
+ }
+ description
+ "The absolute optical power in dBM.";
+ }
+
+ typedef optical-power-relative {
+ type decimal64 {
+ fraction-digits 2;
+ range "-100.00..100.00";
+ }
+ description
+ "The relative optical power in dB.";
+ }
+ typedef operational-mode {
+ type enumeration {
+ enum auto {
+ value 1;
+ description "Under this mode, the optical amplifier configuration (system) is controlled by a controller";
+ }
+ enum manual {
+ value 2;
+ description "Under this mode, the optical amplifier configuration (base) is controled manually";
+ }
+ }
+ default "auto";
+ description "Determine the configuration set used to configure the optical amplifier";
+ }
+
+ typedef optical-control-mode {
+ type enumeration {
+ enum power {
+
+ value 1;
+ description "This is a close loop control to the output sensor";
+
+ }
+ enum loss {
+ value 2;
+ description "This is a close loop control to the output sensor";
+
+ }
+ enum off {
+ value 3;
+ description
+ "This mode is in open-loop (direct control to the attenuation of the underlying
+ wss module";
+
+ }
+ }
+ description
+ "Optical Control Mode: identifies specific algorithm related to power management and general optical control.";
+ reference "openroadm.org: Open ROADM MSA Specification.";
+ }
+ grouping voa-attenuation-specification {
+ container attenuation-range-spec {
+ leaf min-attenuation {
+ type decimal64 {
+ fraction-digits 1;
+ }
+ units dB;
+ }
+ leaf max-attenuation {
+ type decimal64 {
+ fraction-digits 1;
+ }
+ units dB;
+ }
+ leaf end-of-life-margin {
+ type decimal64 {
+ fraction-digits 1;
+ }
+ units dB;
+ }
+ }
+ }
+
+
+
+ grouping operational-spectrum-spec {
+ description "Define the operational band associated to the VOA ";
+ container optical-spectrum-spec {
+ leaf optical-band-type {
+ type identityref {
+ base od-types:optical-band;
+ }
+ }
+ leaf lower-frequency {
+ type od-types:dwdm-frequency-mhz;
+ units MHz;
+ description
+ "start-frequency represent the lower frquency value. It shall be specified for the C band in reference to 193.1 THz. The alllowed frequency value can be built from the following expression: f = 193.1 THz plus or minus (n x slot-with-granulality)
+ TODO: Need to add the information about the L band";
+
+ }
+ leaf upper-frequency {
+ type od-types:dwdm-frequency-mhz;
+ units MHz;
+ description
+ "stop-frequency represent the upper frquency value. It shall be specified for the C band in reference to 193.1 THz. The alllowed frequency value can be built from the following expression: f = 193.1 THz plus or minus (n x slot-with-granulality)
+ TODO: Need to add the information about the L band";
+
+ }
+ }
+ }
+ grouping voa-specification-top {
+ container specification {
+ container state {
+ config false;
+ uses voa-attenuation-specification;
+ uses operational-spectrum-spec;
+ }
+ }
+ }
+
+
+ grouping voa-system-config {
+ uses voa-base-config;
+ }
+ grouping voa-system-state {
+ uses voa-base-state;
+ }
+ grouping voa-system-top {
+ description "Configuration for auto mode";
+
+ container system {
+ container config {
+ uses voa-system-config;
+ }
+ container state {
+ config false;
+ uses voa-system-config;
+ uses voa-system-state;
+ }
+ }
+ }
+
+ grouping voa-base-config {
+ leaf optical-control-mode-selection {
+ type optical-control-mode;
+ default "off";
+ description
+ "This parameter define the control mode associated to the channel under configuration.
+ When using \"power\" mode, the wss device will use the power-target and the power-target-tolerance to adjust automatically the wss channel attenuation (reported by the state parameter \"attenuation\"). Under that mode, it continously monitor the power associated to the channel and make adjustement to the wss device attenuation.
+ When using \"gain-loss\" mode, the wss device will use the attenuation-target value and apply it the the wss device channel attenuation (reported by the state parameter \"attenuation\").
+ When using \"off\" mode, the wss device will stop to update the wss device channel attenuation (reported by the state parameter \"attenuation\").
+
+ When transiting from \"off\" to \"gain-loss\" mode, the wss device will applied the attenuation-target to the wss attenuation directly without any attenuation ramping, it is up to the controller to control the way any ramp-up or down is applied. The bast approach will be to read the attenuation and apply it to the attenuation-target so no jump is caused on the optical signal ";
+
+ }
+ leaf voa-attenuation {
+ type optical-power-relative;
+ units dB;
+ description "This is the direct attenuation of the underlying device for initialization purpose";
+ }
+
+ leaf blocked {
+ type boolean;
+ description
+ "Optically blocked.";
+ }
+ container attenuation-control {
+
+ when "../optical-control-mode-selection = \"loss\"" {
+ description "";
+ }
+ if-feature attenuation-control-supported;
+ description "parameters used for optical attenuation control";
+ leaf attenuation-target {
+ type optical-power-relative;
+ units dB;
+
+ description
+ "attenuation target";
+ }
+ leaf attenuation-target-tolerance {
+ type optical-power-relative;
+ description
+ "This value represents the tolerance which the attenuation control should try to control the attenuation.";
+ } }
+
+ container power-control {
+ when "../optical-control-mode-selection = \"power\"" {
+ description "";
+ }
+ if-feature power-control-supported;
+ description "parameters used for optical power control";
+
+ leaf power-target {
+ type optical-power-absolute;
+ description
+ "The closed loop control target power of the connection.";
+ }
+ leaf power-target-tolerance {
+ type optical-power-relative;
+ description
+ "This value represents the tolerance which the power control should try to control the power. If the power ";
+ } }
+
+
+ leaf input-port-reference {
+ type string ;
+ description "The input port for the Connection";
+ }
+ leaf output-port-reference {
+ type string ;
+ description "The output port for the Connection";
+ }
+
+ }
+
+ grouping voa-base-state{
+ leaf measured-attenuation {
+ type decimal64 {
+ fraction-digits 1;
+ }
+ units dB;
+ }
+}
+ grouping voa-base-top {
+ description "Configuration for manual mode";
+
+ container base {
+ container config {
+ uses od-voa:voa-base-config;
+ }
+ container state {
+ config false;
+ uses od-voa:voa-base-config;
+ uses od-voa:voa-base-state;
+ }
+ }
+ }
+
+ grouping voa-config {
+ description "Configuration data for VOAs";
+ leaf name {
+ type string;
+ description "User-defined name assigned to identify a specific voa in the device";
+ }
+ leaf controller-mode {
+ type operational-mode ;
+ default "auto";
+
+ }
+
+ }
+ grouping voa-state;
+
+
+ grouping voa-top {
+ description "Top-level grouping for VOA Variable Optical Attenuator";
+ container voas {
+ description "Enclosing container for list of VOAs";
+ list voa {
+ key name;
+ description "List of VOA present in the device";
+ leaf name {
+ type leafref {
+ path "../config/name";
+ }
+ }
+ container config {
+ description "Configuration data for the voa";
+ uses voa-config;
+ }
+ container state {
+ config false;
+ description "Operational state data for the voa";
+ uses od-voa:voa-config;
+ uses od-voa:voa-state;
+
+ }
+ uses od-voa:voa-base-top;
+ uses od-voa:voa-system-top;
+
+ }
+ }
+ }
+
+ uses voa-top;
+}
\ No newline at end of file
diff --git a/release/models/opendevice-wss@2017-10-08.yang b/release/models/opendevice-wss@2017-10-08.yang
new file mode 100644
index 0000000..b9bb571
--- /dev/null
+++ b/release/models/opendevice-wss@2017-10-08.yang
@@ -0,0 +1,470 @@
+module opendevice-wss {
+ yang-version 1;
+ namespace "http://opendevice.net/yang/wss";
+ prefix "od-wss";
+ import opendevice-types {
+ prefix "od-types";
+ revision-date 2017-10-08;
+ }
+
+
+ organization "Infinera";
+ contact
+ "sales@infinera.com";
+ description
+ "This model describes configuration and operational state data for optical wavelength selective switches,
+ deployed as part of a transport line system";
+ revision 2017-10-08 {
+ description
+ "Corrected port reference, now a string
+ Remove specification for now
+ added use of the wss-top";
+ }
+ revision 2017-10-06;
+
+ revision 2017-08-10;
+
+ feature connection-attenuation-control-supported {
+ description
+ "This feature means the device supports attenuation control of a channel.";
+ }
+
+ feature connection-power-control-supported {
+ description
+ "This feature means the device supports power control of a channel.";
+ }
+
+ feature slot-based-supported {
+ description
+ "This feature means the device is slot based rather than true-flex
+ and supports defining a channel by start and end slot, inclusive.";
+ }
+
+
+ typedef optical-power-absolute {
+ type decimal64 {
+ fraction-digits 2;
+ range "-100.00..100.00";
+ }
+ description
+ "The absolute optical power in dBM.";
+ }
+
+ typedef optical-power-relative {
+ type decimal64 {
+ fraction-digits 2;
+ range "-100.00..100.00";
+ }
+ description
+ "The relative optical power in dB.";
+ }
+
+ typedef optical-control-mode {
+ type enumeration {
+ enum power {
+
+ value 1;
+ description "This is a close loop control to the output sensor";
+
+ }
+ enum gain-loss {
+ value 2;
+ description "This is a close loop control to the output sensor";
+
+ }
+ enum off {
+ value 3;
+ description
+ "This mode is in open-loop (direct control to the attenuation of the underlying
+ wss module";
+
+ }
+ }
+ description
+ "Optical Control Mode: identifies specific algorithm related to power management and general optical control.";
+ reference "openroadm.org: Open ROADM MSA Specification.";
+ }
+ identity slot-width-granularity {
+ description "Base identity for slot-witdh-granularity";
+ }
+ identity slot-width-12-5 {
+ base slot-width-granularity;
+ description "Define a slot-width-granularity of 12.5 Ghz";
+ }
+
+ identity slot-width-6-25 {
+ base slot-width-granularity;
+ description "Define a slot-width-granularity of 6.25 Ghz";
+ }
+
+ identity slot-width-3-125 {
+ base slot-width-granularity;
+ description "Define a slot-width-granularity of 3.125 Ghz";
+ }
+ grouping wss-operational-connection-spec {
+ description "Define the specification associated to connection";
+ leaf maximun-number-of-connection-supported {
+ type uint16;
+ }
+ }
+ grouping wss-operational-channel-spec {
+ description "Define the specification associated to a channel configuration size";
+ leaf min-channel-width-in-slot {
+ type uint16;
+ units slot;
+ description "Minimum channel width express as number of the slot-width-granularity ";
+ }
+ leaf max-channel-width-in-slot {
+ type uint16;
+ units slot;
+ description "Maximun channel width express as number of slot. Cannot be bigger then /optical-slot-spec/number-of-slot";
+ }
+ }
+
+
+
+ grouping wws-operational-optical-slot-spec {
+ description "Specification associated to a wss with optical-slot feature";
+ container optical-slot-spec {
+ leaf number-of-slot {
+ type uint16;
+ description
+ "Define the number of optical slot supported by the wss devices
+ ";
+ }
+ leaf first-slot-index {
+ type uint16;
+ default "1";
+ description "Index of the first optical slot";
+ }
+ leaf last-slot-index {
+ type uint16;
+ description "Index of the last optical slot";
+ }
+ leaf slot-width-granularity {
+ type identityref{
+ base slot-width-granularity;
+}
+ }
+ leaf max-attenuation-delta {
+ type optical-power-relative;
+ default "0.25";
+ description "Maximum attenuation delta between 2 slots to be compliant to the optical specification";
+ }
+
+ }
+ }
+
+
+ grouping wss-operational-spectrum-spec {
+ description "Define the operational band associated to the EDFA ";
+ container optical-spectrum-spec {
+ leaf optical-band-type {
+ type identityref {
+ base od-types:optical-band;
+ }
+ }
+ leaf lower-frequency {
+ type od-types:dwdm-frequency-mhz;
+ units MHz;
+ description
+ "start-frequency represent the lower frquency value. It shall be specified for the C band in reference to 193.1 THz. The alllowed frequency value can be built from the following expression: f = 193.1 THz plus or minus (n x slot-with-granulality)
+ TODO: Need to add the information about the L band";
+
+ }
+ leaf upper-frequency {
+ type od-types:dwdm-frequency-mhz;
+ units MHz;
+ description
+ "stop-frequency represent the upper frquency value. It shall be specified for the C band in reference to 193.1 THz. The alllowed frequency value can be built from the following expression: f = 193.1 THz plus or minus (n x slot-with-granulality)
+ TODO: Need to add the information about the L band";
+
+ }
+ }
+ }
+
+
+ grouping wss-specification-top {
+ container specification {
+ container state {
+ config false;
+ uses od-wss:wss-operational-spectrum-spec;
+ uses od-wss:wws-operational-optical-slot-spec;
+ uses od-wss:wss-operational-channel-spec;
+ uses od-wss:wss-operational-connection-spec;
+
+ }
+ }
+ }
+
+
+ grouping monitored-power-state {
+ description
+ "Provides a definition for the top-level for a Monitored-Power-State
+ entity.";
+ leaf power {
+ type optical-power-absolute;
+ description "Measured Optical power";
+ }
+ }
+
+
+ grouping monitored-power-frequency-state {
+ description "State parameters for Monitored Channels";
+ uses monitored-power-state;
+ leaf measured-frequency {
+ type od-types:dwdm-frequency-mhz;
+ description
+ "Channel measured center frequency";
+ }
+ leaf valid-data {
+ type boolean;
+ description
+ "True if measured values are valid.";
+ }
+ }
+
+
+
+ grouping channel-wavelength-specification-attributes {
+ description "Parameters for describing a channel.";
+ leaf lower-frequency {
+ type od-types:dwdm-frequency-mhz;
+ description "Channel Start Frequency in MHz";
+ }
+
+ leaf upper-frequency {
+ type od-types:dwdm-frequency-mhz;
+ description "Channel End Frequency in MHz";
+ }
+ }
+
+
+ grouping channel-wavelength-specification-state {
+ description "State items of a channel, uses Channel-Wavelength-Specification-Attributes.";
+ leaf actual-lower-frequency {
+ type od-types:dwdm-frequency-mhz;
+ description "Channel Start Frequency in MHz";
+ }
+
+ leaf actuak-upper-frequency {
+ type od-types:dwdm-frequency-mhz;
+ description "Channel End Frequency in MHz";
+ }
+ leaf start-slot-index {
+ if-feature slot-based-supported;
+ type uint16;
+ config false;
+ description
+ "Starting slot index of the channel, inclusive.";
+ }
+ leaf end-slot-index {
+ if-feature slot-based-supported;
+ type uint16;
+ config false;
+ description
+ "End slot index of the channel, inclusive.";
+ }
+ }
+
+ grouping attenuated-slot-entities {
+ description
+ "Top level grouping for Attenuated Slot entities.";
+
+ container slots {
+ if-feature slot-based-supported;
+
+ description
+ "This provides top level container for the list of all slot entities
+ included within a connection.";
+ list slot {
+ key name;
+ description
+ "An entry containing management information applicable to a particular
+ slot.";
+ leaf name {
+ type string;
+ }
+
+
+
+ leaf attenuation {
+ type optical-power-relative;
+ default "0";
+
+ description
+ "For slot attenuation, this is expressed as an offset from the
+ containing channel's attenuation.";
+ }
+ }
+ }
+ }
+
+
+
+ grouping connection-config {
+ description
+ "Config parameters associated with the connection.";
+ uses channel-wavelength-specification-attributes;
+ leaf optical-control-mode-selection {
+ type optical-control-mode;
+ default "off";
+ description
+ "This parameter define the control mode associated to the channel under configuration.
+ When using \"power\" mode, the wss device will use the power-target and the power-target-tolerance to adjust automatically the wss channel attenuation (reported by the state parameter \"attenuation\"). Under that mode, it continously monitor the power associated to the channel and make adjustement to the wss device attenuation.
+ When using \"gain-loss\" mode, the wss device will use the attenuation-target value and apply it the the wss device channel attenuation (reported by the state parameter \"attenuation\").
+ When using \"off\" mode, the wss device will stop to update the wss device channel attenuation (reported by the state parameter \"attenuation\").
+
+ When transiting from \"off\" to \"gain-loss\" mode, the wss device will applied the attenuation-target to the wss attenuation directly without any attenuation ramping, it is up to the controller to control the way any ramp-up or down is applied. The bast approach will be to read the attenuation and apply it to the attenuation-target so no jump is caused on the optical signal ";
+
+ }
+ leaf wss-attenuation {
+ type optical-power-relative;
+ units dB;
+ description "This is the direct attenuation of the underlying device for initialization purpose";
+ }
+
+ leaf blocked {
+ type boolean;
+ description
+ "Optically blocked.";
+ }
+ container attenuation-control {
+
+ when "../optical-control-mode-selection = \"gain-loss\"" {
+ description "";
+ }
+ if-feature connection-attenuation-control-supported;
+ description "parameters used for optical attenuation control";
+ leaf attenuation-target {
+ type optical-power-relative;
+ units dB;
+
+ description
+ "attenuation target";
+ }
+ leaf attenuation-target-tolerance {
+ type optical-power-relative;
+ description
+ "This value represents the tolerance which the attenuation control should try to control the attenuation.";
+ } }
+
+ container power-control {
+ when "../optical-control-mode-selection = \"power\"" {
+ description "";
+ }
+ if-feature connection-power-control-supported;
+ description "parameters used for optical power control";
+
+ leaf power-target {
+ type optical-power-absolute;
+ description
+ "The closed loop control target power of the connection.";
+ }
+ leaf power-target-tolerance {
+ type optical-power-relative;
+ description
+ "This value represents the tolerance which the power control should try to control the power. If the power ";
+ } }
+ uses attenuated-slot-entities;
+
+
+ leaf input-port-reference {
+ type string ;
+ description "The input port for the Connection";
+ }
+ leaf output-port-reference {
+ type string ;
+ description "The output port for the Connection";
+ }
+ }
+
+ grouping connection-state {
+ description
+ "State parameters associated with the connection";
+ uses channel-wavelength-specification-state;
+ }
+
+
+
+ grouping connection-top {
+ description
+ "Provides a definition for the top-level for a connection entity.";
+
+ container connections {
+
+ description
+ "This provides top level container for the list of all connection
+ entities.";
+ list connection {
+ key name;
+ description
+ "An entry containing management information applicable to a particular
+ connection.";
+ leaf name {
+ type string;
+ }
+
+ container config {
+ description "Configurable items of the connection.";
+ uses connection-config;
+ }
+
+ container state {
+ config false;
+ description "Operational state data of the connection.";
+ uses connection-config;
+ uses connection-state;
+ }
+ }
+ }
+ }
+
+
+ grouping wss-config {
+ description "Configuration data for optical amplifiers";
+ leaf name {
+ type string;
+ description
+ "User-defined name assigned to identify a specific amplifier
+ in the device";
+ }
+ }
+
+ grouping wss-state {
+ description
+ "Operational state data for wss";
+ }
+
+ grouping wss-top {
+ description "Top-level grouping for wavelength selective switch data";
+ container wavelength-selective-switches {
+ description "Enclosing container for list of wavelength selective switches";
+ list wss {
+ key name;
+
+ leaf name {
+ type leafref {
+ path "../config/name";
+ }
+ description "Reference to the name of the wss";
+ }
+ container config {
+ description "Configuration data for the wss";
+ uses wss-config;
+ }
+ container state {
+ config false;
+ description "Operational state data for the wss";
+ uses wss-config;
+
+ uses wss-state;
+ }
+ uses connection-top;
+ }
+
+ }
+ }
+ uses wss-top;
+
+}
\ No newline at end of file