| module ietf-te-types { |
| |
| namespace "urn:ietf:params:xml:ns:yang:ietf-te-types"; |
| |
| /* Replace with IANA when assigned */ |
| prefix "te-types"; |
| |
| import ietf-inet-types { |
| prefix inet; |
| } |
| |
| import ietf-yang-types { |
| prefix "yang"; |
| } |
| |
| organization |
| "IETF Traffic Engineering Architecture and Signaling (TEAS) |
| Working Group"; |
| |
| contact |
| "WG Web: <http://tools.ietf.org/wg/teas/> |
| WG List: <mailto:teas@ietf.org> |
| |
| WG Chair: Lou Berger |
| <mailto:lberger@labn.net> |
| |
| WG Chair: Vishnu Pavan Beeram |
| <mailto:vbeeram@juniper.net> |
| |
| Editor: Tarek Saad |
| <mailto:tsaad@cisco.com> |
| |
| Editor: Rakesh Gandhi |
| <mailto:rgandhi@cisco.com> |
| |
| Editor: Vishnu Pavan Beeram |
| <mailto:vbeeram@juniper.net> |
| |
| Editor: Himanshu Shah |
| <mailto:hshah@ciena.com> |
| |
| Editor: Xufeng Liu |
| <mailto:xufeng.liu@ericsson.com> |
| |
| Editor: Xia Chen |
| <mailto:jescia.chenxia@huawei.com> |
| |
| Editor: Raqib Jones |
| <mailto:raqib@Brocade.com> |
| |
| Editor: Bin Wen |
| <mailto:Bin_Wen@cable.comcast.com>"; |
| |
| description |
| "This module contains a collection of generally |
| useful TE specific YANG data type defintions."; |
| |
| revision "2016-07-05" { |
| description "Latest revision of TE basic types"; |
| reference "RFC3209"; |
| } |
| |
| /* |
| * Identities |
| */ |
| identity tunnel-type { |
| description |
| "Base identity from which specific tunnel types are |
| derived."; |
| } |
| |
| identity tunnel-p2p { |
| base tunnel-type; |
| description |
| "TE point-to-point tunnel type."; |
| } |
| |
| identity tunnel-p2mp { |
| base tunnel-type; |
| description |
| "TE point-to-multipoint tunnel type."; |
| } |
| |
| identity state-type { |
| description |
| "Base identity for TE states"; |
| } |
| |
| identity state-up { |
| base state-type; |
| description |
| "State up"; |
| } |
| |
| identity state-down { |
| base state-type; |
| description |
| "State down"; |
| } |
| |
| identity path-invalidation-action-type { |
| description |
| "Base identity for TE path invalidation action types"; |
| } |
| |
| identity tunnel-invalidation-action-drop-type { |
| base path-invalidation-action-type; |
| description |
| "TE path invalidation action drop"; |
| } |
| |
| identity tunnel-invalidation-action-drop-tear { |
| base path-invalidation-action-type; |
| description |
| "TE path invalidation action tear"; |
| } |
| |
| identity lsp-prot-type { |
| description |
| "Base identity from which LSP protection types are |
| derived."; |
| } |
| |
| identity lsp-prot-unprotected { |
| base lsp-prot-type; |
| description |
| "LSP protection 'Unprotected'"; |
| reference "RFC4872"; |
| } |
| |
| identity lsp-prot-reroute-extra { |
| base lsp-prot-type; |
| description |
| "LSP protection '(Full) Rerouting'"; |
| reference "RFC4872"; |
| } |
| |
| identity lsp-prot-reroute { |
| base lsp-prot-type; |
| description |
| "LSP protection 'Rerouting without Extra-Traffic'"; |
| reference "RFC4872"; |
| } |
| |
| identity lsp-prot-1-for-n { |
| base lsp-prot-type; |
| description |
| "LSP protection '1:N Protection with Extra-Traffic'"; |
| reference "RFC4872"; |
| } |
| |
| identity lsp-prot-unidir-1-to-1 { |
| base lsp-prot-type; |
| description |
| "LSP protection '1+1 Unidirectional Protection'"; |
| reference "RFC4872"; |
| } |
| |
| identity lsp-prot-bidir-1-to-1 { |
| base lsp-prot-type; |
| description |
| "LSP protection '1+1 Bidirectional Protection'"; |
| reference "RFC4872"; |
| } |
| |
| identity switching-capabilities { |
| description |
| "Base identity for interface switching capabilities"; |
| } |
| |
| identity switching-psc1 { |
| base switching-capabilities; |
| description |
| "Packet-Switch Capable-1 (PSC-1)"; |
| } |
| |
| identity switching-evpl { |
| base switching-capabilities; |
| description |
| "Ethernet Virtual Private Line (EVPL)"; |
| } |
| |
| identity switching-l2sc { |
| base switching-capabilities; |
| description |
| "Layer-2 Switch Capable (L2SC)"; |
| } |
| |
| identity switching-tdm { |
| base switching-capabilities; |
| description |
| "Time-Division-Multiplex Capable (TDM)"; |
| } |
| |
| identity switching-otn { |
| base switching-capabilities; |
| description |
| "OTN-TDM capable"; |
| } |
| |
| identity switching-dcsc { |
| base switching-capabilities; |
| description |
| "Data Channel Switching Capable (DCSC)"; |
| } |
| |
| identity switching-lsc { |
| base switching-capabilities; |
| description |
| "Lambda-Switch Capable (LSC)"; |
| } |
| |
| identity switching-fsc { |
| base switching-capabilities; |
| description |
| "Fiber-Switch Capable (FSC)"; |
| } |
| |
| identity lsp-encoding-types { |
| description |
| "Base identity for encoding types"; |
| } |
| |
| identity lsp-encoding-packet { |
| base lsp-encoding-types; |
| description |
| "Packet LSP encoding"; |
| } |
| |
| identity lsp-encoding-ethernet { |
| base lsp-encoding-types; |
| description |
| "Ethernet LSP encoding"; |
| } |
| |
| identity lsp-encoding-pdh { |
| base lsp-encoding-types; |
| description |
| "ANSI/ETSI LSP encoding"; |
| } |
| |
| identity lsp-encoding-sdh { |
| base lsp-encoding-types; |
| description |
| "SDH ITU-T G.707 / SONET ANSI T1.105 LSP encoding"; |
| } |
| |
| identity lsp-encoding-digital-wrapper { |
| base lsp-encoding-types; |
| description |
| "Digital Wrapper LSP encoding"; |
| } |
| |
| identity lsp-encoding-lambda { |
| base lsp-encoding-types; |
| description |
| "Lambda (photonic) LSP encoding"; |
| } |
| |
| identity lsp-encoding-fiber { |
| base lsp-encoding-types; |
| description |
| "Fiber LSP encoding"; |
| } |
| |
| identity lsp-encoding-fiber-channel { |
| base lsp-encoding-types; |
| description |
| "FiberChannel LSP encoding"; |
| } |
| |
| identity lsp-encoding-oduk { |
| base lsp-encoding-types; |
| description |
| "G.709 ODUk (Digital Path)LSP encoding"; |
| } |
| |
| identity lsp-encoding-optical-channel { |
| base lsp-encoding-types; |
| description |
| "Line (e.g., 8B/10B) LSP encoding"; |
| } |
| |
| identity lsp-encoding-line { |
| base lsp-encoding-types; |
| description |
| "Line (e.g., 8B/10B) LSP encoding"; |
| } |
| |
| identity path-signaling-type { |
| description |
| "Base identity from which specific path signaling |
| types are derived."; |
| } |
| |
| identity path-signaling-rsvpte { |
| base tunnel-type; |
| description |
| "RSVP-TE path signaling type"; |
| } |
| |
| identity path-signaling-sr { |
| base tunnel-type; |
| description |
| "Segment-routing path signaling type"; |
| } |
| |
| /* TE basic features */ |
| feature p2mp-te { |
| description |
| "Indicates support for P2MP-TE"; |
| } |
| |
| feature frr-te { |
| description |
| "Indicates support for TE FastReroute (FRR)"; |
| } |
| |
| feature extended-admin-groups { |
| description |
| "Indicates support for TE link extended admin |
| groups."; |
| } |
| |
| feature named-path-affinities { |
| description |
| "Indicates support for named path affinities"; |
| } |
| |
| feature named-extended-admin-groups { |
| description |
| "Indicates support for named extended admin groups"; |
| } |
| |
| feature named-srlg-groups { |
| description |
| "Indicates support for named SRLG groups"; |
| } |
| |
| feature named-path-constraints { |
| description |
| "Indicates support for named path constraints"; |
| } |
| |
| grouping explicit-route-subobject { |
| description |
| "The explicit route subobject grouping"; |
| choice type { |
| description |
| "The explicit route subobject type"; |
| case ipv4-address { |
| description |
| "IPv4 address explicit route subobject"; |
| leaf v4-address { |
| type inet:ipv4-address; |
| description |
| "An IPv4 address. This address is |
| treated as a prefix based on the |
| prefix length value below. Bits beyond |
| the prefix are ignored on receipt and |
| SHOULD be set to zero on transmission."; |
| } |
| leaf v4-prefix-length { |
| type uint8; |
| description |
| "Length in bits of the IPv4 prefix"; |
| } |
| leaf v4-loose { |
| type boolean; |
| description |
| "Describes whether the object is loose |
| if set, or otherwise strict"; |
| } |
| } |
| case ipv6-address { |
| description |
| "IPv6 address Explicit Route Object"; |
| leaf v6-address { |
| type inet:ipv6-address; |
| description |
| "An IPv6 address. This address is |
| treated as a prefix based on the |
| prefix length value below. Bits |
| beyond the prefix are ignored on |
| receipt and SHOULD be set to zero |
| on transmission."; |
| } |
| leaf v6-prefix-length { |
| type uint8; |
| description |
| "Length in bits of the IPv4 prefix"; |
| } |
| leaf v6-loose { |
| type boolean; |
| description |
| "Describes whether the object is loose |
| if set, or otherwise strict"; |
| } |
| } |
| case as-number { |
| leaf as-number { |
| type uint16; |
| description "AS number"; |
| } |
| description |
| "Autonomous System explicit route subobject"; |
| } |
| case unnumbered-link { |
| leaf router-id { |
| type inet:ip-address; |
| description |
| "A router-id address"; |
| } |
| leaf interface-id { |
| type uint32; |
| description "The interface identifier"; |
| } |
| description |
| "Unnumbered link explicit route subobject"; |
| reference |
| "RFC3477: Signalling Unnumbered Links in |
| RSVP-TE"; |
| } |
| case label { |
| leaf value { |
| type uint32; |
| description "the label value"; |
| } |
| description |
| "The Label ERO subobject"; |
| } |
| /* AS domain sequence..? */ |
| } |
| } |
| |
| grouping record-route-subobject { |
| description |
| "The record route subobject grouping"; |
| choice type { |
| description |
| "The record route subobject type"; |
| case ipv4-address { |
| leaf v4-address { |
| type inet:ipv4-address; |
| description |
| "An IPv4 address. This address is |
| treated as a prefix based on the prefix |
| length value below. Bits beyond the |
| prefix are ignored on receipt and |
| SHOULD be set to zero on transmission."; |
| } |
| leaf v4-prefix-length { |
| type uint8; |
| description |
| "Length in bits of the IPv4 prefix"; |
| } |
| leaf v4-flags { |
| type uint8; |
| description |
| "IPv4 address sub-object flags"; |
| reference "RFC3209"; |
| } |
| } |
| case ipv6-address { |
| leaf v6-address { |
| type inet:ipv6-address; |
| description |
| "An IPv6 address. This address is |
| treated as a prefix based on the |
| prefix length value below. Bits |
| beyond the prefix are ignored on |
| receipt and SHOULD be set to zero |
| on transmission."; |
| } |
| leaf v6-prefix-length { |
| type uint8; |
| description |
| "Length in bits of the IPv4 prefix"; |
| } |
| leaf v6-flags { |
| type uint8; |
| description |
| "IPv6 address sub-object flags"; |
| reference "RFC3209"; |
| } |
| } |
| case unnumbered-link { |
| leaf router-id { |
| type inet:ip-address; |
| description |
| "A router-id address"; |
| } |
| leaf interface-id { |
| type uint32; |
| description "The interface identifier"; |
| } |
| description |
| "Unnumbered link record route subobject"; |
| reference |
| "RFC3477: Signalling Unnumbered Links in |
| RSVP-TE"; |
| } |
| case label { |
| leaf value { |
| type uint32; |
| description "the label value"; |
| } |
| leaf flags { |
| type uint8; |
| description |
| "Label sub-object flags"; |
| reference "RFC3209"; |
| } |
| description |
| "The Label ERO subobject"; |
| } |
| } |
| } |
| |
| identity route-usage-type { |
| description |
| "Base identity for route usage"; |
| } |
| |
| identity route-include-ero { |
| base route-usage-type; |
| description |
| "Include ERO from route"; |
| } |
| |
| identity route-exclude-ero { |
| base route-usage-type; |
| description |
| "Exclude ERO from route"; |
| } |
| |
| identity route-exclude-srlg { |
| base route-usage-type; |
| description |
| "Exclude SRLG from route"; |
| } |
| |
| identity path-metric-type { |
| description |
| "Base identity for path metric type"; |
| } |
| |
| identity path-metric-te { |
| base path-metric-type; |
| description |
| "TE path metric"; |
| } |
| |
| identity path-metric-igp { |
| base path-metric-type; |
| description |
| "IGP path metric"; |
| } |
| |
| identity path-tiebreaker-type { |
| description |
| "Base identity for path tie-breaker type"; |
| } |
| |
| identity path-tiebreaker-minfill { |
| base path-tiebreaker-type; |
| description |
| "Min-Fill LSP path placement"; |
| } |
| |
| identity path-tiebreaker-maxfill { |
| base path-tiebreaker-type; |
| description |
| "Max-Fill LSP path placement"; |
| } |
| |
| identity path-tiebreaker-randoom { |
| base path-tiebreaker-type; |
| description |
| "Random LSP path placement"; |
| } |
| |
| identity bidir-provisioning-mode { |
| description |
| "Base identity for bidirectional provisioning |
| mode."; |
| } |
| |
| identity bidir-provisioning-single-sided { |
| base bidir-provisioning-mode; |
| description |
| "Single-sided bidirectional provioning mode"; |
| } |
| |
| identity bidir-provisioning-double-sided { |
| base bidir-provisioning-mode; |
| description |
| "Double-sided bidirectional provioning mode"; |
| } |
| |
| identity bidir-association-type { |
| description |
| "Base identity for bidirectional association type"; |
| } |
| |
| identity bidir-assoc-corouted { |
| base bidir-association-type; |
| description |
| "Co-routed bidirectional association type"; |
| } |
| |
| identity bidir-assoc-non-corouted { |
| base bidir-association-type; |
| description |
| "Non co-routed bidirectional association type"; |
| } |
| |
| identity resource-affinities-type { |
| description |
| "Base identity for resource affinities"; |
| } |
| |
| identity resource-aff-include-all { |
| base resource-affinities-type; |
| description |
| "The set of attribute filters associated with a |
| tunnel all of which must be present for a link |
| to be acceptable"; |
| } |
| |
| identity resource-aff-include-any { |
| base resource-affinities-type; |
| description |
| "The set of attribute filters associated with a |
| tunnel any of which must be present for a link |
| to be acceptable"; |
| } |
| |
| identity resource-aff-exclude-any { |
| base resource-affinities-type; |
| description |
| "The set of attribute filters associated with a |
| tunnel any of which renders a link unacceptable"; |
| } |
| |
| identity te-optimization-criterion { |
| description |
| "Base identity for TE optimization criterion."; |
| reference |
| "RFC3272: Overview and Principles of Internet Traffic |
| Engineering."; |
| } |
| |
| identity not-optimized { |
| base te-optimization-criterion; |
| description "Optimization is not applied."; |
| } |
| |
| identity cost { |
| base te-optimization-criterion; |
| description "Optimized on cost."; |
| } |
| |
| identity delay { |
| base te-optimization-criterion; |
| description "Optimized on delay."; |
| } |
| |
| /* |
| * Typedefs |
| */ |
| typedef performance-metric-normality { |
| type enumeration { |
| enum "unknown" { |
| value 0; |
| description |
| "Unknown."; |
| } |
| enum "normal" { |
| value 1; |
| description |
| "Normal."; |
| } |
| enum "abnormal" { |
| value 2; |
| description |
| "Abnormal. The anomalous bit is set."; |
| } |
| } |
| description |
| "Indicates whether a performance metric is normal, abnormal, or |
| unknown."; |
| reference |
| "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions. |
| RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions. |
| RFC7823: Performance-Based Path Selection for Explicitly |
| Routed Label Switched Paths (LSPs) Using TE Metric |
| Extensions"; |
| } |
| |
| typedef te-admin-status { |
| type enumeration { |
| enum up { |
| description |
| "Enabled."; |
| } |
| enum down { |
| description |
| "Disabled."; |
| } |
| enum testing { |
| description |
| "In some test mode."; |
| } |
| enum preparing-maintenance { |
| description |
| "Resource is disabled in the control plane to prepare for |
| graceful shutdown for maintenance purposes."; |
| reference |
| "RFC5817: Graceful Shutdown in MPLS and Generalized MPLS |
| Traffic Engineering Networks"; |
| } |
| enum maintenance { |
| description |
| "Resource is disabled in the data plane for maintenance |
| purposes."; |
| } |
| } |
| description |
| "Defines a type representing the administrative status of |
| a TE resource."; |
| } |
| |
| typedef te-global-id { |
| type uint32; |
| description |
| "An identifier to uniquely identify an operator, which can be |
| either a provider or a client. |
| The definition of this type is taken from RFC6370 and RFC5003. |
| This attribute type is used solely to provide a globally |
| unique context for TE topologies."; |
| } |
| |
| typedef te-link-access-type { |
| type enumeration { |
| enum point-to-point { |
| description |
| "The link is point-to-point."; |
| } |
| enum multi-access { |
| description |
| "The link is multi-access, including broacast and NBMA."; |
| } |
| } |
| description |
| "Defines a type representing the access type of a TE link."; |
| reference |
| "RFC3630: Traffic Engineering (TE) Extensions to OSPF |
| Version 2."; |
| } |
| |
| typedef te-node-id { |
| type yang:dotted-quad; |
| description |
| "An identifier for a node in a topology. |
| The identifier is represented as 32-bit unsigned integer in |
| the dotted-quad notation. |
| This attribute is mapped to Router ID in |
| RFC3630, RFC5329, RFC5305, and RFC6119."; |
| } |
| |
| typedef te-oper-status { |
| type enumeration { |
| enum up { |
| description |
| "Operational up."; |
| } |
| enum down { |
| description |
| "Operational down."; |
| } |
| enum testing { |
| description |
| "In some test mode."; |
| } |
| enum unknown { |
| description |
| "Status cannot be determined for some reason."; |
| } |
| enum preparing-maintenance { |
| description |
| "Resource is disabled in the control plane to prepare for |
| graceful shutdown for maintenance purposes."; |
| reference |
| "RFC5817: Graceful Shutdown in MPLS and Generalized MPLS |
| Traffic Engineering Networks"; |
| } |
| enum maintenance { |
| description |
| "Resource is disabled in the data plane for maintenance |
| purposes."; |
| } |
| } |
| description |
| "Defines a type representing the operational status of |
| a TE resource."; |
| } |
| |
| typedef te-recovery-status { |
| type enumeration { |
| enum normal { |
| description |
| "Both the recovery and working spans are fully |
| allocated and active, data traffic is being |
| transported over (or selected from) the working |
| span, and no trigger events are reported."; |
| } |
| enum recovery-started { |
| description |
| "The recovery action has been started, but not completed."; |
| } |
| enum recovery-succeeded { |
| description |
| "The recovery action has succeeded. The working span has |
| reported a failure/degrade condition and the user traffic |
| is being transported (or selected) on the recovery span."; |
| } |
| enum recovery-failed { |
| description |
| "The recovery action has failed."; |
| } |
| enum reversion-started { |
| description |
| "The reversion has started."; |
| } |
| enum reversion-failed { |
| description |
| "The reversion has failed."; |
| } |
| enum recovery-unavailable { |
| description |
| "The recovery is unavailable -- either as a result of an |
| operator Lockout command or a failure condition detected |
| on the recovery span."; |
| } |
| enum recovery-admin { |
| description |
| "The operator has issued a command switching the user |
| traffic to the recovery span."; |
| } |
| enum wait-to-restore { |
| description |
| "The recovery domain is recovering from a failuer/degrade |
| condition on the working span that is being controlled by |
| the Wait-to-Restore (WTR) timer."; |
| } |
| } |
| description |
| "Defines the status of a recovery action."; |
| reference |
| "RFC4427: Recovery (Protection and Restoration) Terminology |
| for Generalized Multi-Protocol Label Switching (GMPLS). |
| RFC6378: MPLS Transport Profile (MPLS-TP) Linear Protection"; |
| } |
| |
| typedef te-template-name { |
| type string { |
| pattern '/?([a-zA-Z0-9\-_.]+)(/[a-zA-Z0-9\-_.]+)*'; |
| } |
| description |
| "A type for the name of a TE node template or TE link |
| template."; |
| } |
| |
| typedef te-topology-event-type { |
| type enumeration { |
| enum "add" { |
| value 0; |
| description |
| "A TE node or te-link has been added."; |
| } |
| enum "remove" { |
| value 1; |
| description |
| "A TE node or te-link has been removed."; |
| } |
| enum "update" { |
| value 2; |
| description |
| "A TE node or te-link has been updated."; |
| } |
| } |
| description "TE Event type for notifications"; |
| } // te-topology-event-type |
| |
| |
| typedef te-tunnel-event-type { |
| type enumeration { |
| enum "add" { |
| value 0; |
| description |
| "A TE tunnel has been added."; |
| } |
| enum "remove" { |
| value 1; |
| description |
| "A TE tunnel has been removed."; |
| } |
| enum "update" { |
| value 2; |
| description |
| "A TE tunnel has been updated."; |
| } |
| } |
| description "TE Event type for notifications"; |
| } // te-tunnel-event-type |
| |
| typedef te-topology-id { |
| type string { |
| pattern '/?([a-zA-Z0-9\-_.]+)(/[a-zA-Z0-9\-_.]+)*'; |
| } |
| description |
| "An identifier for a topology."; |
| } |
| |
| typedef te-tp-id { |
| type union { |
| type uint32; // Unnumbered |
| type inet:ip-address; // IPv4 or IPv6 address |
| } |
| description |
| "An identifier for a TE link endpoint on a node. |
| This attribute is mapped to local or remote link identifier in |
| RFC3630 and RFC5305."; |
| } |
| |
| typedef generalized-label { |
| type binary; |
| description |
| "Generalized label. Nodes sending and receiving the |
| Generalized Label know what kinds of link they are |
| using, the Generalized Label does not identify its |
| type. Instead, nodes are expected to know from the |
| context what type of label to expect."; |
| reference "rfc3471: section 3.2"; |
| } |
| |
| typedef admin-group { |
| type binary { |
| length 32; |
| } |
| description |
| "Administrative group/Resource class/Color."; |
| } |
| |
| typedef extended-admin-group { |
| type binary; |
| description |
| "Extended administrative group/Resource class/Color."; |
| } |
| |
| typedef admin-groups { |
| type union { |
| type admin-group; |
| type extended-admin-group; |
| } |
| description "TE administrative group derived type"; |
| } |
| |
| typedef srlg { |
| type uint32; |
| description "SRLG type"; |
| } |
| |
| identity path-computation-srlg-type { |
| description |
| "Base identity for SRLG path computation"; |
| } |
| |
| identity srlg-ignore { |
| base path-computation-srlg-type; |
| description |
| "Ignores SRLGs in path computation"; |
| } |
| |
| identity srlg-strict { |
| base path-computation-srlg-type; |
| description |
| "Include strict SRLG check in path computation"; |
| } |
| |
| identity srlg-preferred { |
| base path-computation-srlg-type; |
| description |
| "Include preferred SRLG check in path computation"; |
| } |
| |
| identity srlg-weighted { |
| base path-computation-srlg-type; |
| description |
| "Include weighted SRLG check in path computation"; |
| } |
| |
| typedef te-metric { |
| type uint32; |
| description |
| "TE link metric"; |
| } |
| |
| /** |
| * TE tunnel generic groupings |
| **/ |
| |
| /* Tunnel path selection parameters */ |
| grouping tunnel-path-selection { |
| description |
| "Tunnel path selection properties grouping"; |
| container path-selection { |
| description |
| "Tunnel path selection properties container"; |
| leaf topology-id { |
| type te-types:te-topology-id; |
| description |
| "The tunnel path is computed using the specific |
| topology identified by this identifier"; |
| } |
| leaf cost-limit { |
| type uint32 { |
| range "1..4294967295"; |
| } |
| description |
| "The tunnel path cost limit."; |
| } |
| leaf hop-limit { |
| type uint8 { |
| range "1..255"; |
| } |
| description |
| "The tunnel path hop limit."; |
| } |
| leaf metric-type { |
| type identityref { |
| base path-metric-type; |
| } |
| default path-metric-te; |
| description |
| "The tunnel path metric type."; |
| } |
| leaf tiebreaker-type { |
| type identityref { |
| base path-tiebreaker-type; |
| } |
| default path-tiebreaker-maxfill; |
| description |
| "The tunnel path computation tie breakers."; |
| } |
| leaf ignore-overload { |
| type boolean; |
| description |
| "The tunnel path can traverse overloaded node."; |
| } |
| uses tunnel-path-affinities; |
| uses tunnel-path-srlgs; |
| } |
| } |
| |
| grouping tunnel-path-affinities { |
| description |
| "Path affinities grouping"; |
| container tunnel-path-affinities { |
| if-feature named-path-affinities; |
| description |
| "Path affinities container"; |
| choice style { |
| description |
| "Path affinities representation style"; |
| case values { |
| leaf value { |
| type uint32 { |
| range "0..4294967295"; |
| } |
| description |
| "Affinity value"; |
| } |
| leaf mask { |
| type uint32 { |
| range "0..4294967295"; |
| } |
| description |
| "Affinity mask"; |
| } |
| } |
| case named { |
| list constraints { |
| key "usage"; |
| leaf usage { |
| type identityref { |
| base resource-affinities-type; |
| } |
| description "Affinities usage"; |
| } |
| container constraint { |
| description |
| "Container for named affinities"; |
| list affinity-names { |
| key "name"; |
| leaf name { |
| type string; |
| description |
| "Affinity name"; |
| } |
| description |
| "List of named affinities"; |
| } |
| } |
| description |
| "List of named affinity constraints"; |
| } |
| } |
| } |
| } |
| } |
| |
| grouping tunnel-path-srlgs { |
| description |
| "Path SRLG properties grouping"; |
| container tunnel-path-srlgs { |
| description |
| "Path SRLG properties container"; |
| choice style { |
| description |
| "Type of SRLG representation"; |
| case values { |
| leaf usage { |
| type identityref { |
| base route-exclude-srlg; |
| } |
| description "SRLG usage"; |
| } |
| leaf-list values { |
| type te-types:srlg; |
| description "SRLG value"; |
| } |
| } |
| case named { |
| list constraints { |
| key "usage"; |
| leaf usage { |
| type identityref { |
| base route-exclude-srlg; |
| } |
| description "SRLG usage"; |
| } |
| container constraint { |
| description |
| "Container for named SRLG list"; |
| list srlg-names { |
| key "name"; |
| leaf name { |
| type string; |
| description |
| "The SRLG name"; |
| } |
| description |
| "List named SRLGs"; |
| } |
| } |
| description |
| "List of named SRLG constraints"; |
| } |
| } |
| } |
| } |
| } |
| |
| grouping tunnel-bidir-assoc-properties { |
| description |
| "TE tunnel associated bidirectional properties |
| grouping"; |
| container bidirectional { |
| description |
| "TE tunnel associated bidirectional attributes."; |
| container association { |
| description |
| "Tunnel bidirectional association properties"; |
| leaf id { |
| type uint16; |
| description |
| "The TE tunnel association identifier."; |
| } |
| leaf source { |
| type inet:ip-address; |
| description |
| "The TE tunnel association source."; |
| } |
| leaf global-source { |
| type inet:ip-address; |
| description |
| "The TE tunnel association global |
| source."; |
| } |
| leaf type { |
| type identityref { |
| base bidir-association-type; |
| } |
| default bidir-assoc-non-corouted; |
| description |
| "The TE tunnel association type."; |
| } |
| leaf provisioing { |
| type identityref { |
| base bidir-provisioning-mode; |
| } |
| description |
| "Describes the provisioning model of the |
| associated bidirectional LSP"; |
| reference |
| "draft-ietf-teas-mpls-tp-rsvpte-ext- |
| associated-lsp, section-3.2"; |
| } |
| } |
| } |
| } |
| /*** End of TE tunnel groupings ***/ |
| |
| /** |
| * TE interface generic groupings |
| **/ |
| } |