aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/yang/openconfig/openconfig-mpls-types.yang
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/yang/openconfig/openconfig-mpls-types.yang')
-rw-r--r--src/plugins/yang/openconfig/openconfig-mpls-types.yang426
1 files changed, 426 insertions, 0 deletions
diff --git a/src/plugins/yang/openconfig/openconfig-mpls-types.yang b/src/plugins/yang/openconfig/openconfig-mpls-types.yang
new file mode 100644
index 0000000..18d3816
--- /dev/null
+++ b/src/plugins/yang/openconfig/openconfig-mpls-types.yang
@@ -0,0 +1,426 @@
+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 "3.0.0";
+
+ revision "2018-07-02" {
+ description
+ "Add new RSVP-TE statistics, remove associated-rsvp-session
+ leaf. Remove use of date-and-time.";
+ reference "3.0.0";
+ }
+
+ revision "2018-06-16" {
+ description
+ "Included attributes for base LDP configuration.";
+ reference "2.6.0";
+ }
+
+ revision "2018-06-13" {
+ description
+ "Add ttl-propagation to global MPLS config";
+ reference "2.5.0";
+ }
+
+ revision "2018-06-05" {
+ description
+ "Fixed bugs in when statements on RSVP-TE attributes";
+ reference "2.4.2";
+ }
+
+ revision "2017-08-24" {
+ description
+ "Minor formatting fixes.";
+ reference "2.4.1";
+ }
+
+ 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
+
+}