Generic YANG Data Model for Connection-Oriented Operations, Administration, and Maintenance (OAM) Protocols
Extracted elements (24)
Four YANG features gate optional capabilities: 'continuity-check', 'connectivity-verification', 'traceroute', and 'mip'. Servers that do not advertise a feature will not support the corresponding RPC or explicit MIP configuration. This allows implementations to limit support to only the applicable subset of OAM functions.
MEP-ID is set to zero in Base Mode because automatic derivation from the IP address is infeasible (the MEP-ID field is much smaller). Zero was chosen as a reserved, automatically assigned value that requires no user intervention, enabling the zero-touch experience.
The 'connectivity-context', 'monitor-stats', 'mep-address', 'mip-address', and 'defect-message' groupings are all defined as choice/case constructs with a null default case. This pattern provides stable augmentation anchor points without forcing technology-specific data into the base model, enabling independent evolution of technology modules.
The generic connection-oriented OAM YANG model is based on the CFM (IEEE 802.1Q) framework because of its wide adoption across Ethernet, MPLS-TP, TRILL, and MEF OAM. The model abstracts CFM constructs into a technology-independent framework extensible by technology-specific augmentations, keeping each model smaller and enabling independent development.
The model uses a three-level hierarchy (Maintenance Domain → Maintenance Association → Maintenance End Point) mirroring CFM, with choice/case constructs for names and identifiers so technology-specific YANG modules can augment them without redefining the structure. This provides uniformity while retaining extensibility.
MPLS-TP MEP-ID can be a variable-length label (G-ACH encapsulation) or a 2-octet unsigned integer (IP/UDP encapsulation). The base model's choice/case int32 definition for MEP-ID accommodates the MPLS-TP case without modification, but MPLS-TP-specific session and interface extensions are added via augmentation.
The YANG module is designed for extension by technology-specific models (e.g., TRILL OAM, MPLS-TP OAM). Technology-specific modules augment anchor points in the base model: MD, MA, and MEP configuration nodes, as well as RPC inputs/outputs. TRILL adds RBridge nickname as a MEP address option and flow-entropy (96-octet field) for ECMP; MPLS-TP adds technology-sub-type (IP/UDP vs PW-ACH encapsulation) at the MA level.
Base Mode MUST be present in all compliant devices as the default configuration enabling a zero-touch experience. The Maintenance Domain Name MUST be the character string 'GenericBaseMode', the Short MA Name format MUST be 2-octet integer (value 3 per IEEE 802.1Q), and the Short MA name MUST be set to 65532 (0xFFFC).
In Base Mode, CCM MUST NOT be used; therefore, CCM MUST be disabled on the Maintenance Association of the Base Mode. If CCM is required, users MUST configure a separate Maintenance Association and assign unique MEP ID values (non-zero).
MEP-ID value 0 is reserved for Base Mode operation and MUST NOT be used for other purposes. The document proposes extending the CFM MEP-ID range from 1..8191 to 0..65535, with 0 reserved for Base Mode.
Maintenance End Points (MEPs) are represented as a list within each MA, keyed by 'mep-name' (string). Each MEP has 'mep-id' (choice: integer int32 by default), 'mep-id-format' (identityref), 'mep-address' (choice: mac-address or ip-address, defaulting to ip-address), 'cos-id', 'cc-enable', and a 'session' list.
The 'continuity-check' RPC (gated by feature 'continuity-check') takes as input: md-name-string (mandatory leafref), ma-name-string (mandatory leafref), optional md-level, cos-id, ttl, sub-type, source-mep, destination-mep, count (default 3), cc-transmit-interval (time-interval in ms), and packet-size (uint32, range 64..10000 octets). Output uses the monitor-stats grouping.
The 'continuity-verification' RPC (gated by feature 'connectivity-verification') mirrors continuity-check but uses 'interval' instead of 'cc-transmit-interval', and verifies not only reachability but also that MEPs are connected through the expected path. Count defaults to 3, packet-size range is 64..10000 octets.
The 'mip' list (guarded by the 'mip' feature) within each MA is keyed by 'name' (string) and contains 'interface' (interface-ref) and 'mip-address' (choice: mac-address or ip-address, defaulting to ip-address). MIPs are optionally explicitly configured.
The module defines identity hierarchies for: 'technology-types' (base for TRILL, MPLS-TP, etc.); 'command-sub-type' with derived identities 'on-demand' and 'proactive'; 'name-format' with 'name-format-null'; 'identifier-format' with 'identifier-format-integer'; and 'defect-types' with derived identities rdi, remote-mep-defect, loss-of-continuity, cv-defect, invalid-oam-defect, and cross-connect-defect.
The 'session' list within a MEP, keyed by 'session-cookie' (uint32), represents a monitoring session to/from a remote MEP. It contains 'destination-mep' (mep-id), 'destination-mep-address' (mep-address choice), and 'cos-id'. Multiple sessions to the same remote MEP are distinguished by the session-cookie.
The 'time-interval' typedef is a decimal64 with 2 fraction-digits in units of milliseconds; a value of 0 means no packets are sent. The 'md-level' typedef is a uint32 with range 0..255, extending the CFM range to support additional protocol layers.
The top-level container is 'domains', which holds a list of Maintenance Domains (MDs) keyed by 'technology' (identityref) and 'md-name-string'. Each MD has an optional 'md-level' (uint32, range 0..255), a 'md-name-format' (identityref), and a 'md-name' choice node for technology-specific name formats.
The 'traceroute' RPC (gated by feature 'traceroute') starts with TTL of 1 and increments by 1 per hop until the destination is reached or TTL reaches max. Input includes count (default 1, representing probes per TTL), interval, and destination-mep. Output is a list of 'response' entries keyed by 'response-index' (uint8) containing TTL, destination-mep, optional MIP, and monitor-stats.
Two notifications are defined: 'defect-condition-notification' (sent when a defect condition is detected) and 'defect-cleared-notification' (sent when cleared). Both carry technology, md-name-string (mandatory), ma-name-string (mandatory), mep-name, defect-type (identityref), generating-mepid (mep-id grouping), and a defect message choice (defect-null or defect-code int32).
Within each Maintenance Domain, the 'mas' container holds a list of Maintenance Associations (MAs) keyed by 'ma-name-string'. Each MA has 'ma-name-format', 'connectivity-context' (extensible choice), 'cos-id' (uint8), 'cc-enable' (boolean), and contains lists of MEPs and optionally MIPs.
This document registers the URI 'urn:ietf:params:xml:ns:yang:ietf-connection-oriented-oam' in the IETF XML Registry (RFC 3688), and registers the YANG module named 'ietf-connection-oriented-oam' with prefix 'co-oam' in the YANG Module Names registry (RFC 6020).
The module is accessed via NETCONF (mandatory secure transport: SSH per RFC 6242) or RESTCONF (mandatory secure transport: TLS per RFC 8446). Access control MUST be enforced using NACM (RFC 8341) to restrict write operations to authorized users. Unauthorized write access to the domain, MA, MEP, and session data nodes can cause inconsistent OAM configuration and network management failures.
The sensitive writable subtrees are: /co-oam:domains/domain/, /co-oam:domains/domain/mas/ma, /co-oam:domains/domain/mas/ma/mep, and /co-oam:domains/domain/mas/ma/mep/session. Unauthorized access to these nodes adversely affects end-to-end OAM management and inter-layer OAM coordination.