module ietf-ppr-statistics {
yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-ppr-statistics";
prefix pprs;
import ietf-yang-types {
prefix yang;
}
import ietf-inet-types {
prefix inet;
}
organization "IETF";
contact
"WG Web:
WG List:
Author: Alexander Clemm
Author: Padma Pillay-Esnault
Author: Uma Chunduri
";
description
"The YANG data model defines a set of statistics to be used for
managing PPR.";
revision 2019-07-08 {
description
"Initial revision";
reference
"RFC XXXX: Preferred Path Routing (PPR) OAM and Accounting";
}
typedef ppr-id {
type union {
type inet:ipv4-address;
type inet:ipv6-address;
type string {
length "4..32";
}
}
description
"Identifies a PPR. Depending on the type of PPR, a different
format is used.";
}
typedef ppr-origin-proto {
type string;
description
"Identifies the source of the PPR, i.e. how the PPR came into
being. Different values are TBD and the type itself is
subject to change.";
}
typedef ppr-path-type {
type enumeration {
enum loose {
description "Path type is loose";
}
enum strict {
description "Path type is strict";
}
}
description
"The type of PPR path - loose or strict.";
}
container ppr-stats {
config false;
description
"Top-level container for PPR statistics.";
leaf num-pprs {
type uint32;
description
"The number of currently active PPRs on the node.";
}
list ppr {
key "ppr-id";
description
"The list of currently active PPRs on the node.";
leaf ppr-id {
type ppr-id;
description
"The identifier of the PPR.";
}
leaf ppr-creation-time {
type yang:date-and-time;
description
"The precise time at which the PPR was created on the
node.";
}
leaf loose-or-strict {
type ppr-path-type;
description
"An indication whether the PPR is loose or strict.";
}
leaf ppr-origin {
type ppr-origin-proto;
description
"The way in which the PPR came into being, i.e. through
which method or protocol it was created.";
}
leaf ppr-packets {
type uint64;
description
"The number of packets that have forwarded on that path.
(Modulo semantics apply, i.e. the value of the leaf wraps
around to 0 when the maximum uint64 is reached.)";
}
leaf ppr-dropped-packets {
type uint64;
description
"The number of packets on that path that have been dropped
by this node. (Modulo semantics apply, i.e. the value of
the leaf wraps around to 0 when the maximum uint64 is
reached.)";
}
leaf ppr-octets {
type uint64;
description
"The number of octets that have been forwarded on that
path. (Modulo semantics apply, i.e. the value of the
leaf wraps around to 0 when the maximum uint64 is
reached.)";
}
leaf ppr-active-flows {
type uint32;
description
"The number of distinct flows that are currently active
on that path.";
}
}
}
}