openconfig-wavelength-router

This model describes configuration and operational state data for an optical transport line system node, or ROADM (incl. CDC ROA...

  • Version: 2021-07-26

    openconfig-wavelength-router@2021-07-26


    
      module openconfig-wavelength-router {
    
        yang-version 1;
    
        namespace
          "http://openconfig.net/yang/wavelength-router";
    
        prefix oc-wave-router;
    
        import openconfig-extensions {
          prefix oc-ext;
        }
        import openconfig-platform {
          prefix oc-platform;
        }
        import openconfig-transport-types {
          prefix oc-opt-types;
        }
    
        organization "OpenConfig working group";
    
        contact
          "OpenConfig working group
          www.openconfig.net";
    
        description
          "This model describes configuration and operational state data
        for an optical transport line system node, or ROADM (incl. CDC
        ROADMs, WSS, Dynamic Gain Equalizer/DGE).
    
        Nodes are modeled as a configurable switching element with
        ingress and egress ports, as well as a number of add/drop ports
        that can be set up to direct portions of the optical spectrum
        to the appropriate degrees.
    
        In relation to configuring target spectrum powers, there
        are two, non-overlapping, configuration possibilities that are
        supported.
        1. Non-noise loaded wavelength router:
           - The target spectrum powers are configured on each media
             channel.
        2. Noise-loaded wavelength router:
           - The target spectrum power values will be configured as a
             target spectrum power profile over the full spectrum instead
             of individual media channels.";
    
        revision "2021-07-26" {
          description
            "Add dynamic loss damped mode.";
          reference
            "1.1.0";
    
        }
    
        revision "2020-08-28" {
          description
            "Add ase-injection-delta-threshold leaf.";
          reference
            "1.0.0";
    
        }
    
        revision "2020-06-03" {
          description
            "Add attenutation-control-mode to media channel config";
          reference
            "0.8.0";
    
        }
    
        revision "2019-10-24" {
          description
            "Migrate from using power spectral densisty to using power
          target values";
          reference
            "0.7.0";
    
        }
    
        revision "2019-09-20" {
          description
            "Add ASE related state and config. Also add a super channel
          parent leaf";
          reference
            "0.6.0";
    
        }
    
        revision "2019-06-03" {
          description
            "PSD profile top-level description and
          port changed to a leafref.";
          reference
            "0.5.0";
    
        }
    
        revision "2019-04-03" {
          description
            "Add port PSD profile modeling.";
          reference
            "0.4.0";
    
        }
    
        revision "2018-11-21" {
          description
            "Add OpenConfig module metadata extensions.";
          reference
            "0.3.3";
    
        }
    
        revision "2018-07-17" {
          description
            "Correct bug so that source/dest ports are components";
          reference
            "0.3.2";
    
        }
    
        revision "2017-09-08" {
          description
            "Correct bug with OSC interfaces";
          reference
            "0.3.1";
    
        }
    
        revision "2017-07-08" {
          description
            "Support multiple OCMs, add monitor port type
          and refs to hw ports, ";
          reference
            "0.3.0";
    
        }
    
        revision "2017-03-28" {
          description
            "Added min/max/avg stats, status for media channels, OCM, APS";
          reference
            "0.2.0";
    
        }
    
        revision "2016-03-31" {
          description "Initial public release";
          reference
            "0.1.0";
    
        }
    
        oc-ext:openconfig-version "1.1.0";
        oc-ext:regexp-posix;
        oc-ext:catalog-organization "openconfig";
        oc-ext:origin "openconfig";
    
        identity ATTENUATION_CONTROL_MODE {
          description
            "The definition for different types of attenutation control
          modes on a media channel";
        }
    
        identity ATTENUATION_FIXED_LOSS {
          base ATTENUATION_CONTROL_MODE;
          description
            "The attenuation applied across a media channel will be
          calculated based on the target input and output powers as well
          as the internal losses of the wavelength router. The target
          power levels are configured using port-spectrum-power-profiles
          of the two ports";
        }
    
        identity ATTENUATION_DYNAMIC_LOSS {
          base ATTENUATION_CONTROL_MODE;
          description
            "The attenuation applied across a media channel is dynamically
          controlled by the device by attempting to meet the target output
          power as defined in the output port's
          port-spectrum-power-profile";
        }
    
        identity ATTENUATION_DYNAMIC_LOSS_DAMPED {
          base ATTENUATION_CONTROL_MODE;
          description
            "The attenuation applied across a media channel is dynamically
          controlled by the device by attempting to meet the target output
          power as defined in the output port's
          port-spectrum-power-profile. In this mode, convergence to the
          target output power occurs gradually to minimize any power
          oscillations across the line system. These changes will happen
          within the order of minutes";
        }
    
        identity ASE_CONTROL_MODE {
          description
            "The definition for different types of ASE control modes
          on a media channel";
        }
    
        identity ASE_ENABLED {
          base ASE_CONTROL_MODE;
          description
            "The media channel will immediately have ASE noise injected";
        }
    
        identity ASE_DISABLED {
          base ASE_CONTROL_MODE;
          description
            "Removes any ASE noise injection that may be present on the
          media channel";
        }
    
        identity AUTO_ASE_ON_FAILURE {
          base ASE_CONTROL_MODE;
          description
            "The media channel will automatically be injected with noise
          if the media channel target spectrum power drops below the
          provided threshdold. In this mode, at time of a failure, the
          media channel is removed from the system and would need to be
          reconfigured to restore traffic. In addition, unprovisioned
          spectrum will be injected with noise";
        }
    
        identity AUTO_ASE_FAILURE_AND_RESTORE {
          base ASE_CONTROL_MODE;
          description
            "The media channel will automatically be injected with noise
          if the media channel target spectrum power drops below the
          provided threshold. When the original signal is restored above
          the threshold the ASE noise injection will be automatically
          removed. In addition, unprovisioned spectrum will be injected
          with noise";
        }
    
        grouping port-spectrum-power-profile-state {
          description
            "Operational state data for a wavelength-router
          port spectrum profile";
        }  // grouping port-spectrum-power-profile-state
    
        grouping port-spectrum-power-profile-config {
          description
            "Configuration data for a wavelength-router port spectrum
          profile";
          leaf name {
            type leafref {
              path
                "/oc-platform:components/oc-platform:component/"
                  + "oc-platform:name";
            }
            description
              "Reference to system-supplied name of the wavelength-router
    	port component.";
          }
        }  // grouping port-spectrum-power-profile-config
    
        grouping port-spectrum-power-profiles-top {
          description
            "Top-level grouping for the list of wavelength-router port
          spectrum power profiles";
          container port-spectrum-power-profiles {
            description
              "Enclosing container for wavelength-router port spectrum
            power profiles";
            list port {
              key "name";
              description
                "List of ports, keyed by port name";
              leaf name {
                type leafref {
                  path "../config/name";
                }
                description
                  "References the port name";
              }
    
              container config {
                description
                  "Configuration data for each port";
                uses port-spectrum-power-profile-config;
              }  // container config
    
              container state {
                config false;
                description
                  "Operational state data for each port spectrum profile.";
                uses port-spectrum-power-profile-config;
    
                uses port-spectrum-power-profile-state;
              }  // container state
    
              uses spectrum-target-power-profiles-top;
            }  // list port
          }  // container port-spectrum-power-profiles
        }  // grouping port-spectrum-power-profiles-top
    
        grouping media-channel-port-config {
          description
            "Configuration data for a media channel source/dest port";
          leaf port-name {
            type leafref {
              path
                "/oc-platform:components/oc-platform:component/"
                  + "oc-platform:name";
            }
            description
              "Reference to the corresponding node port";
          }
        }  // grouping media-channel-port-config
    
        grouping media-channel-port-state {
          description
            "Operational state data for a media channel source/dest port";
        }  // grouping media-channel-port-state
    
        grouping media-channel-source-port-top {
          description
            "Top-level grouping for source of the media channel";
          container source {
            description
              "Top-level container for media channel source";
            container config {
              description
                "Configuration data for the media channel source";
              uses media-channel-port-config;
            }  // container config
    
            container state {
              config false;
              description
                "Operational state data for the media channel source";
              uses media-channel-port-config;
    
              uses media-channel-port-state;
            }  // container state
          }  // container source
        }  // grouping media-channel-source-port-top
    
        grouping media-channel-dest-port-top {
          description
            "Top-level grouping for destination of the media channel";
          container dest {
            description
              "Top-level container for media channel destination";
            container config {
              description
                "Configuration data for the media channel destination";
              uses media-channel-port-config;
            }  // container config
    
            container state {
              config false;
              description
                "Operational state data for the media channel destination";
              uses media-channel-port-config;
    
              uses media-channel-port-state;
            }  // container state
          }  // container dest
        }  // grouping media-channel-dest-port-top
    
        grouping spectrum-target-power-config {
          description
            "Configuration data for the media channel target power";
          leaf lower-frequency {
            type oc-opt-types:frequency-type;
            description
              "Lower frequency of the specified target spectrum power";
          }
    
          leaf upper-frequency {
            type oc-opt-types:frequency-type;
            description
              "Upper frequency of the specified target spectrum power";
          }
    
          leaf target-power {
            type decimal64 {
              fraction-digits 2;
            }
            units "dBm";
            description
              "Target average power to achieve within the specified
            spectrum";
          }
        }  // grouping spectrum-target-power-config
    
        grouping spectrum-target-power-state {
          description
            "Operational state data for the target spectrum power";
        }  // grouping spectrum-target-power-state
    
        grouping spectrum-target-power-profiles-top {
          description
            "Top-level grouping for target spectrum profiles";
          container spectrum-power-profile {
            description
              "Enclosing container for the list of values describing
            the target spectrum powers";
            list distribution {
              key "lower-frequency upper-frequency";
              description
                "List of tuples describing the target spectrum power
              distribution";
              leaf lower-frequency {
                type leafref {
                  path
                    "../config/lower-frequency";
                }
                description
                  "Reference to the list key";
              }
    
              leaf upper-frequency {
                type leafref {
                  path
                    "../config/upper-frequency";
                }
                description
                  "Reference to the list key";
              }
    
              container config {
                description
                  "Configuration data for target spectrum power";
                uses spectrum-target-power-config;
              }  // container config
    
              container state {
                config false;
                description
                  "Operational state data for target spectrum power";
                uses spectrum-target-power-config;
    
                uses spectrum-target-power-state;
              }  // container state
            }  // list distribution
          }  // container spectrum-power-profile
        }  // grouping spectrum-target-power-profiles-top
    
        grouping media-channel-config {
          description
            "Configuration data for media channel definitions";
          leaf index {
            type uint32;
            description
              "Identifier for the defined media channel";
          }
    
          leaf name {
            type string;
            description
              "The user supplied name of the media channel";
          }
    
          leaf lower-frequency {
            type oc-opt-types:frequency-type;
            description
              "The lower frequency for the spectrum defined by this media
            channel";
          }
    
          leaf upper-frequency {
            type oc-opt-types:frequency-type;
            description
              "The upper frequency for the spectrum defined by this media
            channel";
          }
    
          leaf admin-status {
            type oc-opt-types:admin-state-type;
            description
              "Sets the admin status of the media channel";
          }
    
          leaf super-channel {
            type boolean;
            description
              "True if the media channel is a super channel which
            contains multiple media channels within it. The contained
            media channels should fall within the boundaries of the
            super channel. The device should raise an error if a media
            channel crosses a super channel boundary. When using super
            channels, spectrum power targets should be defined in either
            the:
             - port-spectrum-power-profiles for the port which matches the
               source port of the media channel representing the super
               channel
             - media channels that are contained within the super
    	   channel, but not on the super channel itself";
          }
    
          leaf super-channel-parent {
            type leafref {
              path
                "../../../channel/config/index";
            }
            description
              "If the media channel is contained within a super channel this
            would specify the index of the super channel parent";
          }
    
          leaf ase-control-mode {
            type identityref {
              base ASE_CONTROL_MODE;
            }
            description
              "Sets the ASE control mode for the media channel.
            The control mode defines if and when ASE noise is injected
            on the media channel";
          }
    
          leaf ase-injection-mode {
            type enumeration {
              enum "MODE_THRESHOLD" {
                value 0;
                description
                  "When set ASE noise will be injected when a defined
                threshold is crossed.";
              }
              enum "MODE_DELTA" {
                value 1;
                description
                  "When set ASE noise will be injected when a defined
                delta in optical power occurs.";
              }
            }
            description
              "When specified, defines the mode used to determine whether
            ASE noise should be injected on the media channel.";
          }
    
          leaf ase-injection-threshold {
            when
              "../ase-injection-mode = 'MODE_THRESHOLD'";
            type decimal64 {
              fraction-digits 2;
            }
            units "dBm";
            description
              "Defines the optical power threshold value below which ASE
            noise should be injected on the media channel. This or
            ase-injection-delta is required if an ase-control-mode is
            configured";
          }
    
          leaf ase-injection-delta {
            when
              "../ase-injection-mode = 'MODE_DELTA'";
            type decimal64 {
              fraction-digits 2;
            }
            units "dB";
            description
              "Defines the optical power loss from the configured spectrum
            power profile, which would indicate that ASE noise should be
            injected on the media channel. This or
            ase-injection-threshold is required if an ase-control-mode
            is configured";
          }
    
          leaf attenuation-control-mode {
            type identityref {
              base ATTENUATION_CONTROL_MODE;
            }
            description
              "Sets the attenuation control mode for the media channel.
            The control mode defines the behavior of how the attenuation
            across a media channel is set";
          }
        }  // grouping media-channel-config
    
        grouping media-channel-state {
          description
            "Operational state data for media channels ";
          leaf oper-status {
            type enumeration {
              enum "UP" {
                value 0;
                description
                  "Media channel is operationally up";
              }
              enum "DOWN" {
                value 1;
                description
                  "Media channel is operationally down";
              }
            }
            description
              "Operational state of the media channel";
          }
    
          leaf ase-status {
            type enumeration {
              enum "PRESENT" {
                value 0;
                description
                  "Media channel has injected ASE noise present";
              }
              enum "NOT_PRESENT" {
                value 1;
                description
                  "Media channel does not have injected ASE noise present";
              }
            }
            description
              "Status of injected ASE noise on the media channel";
          }
        }  // grouping media-channel-state
    
        grouping media-channel-top {
          description
            "Top-level grouping for list of defined media channels";
          container media-channels {
            description
              "Enclosing container for media channel list";
            list channel {
              key "index";
              description
                "List of media channels";
              leaf index {
                type leafref {
                  path "../config/index";
                }
                description
                  "Reference to index number of the media channel";
              }
    
              container config {
                description
                  "Configuration data ";
                uses media-channel-config;
              }  // container config
    
              container state {
                config false;
                description
                  "Operational state data ";
                uses media-channel-config;
    
                uses media-channel-state;
              }  // container state
    
              uses media-channel-source-port-top;
    
              uses media-channel-dest-port-top;
    
              uses spectrum-target-power-profiles-top;
            }  // list channel
          }  // container media-channels
        }  // grouping media-channel-top
    
        grouping wavelength-router-top {
          description
            "Top level grouping for the wavelength router";
          container wavelength-router {
            description
              "Top-level container for wavelength router device";
            uses media-channel-top;
    
            uses port-spectrum-power-profiles-top;
          }  // container wavelength-router
        }  // grouping wavelength-router-top
    
        uses wavelength-router-top;
      }  // module openconfig-wavelength-router
    

© 2023 YumaWorks, Inc. All rights reserved.