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/ |