blob: 4b9d3be44038f4dd4ee6f3d7a6a1ddfb4a899801 [file] [log] [blame]
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
**/
}