module ietf-rsvp-te {
namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp-te";
prefix "rsvp-te";
import ietf-rsvp {
prefix rsvp;
}
import ietf-routing {
prefix "rt";
}
import ietf-te {
prefix te;
}
import ietf-te-device {
prefix te-dev;
}
/* Import TE generic types */
import ietf-te-types {
prefix te-types;
}
organization
"IETF Traffic Engineering Architecture and Signaling (TEAS)
Working Group";
contact
"WG Web:
WG List:
WG Chair: Lou Berger
WG Chair: Vishnu Pavan Beeram
Editor: Vishnu Pavan Beeram
Editor: Tarek Saad
Editor: Rakesh Gandhi
Editor: Himanshu Shah
Editor: Xufeng Liu
Editor: Xia Chen
Editor: Raqib Jones
Editor: Bin Wen
";
description
"This module contains the RSVP-TE YANG generic data model.";
revision "2016-10-29" {
description "Latest revision to RSVP-TE generic YANG module";
reference "RFC2205, RFC3209, etc.";
}
/**
* RSVP-TE LSPs groupings.
*/
grouping lsp-record-route-information_state {
description "recorded route information grouping";
container record-route-object {
description "RSVP recorded route object information";
list path-record-route-subobjects {
when "../../te:origin-type != 'ingress'" {
description "Applicable on non-ingress LSPs only";
}
key "subobject-index";
description
"List of RSVP Path record-route objects";
leaf subobject-index {
type uint32;
description "RRO subobject index";
}
uses te-types:record-route-subobject;
}
list resv-record-route-subobjects {
when "../../te:origin-type != 'egress'" {
description "Applicable on non-egress LSPs only";
}
key "subobject-index";
description
"List of RSVP Resv record-route objects";
leaf subobject-index {
type uint32;
description "RRO subobject index";
}
uses te-types:record-route-subobject;
}
}
}
grouping lsp-explicit-route-information_state {
description "RSVP-TE LSP explicit-route information";
container explicit-route-object {
description "Explicit route object information";
list incoming-explicit-route-subobjects {
when "../../te:origin-type != 'ingress'" {
description "Applicable on non-ingress LSPs only";
}
key "subobject-index";
description
"List of incoming RSVP Path explicit-route objects";
leaf subobject-index {
type uint32;
description "ERO subobject index";
}
uses te-types:explicit-route-subobject;
}
list outgoing-explicit-route-subobjects {
when "../../te:origin-type != 'egress'" {
description "Applicable on non-egress LSPs only";
}
key "subobject-index";
description
"List of outgoing RSVP Path explicit-route objects";
leaf subobject-index {
type uint32;
description "ERO subobject index";
}
uses te-types:explicit-route-subobject;
}
}
}
grouping lsp-attributes-flags_config {
description
"Configuration parameters relating to RSVP-TE LSP
attribute flags";
leaf lsp-rerouting {
type enumeration {
enum end-to-end-routing {
description
"End-to-end routing desired";
reference "RFC4920, RFC5420";
}
enum boundary-rerouting {
description
"Boundary rerouting desired";
reference "RFC4920, RFC5420";
}
enum segment-based-rerouting {
description
"Segment-based rerouting desired";
reference "RFC4920, RFC5420";
}
}
description "LSP rerouting types";
}
leaf lsp-integrety-required {
type boolean;
description "LSP integrity desired";
reference "RFC4875";
}
leaf lsp-contiguous {
type boolean;
description "Contiguous LSP";
reference "RFC5151";
}
leaf lsp-stitching-desired {
type boolean;
description "Stitched LSP";
reference "RFC5150";
}
leaf lsp-preplanned {
type boolean;
description "Preplanned LSP";
reference "RFC6001";
}
leaf lsp-oob-mapping {
type boolean;
description
"Mapping is done out-of-band";
reference "RFC6511";
}
}
grouping lsp-session-attributes-obj-flags_config {
description
"Configuration parameters relating to RSVP-TE LSP
session attribute flags";
reference
"RFC4859: Registry for RSVP-TE Session Flags";
leaf local-recording-desired {
type boolean;
description "Path recording is desired.";
reference "RFC3209";
}
leaf se-style-desired {
type boolean;
description "SE Style desired";
reference "RFC3209";
}
leaf path-reevaluation-request {
type boolean;
description "Path re-evaluation request";
reference "RFC4736";
}
leaf soft-preemption-desired {
type boolean;
description "Soft-preemption is desired";
reference "RFC5712";
}
}
grouping lsp-properties_config {
description
"Configuration parameters relating to RSVP-TE LSP
session attribute flags";
leaf lsp-signaled-name {
type string;
description
"Sets the session name to use in the session
attribute object.";
}
uses lsp-session-attributes-obj-flags_config;
uses lsp-attributes-flags_config;
}
grouping tunnel-properties {
description
"Top level grouping for LSP properties.";
container config {
description
"Configuration parameters relating to
LSP properties";
uses lsp-properties_config;
}
container state {
config false;
description
"State information associated with LSP
properties";
uses lsp-properties_config;
}
}
/*** End of RSVP-TE LSP groupings ***/
/**
* RSVP-TE generic global properties.
*/
grouping global-soft-preemption_config {
description
"Configuration for global RSVP-TE soft preemption";
leaf soft-preemption-timeout {
type uint16 {
range 0..300;
}
default 0;
description
"Timeout value for soft preemption to revert
to hard preemption";
}
}
grouping global-soft-preemption {
description
"Top level group for RSVP-TE soft-preemption";
container global-soft-preemption {
presence "Enables soft preemption on a node.";
description
"Top level container for RSVP-TE soft-preemption";
container config {
description
"Configuration parameters relating to RSVP
soft preemption support";
uses global-soft-preemption_config;
}
container state {
description "State parameters relating to RSVP
soft preemption support";
uses global-soft-preemption_config;
}
}
}
/*** End of RSVP-TE generic global properties. ***/
/**
* RSVP-TE interface generic groupings.
*/
grouping rsvp-te-interface-attributes {
description
"Top level grouping for RSVP-TE interface properties.";
container rsvp-te-interface-attributes {
description
"Top level container for RSVP-TE interface
properties";
container config {
description
"Configuration parameters relating to RSVP-TE
bandwidth";
}
container state {
config false;
description
"State information associated with RSVP-TE
bandwidth";
}
}
}
/*** End of RSVP-TE generic groupings ***/
/* RSVP-TE global propeerties */
augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals" {
description
"RSVP-TE augmentation to RSVP globals";
uses global-soft-preemption;
}
/* Linkage to the base RSVP all links */
augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces" {
description
"RSVP-TE generic data augmentation pertaining to interfaces";
uses rsvp-te-interface-attributes;
}
/* Linkage to per RSVP interface */
augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" +
"rsvp:interface" {
description
"RSVP-TE generic data augmentation pertaining to specific
interface";
uses rsvp-te-interface-attributes;
}
/* add augmentation for sessions neighbors */
augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:sessions" {
description
"RSVP-TE generic data augmentation pertaining to session";
/* To be added */
}
augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:neighbors" {
description
"RSVP-TE generic data augmentation pertaining to neighbors";
/* To be added */
}
/**
* RSVP-TE generic augmentations of generic TE model.
*/
/* TE tunnel augmentation */
augment "/te:te/te:tunnels/te:tunnel" {
description
"RSVP-TE generic data augmentation pertaining to TE tunnels";
uses tunnel-properties;
}
/* TE LSP augmentation */
augment "/te:te/te:lsps-state/te:lsp" {
description
"RSVP-TE generic data augmentation pertaining to specific TE
LSP";
uses lsp-properties_config;
uses lsp-explicit-route-information_state;
uses lsp-record-route-information_state;
}
/* TE interface augmentation */
augment "/te:te/te-dev:interfaces/te-dev:interface" {
description
"RSVP-TE generic data augmentation pertaining to specific TE
interface";
}
}