netconfcentral logo

mpls-types@2015-02-01



  module mpls-types {

    yang-version 1;

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

    prefix mplst;

    organization "OpenConfig working group";

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

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

    revision "2015-02-01" {
      description "Initial revision";
      reference
        "TBD";

    }


    identity path-setup-protocol {
      base 
      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";
    }

    typedef percentage {
      type uint8 {
        range "0..100";
      }
      description
        "Integer indicating a percentage value";
    }

    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";
          }
        }
      }
      description
        "type for MPLS label value encoding";
      reference
        "RFC 3032 - MPLS Label Stack Encoding";

    }

    typedef tunnel-type {
      type enumeration {
        enum "P2P" {
          value 0;
          description
            "point-to-point label-switched-path";
        }
        enum "P2MP" {
          value 1;
          description
            "point-to-multipoint label-switched-path";
        }
        enum "MP2MP" {
          value 2;
          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)";

    }
  }  // module mpls-types