netconfcentral logo

openconfig-wavelength-router@2017-09-08



  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-types {
      prefix oc-types;
    }
    import openconfig-interfaces {
      prefix oc-if;
    }
    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.";

    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 "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-config {
      description
        "Configuration 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-config

    grouping media-channel-psd-state {
      description
        "Operational state data for the media channel PSD";
    }  // grouping media-channel-psd-state

    grouping media-channel-psd-top {
      description "Top-level grouping ";
      container psd-distribution {
        description
          "Enclosing container for the list of values describing
        the power spectral density distribution";
        list psd-value {
          key "lower-frequency upper-frequency";
          description
            "List of tuples describing the PSD 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 PSD";
            uses media-channel-psd-config;
          }  // container config

          container state {
            config false;
            description
              "Operational state data for PSD";
            uses media-channel-psd-config;

            uses media-channel-psd-state;
          }  // container state
        }  // list psd-value
      }  // container psd-distribution
    }  // 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 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";
      }
    }  // 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";
      }
    }  // 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 media-channel-psd-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;
      }  // container wavelength-router
    }  // grouping wavelength-router-top

    uses wavelength-router-top;
  }  // module openconfig-wavelength-router