Internet DRAFT - draft-chen-mpls-te-yang-cfg
draft-chen-mpls-te-yang-cfg
Network Working Group X. Chen
Internet-Draft Z. Li
Intended status: Standards Track X. Zeng
Expires: February 16, 2015 Huawei Technologies
August 15, 2014
Yang Model for MPLS Traffic Engineering(TE)
draft-chen-mpls-te-yang-cfg-00
Abstract
This document defines a YANG data model that can be used to configure
and manage MPLS TE.
Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119].
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on February 16, 2015.
Copyright Notice
Copyright (c) 2014 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
Chen, et al. Expires February 16, 2015 [Page 1]
Internet-Draft Yang Model for MPLS TE August 2014
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 2
3. Design of Data Model . . . . . . . . . . . . . . . . . . . . 3
3.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . 3
3.2. MPLS TE Global Configuration . . . . . . . . . . . . . . 4
3.3. MPLS TE Link Configuration . . . . . . . . . . . . . . . 4
3.4. Explicit Path Configuration . . . . . . . . . . . . . . . 5
3.5. P2MP TE Leaf List Configuration . . . . . . . . . . . . . 5
3.6. RSVP-TE Tunnel Configuration . . . . . . . . . . . . . . 5
3.7. RSVP-TE Global Configuration . . . . . . . . . . . . . . 7
3.8. RSVP-TE Interface Configuration . . . . . . . . . . . . . 7
3.9. CSPF Configuration . . . . . . . . . . . . . . . . . . . 8
3.10. P2MP TE Tunnel Template Configuration . . . . . . . . . . 8
4. MPLS TE Yang Module . . . . . . . . . . . . . . . . . . . . . 9
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 37
6. Security Considerations . . . . . . . . . . . . . . . . . . . 37
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 37
8. Normative References . . . . . . . . . . . . . . . . . . . . 37
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 37
1. Introduction
YANG [RFC6020] is a data definition language that was introduced to
define the contents of a conceptual data store that allows networked
devices to be managed using NETCONF[RFC6241]. YANG is proving
relevant beyond its initial confines, as bindings to other
interfaces(e.g. ReST) and encoding other than XML (e.g. JSON) are
being defined. Furthermore, YANG data models can be used as the
basis of implementation for other interface, such as CLI and
programmatic APIs.
This document defines a YANG data model that can be used to configure
and manage MPLS TE. Both P2P TE and P2MP TE are supported.
2. Terminology
TE: Traffic Engineering
P2MP TE: Point-to-Multipoint Traffic Engineering
FRR: Fast Re-Route
Chen, et al. Expires February 16, 2015 [Page 2]
Internet-Draft Yang Model for MPLS TE August 2014
SRLG: Shared Risk Link Group
CSPF: Constrained Shortest Path First
3. Design of Data Model
3.1. Overview
The MPLS TE Yang module is divided in for main containers :
o mplsTeSite: that contains global writable configuration objects for
MPLS TE.
o teLinks: that contains writable configuration objects for MPLS TE
link.
o explicitPaths : that contains writable configuration objects for
explicit path used for MPLS TE tunnel.
o p2mpLeafLists : that contains writable configuration objects for
the list of leaf nodes of P2MP TE tunnel.
o rsvpTeTunnels : that contains writable configuration objects for
RSVP-TE tunnels.
o rsvpTESite : that contains writable configuration objects for RSVP-
TE.
o rsvpInterfaces : that contains writable configuration objects for
RSVP-TE.
o cspfCfg : that contains writable configuration objects for CSPF.
o p2mpTeTemplates: that contains writable configuration objects for
P2MP TE tunnel template which is used for setting up P2MP TE tunnel
triggered by multicast services.
When implement MPLS TE features, it is necessary to flood MPLS TE
link information through IGP signaling including OSPF-TE and ISIS-TE.
The Yang configuration of ISIS-TE and OSPF-TE is out of scope of this
document.
The figure below describe the overall structure of the MPLS TE Yang
module :
Chen, et al. Expires February 16, 2015 [Page 3]
Internet-Draft Yang Model for MPLS TE August 2014
module: mplste
+--rw mplsTe
+--rw mplsTeSite
| ...
+--rw teLinks
| ...
+--rw explicitPaths
| ...
+--rw p2mpLeafLists
| ...
+--rw rsvpTeTunnels
| ...
+--rw rsvpTESite
| ...
+--rw rsvpInterfaces
| ...
+--rw cspfCfg
| ...
+--rw p2mpTeTemplates
...
3.2. MPLS TE Global Configuration
MPLS TE global configuration includes global parameters to control
the flooding the TE link information, LSP switch auto FRR, auto
bandwidth adjustment.
+--rw mplsTeSite
| +--rw enablePeriFl? boolean
| +--rw floodingInterval? uint32
| +--rw switchDelay? uint32
| +--rw autoFrrEnable? boolean
| +--rw autobwEnable? boolean
| +--rw autobwInterval? uint32
3.3. MPLS TE Link Configuration
MPLS TE link configuration includes the parameters of the MPLS links
such as bandwidth, administration group, SRLG, TE metric, auto FRR
mode and the threshold value to control the flooding of MPLS TE link
information.
Chen, et al. Expires February 16, 2015 [Page 4]
Internet-Draft Yang Model for MPLS TE August 2014
+--rw teLinks
| +--rw teLink* [interfaceName]
| +--rw interfaceName ifName
| +--rw teIfMaxreservablebandwidth? uint32
| +--rw teIfBc0bandwidth? uint32
| +--rw adminGroups? string
| +--rw srlgGroups
| | +--rw srlgGroup* [teIfSrlgValue]
| | +--rw teIfSrlgValue uint32
| +--rw bwChangeThresholdDown? uint32
| +--rw bwChangeThresholdUp? uint32
| +--rw teIfMetric? uint32
| +--rw autoFrrMode? enumeration
3.4. Explicit Path Configuration
Explicit path configuration includes the list of IP addresses of
strict or loose hops of the explicit path.
+--rw explicitPaths
| +--rw explicitPath* [explicitPathName]
| +--rw explicitPathName string
| +--rw explicitPathHops
| +--rw explicitPathHop* [mplsTunnelHopIndex]
| +--rw mplsTunnelHopIndex uint32
| +--rw mplsTunnelHopIpAddr inet:ipv4-address
| +--rw mplsTunnelHopType? enumeration
| +--rw mplsTunnelHopAddrType? enumeration
3.5. P2MP TE Leaf List Configuration
P2MP TE leaf list configurations includes the list of leaf nodes of
the P2MP TE tunnel and the explicit paths used for these leaf nodes.
+--rw p2mpLeafLists
| +--rw p2mpLeafList* [leafListName]
| +--rw leafListName string
| +--rw leafs
| +--rw leaf* [leafIpAddr]
| +--rw leafIpAddr inet:ipv4-address
| +--rw explicitPathName? string
3.6. RSVP-TE Tunnel Configuration
RSVP-TE tunnel configuration includes the parameters for the RSVP-TE
tunnel and the parameters for different LSPs (primary LSP, hot-
standby LSP, ordinary backup LSP and best-effort LSP) of the RSVP-TE
tunnels.
Chen, et al. Expires February 16, 2015 [Page 5]
Internet-Draft Yang Model for MPLS TE August 2014
+--rw rsvpTeTunnels
| +--rw rsvpTeTunnel* [tunnelName]
| +--rw tunnelName string
| +--ro mplsTunnelIngressLSRId? inet:ipv4-address
| +--rw mplsTunnelEgressLSRId? inet:ipv4-address
| +--rw mplsTunnelIndex? uint16
| +--rw mplsTunnelBandwidth? uint32
| +--rw mplsTeTunnelSetupPriority? uint8
| +--rw holdPriority? uint8
| +--rw hotStandbyEnable? boolean
| +--rw hsbRevertiveMode? enumeration
| +--rw hotStandbyWtr? uint32
| +--rw ordinaryEnable? boolean
| +--rw bestEffortEnable? boolean
| +--rw disableCspf? boolean
| +--rw tunnelPaths
| | +--rw tunnelPath* [pathType]
| | +--rw pathType enumeration
| | +--rw explicitPathName? string
| | +--ro includeAll? string
| | +--rw includeAny? string
| | +--rw excludeAny? string
| | +--rw hopLimit? uint32
| +--rw resvStyle? enumeration
| +--rw mplsTunnelRecordRoute? enumeration
| +--rw reoptimization? boolean
| +--rw reoptiFrequency? uint32
| +--rw tieBreaking? enumeration
| +--rw pathMetricType? enumeration
| +--rw AutoBandwidths
| | +--rw AutoBandwidth
| | +--rw AutoBwMode? enumeration
| | +--rw thresholdPerc? uint32
| | +--rw AutoBwFreq? uint32
| | +--rw AutoBwMax? uint32
| | +--rw AutoBwMin? uint32
| +--ro adminStatus? enumeration
| +--ro operStatus? enumeration
| +--rw tunnelInterface
| | +--rw statEnable? boolean
| | +--rw igpAttr
| | +--rw advertiseEnable? boolean
| | +--rw shortcutType? enumeration
| | +--rw igpMetricType? enumeration
| | +--rw relativeIgpMetricValue? int16
| | +--rw absoluteIgpMetricValue? uint16
| | +--rw advertiseHoldTime? uint32
| +--rw frrAttr
Chen, et al. Expires February 16, 2015 [Page 6]
Internet-Draft Yang Model for MPLS TE August 2014
| | +--rw frrEnable? boolean
| | +--rw bwProtEnable? boolean
| | +--rw frrBandwidth? uint32
| | +--rw frrSetupPriority? uint32
| | +--rw frrHoldPriority? uint32
| +--rw bypassAttr
| +--rw bypassEnable? boolean
| +--rw bypassProtectIFs
| +--rw bypassProtectIF* [bypassProtectIFName]
| +--rw bypassProtectIFName ifName
3.7. RSVP-TE Global Configuration
RSVP-TE global configuration includes the global parameters for the
RSVP-TE signaling such as different timer parameters, hello
capability, SRefresh capability, etc.
+--rw rsvpTESite
| +--rw helloEnable? boolean
| +--rw maxHelloMissTimes? uint32
| +--rw helloInterval? uint32
| +--rw supportGREnable? boolean
| +--rw keepMultiplier? uint32
| +--rw refreshInterval? uint32
| +--rw srefreshEnable? boolean
| +--rw retransmissionInterval? uint32
| +--rw retransmissionIncrementValue? uint32
| +--rw challengeRetransmissionInterval? uint32
| +--rw maxChallengeMissTimes? uint32
3.8. RSVP-TE Interface Configuration
RSVP-TE interface configuration includes the parameter of the RSVP-TE
interface such as interface name, hello capability, auto FRR mode and
authentication.
+--rw rsvpInterfaces
| +--rw rsvpInterface* [interfaceName]
| +--rw interfaceName ifName
| +--rw helloEnable? boolean
| +--ro autoFrrMode? enumeration
| +--rw authentication
| +--rw authEnable? boolean
| +--rw authMD5Key? string
| +--rw authLifetime? uint32
| +--rw authHandshake? string
| +--rw authWindowSize? uint32
Chen, et al. Expires February 16, 2015 [Page 7]
Internet-Draft Yang Model for MPLS TE August 2014
3.9. CSPF Configuration
CSPF configuration includes the IGP choice, tie-breaking policy,
metric type, SRLG policy for the MPLS TE path calculation.
+--rw cspfCfg
| +--rw enableCspf? boolean
| +--rw preferredIgp? enumeration
| +--rw preferredOspfProcessId? uint32
| +--rw preferredOspfAreaId? boolean
| +--rw preferredIsisProcessId? uint32
| +--rw preferredIsisLevel? enumeration
| +--rw tiebreaking? enumeration
| +--rw pathMetricType? enumeration
| +--rw srlgPathCalcMode? enumeration
3.10. P2MP TE Tunnel Template Configuration
P2MP TE tunnel template will be used to set up P2MP TE tunnel
triggered by multicast service such as BGP-base MVPN defined in
[RFC6514].
+--rw p2mpTeTemplates
+--rw p2mpTeTemplate* [templateName]
+--rw templateName string
+--rw recordRouteMode? enumeration
+--rw resvStyle? enumeration
+--rw setupPriority? uint8
+--rw holdPriority? uint8
+--rw bandwidth? uint32
+--rw reoptimization? boolean
+--rw reoptiFrequency? uint32
+--rw pathMetricType? enumeration
+--rw tieBreaking? enumeration
+--rw hopLimit? uint32
+--ro includeAllAffinity? string
+--rw includeAnyAffinity? string
+--rw excludeAnyAffinity? string
+--rw leafListName string
+--rw mplsTeP2mpTemplateFrr
+--rw frrEnable? boolean
+--rw bwProtEnable? boolean
+--rw frrBandwidth? uint32
+--rw frrSetupPriority? uint32
+--rw frrHoldPriority? uint32
Chen, et al. Expires February 16, 2015 [Page 8]
Internet-Draft Yang Model for MPLS TE August 2014
4. MPLS TE Yang Module
module mplste {
namespace "urn:huawei:params:xml:ns:yang:mplste";
// replace with IANA namespace when assigned - urn:ietf:params:xml:ns:yang:1
prefix "mplste";
import ietf-inet-types {
prefix inet;
}
organization
"Huawei Technologies Co., Ltd.";
contact
"jescia.chenxia@huawei.com
lizhenbin@huawei.com
zengxinzong@huawei.com";
description
"This YANG module defines the generic configuration
data for MPLS TE, which is common across all of the vendor
implementations of the protocol. It is intended that the module
will be extended by vendors to define vendor-specific
MPLS TE configuration parameters.";
revision 2014-08-16 {
description
"Initial revision.";
}
typedef ifName {
description "ifName is like ethernet1/1/1/1";
type string {
length "1..63";
}
}
container mplsTe {
container mplsTeSite {
description "MPLS TE basic Configuration.";
leaf enablePeriFl {
description "Capability of flooding TE link bandwidth periodically. When TE LSP reserves or releases bandwidth with the changing rate not reaching the flooding threshold of TE link, it will not flood bandwidth to network. In order to flood bandwidth to network as soon as possible, and to avoid waste of network resource caused by frequent flooding, it will flood changed bandwidth to network periodically.";
config "true";
default "false";
type boolean;
}
leaf floodingInterval {
description "Interval at which a TE interface floods bandwidth over the network. The interval ranges from 10s to 43200s, and the default value is 30s. The bandwidth that a TE LSP reserves or releases on an interface may be only a small part compared with the reservable bandwidth of the interface, which does not reach the flooding threshold of the interface. To flood the interface bandwidth over the network and avoid frequent flooding, the TE NE is configured to flood bandwidth over the network periodically.";
config "true";
Chen, et al. Expires February 16, 2015 [Page 9]
Internet-Draft Yang Model for MPLS TE August 2014
default "30";
type uint32 {
range "10..43200";
}
}
leaf switchDelay {
description "Delay time for switching the TE traffic from a Primary CR-LSP to a Modified CR-LSP. The delay time ranges from 0s to 120000s, and the default delay value is 5000s.";
config "true";
default "5000";
type uint32 {
range "0..120000";
}
}
leaf autoFrrEnable {
description "Specifies the enabling state of auto FRR.";
config "true";
default "false";
type boolean;
}
leaf autobwEnable {
description "Specifies the enabling state of auto bandwidth.";
config "true";
default "false";
type boolean;
}
leaf autobwInterval {
description "Set interval of Auto bandwidth sampling.";
config "true";
default "300";
type uint32 {
range "1..604800";
}
}
}
container teLinks {
list teLink {
key "interfaceName";
max-elements "unbounded";
min-elements "0";
description "TELINK";
leaf interfaceName {
description "Specifies the name of a physical interface where TE is enabled.";
config "true";
type ifName;
Chen, et al. Expires February 16, 2015 [Page 10]
Internet-Draft Yang Model for MPLS TE August 2014
}
leaf teIfMaxreservablebandwidth {
description "Specifies the maximum reserved bandwidth (kbit/s) of TE interfaces. The value ranges from 0 kbit/s to 4294967295 kbit/s. By default, the value is 0 Kbit/s. The limit of interface bandwidth is as follows: The configured bandwidth on a TE interface cannot exceed the physical bandwidth of the interface. Otherwise, the NE prompts an error.";
config "true";
default "0";
type uint32 {
range "0..4294967295";
}
}
leaf teIfBc0bandwidth {
description "Bc0 bandwidth value in kbps";
config "true";
default "0";
type uint32 {
range "0..4294967295";
}
}
leaf adminGroups {
description "Specifies interface management attributes. They are total 32 bits. Each bit is one attribute that is established on a TE LSP. Standby LSPs are selected based on the limit of the LSP affinity attribute.
It's hexadecimal string.";
config "true";
default "00000000";
type string {
length "8";
}
}
container srlgGroups {
list srlgGroup {
key "teIfSrlgValue";
max-elements "unbounded";
min-elements "0";
description "Specifies a risk-shared link group.";
leaf teIfSrlgValue {
description "Specifies a risk-shared link group number.";
config "true";
type uint32 {
range "0..4294967295";
}
}
}
}
leaf bwChangeThresholdDown {
description "Specifies the flooding threshold of bandwidth consumption percentage. The value ranges from 0?? to 100??. By default, the value is 10??. Establishing TE LSPs consumes the bandwidth of the TE interface, and the available bandwidth of the interface is therefore reduced. If the percentage of the reduced bandwidth is larger than the configured flooding threshold, the bandwidth of the TE interface will be flooded to the network.";
Chen, et al. Expires February 16, 2015 [Page 11]
Internet-Draft Yang Model for MPLS TE August 2014
config "true";
default "10";
type uint32 {
range "0..100";
}
}
leaf bwChangeThresholdUp {
description "Specifies the flooding threshold of the percentage of released bandwidth compared with the available interface bandwidth. The value ranges from 0?? to 100??. By default, the value is 10??. When a TE LSP of an interface is removed, the bandwidth of the TE LSP is released. The available bandwidth of the interface is therefore increased. If the percentage of the increased bandwidth is larger than the configured flooding threshold, the bandwidth of the TE interface will be flooded over the network.";
config "true";
default "10";
type uint32 {
range "0..100";
}
}
leaf teIfMetric {
description "Specifies the Value of TE interface metric. The value ranges from 1 to 16777215. By default, the value is 1. The link with smallest metric value is used preferentially as a TE LSP.";
config "true";
type uint32 {
range "1..16777215";
}
}
leaf autoFrrMode {
description "Auto FRR protection modes: global inheritance, link protection, node protection and self-adapting. By default, global AutoFRR is global inheritance. Link protection: A bypass tunnel can be used to protect only the links where the outbound interface of the primary LSP resides. Node protection: A bypass tunnel can be used to protect the downstream node of the links where the outbound interface of the primary LSP resides.Self-adapting??A bypass tunnel can be dynamically selected node protection or link protection according to the network conditions.";
config "true";
default "DEFAULT";
type enumeration {
enum DEFAULT {
value "0";
description "DEFAULT:";
}
enum LINK {
value "1";
description "LINK:";
}
enum NODE {
value "2";
description "NODE:";
}
enum DISABLE {
value "3";
description "DISABLE:";
}
}
}
}
}
container explicitPaths {
Chen, et al. Expires February 16, 2015 [Page 12]
Internet-Draft Yang Model for MPLS TE August 2014
list explicitPath {
key "explicitPathName";
max-elements "unbounded";
min-elements "0";
description "Explicit path.";
leaf explicitPathName {
description "Name of an explicit path.";
config "true";
type string {
length "1..31";
pattern "^[^ \?]*$";
}
}
container explicitPathHops {
list explicitPathHop {
key "mplsTunnelHopIndex";
max-elements "unbounded";
min-elements "0";
leaf mplsTunnelHopIndex {
description "Hop index of an explicit path.";
config "true";
type uint32 {
range "1..65535";
}
}
leaf mplsTunnelHopIpAddr {
description "IP address of hop.";
config "true";
mandatory "true";
type inet:ipv4-address;
}
leaf mplsTunnelHopType {
description "Specifies an LSP route selection types based on the local hop. Strict type: Only an LSP route that includes the local hop can be selected. Loose type: An LSP route that includes the local node is selected preferentially. If the local hop does not meet path limits, it will be not included in the selected route. Excluding type: Only an LSP route that does not include the local hop can be selected.";
config "true";
default "includeStrict";
type enumeration {
enum includeStrict {
value "0";
description "Strictly included.";
}
enum includeLoose {
value "1";
description "Loosely included.";
Chen, et al. Expires February 16, 2015 [Page 13]
Internet-Draft Yang Model for MPLS TE August 2014
}
enum exclude {
value "2";
description "Excluded.";
}
}
}
leaf mplsTunnelHopAddrType {
description "Address type.";
config "true";
default "IPV4";
type enumeration {
enum IPV4 {
value "0";
description "IPV4:";
}
}
}
}
}
}
}
container p2mpLeafLists {
list p2mpLeafList {
key "leafListName";
max-elements "unbounded";
min-elements "0";
description "Leaf list.";
leaf leafListName {
description "Name of leaf list.";
config "true";
type string {
length "1..31";
pattern "^[^ \?]*$";
}
}
container leafs {
list leaf {
key "leafIpAddr";
Chen, et al. Expires February 16, 2015 [Page 14]
Internet-Draft Yang Model for MPLS TE August 2014
max-elements "unbounded";
min-elements "0";
description "Leaf.";
leaf leafIpAddr {
description "Leaf Address.";
config "true";
type inet:ipv4-address;
}
leaf explicitPathName {
description "Explicit path name used for a leaf.";
config "true";
type string {
length "0..31";
}
}
}
}
}
}
container rsvpTeTunnels {
list rsvpTeTunnel {
key "tunnelName";
max-elements "unbounded";
min-elements "0";
description "TE E2E Dynamic unicast tunnel.";
leaf tunnelName {
description "Tunnel name. A tunnel name is unique among all tunnels established on a node. Specifies a tunnel name whose prefix is Tunnel. Tunnel interfaces can be named in the following formats: 1. Tunnel x/y/z ('x' ranges from 0 to 16, 'y' ranges from 0 to 15, and 'z' ranges from 0 to 65535); 2.TunnelN ('N' ranges from 0 to 4294967295).Under the environment of clusters, Tunnel interfaces can be named in the following formats: 1. Tunnelx/y/z/k ('x' ranges from 0 to 16, 'y' ranges from 0 to 16,'z' ranges from 0 to 15, and 'k' ranges from 0 to 65535); 2.TunnelN ('N' ranges from 0 to 4294967295).";
config "true";
type string {
length "0..63";
pattern "^[^ ]*$";
}
}
leaf mplsTunnelIngressLSRId {
description "Specifies ingress LSR ID of the tunnel.";
config "false";
type inet:ipv4-address;
}
leaf mplsTunnelEgressLSRId {
description "Specifies egress LSR ID of the tunnel.";
Chen, et al. Expires February 16, 2015 [Page 15]
Internet-Draft Yang Model for MPLS TE August 2014
config "true";
type inet:ipv4-address;
}
leaf mplsTunnelIndex {
description "Session ID of a tunnel.";
config "true";
type uint16;
}
leaf mplsTunnelBandwidth {
description "Specifies a tunnel bandwidth. The value ranges from 0 kbit/s to 4000000000 kbit/s. By default, the value is 0 kbit/s.";
config "true";
default "0";
type uint32 {
range "0..4000000000";
}
}
leaf mplsTeTunnelSetupPriority {
description "Specifies a tunnel setup priority. The value ranges from 0 to 7. By default, the value is 7. The smaller the value, the higher the setup priority. 0 is the highest priority. Limit: the setup priority of a tunnel must be equal to or smaller than its holding priority.";
config "true";
default "7";
type uint8 {
range "0..7";
}
}
leaf holdPriority {
description "Specifies a tunnel holding priority. The value ranges from 0 to 7. By default, the value is 7. The smaller the value, the higher the holding priority. 0 is the highest priority. Limit: The holding priority of a tunnel must be equal to or larger than its setup priority.";
config "true";
default "7";
type uint8 {
range "0..7";
}
}
leaf hotStandbyEnable {
description "Enabling of hot standby for protecting TE tunnels. When an active LSP is set up successfully, a standby LSP that meets certain limits will be set up to protect the active LSP. When the active LSP fails, the traffic on the active LSP will be switched to the standby LSP.";
config "true";
default "false";
type boolean;
}
leaf hsbRevertiveMode {
description "hot-standby revertive??There are two revert modes,e.g. revertive and non-revertive.The default mode is revertive.";
config "true";
default "revertive";
type enumeration {
enum revertive {
value "0";
description "revertive";
}
enum nonRevertive {
Chen, et al. Expires February 16, 2015 [Page 16]
Internet-Draft Yang Model for MPLS TE August 2014
value "1";
description "non-evertive";
}
}
}
leaf hotStandbyWtr {
description "Time of waiting recovering back to primary LSP. Its range is 0~2592000, default is 10. When hot-standby backup is in use, after primary LSP restores, the traffic will switch to primary LSP after waiting some time instead of switching to primary LSP immediately. This is to avoid frequent switching between primary LSP and backup LSP caused by network flapping.";
config "true";
default "10";
type uint32 {
range "0..2592000";
}
}
leaf ordinaryEnable {
description "Specifies a tunnel ordinary backup protection capability. When it is enabled, and the primary LSP fails, a backup LSP that meets certain limits will be set up. Then, the traffic on the primary LSP will be switched to the backup LSP. ";
config "true";
default "false";
type boolean;
}
leaf bestEffortEnable {
description "Best-effort path protection of tunnels. When best-effort path is enabled for a TE tunnel, and both active and standby LSP fail, an LSP will be set up in the best effort method.";
config "true";
default "false";
type boolean;
}
leaf disableCspf {
description "disable Cspf of a tunnel";
config "true";
default "false";
type boolean;
}
container tunnelPaths {
list tunnelPath {
key "pathType";
max-elements "unbounded";
min-elements "0";
description "Path configuration of a tunnel.";
leaf pathType {
description "Path role of a tunnel. The available options are primary(used by primary LSP), hot-standby(used by hot-standby backup LSP), ordinary(used by ordinary backup LSP), and best-effort(used by best-effort LSP).";
config "true";
type enumeration {
enum primary {
value "0";
description "Primary path.";
}
Chen, et al. Expires February 16, 2015 [Page 17]
Internet-Draft Yang Model for MPLS TE August 2014
enum hot_standby {
value "1";
description "Hot standby path.";
}
enum ordinary {
value "2";
description "Ordinary backup path.";
}
enum best_effort {
value "3";
description "Best-effort path.";
}
}
}
leaf explicitPathName {
description "Name of an explicit path.";
config "true";
type string {
length "0..31";
}
}
leaf includeAll {
description "Administrative group attribute of an LSP (includeAll).It's hexadecimal string.";
config "false";
default "00000000";
type string {
length "8";
}
}
leaf includeAny {
description "Administrative group attribute of an LSP (includeAny).It's hexadecimal string.";
config "true";
default "00000000";
type string {
length "8";
}
}
leaf excludeAny {
description "Tunnel path management attribute: Exclude-any. The value of this attribute ranges from 0x0 to 0xFFFFFFFF. By default, the value is 0x0. The management attribute is a 32-bit vector. If the management attribute of a link contains any bit in the Exclude-any attribute field of an LSP, the link cannot be a candidate LSP link.It's hexadecimal string.";
config "true";
default "00000000";
type string {
length "8";
}
}
leaf hopLimit {
description "Number limit of hops in a tunnel path. The value ranges from 1 to 32. By default, the value is 32.";
config "true";
Chen, et al. Expires February 16, 2015 [Page 18]
Internet-Draft Yang Model for MPLS TE August 2014
default "32";
type uint32 {
range "1..32";
}
}
}
}
leaf resvStyle {
description "Tunnel reservation styles. SE style: shared explicit style; FF: fixed filter style. The default tunnel reservation style is SE.";
config "true";
default "SE";
type enumeration {
enum SE {
value "0";
description "Shared Explicit Style:";
}
enum FF {
value "1";
description "Fixed Filter Style:";
}
}
}
leaf mplsTunnelRecordRoute {
description "Route record mode of a tunnel. No-route record mode, route recording mode, and route and label record mode.";
config "true";
default "DISABLE";
type enumeration {
enum DISABLE {
value "0";
description "DISABLE:";
}
enum RECORD_ROUTE_ONLY {
value "1";
description "The LSP records routes only.";
}
enum RECORD_LABEL {
value "2";
description "The LSP records both routes and labels.";
}
}
}
leaf reoptimization {
description "Auto reoptimization enabling state of TE Tunnel.";
config "true";
default "false";
type boolean;
Chen, et al. Expires February 16, 2015 [Page 19]
Internet-Draft Yang Model for MPLS TE August 2014
}
leaf reoptiFrequency {
description "Frequency of auto reoptimization, its range is 60-604800.";
config "true";
default "3600";
type uint32 {
range "60..604800";
}
}
leaf tieBreaking {
description "Routing rules for a tunnel with multiple equal-cost routes. Random: Select a link randomly. least fill: Select the link with smallest bandwidth usage. most fill: Select the link with biggest bandwidth usage. By default, routing rules are inherited from the global MPLS TE routing rules. If multiple paths meet certain limits, a path will be selected based on the preceding rules.";
config "true";
default "DEFAULT";
type enumeration {
enum LEASTFILL {
value "0";
description "LEASTFILL:The link with the smallest bandwidth occupation ratio is selected in the case of equal conditions.";
}
enum MOSTFILL {
value "1";
description "MOSTFILL:The link with the largest bandwidth occupation ratio is selected in the case of equal conditions.";
}
enum RANDOM {
value "2";
description "RANDOM:Links are selected randomly.";
}
enum DEFAULT {
value "3";
description "Inherit from global configuration.";
}
}
}
leaf pathMetricType {
description "Referenced metric type of one link for calculating path when creating TE tunnels. The available options are DEFAULT, IGP and TE, default is inheriting from global configuration.";
config "true";
default "NONE";
type enumeration {
enum NONE {
value "0";
description "Inherit from global configuration.";
}
enum IGP {
value "1";
description "IGP";
}
enum TE {
value "2";
description "TE";
Chen, et al. Expires February 16, 2015 [Page 20]
Internet-Draft Yang Model for MPLS TE August 2014
}
}
}
container AutoBandwidths {
container AutoBandwidth {
description "Auto bandwidth.";
leaf AutoBwMode {
description "Auto bandwidth mode.";
config "true";
default "DISABLE";
type enumeration {
enum ADJUSTMENT {
value "0";
description "Adjustment mode??a lsp will be created??if all of the conditions are satisfied.";
}
enum COLLECTBW {
value "1";
description "Collect mode??only collect bandwidth in this mode.";
}
enum DISABLE {
value "2";
description "Disable capability of Auto bandwidth.";
}
}
}
leaf thresholdPerc {
description "Set the threshold of the adjustment bandwidth.";
config "true";
default "0";
type uint32 {
range "0..100";
}
}
leaf AutoBwFreq {
description "Set Frequency of Auto bandwidth.";
config "true";
default "86400";
type uint32 {
range "300..604800";
}
}
leaf AutoBwMax {
description "Max Bandwidth.";
config "true";
default "4000000000";
Chen, et al. Expires February 16, 2015 [Page 21]
Internet-Draft Yang Model for MPLS TE August 2014
type uint32 {
range "0..4000000000";
}
}
leaf AutoBwMin {
description "Min Bandwidth.";
config "true";
default "0";
type uint32 {
range "0..4000000000";
}
}
}
}
leaf adminStatus {
description "Administrative state of a tunnel--(UP??Down)";
config "false";
default "up";
type enumeration {
enum down {
value "0";
description "down:";
}
enum up {
value "1";
description "up:";
}
}
}
leaf operStatus {
description "Operation status of a tunnel--(UP??Down)";
config "false";
type enumeration {
enum down {
value "0";
description "down:";
}
enum up {
value "1";
description "up:";
}
}
}
container tunnelInterface {
description "TE tunnel interface.";
Chen, et al. Expires February 16, 2015 [Page 22]
Internet-Draft Yang Model for MPLS TE August 2014
leaf statEnable {
description "Traffic statistic enabling state.";
config "true";
type boolean;
}
container igpAttr {
description "IGP attribute of tunnel interface.";
leaf advertiseEnable {
description "Tunnel interface forwarding adjacency based on tunnel interfaces. An MPLE TE tunnel can be advertised as a virtual link over an IGP network. The virtual link can participate in route calculation.";
config "true";
default "false";
type boolean;
}
leaf shortcutType {
description "Tunnel interface shortcut types. Disabled: This function is not enabled, and virtual TE tunnel interfaces do not participate in route calculation. OSPF type: Virtual TE tunnel interfaces participate in OSPF route calculation. ISIS type: Virtual TE tunnel interfaces participates in ISIS route calculation. Limit: IGP Shortcut and forwarding adjacency cannot function together.";
config "true";
default "disable";
type enumeration {
enum disable {
value "0";
description "disable:";
}
enum ospf {
value "1";
description "ospf:";
}
enum isis {
value "2";
description "isis:";
}
enum both {
value "3";
description "both:";
}
}
}
leaf igpMetricType {
description "IGP metric types of tunnel interfaces. Relative metric type and absolute metric type.";
config "true";
default "relative";
type enumeration {
enum absolute {
value "0";
description "absolute:";
}
enum relative {
Chen, et al. Expires February 16, 2015 [Page 23]
Internet-Draft Yang Model for MPLS TE August 2014
value "1";
description "relative:";
}
}
}
leaf relativeIgpMetricValue {
description "IGP relative metric value of a tunnel interface.";
config "true";
default "0";
type int16 {
range "-10..10";
}
}
leaf absoluteIgpMetricValue {
description "IGP absolute metric value of a tunnel interface.";
config "true";
default "1";
type uint16 {
range "1..65535";
}
}
leaf advertiseHoldTime {
description "When Tunnel get down, the Time of Notifying tunnel as virtual link to other routers.";
config "true";
default "0";
type uint32 {
range "0..4294967295";
}
}
}
}
container frrAttr {
description "Fast reroute attribute.";
leaf frrEnable {
description "Request of fast reroute capability.";
config "true";
default "false";
type boolean;
}
leaf bwProtEnable {
description "The tunnel with fast reroute capability requests bandwidth protection.";
config "true";
default "false";
type boolean;
Chen, et al. Expires February 16, 2015 [Page 24]
Internet-Draft Yang Model for MPLS TE August 2014
}
leaf frrBandwidth {
description "FRR-protection bandwidth (kbits/s) requested by an active tunnel. The value ranges from 0 kbit/s to 4000000000 kbit/s. by default, the value is 0 Kbit/s. The value cannot exceed the bandwidth of the active tunnel.";
config "true";
default "0";
type uint32 {
range "0..4000000000";
}
}
leaf frrSetupPriority {
description "Setup priority of FRR-protection tunnels. The value ranges from 0 to 7. By default, the value is 7. The smaller the value, the higher the setup priority. 0 is the highest priority. Limit: The protection tunnel setup priority cannot exceed the setup priority of the active tunnel.";
config "true";
default "7";
type uint32 {
range "0..7";
}
}
leaf frrHoldPriority {
description "Holding priority of FRR protection tunnels. The value ranges from 0 to 7. The smaller the value, the higher the priority. The value 0 is the highest priority. Limit: The protection tunnel holding priority cannot exceed the active tunnel holding priority.";
config "true";
default "7";
type uint32 {
range "0..7";
}
}
}
container bypassAttr {
description "Bypss tunnel attribute.";
leaf bypassEnable {
description "Bypass tunnel enabling or disabling. A bypass tunnel can be enabled to protect a tunnel that requests FRR protection. Limit: A bypass tunnel cannot request FRR protection.";
config "true";
default "false";
type boolean;
}
container bypassProtectIFs {
list bypassProtectIF {
key "bypassProtectIFName";
max-elements "unbounded";
min-elements "0";
description "Specifies a list of interfaces that can be protected by a bypass tunnel.";
leaf bypassProtectIFName {
description "Specifies the name of an interface that can be protected by a tunnel enabled with the bypass function.";
Chen, et al. Expires February 16, 2015 [Page 25]
Internet-Draft Yang Model for MPLS TE August 2014
config "true";
type ifName;
}
}
}
}
}
}
container rsvpTESite {
description "RSVP configuration and status.";
leaf helloEnable {
description "Hello enabling state.";
config "true";
default "false";
type boolean;
}
leaf maxHelloMissTimes {
description "Maximum number of Hello packet loss times. The value ranges from 3 to 10, and the default value is 3. When the number of Hello packet refreshing (from the NE) times exceeds the configured maximum number, and the NE does not receive a response from its peer end, the NE considers that the session with the peer end is lost.";
config "true";
default "3";
type uint32 {
range "3..10";
}
}
leaf helloInterval {
description "Interval for refreshing Hello packets. It is the interval of refreshing a Hello packet from an NE to its peer after a Hello session is established. The value ranges from 1s to 25s. By default, the value is 3s.";
config "true";
default "3";
type uint32 {
range "1..25";
}
}
leaf supportGREnable {
description "Support GR enabling state.";
config "true";
default "false";
type boolean;
}
leaf keepMultiplier {
description "Timeout multiplier of soft state PSB or RSB. The value ranges from 3 to 255. By default, the value is 3. If the local NE does not receive a packet for refreshing the TE LSP soft state from its upstream or downstream neighbor in the period (that is a specified multiplier of the refreshing cycle), the NE considers that the soft state times out and will delete the TE LSP.";
config "true";
Chen, et al. Expires February 16, 2015 [Page 26]
Internet-Draft Yang Model for MPLS TE August 2014
default "3";
type uint32 {
range "3..255";
}
}
leaf refreshInterval {
description "Cycle of refreshing a PATH or a RESV message (for soft state maintenance). The value ranges from 10 to 65535. By default, the value is 30.";
config "true";
default "30";
type uint32 {
range "10..65535";
}
}
leaf srefreshEnable {
description "Summary refresh enabling state.";
config "true";
default "false";
type boolean;
}
leaf retransmissionInterval {
description "Interval at which interface summary messages are retransmitted. The value ranges from 500 ms to 5000 ms. By default, the value is 5000 ms.";
config "true";
default "5000";
type uint32 {
range "500..5000";
}
}
leaf retransmissionIncrementValue {
description "Incremental value for retransmitting interface summary. The value ranges from 1 to 10. By default, the value is 1. If an NE does not receive a response from the peer end after sending a message to the peer end, the NE will start the retransmission mechanism. The retransmission interval increases with the increase of the retransmission incremental value. The formula is as following: retransmission interval = last retransmission interval * (1 + retransmission incremental value).";
config "true";
default "1";
type uint32 {
range "1..10";
}
}
leaf challengeRetransmissionInterval {
description "Challenge message retransmission interval. The value ranges from 500 ms to 10000 ms. By default, the value is 1000 ms. If the NE does not receive a response message from the peer end after sending a Challenge message for handshake authentication to the peer end, the NE will retransmit the Challenge message.";
config "true";
default "1000";
type uint32 {
range "500..10000";
}
}
leaf maxChallengeMissTimes {
description "Maximum challenge loss times. The value ranges from 1 to 10. By default, the value is 3. If the times of a retransmitting a Challenge message from the NE to its neighbor exceed the maximum challenge loss times, the NE considers that the handshake cannot be established and will not send a Challenge message again.";
config "true";
default "3";
type uint32 {
Chen, et al. Expires February 16, 2015 [Page 27]
Internet-Draft Yang Model for MPLS TE August 2014
range "1..10";
}
}
}
container rsvpInterfaces {
list rsvpInterface {
key "interfaceName";
max-elements "unbounded";
min-elements "0";
description "RSVP interface configuration.";
leaf interfaceName {
description "Interface name.";
config "true";
type ifName;
}
leaf helloEnable {
description "Hello enabling state.";
config "true";
default "false";
type boolean;
}
leaf autoFrrMode {
description "Auto FRR protection modes: global inheritance, link protection, node protection and self-adapting. By default, global AutoFRR is global inheritance. Link protection: A bypass tunnel can be used to protect only the links where the outbound interface of the primary LSP resides. Node protection: A bypass tunnel can be used to protect the downstream node of the links where the outbound interface of the primary LSP resides.Self-adapting??A bypass tunnel can be dynamically selected node protection or link protection according to the network conditions.";
config "false";
default "DEFAULT";
type enumeration {
enum DEFAULT {
value "0";
description "DEFAULT:";
}
enum LINK {
value "1";
description "LINK:";
}
enum NODE {
value "2";
description "NODE:";
}
enum DISABLE {
value "3";
description "DISABLE:";
}
}
}
Chen, et al. Expires February 16, 2015 [Page 28]
Internet-Draft Yang Model for MPLS TE August 2014
container authentication {
description "Neighbor configuration of RSVP TE authentication.";
leaf authEnable {
description "Specifies the enabling state of RSVP TE interface authentication.";
config "true";
default "false";
type boolean;
}
leaf authMD5Key {
description "Authentication key of a RSVP TE interface. The key length ranges from 1 to 255 characters. When the key is configured, the RSVP packets that the interface sends out carry the authentication information that are calculated based on the authentication key by using the MD5 algorithm. The packets the interface receives are also verified based on the authentication key. The two ends of a TE link must be configured with the same authentication key, otherwise, RSVP packets cannot pass through the link.";
config "true";
type string {
length "1..255";
pattern "^[^ ]+$";
}
}
leaf authLifetime {
description "Authentication lifetime. The value ranges from 1 to 86399, in seconds. By default, the value is 1800s. During authentication lifetime, RSVP authentication lifetime will be reset after a RSVP packet is received. If no RSVP packet is received when the authentication lifetime times out, the RSVP neighbor will delete the authentication relationship to prevent persistent authentication.";
config "true";
default "1800";
type uint32 {
range "1..86399";
}
}
leaf authHandshake {
description "Handshake authentication enable. When handshake enabled, the handshake mechanism is configured. When the authentication sequence number of an RSVP packet is out of order, a handshake will be initiated and an authentication will be re-negotiated.";
config "true";
type string {
length "8..40";
pattern "^[^ ]+$";
}
}
leaf authWindowSize {
description "Size of an authentication window that is set to prevent information loss caused by packet disorder. The value of the size ranges from 1 to 64. By default, the value is 1. If the packet sequence number exceeds the window size, the packet is considered to be out of order.";
config "true";
default "1";
type uint32 {
range "1..64";
}
}
}
}
}
Chen, et al. Expires February 16, 2015 [Page 29]
Internet-Draft Yang Model for MPLS TE August 2014
container cspfCfg {
description "CSPF configuration.";
leaf enableCspf {
description "The enabling state of CSPF capability.";
config "true";
default "false";
type boolean;
}
leaf preferredIgp {
description "Configurable entry: preferred Igp";
config "true";
default "ospf";
type enumeration {
enum ospf {
value "0";
description "ospf:";
}
enum isis {
value "1";
description "isis:";
}
}
}
leaf preferredOspfProcessId {
description "preferred ospf process id";
config "true";
type uint32 {
range "1..4294967295";
}
}
leaf preferredOspfAreaId {
description "preferred ospf area id";
config "true";
type boolean;
}
leaf preferredIsisProcessId {
description "preferred isis process id";
config "true";
type uint32 {
range "1..4294967295";
}
}
leaf preferredIsisLevel {
description "preferred isis level";
config "true";
type enumeration {
Chen, et al. Expires February 16, 2015 [Page 30]
Internet-Draft Yang Model for MPLS TE August 2014
enum invalid {
value "0";
description "ISIS invalid";
}
enum level1 {
value "1";
description "ISIS Level-1";
}
enum level2 {
value "2";
description "ISIS Level-2";
}
}
}
leaf tiebreaking {
description "Rule of selecting multiple equivalent routes.";
config "true";
default "RANDOM";
type enumeration {
enum LEASTFILL {
value "0";
description "LEASTFILL:The link with the smallest bandwidth occupation ratio is selected in the case of equal conditions.";
}
enum MOSTFILL {
value "1";
description "MOSTFILL:The link with the largest bandwidth occupation ratio is selected in the case of equal conditions.";
}
enum RANDOM {
value "2";
description "RANDOM:Links are selected randomly.";
}
}
}
leaf pathMetricType {
description "pre-calc path metric type, TE or IGP.";
config "true";
default "TE";
type enumeration {
enum IGP {
value "0";
description "IGP";
}
enum TE {
value "1";
description "TE";
}
}
}
Chen, et al. Expires February 16, 2015 [Page 31]
Internet-Draft Yang Model for MPLS TE August 2014
leaf srlgPathCalcMode {
description "cspf srlg path calculating mode";
config "true";
default "default";
type enumeration {
enum default {
value "0";
description "none: Don't care SRLG when calculte path.";
}
enum preferred {
value "1";
description "preferred: Try to exclude link in the same SRLG with excluded path.";
}
enum strict {
value "2";
description "strict: Never use link in same SRLG with exclude path.";
}
}
}
}
container p2mpTeTemplates {
list p2mpTeTemplate {
key "templateName";
max-elements "unbounded";
min-elements "0";
description "P2MP TE configuration Template.";
leaf templateName {
description "Name of p2mp te configuration template.";
config "true";
type string {
length "0..31";
pattern "^[^ ]*$";
}
}
leaf recordRouteMode {
description "Route record mode. The available options are not record, recording routes only, and recording routes and labels.";
config "true";
default "DISABLE";
type enumeration {
enum DISABLE {
value "0";
description "DISABLE:";
}
enum RECORD_ROUTE_ONLY {
Chen, et al. Expires February 16, 2015 [Page 32]
Internet-Draft Yang Model for MPLS TE August 2014
value "1";
description "The LSP records routes only.";
}
enum RECORD_LABEL {
value "2";
description "The LSP records both routes and labels.";
}
}
}
leaf resvStyle {
description "Tunnel reservation styles. SE style: shared explicit style; FF: fixed filter style. The default tunnel reservation style is SE.";
config "true";
default "SE";
type enumeration {
enum SE {
value "0";
description "Shared Explicit Style:";
}
enum FF {
value "1";
description "Fixed Filter Style:";
}
}
}
leaf setupPriority {
description "Specifies a tunnel setup priority. The value ranges from 0 to 7. By default, the value is 7. The smaller the value, the higher the setup priority. 0 is the highest priority. Limit: the setup priority of a tunnel must be equal to or smaller than its holding priority.";
config "true";
default "7";
type uint8 {
range "0..7";
}
}
leaf holdPriority {
description "Specifies a tunnel holding priority. The value ranges from 0 to 7. By default, the value is 7. The smaller the value, the higher the holding priority. 0 is the highest priority. Limit: The holding priority of a tunnel must be equal to or larger than its setup priority.";
config "true";
default "7";
type uint8 {
range "0..7";
}
}
leaf bandwidth {
description "Specifies a tunnel bandwidth. The value ranges from 0 kbit/s to 4000000000 kbit/s. By default, the value is 0 kbit/s.";
config "true";
default "0";
type uint32 {
range "0..4000000000";
}
}
Chen, et al. Expires February 16, 2015 [Page 33]
Internet-Draft Yang Model for MPLS TE August 2014
leaf reoptimization {
description "Auto reoptimization enabling state of P2MP Template.";
config "true";
default "false";
type boolean;
}
leaf reoptiFrequency {
description "Frequency of auto reoptimization, its range is 60-604800.";
config "true";
default "3600";
type uint32 {
range "60..604800";
}
}
leaf pathMetricType {
description "Referenced metric type of one link for calculating path when creating TE tunnels. The available options are DEFAULT, IGP and TE, default is inheriting from global configuration.";
config "true";
default "NONE";
type enumeration {
enum NONE {
value "0";
description "Inherit from global configuration.";
}
enum IGP {
value "1";
description "IGP";
}
enum TE {
value "2";
description "TE";
}
}
}
leaf tieBreaking {
description "Routing rules for a p2mp template with multiple equal-cost routes. Random: Select a link randomly. least fill: Select the link with smallest bandwidth usage. most fill: Select the link with biggest bandwidth usage. By default, routing rules are inherited from the global MPLS TE routing rules. If multiple paths meet certain limits, a path will be selected based on the preceding rules.";
config "true";
default "DEFAULT";
type enumeration {
enum LEASTFILL {
value "0";
description "LEASTFILL:The link with the smallest bandwidth occupation ratio is selected in the case of equal conditions.";
}
enum MOSTFILL {
value "1";
description "MOSTFILL:The link with the largest bandwidth occupation ratio is selected in the case of equal conditions.";
}
enum RANDOM {
value "2";
Chen, et al. Expires February 16, 2015 [Page 34]
Internet-Draft Yang Model for MPLS TE August 2014
description "RANDOM:Links are selected randomly.";
}
enum DEFAULT {
value "3";
description "Inherit from global configuration.";
}
}
}
leaf hopLimit {
description "Number limit of hops in a tunnel path. The value ranges from 1 to 32. By default, the value is 32.";
config "true";
default "32";
type uint32 {
range "1..32";
}
}
leaf includeAllAffinity {
description "Administrative group attribute of an LSP (includeAll).It's hexadecimal string.";
config "false";
default "00000000";
type string {
length "8";
}
}
leaf includeAnyAffinity {
description "Administrative group attribute of an LSP (includeAny).It's hexadecimal string.";
config "true";
default "00000000";
type string {
length "8";
}
}
leaf excludeAnyAffinity {
description "Administrative group attribute of an LSP (excludeAny).It's hexadecimal string.";
config "true";
default "00000000";
type string {
length "8";
}
}
leaf leafListName {
description "Specify the leaf-list.";
config "true";
mandatory "true";
type string {
length "0..31";
}
}
Chen, et al. Expires February 16, 2015 [Page 35]
Internet-Draft Yang Model for MPLS TE August 2014
container mplsTeP2mpTemplateFrr {
description "Fast reroute attribute.";
leaf frrEnable {
description "Request of fast reroute capability.";
config "true";
default "false";
type boolean;
}
leaf bwProtEnable {
description "The tunnel with fast reroute capability requests bandwidth protection.";
config "true";
default "false";
type boolean;
}
leaf frrBandwidth {
description "FRR-protection bandwidth (kbits/s) requested by an active tunnel. The value ranges from 0 kbit/s to 4000000000 kbit/s. by default, the value is 0 Kbit/s. The value cannot exceed the bandwidth of the active tunnel.";
config "true";
default "0";
type uint32 {
range "0..4000000000";
}
}
leaf frrSetupPriority {
description "Setup priority of FRR-protection tunnels. The value ranges from 0 to 7. By default, the value is 7. The smaller the value, the higher the setup priority. 0 is the highest priority. Limit: The protection tunnel setup priority cannot exceed the setup priority of the active tunnel.";
config "true";
default "7";
type uint32 {
range "0..7";
}
}
leaf frrHoldPriority {
description "Holding priority of FRR protection tunnels. The value ranges from 0 to 7. The smaller the value, the higher the priority. The value 0 is the highest priority. Limit: The protection tunnel holding priority cannot exceed the active tunnel holding priority.";
config "true";
default "7";
type uint32 {
range "0..7";
}
}
}
}
}
}
}
Chen, et al. Expires February 16, 2015 [Page 36]
Internet-Draft Yang Model for MPLS TE August 2014
5. IANA Considerations
This document makes no request of IANA.
6. Security Considerations
This document does not introduce any new security risk.
7. Acknowledgements
The authors would like to thank Guangying Zheng, Gang Yan for their
contributions to this work.
8. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V.,
and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP
Tunnels", RFC 3209, December 2001.
[RFC4875] Aggarwal, R., Papadimitriou, D., and S. Yasukawa,
"Extensions to Resource Reservation Protocol - Traffic
Engineering (RSVP-TE) for Point-to-Multipoint TE Label
Switched Paths (LSPs)", RFC 4875, May 2007.
[RFC6020] Bjorklund, M., "YANG - A Data Modeling Language for the
Network Configuration Protocol (NETCONF)", RFC 6020,
October 2010.
[RFC6241] Enns, R., Bjorklund, M., Schoenwaelder, J., and A.
Bierman, "Network Configuration Protocol (NETCONF)", RFC
6241, June 2011.
Authors' Addresses
Xia Chen
Huawei Technologies
Huawei Bld., No.156 Beiqing Rd.
Beijing 100095
China
Email: jescia.chenxia@huawei.com
Chen, et al. Expires February 16, 2015 [Page 37]
Internet-Draft Yang Model for MPLS TE August 2014
Zhenbin Li
Huawei Technologies
Huawei Bld., No.156 Beiqing Rd.
Beijing 100095
China
Email: lizhenbin@huawei.com
Xinzong Zeng
Huawei Technologies
Huawei Bld., No.156 Beiqing Rd.
Beijing 100095
China
Email: zengxinzong@huawei.com
Chen, et al. Expires February 16, 2015 [Page 38]