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