| 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; |
| } |
| |
| 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-03-20 { |
| description "Latest revision of TE generic types"; |
| reference "RFC3209"; |
| } |
| |
| /*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 lsp-prot-type { |
| description |
| "Base identity from which LSP protection types are |
| derived."; |
| } |
| |
| identity lsp-prot-unprotected { |
| description |
| "LSP protection 'Unprotected'"; |
| reference "RFC4872"; |
| } |
| |
| identity lsp-prot-reroute-extra { |
| description |
| "LSP protection '(Full) Rerouting'"; |
| reference "RFC4872"; |
| } |
| |
| identity lsp-prot-reroute { |
| description |
| "LSP protection 'Rerouting without Extra-Traffic'"; |
| reference "RFC4872"; |
| } |
| |
| identity lsp-prot-1-for-n { |
| description |
| "LSP protection '1:N Protection with Extra-Traffic'"; |
| reference "RFC4872"; |
| } |
| |
| identity lsp-prot-unidir-1-to-1 { |
| description |
| "LSP protection '1+1 Unidirectional Protection'"; |
| reference "RFC4872"; |
| } |
| |
| identity lsp-prot-bidir-1-to-1 { |
| 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"; |
| }*/ |
| |
| /* 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 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"; |
| }*/ |
| |
| 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"; |
| } |
| |
| typedef topology-id { |
| type string { |
| pattern '/?([a-zA-Z0-9\-_.]+)(/[a-zA-Z0-9\-_.]+)*'; |
| } |
| description |
| "An identifier for a topology."; |
| } |
| |
| /** |
| * 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 { |
| type te-types: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 string; |
| description |
| "The tunnel path metric type."; |
| } |
| leaf tiebreaker-type { |
| type string; |
| 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 string; |
| 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 string; |
| description "SRLG usage"; |
| } |
| leaf-list values { |
| type te-types:srlg; |
| description "SRLG value"; |
| } |
| } |
| case named { |
| list constraints { |
| key "usage"; |
| leaf usage { |
| type string; |
| 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 string; |
| description |
| "The TE tunnel association type."; |
| } |
| leaf provisioing { |
| type string; |
| 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 |
| **/ |
| } |