Generic YANG Data Model for the Management of Operations, Administration, and Maintenance (OAM) Protocols That Use Connectionless Communications
Extracted elements (26)
No fields in 'path-discovery-data' or 'continuity-check-data' groupings are made mandatory, so the same generic grouping can serve multiple data retrieval methods (RPC, proactive, on-demand) defined in RFC 8533 without requiring all fields to be populated in every context.
Only one measurement protocol is specified for delay (default: OWAMP, one-way) and one method for jitter (default: IPDV per RFC 3393) for interoperability reasons; if an alternative is used, it is indicated via protocol-id in the RFC 8533 RPC rather than in this base model.
The model is split into two YANG modules—'ietf-lime-time-types' (time/timestamp definitions) and 'ietf-connectionless-oam' (the full model)—so that other LIME data models can import common time types independently without importing the full OAM schema, enabling reuse across the LIME suite.
The 'tp-address-ni' grouping separates the VRF/network-instance reference ('ni' leaf) from 'test-point-location-info' to keep the base grouping addressing-agnostic; the ni leaf is composed separately into each location-type container only where required.
RFC 7276 classifies BFD as connection-oriented, yet the module's extension examples show BFD managed via the connectionless OAM model as an alternative to the dedicated BFD YANG model, providing a unified OAM management view. Technology-specific groupings from the BFD YANG model can be reused in augmentations to avoid duplication.
Two extension methods are supported for adding technology-specific OAM to the base model: (1) YANG augmentation at defined anchor points (technology choice, test-point-locations list, or location-type choice), and (2) schema mount (RFC 8528) via the 'root' anydata mount point in 'test-point-location-info'. The schema mount method cannot mandate which specific modules must be mounted.
Both 'continuity-check' and 'path-discovery' boolean leaves in the 'tp-tools' container are declared 'mandatory true', requiring implementations to explicitly declare capability support for both OAM functions at every configured test point.
The 'tp-location-type' leaf in the 'tp-address' grouping is declared 'mandatory true', requiring every Test Point address entry to explicitly specify its address technology type from the 'tp-address-technology-type' identity hierarchy.
The 'connectionless-oam-tps' grouping defines the 'oam-neighboring-tps' list (key: index uint16) with a 'position' leaf (int8, range -1..1, default 0) encoding the relative stack position of a neighboring test point: -1 means below, 0 means same layer, +1 means above the current test point.
The 'continuity-check-data' grouping models ping-like output: src-test-point (with egress-intf-name), dest-test-point (with ingress-intf-name), sequence-number (uint64), hop-cnt (uint8), and reused packet/error/delay/jitter statistics groupings.
The 'ietf-connectionless-oam' YANG module (namespace: urn:ietf:params:xml:ns:yang:ietf-connectionless-oam) is the primary base model for connectionless OAM. It augments the '/networks/network/node' path from 'ietf-network' (RFC 8345) with the 'test-point-locations' grouping, and provides configuration and state data only (no RPCs; RPCs are in RFC 8533).
The 'ietf-lime-time-types' YANG module (namespace: urn:ietf:params:xml:ns:yang:ietf-lime-time-types) defines shared time-unit-type identities (hours, minutes, seconds, milliseconds, microseconds, nanoseconds) and timestamp-type identities (truncated-ptp, truncated-ntp, ntp64, icmp, ptp80) used across LIME OAM data models.
The 'path-discovery-data' grouping models traceroute-like output: src-test-point and dest-test-point (using tp-address-ni), sequence-number (uint64, default 0), hop-cnt (uint8, default 0), packet/error/delay/jitter statistics, a path-verification container, and a 'path-trace-info-list' with per-hop data including timestamp, ingress/egress interface names, queue-depth (uint32), transit-delay (uint32 nanoseconds), and app-meta-data (uint64).
The 'session-delay-statistics' grouping provides min-delay-value, max-delay-value, and average-delay-value (each uint32) with a configurable 'time-unit-value' identityref (defaulting to lime:milliseconds).
The 'session-error-statistics' grouping tracks per-session error metrics: packet-loss-count (uint32), loss-ratio (decimal64, 5 fraction digits, 0..100 percent), packet-reorder-count (uint32), packets-out-of-seq-count (uint32), and packets-dup-count (uint32).
The 'session-jitter-statistics' grouping provides min-jitter-value, max-jitter-value, and average-jitter-value (each uint32) with a configurable 'unit-value' identityref (defaulting to lime:milliseconds).
The 'session-packet-statistics' grouping tracks four monotonically-increasing uint32 counters (wrapping at 2^32-1) per session: rx-packet-count, tx-packet-count, rx-bad-packet, and tx-packet-failed, all defaulting to 0.
The 'session-type' grouping defines an enumerated leaf ('proactive' or 'on-demand', default 'on-demand') indicating the OAM activation mode. Proactive requires persistent configuration and runs continuously; on-demand requires only transient configuration for limited-time diagnostics.
The 'test-point-location-info' grouping is the common sub-structure for every test-point-locations list entry, composed of 'tp-technology' (technology choice, default technology-null), 'tp-tools' (CC and path-discovery flags), an 'anydata root' YANG schema mount point (RFC 8528), and 'connectionless-oam-tps' (neighboring TPs).
The 'test-point-locations' grouping under each network node provides five location-type containers: IPv4 (key: ipv4-location + ni), IPv6 (key: ipv6-location + ni), MAC address, AS number, and router-id. Each contains a list of test-point-location-info entries plus an optional routing-instance-ref (VRF/NI reference).
The top-level 'cc-session-statistics-data' container (state-only, conditional on 'continuity-check' feature) holds a 'cc-session-statistics' list keyed by traffic-type (IPv4 or IPv6) with per-type session-count, session-up-count, session-down-count, and session-admin-down-count (all uint32, default 0).
The 'tp-address' grouping defines Test Point addressing with six mutually-exclusive types selected by a mandatory 'tp-location-type' identityref: MAC address, IPv4 address, IPv6 address, TP attribute (covering IP prefix, BGP prefix, tunnel ID, PW ID, VPLS VE ID, MPLS mLDP), router-id, and AS number.
The 'tp-tools' container holds two mandatory boolean leaves: 'continuity-check' (whether CC/ping is supported at this test point) and 'path-discovery' (whether traceroute-style path discovery is supported). These act as capability flags and constraint anchors when the base model is extended.
This document registers two YANG modules in the 'IETF YANG Module Names' registry: 'ietf-lime-time-types' (prefix: lime, namespace: urn:ietf:params:xml:ns:yang:ietf-lime-time-types) and 'ietf-connectionless-oam' (prefix: cl-oam, namespace: urn:ietf:params:xml:ns:yang:ietf-connectionless-oam).
The 'ietf-connectionless-oam' module defines writable configuration nodes (test-point-locations, tp-tools, oam-neighboring-tps, session-type, etc.) whose unauthorized modification could disrupt OAM monitoring and affect network operations. Readable state nodes (cc-session-statistics-data) may reveal topology or traffic information. Implementations must enforce access control consistent with RFC 6536 (NETCONF Access Control Model).
The 'timestamp' grouping models four on-wire formats selected by 'timestamp-type': 64-bit (timestamp-sec uint32 + timestamp-nanosec uint32, for PTP truncated or NTP64); 80-bit PTP (timestamp-sec uint64 range 0..281474976710655 + timestamp-nanosec uint32, guarded by 'ptp-long-format' feature); 32-bit NTP short (timestamp-sec uint16 + timestamp-nanosec uint16, guarded by 'ntp-short-format' feature); 32-bit ICMP (timestamp-millisec uint32, guarded by 'icmp-timestamp' feature).