netconfcentral logo

openconfig-transport-line-common@2017-09-08



  module openconfig-transport-line-common {

    yang-version 1;

    namespace
      "http://openconfig.net/yang/transport-line-common";

    prefix oc-line-com;

    import iana-if-type {
      prefix ift;
    }
    import openconfig-extensions {
      prefix oc-ext;
    }
    import openconfig-interfaces {
      prefix oc-if;
    }
    import openconfig-platform {
      prefix oc-platform;
    }
    import openconfig-types {
      prefix oc-types;
    }
    import openconfig-transport-types {
      prefix oc-opt-types;
    }

    organization "OpenConfig working group";

    contact
      "OpenConfig working group
    www.openconfig.net";

    description
      "This module defines common data elements for OpenConfig data
    models for optical transport line system elements, such as
    amplifiers and ROADMs (wavelength routers).";

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

    }

    revision "2017-07-08" {
      description
        "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";

    identity OPTICAL_LINE_PORT_TYPE {
      base 
      description
        "Type definition for optical node port types";
    }

    identity INGRESS {
      base OPTICAL_LINE_PORT_TYPE;
      description
        "Ingress port, corresponding to a signal entering
      a line device such as an amplifier or wavelength
      router.";
    }

    identity EGRESS {
      base OPTICAL_LINE_PORT_TYPE;
      description
        "Egress port, corresponding to a signal exiting
      a line device such as an amplifier or wavelength
      router.";
    }

    identity ADD {
      base OPTICAL_LINE_PORT_TYPE;
      description
        "Add port, corresponding to a signal injected
      at a wavelength router.";
    }

    identity DROP {
      base OPTICAL_LINE_PORT_TYPE;
      description
        "Drop port, corresponding to a signal dropped
      at a wavelength router.";
    }

    identity MONITOR {
      base OPTICAL_LINE_PORT_TYPE;
      description
        "Monitor port, corresponding to a signal used by an optical
      channel monitor. This is used to represent the connection
      that a channel monitor port is connected to. This
      connection may be via physical cable and faceplate ports or
      internal to the device";
    }

    grouping optical-osc-config {
      description
        "Configuration data for OSC interfaces";
      leaf interface {
        type oc-if:base-interface-ref;
        description
          "Reference to an OSC interface";
      }
    }  // grouping optical-osc-config

    grouping optical-osc-state {
      description
        "Operational state data for OSC interfaces";
      container input-power {
        description
          "The input optical power of this port in units
        of 0.01dBm. If avg/min/max statistics are not supported,
        the target is expected to just supply the instant value";
        uses oc-types:avg-min-max-instant-stats-precision2-dBm;
      }  // container input-power

      container output-power {
        description
          "The output optical power of this port in units
        of 0.01dBm. If avg/min/max statistics are not supported,
        the target is expected to just supply the instant value";
        uses oc-types:avg-min-max-instant-stats-precision2-dBm;
      }  // container output-power

      container laser-bias-current {
        description
          "The current applied by the system to the transmit laser to
        achieve the output power. The current is expressed in mA
        with up to one decimal precision. If avg/min/max statistics
        are not supported, the target is expected to just supply
        the instant value";
        uses oc-types:avg-min-max-instant-stats-precision2-mA;
      }  // container laser-bias-current
    }  // grouping optical-osc-state

    grouping optical-osc-top {
      description
        "Top-level grouping for configuration and operational state
      data for optical supervisory channels (OSC) for amplifiers,
      WSS/ROADM, nodes, etc.";
      container config {
        description
          "Configuration data for OSCs";
        uses optical-osc-config;
      }  // container config

      container state {
        config false;
        description
          "Operational state data for OSCs";
        uses optical-osc-config;

        uses optical-osc-state;
      }  // container state
    }  // grouping optical-osc-top

    grouping transport-line-common-port-config {
      description
        "Configuration data for optical line ports";
      leaf admin-state {
        type oc-opt-types:admin-state-type;
        description
          "Sets the admin state of the optical-port";
      }
    }  // grouping transport-line-common-port-config

    grouping transport-line-common-port-state {
      description
        "Operational state data describing optical line ports";
      leaf optical-port-type {
        type identityref {
          base OPTICAL_LINE_PORT_TYPE;
        }
        description
          "Indicates the type of transport line port.  This is an
        informational field that should be made available by the
        device (e.g., in the openconfig-platform model).";
      }

      container input-power {
        description
          "The total input optical power of this port in units
        of 0.01dBm. If avg/min/max statistics are not supported,
        just supply the instant value";
        uses oc-types:avg-min-max-instant-stats-precision2-dBm;
      }  // container input-power

      container output-power {
        description
          "The total output optical power of this port in units
        of 0.01dBm. If avg/min/max statistics are not supported,
        just supply the instant value";
        uses oc-types:avg-min-max-instant-stats-precision2-dBm;
      }  // container output-power
    }  // grouping transport-line-common-port-state

    grouping transport-line-common-port-top {
      description "Top-level grouping ";
      container optical-port {
        description "Top-level container ";
        container config {
          description
            "Operational config data for optical line ports";
          uses transport-line-common-port-config;
        }  // container config

        container state {
          config false;
          description
            "Operational state data for optical line ports";
          uses transport-line-common-port-config;

          uses transport-line-common-port-state;
        }  // container state
      }  // container optical-port
    }  // grouping transport-line-common-port-top

    augment /oc-platform:components/oc-platform:component {
      description
        "Adding optical line port data to platform model";
      uses transport-line-common-port-top {
        when
          "/oc-platform:components/oc-platform:component/"
            + "oc-platform:state/oc-platform:type = 'PORT'" {
          description
            "Augment is active when component is of type
          PORT";
        }
      }
    }

    augment /oc-if:interfaces/oc-if:interface {
      when
        "oc-if:config/oc-if:type = 'ift:sonet'" {
        description
          "Additional interface configuration parameters when
      the interface type is SONET/SDH";
      }
      description
        "Adds additional SONET/SDH-specific data to
    osc model";
      container sonet {
        description
          "Data related to SONET/SDH interfaces";
      }  // container sonet
    }
  }  // module openconfig-transport-line-common