netconfcentral logo

openconfig-channel-monitor@2017-09-08



  module openconfig-channel-monitor {

    yang-version 1;

    namespace
      "http://openconfig.net/yang/channel-monitor";

    prefix oc-chan-monitor;

    import openconfig-extensions {
      prefix oc-ext;
    }
    import openconfig-types {
      prefix oc-types;
    }
    import openconfig-interfaces {
      prefix oc-if;
    }
    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 operational state data for an optical
    channel monitor (OCM) for optical transport line system
    elements such as wavelength routers (ROADMs) and amplifiers.";

    revision "2017-09-08" {
      description
        "Correct bug with OSC interfaces";
      reference
        "0.3.1";

    }

    revision "2017-07-08" {
      description
        "Support multiple OCMs, add 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-09-14" {
      description "Initial revision";
      reference
        "0.1.0";

    }

    oc-ext:openconfig-version "0.3.1";

    grouping media-channel-port-config {
      description
        "Configuration data for a media channel source/dest port";
      leaf port-name {
        type oc-if:base-interface-ref;
        description
          "Reference to the corresponding node interface";
      }
    }  // 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 media-channel-psd-state {
      description
        "Operational state data for the media channel PSD";
      leaf lower-frequency {
        type oc-opt-types:frequency-type;
        description
          "Lower frequency of the specified PSD";
      }

      leaf upper-frequency {
        type oc-opt-types:frequency-type;
        description
          "Upper frequency of the specified PSD";
      }

      leaf psd {
        type oc-types:ieeefloat32;
        units "nW/MHz";
        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";
      }
    }  // grouping media-channel-psd-state

    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;
          }  // container state
        }  // list channel
      }  // container channels
    }  // grouping media-channel-psd-top

    grouping media-channel-config {
      description
        "Configuration data for media channel definitions";
      leaf index {
        type uint32;
        description
          "Identifier for the defined 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";
      }
    }  // grouping media-channel-config

    grouping channel-monitor-config {
      description
        "Configuration data for the optical channel monitor";
      leaf name {
        type leafref {
          path
            "/oc-platform:components/oc-platform:component/"
              + "oc-platform:name";
        }
        description
          "Reference to system-supplied name of the port on the
        optical channel monitor (OCM). If this port is embedded
        in another card (i.e. an amplifier card) the device
        should still define a port representing the OCM even if
        it is internal and not physically present on the
        faceplate of the card";
      }

      leaf monitor-port {
        type leafref {
          path
            "/oc-platform:components/oc-platform:component/"
              + "oc-platform:name";
        }
        description
          "Reference to system-supplied name of the port that the
        channel monitor is physically connected to. This port
        will be of type MONITOR. This port is a tap off of the
        monitored-port and would be in the same card as the
        monitored port. If this port is embedded in another card
        (i.e. an amplifier card) the device should still define
        a port representing the monitor port if it is internal
        and not physically present on the faceplate of the card";
      }
    }  // grouping channel-monitor-config

    grouping channel-monitor-state {
      description "Operational state data ";
    }  // grouping channel-monitor-state

    grouping channel-monitor-top {
      description "Top-level grouping ";
      container channel-monitors {
        description
          "Top-level container for optical channel monitors";
        list channel-monitor {
          key "name";
          description
            "List of channel monitors, keyed by channel monitor name.";
          leaf name {
            type leafref {
              path "../config/name";
            }
            description
              "References the optical channel monitor name";
          }

          container config {
            description
              "Configuration data ";
            uses channel-monitor-config;
          }  // container config

          container state {
            config false;
            description
              "Operational state data ";
            uses channel-monitor-config;

            uses channel-monitor-state;
          }  // container state

          uses media-channel-psd-top;
        }  // list channel-monitor
      }  // container channel-monitors
    }  // grouping channel-monitor-top

    uses channel-monitor-top;
  }  // module openconfig-channel-monitor