module openconfig-mpls-types {

  yang-version "1";

  // namespace
  namespace "http://openconfig.net/yang/mpls-types";

  prefix "oc-mpls-types";

  import openconfig-extensions { prefix oc-ext; }

  // meta
  organization "OpenConfig working group";

  contact
    "OpenConfig working group
    netopenconfig@googlegroups.com";

  description
    "General types for MPLS / TE data model";

  oc-ext:openconfig-version "2.4.0";

  revision "2017-06-21" {
    description
      "Add TC bits typedef.";
    reference "2.4.0";
  }

  revision "2017-03-22" {
    description
      "Add RSVP calculated-absolute-subscription-bw";
    reference "2.3.0";
  }

  revision "2017-01-26" {
    description
      "Add RSVP Tspec, clarify units for RSVP, remove unused LDP";
    reference "2.2.0";
  }

  revision "2016-12-15" {
    description
      "Add additional MPLS parameters";
    reference "2.1.0";
  }

  revision "2016-09-01" {
    description
      "Revisions based on implementation feedback";
    reference "2.0.0";
  }

  revision "2016-08-08" {
    description
      "Public release of MPLS models";
    reference "1.0.1";
  }

  // identity statements

  identity PATH_COMPUTATION_METHOD {
    description
     "base identity for supported path computation
      mechanisms";
  }

  identity LOCALLY_COMPUTED {
    base PATH_COMPUTATION_METHOD;
    description
      "indicates a constrained-path LSP in which the
      path is computed by the local LER";
  }

  identity EXTERNALLY_QUERIED {
    base PATH_COMPUTATION_METHOD;
    description
     "Constrained-path LSP in which the path is
      obtained by querying an external source, such as a PCE server.
      In the case that an LSP is defined to be externally queried, it may
      also have associated explicit definitions (which are provided to the
      external source to aid computation); and the path that is returned by
      the external source is not required to provide a wholly resolved
      path back to the originating system - that is to say, some local
      computation may also be required";
  }

  identity EXPLICITLY_DEFINED {
    base PATH_COMPUTATION_METHOD;
    description
     "constrained-path LSP in which the path is
      explicitly specified as a collection of strict or/and loose
      hops";
  }


  // using identities rather than enum types to simplify adding new
  // signaling protocols as they are introduced and supported
  identity PATH_SETUP_PROTOCOL {
    description
      "base identity for supported MPLS signaling
      protocols";
  }

  identity PATH_SETUP_RSVP {
    base PATH_SETUP_PROTOCOL;
    description
      "RSVP-TE signaling protocol";
  }

  identity PATH_SETUP_SR {
    base PATH_SETUP_PROTOCOL;
    description
      "Segment routing";
  }

  identity PATH_SETUP_LDP {
    base PATH_SETUP_PROTOCOL;
    description
      "LDP - RFC 5036";
  }


  identity PROTECTION_TYPE {
    description
      "base identity for protection type";
  }

  identity UNPROTECTED {
    base PROTECTION_TYPE;
    description
      "no protection is desired";
  }

  identity LINK_PROTECTION_REQUIRED {
    base PROTECTION_TYPE;
    description
      "link protection is desired";
  }

  identity LINK_NODE_PROTECTION_REQUESTED {
    base PROTECTION_TYPE;
    description
      "node and link protection are both desired";
  }

  identity LSP_ROLE {
    description
      "Base identity for describing the role of
       label switched path at the current node";
  }

  identity INGRESS {
    base LSP_ROLE;
    description
      "Label switched path is an ingress (headend)
       LSP";
  }

  identity EGRESS {
    base LSP_ROLE;
    description
      "Label switched path is an egress (tailend)
       LSP";
  }

  identity TRANSIT {
    base LSP_ROLE;
    description
      "Label switched path is a transit LSP";
  }


  identity TUNNEL_TYPE {
    description
      "Base identity from which specific tunnel types are
      derived.";
  }

  identity P2P {
    base TUNNEL_TYPE;
    description
      "TE point-to-point tunnel type.";
  }

  identity P2MP {
    base TUNNEL_TYPE;
    description
      "TE point-to-multipoint tunnel type.";
  }


  identity LSP_OPER_STATUS {
    description
      "Base identity for LSP operational status";
  }

  identity DOWN {
    base LSP_OPER_STATUS;
    description
      "LSP is operationally down or out of service";
  }

  identity UP {
    base LSP_OPER_STATUS;
    description
      "LSP is operationally active and available
       for traffic.";
  }

  identity TUNNEL_ADMIN_STATUS {
    description
      "Base identity for tunnel administrative status";
  }

  identity ADMIN_DOWN {
    base TUNNEL_ADMIN_STATUS;
    description
      "LSP is administratively down";
  }

  identity ADMIN_UP {
    base TUNNEL_ADMIN_STATUS;
    description
      "LSP is administratively up";
  }

 identity NULL_LABEL_TYPE {
    description
      "Base identity from which specific null-label types are
      derived.";
  }

  identity EXPLICIT {
    base NULL_LABEL_TYPE;
    description
      "Explicit null label is used.";
  }

  identity IMPLICIT {
    base NULL_LABEL_TYPE;
    description
      "Implicit null label is used.";
  }

  identity LSP_METRIC_TYPE {
    description
      "Base identity for types of LSP metric specification";
  }

  identity LSP_METRIC_RELATIVE {
    base LSP_METRIC_TYPE;
    description
      "The metric specified for the LSPs to which this identity refers
      is specified as a relative value to the IGP metric cost to the
      LSP's tail-end.";
  }

  identity LSP_METRIC_ABSOLUTE {
    base LSP_METRIC_TYPE;
    description
      "The metric specified for the LSPs to which this identity refers
      is specified as an absolute value";
  }

  identity LSP_METRIC_INHERITED {
    base LSP_METRIC_TYPE;
    description
      "The metric for for the LSPs to which this identity refers is
      not specified explicitly - but rather inherited from the IGP
      cost directly";
  }

  // typedef statements
  typedef mpls-label {
    type union {
      type uint32 {
        range 16..1048575;
      }
      type enumeration {
        enum IPV4_EXPLICIT_NULL {
          value 0;
          description
            "valid at the bottom of the label stack,
            indicates that stack must be popped and packet forwarded
            based on IPv4 header";
        }
        enum ROUTER_ALERT {
          value 1;
          description
            "allowed anywhere in the label stack except
            the bottom, local router delivers packet to the local CPU
            when this label is at the top of the stack";
        }
        enum IPV6_EXPLICIT_NULL {
          value 2;
          description
            "valid at the bottom of the label stack,
            indicates that stack must be popped and packet forwarded
            based on IPv6 header";
        }
        enum IMPLICIT_NULL {
          value 3;
          description
            "assigned by local LSR but not carried in
            packets";
        }
        enum ENTROPY_LABEL_INDICATOR {
          value 7;
          description
            "Entropy label indicator, to allow an LSR
            to distinguish between entropy label and applicaiton
            labels RFC 6790";
        }
        enum NO_LABEL {
          description
            "This value is utilised to indicate that the packet that
            is forwarded by the local system does not have an MPLS
            header applied to it. Typically, this is used at the
            egress of an LSP";
        }
      }
    }
    description
      "type for MPLS label value encoding";
    reference "RFC 3032 - MPLS Label Stack Encoding";
  }

  typedef tunnel-type {
    type enumeration {
      enum P2P {
        description
          "point-to-point label-switched-path";
      }
      enum P2MP {
        description
          "point-to-multipoint label-switched-path";
      }
      enum MP2MP {
        description
          "multipoint-to-multipoint label-switched-path";
      }
    }
    description
      "defines the tunnel type for the LSP";
    reference
      "RFC 6388 - Label Distribution Protocol Extensions for
      Point-to-Multipoint and Multipoint-to-Multipoint Label Switched
      Paths
      RFC 4875 - Extensions to  Resource Reservation Protocol
      - Traffic Engineering (RSVP-TE) for Point-to-Multipoint TE
      Label Switched Paths (LSPs)";
  }

  typedef bandwidth-kbps {
    type uint64;
    units "Kbps";
    description
      "Bandwidth values expressed in kilobits per second";
  }

  typedef bandwidth-mbps {
    type uint64;
    units "Mbps";
    description
      "Bandwidth values expressed in megabits per second";
  }

  typedef bandwidth-gbps {
    type uint64;
    units "Gbps";
    description
      "Bandwidth values expressed in gigabits per second";
  }

  typedef mpls-tc {
    type uint8 {
      range "0..7";
    }
    description
      "Values of the MPLS Traffic Class (formerly known as
      Experimental, EXP) bits";
  }

  // grouping statements

  // data definition statements

  // augment statements

  // rpc statements

  // notification statements

}
