module ietf-te-kpi-telemetry {
yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-te-kpi-telemetry";
prefix te-tel;
import ietf-te {
prefix te;
reference
"I-D.ietf-teas-yang-te: A YANG Data Model for Traffic
Engineering Tunnels and Interfaces";
}
import ietf-te-types {
prefix te-types;
reference
"I-D.ietf-teas-yang-te-types: Traffic Engineering Common
YANG Types";
}
organization
"IETF Traffic Engineering Architecture and Signaling (TEAS)
Working Group";
contact
"WG Web:
WG List:
Editor: Young Lee
Dhruv Dhody ";
description
"This module describes YANG data model for performance
monitoring telemetry for te tunnels.
Copyright (c) 2020 IETF Trust and the persons identified as
authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject to
the license terms contained in, the Simplified BSD License set
forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents
(https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see the
RFC itself for full legal notices.
The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
'MAY', and 'OPTIONAL' in this document are to be interpreted as
described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
they appear in all capitals, as shown here.";
/* Note: The RFC Editor will replace XXXX with the number
assigned to the RFC once draft-ietf-teas-pm-telemetry-
autonomics becomes an RFC.*/
revision 2020-03-08 {
description
"Initial revision.";
reference
"RFC XXXX: YANG models for VN/TE Performance Monitoring
Telemetry and Scaling Intent Autonomics";
}
identity telemetry-param-type {
description
"Base identity for telemetry param types";
}
identity one-way-delay {
base telemetry-param-type;
description
"To specify average Delay in one (forward)
direction";
reference
"RFC7471: OSPF Traffic Engineering (TE) Metric Extensions.
RFC8570: IS-IS Traffic Engineering (TE) Metric Extensions.
RFC7823: Performance-Based Path Selection for Explicitly
Routed Label Switched Paths (LSPs) Using TE Metric
Extensions";
}
identity two-way-delay {
base telemetry-param-type;
description
"To specify average Delay in both (forward and reverse)
directions";
reference
"RFC7471: OSPF Traffic Engineering (TE) Metric Extensions.
RFC8570: IS-IS Traffic Engineering (TE) Metric Extensions.
RFC7823: Performance-Based Path Selection for Explicitly
Routed Label Switched Paths (LSPs) Using TE Metric
Extensions";
}
identity one-way-delay-variation {
base telemetry-param-type;
description
"To specify average Delay Variation in one (forward) direction";
reference
"RFC7471: OSPF Traffic Engineering (TE) Metric Extensions.
RFC8570: IS-IS Traffic Engineering (TE) Metric Extensions.
RFC7823: Performance-Based Path Selection for Explicitly
Routed Label Switched Paths (LSPs) Using TE Metric
Extensions";
}
identity two-way-delay-variation {
base telemetry-param-type;
description
"To specify average Delay Variation in both (forward and reverse)
directions";
reference
"RFC7471: OSPF Traffic Engineering (TE) Metric Extensions.
RFC8570: IS-IS Traffic Engineering (TE) Metric Extensions.
RFC7823: Performance-Based Path Selection for Explicitly
Routed Label Switched Paths (LSPs) Using TE Metric
Extensions";
}
identity utilized-bandwidth {
base telemetry-param-type;
description
"To specify utilized bandwidth over the specified source
and destination.";
reference
"RFC7471: OSPF Traffic Engineering (TE) Metric Extensions.
RFC8570: IS-IS Traffic Engineering (TE) Metric Extensions.
RFC7823: Performance-Based Path Selection for Explicitly
Routed Label Switched Paths (LSPs) Using TE Metric
Extensions";
}
identity utilized-percentage {
base telemetry-param-type;
description
"To specify utilization percentage of the entity
(e.g., tunnel, link, etc.)";
}
typedef scaling-criteria-operation {
type enumeration {
enum AND {
description
"AND operation";
}
enum OR {
description
"OR operation";
}
}
description
"Operations to analize list of scaling criterias";
}
grouping scaling-duration {
description
"Base scaling criteria durations";
leaf threshold-time {
type uint32;
units "seconds";
description
"The duration for which the criteria must hold true";
}
leaf cooldown-time {
type uint32;
units "seconds";
description
"The duration after a scaling-in/scaling-out action has been
triggered, for which there will be no further operation";
}
}
grouping scaling-criteria {
description
"Grouping for scaling criteria";
leaf performance-type {
type identityref {
base telemetry-param-type;
}
description
"Reference to the tunnel level telemetry type";
}
leaf threshold-value {
type string;
description
"Scaling threshold for the telemetry parameter type";
}
}
grouping scaling-in-intent {
description
"Basic scaling in intent";
uses scaling-duration;
list scaling-condition {
key "performance-type";
description
"Scaling conditions";
uses scaling-criteria;
leaf scale-in-operation-type {
type scaling-criteria-operation;
default "AND";
description
"Operation to be applied to check between scaling criterias
to check if the scale in threshold condition has been met.
Defaults to AND";
}
}
}
grouping scaling-out-intent {
description
"Basic scaling out intent";
uses scaling-duration;
list scaling-condition {
key "performance-type";
description
"Scaling conditions";
uses scaling-criteria;
leaf scale-out-operation-type {
type scaling-criteria-operation;
default "OR";
description
"Operation to be applied to check between scaling criterias
to check if the scale out threshold condition has been met.
Defauls to OR";
}
}
}
augment "/te:te/te:tunnels/te:tunnel" {
description
"Augmentation parameters for config scaling-criteria TE
tunnel topologies. Scale in/out criteria might be used
for network autonomics in order the controller to react
to a certain set of monitored params.";
container te-scaling-intent {
description
"scaling intent";
container scale-in-intent {
description
"scale-in";
uses scaling-in-intent;
}
container scale-out-intent {
description
"scale-out";
uses scaling-out-intent;
}
}
container te-telemetry {
config false;
description
"telemetry params";
leaf id {
type string;
description
"Id of telemetry param";
}
uses te-types:performance-metrics-attributes;
}
}
}