ietf-connectionless-oam@2019-02-04.yang   ietf-connectionless-oam@2019-02-04-formatted.yang 
module ietf-connectionless-oam { module ietf-connectionless-oam {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-connectionless-oam"; namespace "urn:ietf:params:xml:ns:yang:ietf-connectionless-oam";
prefix cl-oam; prefix cl-oam;
import ietf-yang-schema-mount { import ietf-yang-schema-mount {
prefix yangmnt; prefix yangmnt;
} }
import ietf-network { import ietf-network {
prefix nd; prefix nd;
} }
import ietf-yang-types { import ietf-yang-types {
prefix yang; prefix yang;
} }
import ietf-interfaces { import ietf-interfaces {
prefix if; prefix if;
} }
import ietf-inet-types { import ietf-inet-types {
prefix inet; prefix inet;
} }
import ietf-network-instance { import ietf-network-instance {
prefix ni; prefix ni;
} }
import ietf-routing-types { import ietf-routing-types {
prefix rt; prefix rt;
} }
import ietf-lime-time-types { import ietf-lime-time-types {
prefix lime; prefix lime;
} }
organization organization
"IETF LIME Working Group"; "IETF LIME Working Group";
contact contact
"WG Web: <https://datatracker.ietf.org/wg/lime> "WG Web: <https://datatracker.ietf.org/wg/lime>
WG List: <mailto:lmap@ietf.org> WG List: <mailto:lmap@ietf.org>
Deepak Kumar <dekumar@cisco.com> Deepak Kumar <dekumar@cisco.com>
Qin Wu <bill.wu@huawei.com> Qin Wu <bill.wu@huawei.com>
Srihari Raghavan <srihari@cisco.com> Srihari Raghavan <srihari@cisco.com>
Michael Wang <wangzitao@huawei.com> Michael Wang <wangzitao@huawei.com>
skipping to change at line 71 skipping to change at line 73
revision 2019-02-04 { revision 2019-02-04 {
description description
"Base model for Connectionless Operations, Administration, "Base model for Connectionless Operations, Administration,
and Maintenance (OAM)."; and Maintenance (OAM).";
reference reference
"RFC 8532: Generic YANG Data Model for the Management of "RFC 8532: Generic YANG Data Model for the Management of
Operations, Administration, and Maintenance (OAM) Protocols Operations, Administration, and Maintenance (OAM) Protocols
That Use Connectionless Communications"; That Use Connectionless Communications";
} }
feature connectionless { feature connectionless {
description description
"This feature indicates that the OAM solution is connectionless."; "This feature indicates that the OAM solution is connectionless.";
} }
feature continuity-check { feature continuity-check {
description description
"This feature indicates that the server supports "This feature indicates that the server supports
executing a Continuity Check OAM command and executing a Continuity Check OAM command and
returning a response. Servers that do not advertise returning a response. Servers that do not advertise
this feature will not support executing this feature will not support executing
Continuity Check commands or the RPC operation model for Continuity Check commands or the RPC operation model for
Continuity Check commands."; Continuity Check commands.";
} }
feature path-discovery { feature path-discovery {
description description
"This feature indicates that the server supports "This feature indicates that the server supports
executing a path discovery OAM command and executing a path discovery OAM command and
returning a response. Servers that do not advertise returning a response. Servers that do not advertise
this feature will not support executing this feature will not support executing
path discovery commands or the RPC operation model for path discovery commands or the RPC operation model for
path discovery commands."; path discovery commands.";
} }
feature ptp-long-format { feature ptp-long-format {
description description
"This feature indicates that the timestamp is PTP long format."; "This feature indicates that the timestamp is PTP long format.";
} }
feature ntp-short-format { feature ntp-short-format {
description description
"This feature indicates that the timestamp is NTP short format."; "This feature indicates that the timestamp is NTP short format.";
} }
feature icmp-timestamp { feature icmp-timestamp {
description description
"This feature indicates that the timestamp is ICMP timestamp."; "This feature indicates that the timestamp is ICMP timestamp.";
} }
identity traffic-type { identity traffic-type {
description description
"This is the base identity of the traffic type, "This is the base identity of the traffic type,
which includes IPv4, IPv6, etc."; which includes IPv4, IPv6, etc.";
} }
identity ipv4 { identity ipv4 {
base traffic-type; base traffic-type;
description description
"identity for IPv4 traffic type."; "identity for IPv4 traffic type.";
} }
identity ipv6 { identity ipv6 {
base traffic-type; base traffic-type;
description description
"identity for IPv6 traffic type."; "identity for IPv6 traffic type.";
} }
identity address-attribute-types { identity address-attribute-types {
description description
"This is the base identity of the address attribute types, which "This is the base identity of the address attribute types, which
are Generic IPv4/IPv6 Prefix, BGP Labeled IPv4/IPv6 Prefix, are Generic IPv4/IPv6 Prefix, BGP Labeled IPv4/IPv6 Prefix,
Tunnel ID, PW ID, VPLS VE ID, etc. (See RFC 8029 for details.)"; Tunnel ID, PW ID, VPLS VE ID, etc. (See RFC 8029 for details.)";
} }
typedef address-attribute-type { typedef address-attribute-type {
type identityref { type identityref {
base address-attribute-types; base address-attribute-types;
} }
description description
"Target address attribute type."; "Target address attribute type.";
} }
typedef percentage { typedef percentage {
type decimal64 { type decimal64 {
fraction-digits 5; fraction-digits 5;
range "0..100"; range "0..100";
} }
description "Percentage."; description
} "Percentage.";
}
typedef routing-instance-ref { typedef routing-instance-ref {
type leafref { type leafref {
path "/ni:network-instances/ni:network-instance/ni:name"; path "/ni:network-instances/ni:network-instance/ni:name";
} }
description description
"This type is used for leafs that reference a routing instance "This type is used for leafs that reference a routing instance
configuration."; configuration.";
} }
grouping cc-session-statistics { grouping cc-session-statistics {
description description
"Grouping for session statistics."; "Grouping for session statistics.";
container cc-session-statistics { container cc-session-statistics {
description description
"CC session counters."; "CC session counters.";
leaf session-count { leaf session-count {
type uint32; type uint32;
default "0"; default "0";
description description
skipping to change at line 180 skipping to change at line 197
leaf session-down-count { leaf session-down-count {
type uint32; type uint32;
default "0"; default "0";
description description
"Number of sessions that are down. "Number of sessions that are down.
A value of zero indicates that no down A value of zero indicates that no down
session count is sent."; session count is sent.";
} }
leaf session-admin-down-count { leaf session-admin-down-count {
type uint32; type uint32;
default "0"; default "0";
description description
"Number of sessions that are admin-down. "Number of sessions that are admin-down.
A value of zero indicates that no admin- A value of zero indicates that no admin-
down session count is sent."; down session count is sent.";
} }
} }
} }
grouping session-packet-statistics { grouping session-packet-statistics {
description description
"Grouping for statistics per session packet."; "Grouping for statistics per session packet.";
container session-packet-statistics { container session-packet-statistics {
description description
"Statistics per session packet."; "Statistics per session packet.";
leaf rx-packet-count { leaf rx-packet-count {
type uint32{ type uint32 {
range "0..4294967295"; range "0..4294967295";
} }
default "0"; default "0";
description description
"Total count of received OAM packets. "Total count of received OAM packets.
The value of count will be set to zero (0) The value of count will be set to zero (0)
on creation and will thereafter increase on creation and will thereafter increase
monotonically until it reaches a maximum value monotonically until it reaches a maximum value
of 2^32-1 (4294967295 decimal), when it wraps of 2^32-1 (4294967295 decimal), when it wraps
around and starts increasing again from zero."; around and starts increasing again from zero.";
} }
leaf tx-packet-count { leaf tx-packet-count {
type uint32{ type uint32 {
range "0..4294967295"; range "0..4294967295";
} }
default "0"; default "0";
description description
"Total count of transmitted OAM packets. "Total count of transmitted OAM packets.
The value of count will be set to zero (0) The value of count will be set to zero (0)
on creation and will thereafter increase on creation and will thereafter increase
monotonically until it reaches a maximum value monotonically until it reaches a maximum value
of 2^32-1 (4294967295 decimal), when it wraps of 2^32-1 (4294967295 decimal), when it wraps
around and starts increasing again from zero."; around and starts increasing again from zero.";
} }
leaf rx-bad-packet { leaf rx-bad-packet {
type uint32 { type uint32 {
range "0..4294967295"; range "0..4294967295";
} }
default "0"; default "0";
description description
"Total number of received bad OAM packets. "Total number of received bad OAM packets.
The value of count will be set to zero (0) The value of count will be set to zero (0)
on creation and will thereafter increase on creation and will thereafter increase
monotonically until it reaches a maximum value monotonically until it reaches a maximum value
of 2^32-1 (4294967295 decimal), when it wraps of 2^32-1 (4294967295 decimal), when it wraps
around and starts increasing again from zero."; around and starts increasing again from zero.";
} }
leaf tx-packet-failed { leaf tx-packet-failed {
type uint32 { type uint32 {
range "0..4294967295"; range "0..4294967295";
} }
default "0"; default "0";
description description
"Total number of OAM packets that failed when sent. "Total number of OAM packets that failed when sent.
The value of count will be set to zero (0) The value of count will be set to zero (0)
on creation and will thereafter increase on creation and will thereafter increase
monotonically until it reaches a maximum value monotonically until it reaches a maximum value
of 2^32-1 (4294967295 decimal), when it wraps of 2^32-1 (4294967295 decimal), when it wraps
around and starts increasing again from zero."; around and starts increasing again from zero.";
} }
skipping to change at line 273 skipping to change at line 290
description description
"Time and date of the last time session was down."; "Time and date of the last time session was down.";
} }
leaf last-up-time { leaf last-up-time {
type yang:date-and-time; type yang:date-and-time;
description description
"Time and date of the last time session was up."; "Time and date of the last time session was up.";
} }
leaf down-count { leaf down-count {
type uint32 { type uint32 {
range "0..4294967295"; range "0..4294967295";
} }
default "0"; default "0";
description description
"Total count of Continuity Check sessions down. "Total count of Continuity Check sessions down.
The value of count will be set to zero (0) The value of count will be set to zero (0)
on creation and will thereafter increase on creation and will thereafter increase
monotonically until it reaches a maximum value monotonically until it reaches a maximum value
of 2^32-1 (4294967295 decimal), when it wraps of 2^32-1 (4294967295 decimal), when it wraps
around and starts increasing again from zero."; around and starts increasing again from zero.";
} }
leaf admin-down-count { leaf admin-down-count {
type uint32 { type uint32 {
range "0..4294967295"; range "0..4294967295";
} }
default "0"; default "0";
description description
"Total count of Continuity Check sessions admin down. "Total count of Continuity Check sessions admin down.
The value of count will be set to zero (0) The value of count will be set to zero (0)
on creation and will thereafter increase on creation and will thereafter increase
monotonically until it reaches a maximum value monotonically until it reaches a maximum value
of 2^32-1 (4294967295 decimal), when it wraps of 2^32-1 (4294967295 decimal), when it wraps
around and starts increasing again from zero."; around and starts increasing again from zero.";
} }
skipping to change at line 300 skipping to change at line 317
"Total count of Continuity Check sessions admin down. "Total count of Continuity Check sessions admin down.
The value of count will be set to zero (0) The value of count will be set to zero (0)
on creation and will thereafter increase on creation and will thereafter increase
monotonically until it reaches a maximum value monotonically until it reaches a maximum value
of 2^32-1 (4294967295 decimal), when it wraps of 2^32-1 (4294967295 decimal), when it wraps
around and starts increasing again from zero."; around and starts increasing again from zero.";
} }
uses session-packet-statistics; uses session-packet-statistics;
} }
} }
grouping session-error-statistics { grouping session-error-statistics {
description description
"Grouping for per-session error statistics."; "Grouping for per-session error statistics.";
container session-error-statistics { container session-error-statistics {
description description
"Per-session error statistics."; "Per-session error statistics.";
leaf packet-loss-count { leaf packet-loss-count {
type uint32 { type uint32 {
range "0..4294967295"; range "0..4294967295";
} }
default "0"; default "0";
description description
"Total count of received packet drops. "Total count of received packet drops.
The value of count will be set to zero (0) The value of count will be set to zero (0)
on creation and will thereafter increase on creation and will thereafter increase
monotonically until it reaches a maximum value monotonically until it reaches a maximum value
of 2^32-1 (4294967295 decimal), when it wraps of 2^32-1 (4294967295 decimal), when it wraps
around and starts increasing again from zero."; around and starts increasing again from zero.";
} }
leaf loss-ratio{ leaf loss-ratio {
type percentage; type percentage;
description description
"Loss ratio of the packets. Expressed as percentage "Loss ratio of the packets. Expressed as percentage
of packets lost with respect to packets sent."; of packets lost with respect to packets sent.";
} }
leaf packet-reorder-count { leaf packet-reorder-count {
type uint32 { type uint32 {
range "0..4294967295"; range "0..4294967295";
} }
default "0"; default "0";
description description
"Total count of received packets that were reordered. "Total count of received packets that were reordered.
The value of count will be set to zero (0) The value of count will be set to zero (0)
on creation and will thereafter increase on creation and will thereafter increase
monotonically until it reaches a maximum value monotonically until it reaches a maximum value
of 2^32-1 (4294967295 decimal), when it wraps of 2^32-1 (4294967295 decimal), when it wraps
around and starts increasing again from zero."; around and starts increasing again from zero.";
} }
leaf packets-out-of-seq-count { leaf packets-out-of-seq-count {
type uint32 { type uint32 {
range "0..4294967295"; range "0..4294967295";
} }
description description
"Total count of packets received out of sequence. "Total count of packets received out of sequence.
The value of count will be set to zero (0) The value of count will be set to zero (0)
on creation and will thereafter increase on creation and will thereafter increase
monotonically until it reaches a maximum value monotonically until it reaches a maximum value
of 2^32-1 (4294967295 decimal), when it wraps of 2^32-1 (4294967295 decimal), when it wraps
around and starts increasing again from zero."; around and starts increasing again from zero.";
} }
leaf packets-dup-count { leaf packets-dup-count {
type uint32 { type uint32 {
range "0..4294967295"; range "0..4294967295";
} }
description description
"Total count of received packet duplicates. "Total count of received packet duplicates.
The value of count will be set to zero (0) The value of count will be set to zero (0)
on creation and will thereafter increase on creation and will thereafter increase
monotonically until it reaches a maximum value monotonically until it reaches a maximum value
of 2^32-1 (4294967295 decimal), when it wraps of 2^32-1 (4294967295 decimal), when it wraps
around and starts increasing again from zero."; around and starts increasing again from zero.";
} }
} }
skipping to change at line 382 skipping to change at line 401
(e.g., TWAMP) is used instead, it can be indicated (e.g., TWAMP) is used instead, it can be indicated
using the protocol-id defined in RPC operation of using the protocol-id defined in RPC operation of
retrieval methods for connectionless OAM (RFC 8533), retrieval methods for connectionless OAM (RFC 8533),
i.e., set protocol-id as OWAMP. Note that only one i.e., set protocol-id as OWAMP. Note that only one
measurement protocol for delay is specified for measurement protocol for delay is specified for
interoperability reasons."; interoperability reasons.";
leaf time-unit-value { leaf time-unit-value {
type identityref { type identityref {
base lime:time-unit-type; base lime:time-unit-type;
} }
default lime:milliseconds; default "lime:milliseconds";
description description
"Time units, where the options are s, ms, ns, etc."; "Time units, where the options are s, ms, ns, etc.";
} }
leaf min-delay-value { leaf min-delay-value {
type uint32; type uint32;
description description
"Minimum delay value observed."; "Minimum delay value observed.";
} }
leaf max-delay-value { leaf max-delay-value {
type uint32; type uint32;
skipping to change at line 421 skipping to change at line 441
method is used instead (e.g., Packet Delay Variation used method is used instead (e.g., Packet Delay Variation used
in ITU-T Recommendation Y.1540, it can be indicated using in ITU-T Recommendation Y.1540, it can be indicated using
protocol-id-meta-data defined in RPC operation of protocol-id-meta-data defined in RPC operation of
retrieval methods for connectionless OAM (RFC 8533). retrieval methods for connectionless OAM (RFC 8533).
Note that only one measurement method for jitter is Note that only one measurement method for jitter is
specified for interoperability reasons."; specified for interoperability reasons.";
leaf unit-value { leaf unit-value {
type identityref { type identityref {
base lime:time-unit-type; base lime:time-unit-type;
} }
default lime:milliseconds; default "lime:milliseconds";
description description
"Time units, where the options are s, ms, ns, etc."; "Time units, where the options are s, ms, ns, etc.";
} }
leaf min-jitter-value { leaf min-jitter-value {
type uint32; type uint32;
description description
"Minimum jitter value observed."; "Minimum jitter value observed.";
} }
leaf max-jitter-value { leaf max-jitter-value {
type uint32; type uint32;
skipping to change at line 442 skipping to change at line 462
description description
"Maximum jitter value observed."; "Maximum jitter value observed.";
} }
leaf average-jitter-value { leaf average-jitter-value {
type uint32; type uint32;
description description
"Average jitter value observed."; "Average jitter value observed.";
} }
} }
} }
grouping session-path-verification-statistics { grouping session-path-verification-statistics {
description description
"Grouping for path verification statistics per session."; "Grouping for path verification statistics per session.";
container session-path-verification-statistics { container session-path-verification-statistics {
description description
"OAM path verification statistics per session."; "OAM path verification statistics per session.";
leaf verified-count { leaf verified-count {
type uint32 { type uint32 {
range "0..4294967295"; range "0..4294967295";
} }
description description
"Total number of OAM packets that "Total number of OAM packets that
went through a path as intended. went through a path as intended.
The value of count will be set to zero (0) The value of count will be set to zero (0)
on creation and will thereafter increase on creation and will thereafter increase
monotonically until it reaches a maximum value monotonically until it reaches a maximum value
of 2^32-1 (4294967295 decimal), when it wraps of 2^32-1 (4294967295 decimal), when it wraps
around and starts increasing again from zero."; around and starts increasing again from zero.";
} }
leaf failed-count { leaf failed-count {
type uint32 { type uint32 {
range "0..4294967295"; range "0..4294967295";
} }
description description
"Total number of OAM packets that "Total number of OAM packets that
went through an unintended path. went through an unintended path.
The value of count will be set to zero (0) The value of count will be set to zero (0)
on creation and will thereafter increase on creation and will thereafter increase
monotonically until it reaches a maximum value monotonically until it reaches a maximum value
of 2^32-1 (4294967295 decimal), when it wraps of 2^32-1 (4294967295 decimal), when it wraps
around and starts increasing again from zero."; around and starts increasing again from zero.";
} }
skipping to change at line 476 skipping to change at line 497
"Total number of OAM packets that "Total number of OAM packets that
went through an unintended path. went through an unintended path.
The value of count will be set to zero (0) The value of count will be set to zero (0)
on creation and will thereafter increase on creation and will thereafter increase
monotonically until it reaches a maximum value monotonically until it reaches a maximum value
of 2^32-1 (4294967295 decimal), when it wraps of 2^32-1 (4294967295 decimal), when it wraps
around and starts increasing again from zero."; around and starts increasing again from zero.";
} }
} }
} }
grouping session-type { grouping session-type {
description description
"This object indicates which kind of activation will "This object indicates which kind of activation will
be used by the current session."; be used by the current session.";
leaf session-type { leaf session-type {
type enumeration { type enumeration {
enum "proactive" { enum proactive {
description description
"The current session is a proactive session."; "The current session is a proactive session.";
} }
enum "on-demand" { enum on-demand {
description description
"The current session is an on-demand session."; "The current session is an on-demand session.";
} }
} }
default "on-demand"; default "on-demand";
description description
"Indicate which kind of activation will be used "Indicate which kind of activation will be used
by the current session."; by the current session.";
} }
} }
skipping to change at line 497 skipping to change at line 519
description description
"The current session is an on-demand session."; "The current session is an on-demand session.";
} }
} }
default "on-demand"; default "on-demand";
description description
"Indicate which kind of activation will be used "Indicate which kind of activation will be used
by the current session."; by the current session.";
} }
} }
identity tp-address-technology-type { identity tp-address-technology-type {
description description
"Test point address type."; "Test point address type.";
} }
identity mac-address-type { identity mac-address-type {
base tp-address-technology-type; base tp-address-technology-type;
description description
"MAC address type."; "MAC address type.";
} }
identity ipv4-address-type { identity ipv4-address-type {
base tp-address-technology-type; base tp-address-technology-type;
description description
"IPv4 address type."; "IPv4 address type.";
} }
identity ipv6-address-type { identity ipv6-address-type {
base tp-address-technology-type; base tp-address-technology-type;
description description
"IPv6 address type."; "IPv6 address type.";
} }
identity tp-attribute-type { identity tp-attribute-type {
base tp-address-technology-type; base tp-address-technology-type;
description description
"Test point attribute type."; "Test point attribute type.";
} }
identity router-id-address-type { identity router-id-address-type {
base tp-address-technology-type; base tp-address-technology-type;
description description
"System ID address type."; "System ID address type.";
} }
identity as-number-address-type { identity as-number-address-type {
base tp-address-technology-type; base tp-address-technology-type;
description description
"AS number address type."; "AS number address type.";
} }
identity route-distinguisher-address-type { identity route-distinguisher-address-type {
base tp-address-technology-type; base tp-address-technology-type;
description description
"Route Distinguisher address type."; "Route Distinguisher address type.";
} }
grouping tp-address { grouping tp-address {
leaf tp-location-type { leaf tp-location-type {
type identityref { type identityref {
base tp-address-technology-type; base tp-address-technology-type;
} }
mandatory true; mandatory true;
description description
"Test point address type."; "Test point address type.";
} }
container mac-address { container mac-address {
when "derived-from-or-self(../tp-location-type,"+ when "derived-from-or-self(../tp-location-type,"
"'cl-oam:mac-address-type')" { + "'cl-oam:mac-address-type')" {
description
"MAC address type.";
}
leaf mac-address {
type yang:mac-address;
mandatory true;
description
"MAC address.";
}
description description
"MAC address based TP addressing."; "MAC address type.";
} }
container ipv4-address { leaf mac-address {
when "derived-from-or-self(../tp-location-type,"+ type yang:mac-address;
"'cl-oam:ipv4-address-type')" { mandatory true;
description
"IPv4 address type.";
}
leaf ipv4-address {
type inet:ipv4-address;
mandatory true;
description
"IPv4 address.";
}
description description
"IP address based TP addressing."; "MAC address.";
} }
container ipv6-address { description
when "derived-from-or-self(../tp-location-type,"+ "MAC address based TP addressing.";
"'cl-oam:ipv6-address-type')" { }
description container ipv4-address {
"IPv6 address type."; when "derived-from-or-self(../tp-location-type,"
} + "'cl-oam:ipv4-address-type')" {
leaf ipv6-address {
type inet:ipv6-address;
mandatory true;
description
"IPv6 address.";
}
description description
"IPv6 address based TP addressing."; "IPv4 address type.";
} }
container tp-attribute { leaf ipv4-address {
when "derived-from-or-self(../tp-location-type,"+ type inet:ipv4-address;
"'cl-oam:tp-attribute-type')" { mandatory true;
description description
"Test point attribute type."; "IPv4 address.";
}
description
"IP address based TP addressing.";
}
container ipv6-address {
when "derived-from-or-self(../tp-location-type,"
+ "'cl-oam:ipv6-address-type')" {
description
"IPv6 address type.";
}
leaf ipv6-address {
type inet:ipv6-address;
mandatory true;
description
"IPv6 address.";
}
description
"IPv6 address based TP addressing.";
}
container tp-attribute {
when "derived-from-or-self(../tp-location-type,"
+ "'cl-oam:tp-attribute-type')" {
description
"Test point attribute type.";
}
leaf tp-attribute-type {
type address-attribute-type;
description
"Test point type.";
}
choice tp-attribute-value {
description
"Test point value.";
case ip-prefix {
leaf ip-prefix {
type inet:ip-prefix;
description
"Generic IPv4/IPv6 prefix. See Sections 3.2.13 and
3.2.14 of RFC 8029.";
reference
"RFC 8029: Detecting Multiprotocol Label
Switched (MPLS) Data-Plane Failures";
}
} }
leaf tp-attribute-type { case bgp {
type address-attribute-type; leaf bgp {
description type inet:ip-prefix;
"Test point type."; description
"BGP Labeled IPv4/IPv6 Prefix. See Sections
3.2.11 and 3.2.12 of RFC 8029 for details.";
reference
"RFC 8029: Detecting Multiprotocol Label
Switched (MPLS) Data-Plane Failures";
}
} }
choice tp-attribute-value { case tunnel {
description leaf tunnel-interface {
"Test point value."; type uint32;
case ip-prefix { description
leaf ip-prefix { "Basic IPv4/IPv6 Tunnel ID. See Sections 3.2.3
type inet:ip-prefix; and 3.2.4 of RFC 8029 for details.";
description reference
"Generic IPv4/IPv6 prefix. See Sections 3.2.13 and "RFC 8029: Detecting Multiprotocol Label
3.2.14 of RFC 8029."; Switched (MPLS) Data-Plane Failures.";
reference
"RFC 8029: Detecting Multiprotocol Label
Switched (MPLS) Data-Plane Failures";
}
} }
case bgp { }
leaf bgp { case pw {
type inet:ip-prefix; leaf remote-pe-address {
description type inet:ip-address;
"BGP Labeled IPv4/IPv6 Prefix. See Sections description
3.2.11 and 3.2.12 of RFC 8029 for details."; "Remote PE address. See Section 3.2.8
reference of RFC 8029 for details.";
"RFC 8029: Detecting Multiprotocol Label reference
Switched (MPLS) Data-Plane Failures"; "RFC 8029: Detecting Multiprotocol Label
} Switched (MPLS) Data-Plane Failures";
} }
case tunnel { leaf pw-id {
leaf tunnel-interface { type uint32;
type uint32; description
description "Pseudowire ID is a non-zero 32-bit ID. See Sections
"Basic IPv4/IPv6 Tunnel ID. See Sections 3.2.3 3.2.8 and 3.2.9 of RFC 8029 for details.";
and 3.2.4 of RFC 8029 for details."; reference
reference "RFC 8029: Detecting Multiprotocol Label
"RFC 8029: Detecting Multiprotocol Label Switched (MPLS) Data-Plane Failures";
Switched (MPLS) Data-Plane Failures.";
}
} }
case pw { }
leaf remote-pe-address { case vpls {
type inet:ip-address; leaf route-distinguisher {
description type rt:route-distinguisher;
"Remote PE address. See Section 3.2.8 description
of RFC 8029 for details."; "Route Distinguisher is an 8-octet identifier
reference used to distinguish information about various
"RFC 8029: Detecting Multiprotocol Label L2VPNs advertised by a node.";
Switched (MPLS) Data-Plane Failures"; reference
} "RFC 8029: Detecting Multiprotocol Label
leaf pw-id { Switched (MPLS) Data-Plane Failures";
type uint32;
description
"Pseudowire ID is a non-zero 32-bit ID. See Sections
3.2.8 and 3.2.9 of RFC 8029 for details.";
reference
"RFC 8029: Detecting Multiprotocol Label
Switched (MPLS) Data-Plane Failures";
}
} }
case vpls { leaf sender-ve-id {
leaf route-distinguisher { type uint16;
type rt:route-distinguisher; description
description "Sender's VE ID. The VE ID (VPLS Edge Identifier)
"Route Distinguisher is an 8-octet identifier is a 2-octet identifier.";
used to distinguish information about various reference
L2VPNs advertised by a node."; "RFC 8029: Detecting Multiprotocol Label
reference Switched (MPLS) Data-Plane Failures";
"RFC 8029: Detecting Multiprotocol Label
Switched (MPLS) Data-Plane Failures";
}
leaf sender-ve-id {
type uint16;
description
"Sender's VE ID. The VE ID (VPLS Edge Identifier)
is a 2-octet identifier.";
reference
"RFC 8029: Detecting Multiprotocol Label
Switched (MPLS) Data-Plane Failures";
}
leaf receiver-ve-id {
type uint16;
description
"Receiver's VE ID. The VE ID (VPLS Edge Identifier)
is a 2-octet identifier.";
reference
"RFC 8029: Detecting Multiprotocol Label
Switched (MPLS) Data-Plane Failures";
}
} }
case mpls-mldp { leaf receiver-ve-id {
choice root-address { type uint16;
description description
"Root address choice."; "Receiver's VE ID. The VE ID (VPLS Edge Identifier)
case ip-address { is a 2-octet identifier.";
leaf source-address { reference
type inet:ip-address; "RFC 8029: Detecting Multiprotocol Label
description Switched (MPLS) Data-Plane Failures";
"IP address."; }
} }
leaf group-ip-address { case mpls-mldp {
type inet:ip-address; choice root-address {
description description
"Group IP address."; "Root address choice.";
} case ip-address {
leaf source-address {
type inet:ip-address;
description
"IP address.";
} }
case vpn { leaf group-ip-address {
leaf as-number { type inet:ip-address;
type inet:as-number; description
description "Group IP address.";
}
}
case vpn {
leaf as-number {
type inet:as-number;
description
"The AS number that identifies an Autonomous "The AS number that identifies an Autonomous
System."; System.";
}
} }
case global-id { }
leaf lsp-id { case global-id {
type string; leaf lsp-id {
description type string;
"LSP ID is an identifier of a LSP description
within a MPLS network."; "LSP ID is an identifier of a LSP
reference within a MPLS network.";
"RFC 8029: Detecting Multiprotocol Label reference
Switched (MPLS) Data-Plane Failures"; "RFC 8029: Detecting Multiprotocol Label
} Switched (MPLS) Data-Plane Failures";
} }
} }
} }
} }
}
description
"Test Point Attribute Container.";
}
container system-info {
when "derived-from-or-self(../tp-location-type,"
+ "'cl-oam:router-id-address-type')" {
description description
"Test Point Attribute Container."; "System ID address type.";
} }
container system-info { leaf router-id {
when "derived-from-or-self(../tp-location-type,"+ type rt:router-id;
"'cl-oam:router-id-address-type')" {
description
"System ID address type.";
}
leaf router-id {
type rt:router-id;
description
"Router ID assigned to this node.";
}
description description
"Router ID container."; "Router ID assigned to this node.";
} }
description
"Router ID container.";
}
description description
"TP Address."; "TP Address.";
} }
grouping tp-address-ni { grouping tp-address-ni {
description description
"Test point address with VRF."; "Test point address with VRF.";
leaf ni { leaf ni {
type routing-instance-ref; type routing-instance-ref;
description description
"The ni is used to describe virtual resource partitioning "The ni is used to describe virtual resource partitioning
that may be present on a network device. An example of a that may be present on a network device. An example of a
common industry term for virtual resource partitioning is common industry term for virtual resource partitioning is
'VRF instance'."; 'VRF instance'.";
skipping to change at line 759 skipping to change at line 790
leaf ni { leaf ni {
type routing-instance-ref; type routing-instance-ref;
description description
"The ni is used to describe virtual resource partitioning "The ni is used to describe virtual resource partitioning
that may be present on a network device. An example of a that may be present on a network device. An example of a
common industry term for virtual resource partitioning is common industry term for virtual resource partitioning is
'VRF instance'."; 'VRF instance'.";
} }
uses tp-address; uses tp-address;
} }
grouping connectionless-oam-tps { grouping connectionless-oam-tps {
list oam-neighboring-tps { list oam-neighboring-tps {
key "index"; key "index";
leaf index { leaf index {
type uint16{ type uint16 {
range "0..65535"; range "0..65535";
} }
description description
"Index of a list of neighboring test points "Index of a list of neighboring test points
in layers up and down the stack for in layers up and down the stack for
the same interface that are related to the the same interface that are related to the
current test point."; current test point.";
} }
leaf position { leaf position {
type int8 { type int8 {
range "-1..1"; range "-1..1";
} }
skipping to change at line 921 skipping to change at line 956
uses tp-tools; uses tp-tools;
anydata root { anydata root {
yangmnt:mount-point "root"; yangmnt:mount-point "root";
description description
"Root for models supported per test point."; "Root for models supported per test point.";
} }
uses connectionless-oam-tps; uses connectionless-oam-tps;
description description
"Test point location."; "Test point location.";
} }
grouping test-point-locations { grouping test-point-locations {
description description
"Group of test point locations."; "Group of test point locations.";
leaf tp-location-type { leaf tp-location-type {
type identityref { type identityref {
base tp-address-technology-type; base tp-address-technology-type;
} }
description description
"Test point location type."; "Test point location type.";
} }
container ipv4-location-type { container ipv4-location-type {
when "derived-from-or-self(../tp-location-type,"+ when "derived-from-or-self(../tp-location-type,"
"'cl-oam:ipv4-address-type')" { + "'cl-oam:ipv4-address-type')" {
description description
"When test point location type is equal to IPv4 address."; "When test point location type is equal to IPv4 address.";
} }
container test-point-ipv4-location-list { container test-point-ipv4-location-list {
list test-point-locations { list test-point-locations {
key "ipv4-location ni"; key "ipv4-location ni";
leaf ipv4-location { leaf ipv4-location {
type inet:ipv4-address; type inet:ipv4-address;
description
"IPv4 address.";
}
leaf ni {
type routing-instance-ref;
description
"The ni is used to describe the
corresponding network instance";
}
uses test-point-location-info;
description description
"List of test point locations."; "IPv4 address.";
}
leaf ni {
type routing-instance-ref;
description
"The ni is used to describe the
corresponding network instance";
} }
uses test-point-location-info;
description description
"Serves as top-level container "List of test point locations.";
for test point location list.";
} }
description description
"Container for IPv4 location types."; "Serves as top-level container
for test point location list.";
} }
container ipv6-location-type { description
when "derived-from-or-self(../tp-location-type,"+ "Container for IPv4 location types.";
"'cl-oam:ipv6-address-type')" { }
description container ipv6-location-type {
"When test point location is equal to IPv6 address."; when "derived-from-or-self(../tp-location-type,"
} + "'cl-oam:ipv6-address-type')" {
container test-point-ipv6-location-list { description
list test-point-locations { "When test point location is equal to IPv6 address.";
key "ipv6-location ni"; }
leaf ipv6-location { container test-point-ipv6-location-list {
type inet:ipv6-address; list test-point-locations {
description key "ipv6-location ni";
"IPv6 address."; leaf ipv6-location {
} type inet:ipv6-address;
leaf ni {
type routing-instance-ref;
description
"The ni is used to describe the
corresponding network instance.";
}
uses test-point-location-info;
description description
"List of test point locations."; "IPv6 address.";
}
leaf ni {
type routing-instance-ref;
description
"The ni is used to describe the
corresponding network instance.";
} }
uses test-point-location-info;
description description
"Serves as top-level container "List of test point locations.";
for test point location list.";
} }
description description
"ipv6 location type container."; "Serves as top-level container
for test point location list.";
}
description
"ipv6 location type container.";
}
container mac-location-type {
when "derived-from-or-self(../tp-location-type,"
+ "'cl-oam:mac-address-type')" {
description
"When test point location type is equal to MAC address.";
} }
container mac-location-type {
when "derived-from-or-self(../tp-location-type,"+
"'cl-oam:mac-address-type')" {
description
"When test point location type is equal to MAC address.";
}
container test-point-mac-address-location-list { container test-point-mac-address-location-list {
list test-point-locations { list test-point-locations {
key "mac-address-location"; key "mac-address-location";
leaf mac-address-location { leaf mac-address-location {
type yang:mac-address; type yang:mac-address;
description
"MAC address.";
}
uses test-point-location-info;
description description
"List of test point locations."; "MAC address.";
} }
uses test-point-location-info;
description description
"Serves as top-level container "List of test point locations.";
for test point location list.";
} }
description description
"Container for MAC address location types."; "Serves as top-level container
for test point location list.";
} }
container group-as-number-location-type { description
when "derived-from-or-self(../tp-location-type,"+ "Container for MAC address location types.";
"'cl-oam:as-number-address-type')" { }
description container group-as-number-location-type {
"When test point location type is equal to AS number."; when "derived-from-or-self(../tp-location-type,"
} + "'cl-oam:as-number-address-type')" {
container test-point-as-number-location-list { description
list test-point-locations { "When test point location type is equal to AS number.";
key "as-number-location"; }
leaf as-number-location { container test-point-as-number-location-list {
type inet:as-number; list test-point-locations {
description key "as-number-location";
leaf as-number-location {
type inet:as-number;
description
"AS number for point-to-multipoint OAM."; "AS number for point-to-multipoint OAM.";
} }
leaf ni { leaf ni {
type routing-instance-ref; type routing-instance-ref;
description
"The ni is used to describe the
corresponding network instance.";
}
uses test-point-location-info;
description description
"List of test point locations."; "The ni is used to describe the
corresponding network instance.";
} }
uses test-point-location-info;
description description
"Serves as top-level container "List of test point locations.";
for test point location list.";
} }
description description
"Container for AS number location types."; "Serves as top-level container
for test point location list.";
} }
container group-router-id-location-type { description
when "derived-from-or-self(../tp-location-type,"+ "Container for AS number location types.";
"'cl-oam:router-id-address-type')" { }
description container group-router-id-location-type {
"When test point location type is equal to system-info."; when "derived-from-or-self(../tp-location-type,"
} + "'cl-oam:router-id-address-type')" {
container test-point-system-info-location-list { description
list test-point-locations { "When test point location type is equal to system-info.";
key "router-id-location"; }
leaf router-id-location { container test-point-system-info-location-list {
type rt:router-id; list test-point-locations {
description key "router-id-location";
"System ID."; leaf router-id-location {
} type rt:router-id;
leaf ni {
type routing-instance-ref;
description
"The ni is used to describe the
corresponding network instance.";
}
uses test-point-location-info;
description description
"List of test point locations."; "System ID.";
}
leaf ni {
type routing-instance-ref;
description
"The ni is used to describe the
corresponding network instance.";
} }
uses test-point-location-info;
description description
"Serves as top-level container for "List of test point locations.";
test point location list.";
} }
description description
"Container for system ID location types."; "Serves as top-level container for
test point location list.";
} }
description
"Container for system ID location types.";
}
} }
augment "/nd:networks/nd:network/nd:node" { augment "/nd:networks/nd:network/nd:node" {
description description
"Augments the /networks/network/node path defined in the "Augments the /networks/network/node path defined in the
ietf-network module (RFC 8345) with test-point-locations ietf-network module (RFC 8345) with test-point-locations
grouping."; grouping.";
uses test-point-locations; uses test-point-locations;
} }
grouping timestamp { grouping timestamp {
description description
"Grouping for timestamp."; "Grouping for timestamp.";
leaf timestamp-type { leaf timestamp-type {
type identityref { type identityref {
base lime:timestamp-type; base lime:timestamp-type;
} }
description description
"Type of timestamp, such as Truncated PTP or NTP."; "Type of timestamp, such as Truncated PTP or NTP.";
} }
container timestamp-64bit { container timestamp-64bit {
when when "derived-from-or-self(../timestamp-type, 'lime:truncated-ptp')"
"derived-from-or-self(../timestamp-type, 'lime:truncated-ptp')" + "or derived-from-or-self(../timestamp-type, 'lime:ntp64')" {
+ "or derived-from-or-self(../timestamp-type, 'lime:ntp64')" { description
description "Only applies when PTP truncated or 64-bit NTP timestamp.";
"Only applies when PTP truncated or 64-bit NTP timestamp."; }
}
leaf timestamp-sec { leaf timestamp-sec {
type uint32; type uint32;
description description
"Absolute timestamp in seconds as per IEEE 1588v2 "Absolute timestamp in seconds as per IEEE 1588v2
or seconds part in 64-bit NTP timestamp."; or seconds part in 64-bit NTP timestamp.";
} }
leaf timestamp-nanosec { leaf timestamp-nanosec {
type uint32; type uint32;
description description
"Fractional part in nanoseconds as per IEEE 1588v2 "Fractional part in nanoseconds as per IEEE 1588v2
or fractional part in 64-bit NTP timestamp."; or fractional part in 64-bit NTP timestamp.";
} }
description description
"Container for 64-bit timestamp. The Network Time Protocol "Container for 64-bit timestamp. The Network Time Protocol
(NTP) 64-bit timestamp format is defined in RFC 5905. The (NTP) 64-bit timestamp format is defined in RFC 5905. The
PTP truncated timestamp format is defined in IEEE 1588v1."; PTP truncated timestamp format is defined in IEEE 1588v1.";
reference reference
"RFC 5905: Network Time Protocol Version 4: Protocol and "RFC 5905: Network Time Protocol Version 4: Protocol and
Algorithms Specification Algorithms Specification
IEEE 1588v1: IEEE Standard for a Precision Clock IEEE 1588v1: IEEE Standard for a Precision Clock
Synchronization Protocol for Networked Measurement and Synchronization Protocol for Networked Measurement and
Control Systems Version 1"; Control Systems Version 1";
} }
container timestamp-80bit { container timestamp-80bit {
when "derived-from-or-self(../timestamp-type, 'lime:ptp80')"{ when "derived-from-or-self(../timestamp-type, 'lime:ptp80')" {
description description
"Only applies when 80-bit PTP timestamp."; "Only applies when 80-bit PTP timestamp.";
} }
if-feature ptp-long-format; if-feature "ptp-long-format";
leaf timestamp-sec { leaf timestamp-sec {
type uint64 { type uint64 {
range "0..281474976710655"; range "0..281474976710655";
}
description
"48-bit timestamp in seconds as per IEEE 1588v2.";
} }
description
"48-bit timestamp in seconds as per IEEE 1588v2.";
}
leaf timestamp-nanosec { leaf timestamp-nanosec {
type uint32; type uint32;
description description
"Fractional part in nanoseconds as per IEEE 1588v2."; "Fractional part in nanoseconds as per IEEE 1588v2.";
} }
description description
"Container for 80-bit timestamp."; "Container for 80-bit timestamp.";
} }
container ntp-timestamp-32bit { container ntp-timestamp-32bit {
when "derived-from-or-self(../timestamp-type, 'lime:truncated-ntp')"{ when "derived-from-or-self(../timestamp-type, 'lime:truncated-ntp')" {
description description
"Only applies when 32-bit NTP short-format timestamp."; "Only applies when 32-bit NTP short-format timestamp.";
} }
if-feature ntp-short-format; if-feature "ntp-short-format";
leaf timestamp-sec { leaf timestamp-sec {
type uint16; type uint16;
description description
"Timestamp in seconds as per short-format NTP."; "Timestamp in seconds as per short-format NTP.";
} }
leaf timestamp-nanosec { leaf timestamp-nanosec {
type uint16; type uint16;
description description
"Truncated fractional part in 16-bit NTP timestamp."; "Truncated fractional part in 16-bit NTP timestamp.";
} }
description description
"Container for 32-bit timestamp RFC5905."; "Container for 32-bit timestamp RFC5905.";
reference reference
"RFC 5905: Network Time Protocol Version 4: Protocol and "RFC 5905: Network Time Protocol Version 4: Protocol and
Algorithms Specification."; Algorithms Specification.";
} }
container icmp-timestamp-32bit { container icmp-timestamp-32bit {
when "derived-from-or-self(../timestamp-type, 'lime:icmp')"{ when "derived-from-or-self(../timestamp-type, 'lime:icmp')" {
description description
"Only applies when ICMP timestamp."; "Only applies when ICMP timestamp.";
} }
if-feature icmp-timestamp; if-feature "icmp-timestamp";
leaf timestamp-millisec { leaf timestamp-millisec {
type uint32; type uint32;
description
description "Timestamp in milliseconds for ICMP timestamp.";
"Timestamp in milliseconds for ICMP timestamp."; }
}
description description
"Container for 32-bit timestamp. See RFC 792 for ICMP "Container for 32-bit timestamp. See RFC 792 for ICMP
timestamp format."; timestamp format.";
} }
} }
grouping path-discovery-data { grouping path-discovery-data {
description description
"Data output from nodes related to path discovery."; "Data output from nodes related to path discovery.";
container src-test-point { container src-test-point {
description description
"Source test point."; "Source test point.";
uses tp-address-ni; uses tp-address-ni;
} }
container dest-test-point { container dest-test-point {
description description
skipping to change at line 1206 skipping to change at line 1243
container dest-test-point { container dest-test-point {
description description
"Destination test point."; "Destination test point.";
uses tp-address-ni; uses tp-address-ni;
} }
leaf sequence-number { leaf sequence-number {
type uint64; type uint64;
default "0"; default "0";
description description
"Sequence number in data packets. A value of "Sequence number in data packets. A value of
zero indicates that no sequence number is sent."; zero indicates that no sequence number is sent.";
} }
leaf hop-cnt { leaf hop-cnt {
type uint8; type uint8;
default "0"; default "0";
description description
"Hop count. A value of zero indicates "Hop count. A value of zero indicates
that no hop count is sent."; that no hop count is sent.";
} }
uses session-packet-statistics; uses session-packet-statistics;
uses session-error-statistics; uses session-error-statistics;
uses session-delay-statistics; uses session-delay-statistics;
uses session-jitter-statistics; uses session-jitter-statistics;
container path-verification { container path-verification {
description description
"Optional information related to path verification."; "Optional information related to path verification.";
leaf flow-info { leaf flow-info {
type string; type string;
skipping to change at line 1322 skipping to change at line 1360
default "0"; default "0";
description description
"Hop count. A value of zero indicates "Hop count. A value of zero indicates
that no hop count is sent."; that no hop count is sent.";
} }
uses session-packet-statistics; uses session-packet-statistics;
uses session-error-statistics; uses session-error-statistics;
uses session-delay-statistics; uses session-delay-statistics;
uses session-jitter-statistics; uses session-jitter-statistics;
} }
container cc-session-statistics-data { container cc-session-statistics-data {
if-feature "continuity-check"; if-feature "continuity-check";
config false; config false;
list cc-session-statistics { list cc-session-statistics {
key type; key "type";
leaf type { leaf type {
type identityref { type identityref {
base traffic-type; base traffic-type;
} }
description description
"Type of traffic."; "Type of traffic.";
} }
container cc-ipv4-sessions-statistics { container cc-ipv4-sessions-statistics {
when "../type = 'ipv4'" { when "../type = 'ipv4'" {
description description
"Only applies when traffic type is IPv4."; "Only applies when traffic type is IPv4.";
} }
description description
"CC ipv4 sessions."; "CC ipv4 sessions.";
uses cc-session-statistics; uses cc-session-statistics;
} }
container cc-ipv6-sessions-statistics { container cc-ipv6-sessions-statistics {
when "../type = 'ipv6'" { when "../type = 'ipv6'" {
description description
"Only applies when traffic type is IPv6."; "Only applies when traffic type is IPv6.";
} }
description description
"CC IPv6 sessions."; "CC IPv6 sessions.";
uses cc-session-statistics; uses cc-session-statistics;
}
description
"List of CC session statistics data.";
} }
description
"List of CC session statistics data.";
}
description description
"CC operational information."; "CC operational information.";
} }
} }
 End of changes. 141 change blocks. 
426 lines changed or deleted 459 lines changed or added

This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/