module ietf-te-packet-types {
yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-te-packet-types";
/* Replace with IANA when assigned */
prefix "te-packet-types";
/* Import TE generic types */
import ietf-te-types {
prefix te-types;
reference
"RFC XXXX: A YANG Data Model for Common Traffic Engineering
Types";
}
organization
"IETF TEAS Working Group";
contact
"WG Web:
WG List:
Editor: Tarek Saad
Editor: Rakesh Gandhi
Editor: Vishnu Pavan Beeram
Editor: Himanshu Shah
Editor: Xufeng Liu
Editor: Igor Bryskin
Editor: Young Lee
";
description
"This module contains a collection of generally useful MPLS TE
specific YANG data type definitions. The model fully conforms
to the Network Management Datastore Architecture (NMDA).
Copyright (c) 2018 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.";
// RFC Ed.: replace XXXX with actual RFC number and remove this
// note.
// RFC Ed.: update the date below with the date of RFC publication
// and remove this note.
revision "2019-10-01" {
description "Latest revision of TE MPLS types";
reference
"RFC XXXX: A YANG Data Model for Common Traffic Engineering
Types";
}
/**
* Typedefs
*/
typedef te-bandwidth-requested-type {
type enumeration {
enum specified {
description
"Bandwidth is explicitly specified";
}
enum auto {
description
"Bandwidth is automatically computed";
}
}
description
"enumerated type for specifying whether bandwidth is
explicitly specified or automatically computed";
}
typedef te-class-type {
type uint8;
description
"Diffserv-TE class-type that defines a set of Traffic
Trunks crossing a link that is governed by a specific
set of bandwidth constraints. CT is used for the
purposes of link bandwidth allocation, constraint-
based routing and admission control.";
reference "RFC4124: Protocols for Diffserv-aware TE";
}
typedef bc-type {
type uint8 {
range '0..7';
}
description
"Diffserv-TE bandwidth constraint as defined in RFC4124";
reference "RFC4124: Protocols for Diffserv-aware TE";
}
typedef bandwidth-kbps {
type uint64;
units "Kbps";
description
"Bandwidth values expressed in kilobits per second";
}
typedef bandwidth-mbps {
type uint64;
units "Mbps";
description
"Bandwidth values expressed in megabits per second";
}
typedef bandwidth-gbps {
type uint64;
units "Gbps";
description
"Bandwidth values expressed in gigabits per second";
}
identity backup-protection-type {
description
"Base identity for backup protection type";
}
identity backup-protection-link {
base backup-protection-type;
description
"backup provides link protection only";
}
identity backup-protection-node-link {
base backup-protection-type;
description
"backup offers node (preferred) or link protection";
}
identity bc-model-type {
description
"Base identity for Diffserv-TE bandwidth constraint
model type";
reference "RFC4124: Protocols for Diffserv-aware TE";
}
identity bc-model-rdm {
base bc-model-type;
description
"Russian Doll bandwidth constraint model type.";
reference "RFC4127: Russian Dolls Model for DS-TE";
}
identity bc-model-mam {
base bc-model-type;
description
"Maximum Allocation bandwidth constraint
model type.";
reference "RFC4125: Maximum Allocation Model for DS-TE";
}
identity bc-model-mar {
base bc-model-type;
description
"Maximum Allocation with Reservation
bandwidth constraint model type.";
reference "RFC4126: MAR Bandwidth Constraints Model for DS-TE";
}
grouping performance-metrics-attributes-packet {
description
"A container containing performance metric attributes.";
uses te-types:performance-metrics-attributes {
augment performance-metrics-one-way {
leaf one-way-min-delay {
type uint32 {
range '0..16777215';
}
description
"One-way minimum delay or latency in micro seconds.";
}
leaf one-way-min-delay-normality {
type te-types:performance-metrics-normality;
default "normal";
description "One-way minimum delay or latency normality.";
}
leaf one-way-max-delay {
type uint32 {
range '0..16777215';
}
description
"One-way maximum delay or latency in micro seconds.";
}
leaf one-way-max-delay-normality {
type te-types:performance-metrics-normality;
default "normal";
description "One-way maximum delay or latency normality.";
}
leaf one-way-delay-variation {
type uint32 {
range '0..16777215';
}
description "One-way delay variation in micro seconds.";
}
leaf one-way-delay-variation-normality {
type te-types:performance-metrics-normality;
default "normal";
description "One-way delay variation normality.";
}
leaf one-way-packet-loss {
type decimal64 {
fraction-digits 6;
range '0 .. 50.331642';
}
description
"One-way packet loss as a percentage of the total traffic
sent over a configurable interval. The finest precision is
0.000003%. where the maximum 50.331642%.";
reference "RFC 7810, section-4.4";
}
leaf one-way-packet-loss-normality {
type te-types:performance-metrics-normality;
default "normal";
description "Packet loss normality.";
}
description
"PM one-way packet specific augmentation to generic PM
grouping";
}
augment performance-metrics-two-way {
leaf two-way-min-delay {
type uint32 {
range '0..16777215';
}
default 0;
description
"Two-way minimum delay or latency in micro seconds.";
}
leaf two-way-min-delay-normality {
type te-types:performance-metrics-normality;
default "normal";
description "Two-way minimum delay or latency normality.";
}
leaf two-way-max-delay {
type uint32 {
range '0..16777215';
}
default 0;
description
"Two-way maximum delay or latency in micro seconds.";
}
leaf two-way-max-delay-normality {
type te-types:performance-metrics-normality;
default "normal";
description "Two-way maximum delay or latency normality.";
}
leaf two-way-delay-variation {
type uint32 {
range '0..16777215';
}
default 0;
description "Two-way delay variation in micro seconds.";
}
leaf two-way-delay-variation-normality {
type te-types:performance-metrics-normality;
default "normal";
description "Two-way delay variation normality.";
}
leaf two-way-packet-loss {
type decimal64 {
fraction-digits 6;
range '0 .. 50.331642';
}
default 0;
description
"Two-way packet loss as a percentage of the total traffic
sent over a configurable interval. The finest precision is
0.000003%.";
}
leaf two-way-packet-loss-normality {
type te-types:performance-metrics-normality;
default "normal";
description "Two-way packet loss normality.";
}
description
"PM two-way packet specific augmentation to generic PM
grouping";
}
}
}
grouping one-way-performance-metrics-packet {
description
"One-way packet performance metrics throttle grouping.";
leaf one-way-min-delay {
type uint32 {
range '0..16777215';
}
default 0;
description "One-way minimum delay or latency in micro seconds.";
}
leaf one-way-max-delay {
type uint32 {
range '0..16777215';
}
default 0;
description "One-way maximum delay or latency in micro seconds.";
}
leaf one-way-delay-variation {
type uint32 {
range '0..16777215';
}
default 0;
description "One-way delay variation in micro seconds.";
}
leaf one-way-packet-loss {
type decimal64 {
fraction-digits 6;
range '0 .. 50.331642';
}
default 0;
description
"One-way packet loss as a percentage of the total traffic sent
over a configurable interval. The finest precision is
0.000003%.";
}
}
grouping two-way-performance-metrics-packet {
description
"Two-way packet performance metrics throttle grouping.";
leaf two-way-min-delay {
type uint32 {
range '0..16777215';
}
default 0;
description "Two-way minimum delay or latency in micro seconds.";
}
leaf two-way-max-delay {
type uint32 {
range '0..16777215';
}
default 0;
description "Two-way maximum delay or latency in micro seconds.";
}
leaf two-way-delay-variation {
type uint32 {
range '0..16777215';
}
default 0;
description "Two-way delay variation in micro seconds.";
}
leaf two-way-packet-loss {
type decimal64 {
fraction-digits 6;
range '0 .. 50.331642';
}
default 0;
description
"Two-way packet loss as a percentage of the total traffic sent
over a configurable interval. The finest precision is
0.000003%.";
}
}
grouping performance-metrics-throttle-container-packet {
description
"Packet performance metrics threshold grouping";
uses te-types:performance-metrics-throttle-container {
augment "throttle/threshold-out" {
uses one-way-performance-metrics-packet;
uses two-way-performance-metrics-packet;
description
"PM threshold-out packet augmentation to
generic grouping";
}
augment "throttle/threshold-in" {
uses one-way-performance-metrics-packet;
uses two-way-performance-metrics-packet;
description
"PM threshold-in packet augmentation to
generic grouping";
}
augment "throttle/threshold-accelerated-advertisement" {
uses one-way-performance-metrics-packet;
uses two-way-performance-metrics-packet;
description
"PM accelerated advertisement packet augmentation to
generic grouping";
}
}
}
}