Network Working Group Z. Wang Internet-Draft Q. Wu Intended status: Standards Track Huawei Expires: April 29, 2015 October 26, 2014 Additional RPC definitions to Generic YANG Data Model for layer Independent OAM Management draft-wang-lime-rpc-yang-oam-management-00 Abstract [I-D.tissa-lime-yang-oam-model] defines a Generic YANG data model for Layer independent OAM Management. This document proposes additional extension to this YANG module which is complementary to the one defined in the [I-D.tissa-lime-yang-oam-model] and describes the abstract notification and rpc command for Unified Management Plane OAM to be used within IETF in a layer independent manner. The abstract notification and rpc command described in this document can be applied to various network technologies and includes technology independent configuration data and state data. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on April 29, 2015. Copyright Notice Copyright (c) 2014 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents Wang & Wu Expires April 29, 2015 [Page 1] Internet-Draft Layer Independent OAM Management October 2014 carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Conventions and Terminology . . . . . . . . . . . . . . . . . 2 2.1. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 3 3. Overview of the abstract Notification and RPC command . . . . 4 3.1. Notification Definition . . . . . . . . . . . . . . . . . 4 3.2. Abstract CC Command Rpc . . . . . . . . . . . . . . . . . 4 3.3. Abstract CV Command Rpc . . . . . . . . . . . . . . . . . 6 3.4. Abstract Path Discovery Command Rpc . . . . . . . . . . . 7 3.5. Abstract Performance Measurement Command Rpc . . . . . . 9 4. OAM data hierarchy for Abstract Notification and rpc command 10 5. OAM YANG Module . . . . . . . . . . . . . . . . . . . . . . . 15 6. Security Considerations . . . . . . . . . . . . . . . . . . . 31 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 31 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 31 8.1. Normative References . . . . . . . . . . . . . . . . . . 31 8.2. Informative References . . . . . . . . . . . . . . . . . 31 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 31 1. Introduction [I-D.tissa-lime-yang-oam-model] defines a YANG [RFC6020] data model for Layer independent OAM Management implementations that can be applied to various network technologies. This YANG module describes the abstract common core configuration, statistics for Unified Management Plane OAM to be used within IETF in a layer independent manner.This document describes the abstract notification and rpc command which is complementary to the one defined in the [I-D.tissa- lime-yang-oam-model] . The abstract notification and rpc command includes technology independent configuration data and state data. 2. Conventions and Terminology The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119]. The following terms are defined in [RFC6241] and are not redefined here: o client Wang & Wu Expires April 29, 2015 [Page 2] Internet-Draft Layer Independent OAM Management October 2014 o configuration data o server o state data The following terms are defined in [RFC6020] and are not redefined here: o augment o data model o data node The terminology for describing YANG data models is found in [RFC6020]. 2.1. Tree Diagrams A simplified graphical representation of the data model is used in this document. The meaning of the symbols in these diagrams is as follows: Each node is printed as: is one of: + for current x for deprecated o for obsolete is one of: rw for configuration data ro for non-configuration data -x for rpcs -n for notifications is the name of the node If the node is augmented into the tree from another module, its name is printed as :. Wang & Wu Expires April 29, 2015 [Page 3] Internet-Draft Layer Independent OAM Management October 2014 is one of: ? for an optional leaf or choice ! for a presence container * for a leaf-list or list [] for a list's keys is the name of the type for leafs and leaf-lists 3. Overview of the abstract Notification and RPC command [I-D.tissa-lime-yang-oam-model] defines a Generic YANG data model for Layer independent OAM Management.This data model aims to address the problems associated with existing OAM technology deployment described in [I-D.edprop-opsawg-multi- layer- oam] and adopts both IEEE CFM model and Y.1731 model and structures it such that it can be adapted to different technologies. rpc commands,in YANG terms are used between the interface between management plane and data plane. This document defines abstract notification and rpc commands providing uniform APIs for common OAM function defined in section 3 of [RFC7276], e.g.,CC, CV, Path Discovery, Performance measurement. 3.1. Notification Definition This notification is sent whenever the operational status of MEG is changed. notifications: +--n defect-condition-notification +--ro technology identityref +--ro md-name string +--ro md-level? uint32 +--ro ma-name string +--ro mep-id? MEP-id +--ro remote-mepid? MEP-id +--ro oper-status uint32 +--ro sub-oper-status uint32 Snippet of data hierarchy related to Management OAM domains 3.2. Abstract CC Command Rpc Rpc model defined here abstracts OAM specific commands in a technology independent manner. Here is rpc model for Continuity Check(CC) command. Wang & Wu Expires April 29, 2015 [Page 4] Internet-Draft Layer Independent OAM Management October 2014 rpcs: +--x contiuity-check | +--ro input | | +--ro technology identityref | | +--ro md-level uint32 | | +--ro md-name? string | | +--ro ma-name string | | +--ro (context-id)? | | | +--:(context-null) | | | +--ro context-null? empty | | +--ro source-mep* [mep-id,mep-addr] | | | +--ro (mep-addr)? | | | | +--:(mac-address) | | | | | +--ro mac-address? yang:mac-address | | | | +--:(ipv4-address) | | | | | +--ro ipv4-address? inet:ipv4-address | | | | +--:(ipv6-address) | | | | +--ro ipv6-address? inet:ipv6-address | | | +--ro mep-id? MEP-id | | +--ro destination-mep* [mep-id,dest-mep-addr] | | | +--ro (mep-addr)? | | | | +--:(mac-address) | | | | | +--ro mac-address? yang:mac-address | | | | +--:(ipv4-address) | | | | | +--ro ipv4-address? inet:ipv4-address | | | | +--:(ipv6-address) | | | | +--ro ipv6-address? inet:ipv6-address | | | +--ro mep-id? MEP-id | | +--ro outgoing-interfaces* [interface] | | +--ro interface if:interface-ref | +--ro output | +--ro md-name? string | +--ro ma-name? string | +--ro md-level? uint32 | +--ro technology identityref | +--ro source-mep* [mep-id,source-mep-addr] | | +--ro (source-mep-addr)? | | | +--:(mac-address) | | | | +--ro mac-address? yang:mac-address | | | +--:(ipv4-address) | | | | +--ro ipv4-address? inet:ipv4-address | | | +--:(ipv6-address) | | | +--ro ipv6-address? inet:ipv6-address | | +--ro mep-id? MEP-id | +--ro destination-mep* [mep-id,dest-mep-addr] | | +--ro (destination-mep-addr)? | | | +--:(mac-address) Wang & Wu Expires April 29, 2015 [Page 5] Internet-Draft Layer Independent OAM Management October 2014 | | | | +--ro mac-address? yang:mac-address | | | +--:(ipv4-address) | | | | +--ro ipv4-address? inet:ipv4-address | | | +--:(ipv6-address) | | | +--ro ipv6-address? inet:ipv6-address | | +--ro mep-id? MEP-id | +--ro maintenance-stats | +--:(maintenance-null) | +--ro maintenance-null? Empty Snippet of data hierarchy related to CC 3.3. Abstract CV Command Rpc Rpc model defined here abstracts OAM specific commands in a technology independent manner. Here is rpc model for Connectivity Verification (CV) command. rpcs: +--x connectity-verification | +--ro input | | +--ro technology identityref | | +--ro md-level uint32 | | +--ro md-name? string | | +--ro ma-name string | | +--ro (context-id)? | | | +--:(context-null) | | | +--ro context-null? empty | | +--ro source-mep* [mep-id,mep-addr] | | | +--ro (mep-addr)? | | | | +--:(mac-address) | | | | | +--ro mac-address? yang:mac-address | | | | +--:(ipv4-address) | | | | | +--ro ipv4-address? inet:ipv4-address | | | | +--:(ipv6-address) | | | | +--ro ipv6-address? inet:ipv6-address | | | +--ro mep-id? MEP-id | | +--ro destination-mep* [mep-id,dest-mep-addr] | | | +--ro (mep-addr)? | | | | +--:(mac-address) | | | | | +--ro mac-address? yang:mac-address | | | | +--:(ipv4-address) | | | | | +--ro ipv4-address? inet:ipv4-address | | | | +--:(ipv6-address) | | | | +--ro ipv6-address? inet:ipv6-address | | | +--ro mep-id? MEP-id Wang & Wu Expires April 29, 2015 [Page 6] Internet-Draft Layer Independent OAM Management October 2014 | | +--ro outgoing-interfaces* [interface] | | +--ro interface if:interface-ref | +--ro output | | +--ro technology identityref | | +--ro md-level uint32 | | +--ro md-name? string | | +--ro ma-name string | +--ro source-mep* [mep-id,source-mep-addr] | | +--ro (source-mep-addr)? | | | +--:(mac-address) | | | | +--ro mac-address? yang:mac-address | | | +--:(ipv4-address) | | | | +--ro ipv4-address? inet:ipv4-address | | | +--:(ipv6-address) | | | +--ro ipv6-address? inet:ipv6-address | | +--ro mep-id? MEP-id | +--ro destination-mep* [mep-id,dest-mep-addr] | | +--ro (destination-mep-addr)? | | | +--:(mac-address) | | | | +--ro mac-address? yang:mac-address | | | +--:(ipv4-address) | | | | +--ro ipv4-address? inet:ipv4-address | | | +--:(ipv6-address) | | | +--ro ipv6-address? inet:ipv6-address | | +--ro mep-id? MEP-id | +--ro maintenance-stats | +--:(maintenance-null) | +--ro maintenance-null? Empty Snippet of data hierarchy related to CV 3.4. Abstract Path Discovery Command Rpc Rpc model defined here abstracts OAM specific commands in a technology independent manner. Here is rpc model for Path Discovery command. rpcs: +--x path-discovery | +--ro input | | +--ro technology identityref | | +--ro md-level uint32 | | +--ro md-name? string | | +--ro ma-name string | | +--ro (context-id)? | | | +--:(context-null) | | | +--ro context-null? empty Wang & Wu Expires April 29, 2015 [Page 7] Internet-Draft Layer Independent OAM Management October 2014 | | +--ro source-mep* [mep-id,source-mep-addr] | | | +--ro (source-mep-addr)? MEP-id | | | | +--:(mac-address) | | | | | +--ro mac-address? yang:mac-address | | | | +--:(ipv4-address) | | | | | +--ro ipv4-address? inet:ipv4-address | | | | +--:(ipv6-address) | | | | +--ro ipv6-address? inet:ipv6-address | | | +--ro mep-id? MEP-id | | +--ro destination-mep* [mep-id,dest-mep-addr] | | | +--ro (destination-mep-addr)? MEP-id | | | | +--:(mac-address) | | | | | +--ro mac-address? yang:mac-address | | | | +--:(ipv4-address) | | | | | +--ro ipv4-address? inet:ipv4-address | | | | +--:(ipv6-address) | | | | +--ro ipv6-address? inet:ipv6-address | | | +--ro mep-id? MEP-id | | +--ro outgoing-interfaces* [interface] | | +--ro interface if:interface-ref | +--ro output | +--ro response* [mep-id] | | +--ro md-name? string | | +--ro ma-name string | | +--ro md-level uint32 | +--ro source-mep* [mep-id,source-mep-addr] | | +--ro (source-mep-addr)? MEP-id | | | +--:(mac-address) | | | | +--ro mac-address? yang:mac-address | | | +--:(ipv4-address) | | | | +--ro ipv4-address? inet:ipv4-address | | | +--:(ipv6-address) | | | +--ro ipv6-address? inet:ipv6-address | | +--ro mep-id? MEP-id | +--ro destination-mep* [mep-id,dest-mep-addr] | | +--ro (destination-mep-addr)? MEP-id | | | +--:(mac-address) | | | | +--ro mac-address? yang:mac-address | | | +--:(ipv4-address) | | | | +--ro ipv4-address? inet:ipv4-address | | | +--:(ipv6-address) | | | +--ro ipv6-address? inet:ipv6-address | | +--ro mep-id? MEP-id | +--ro maintenance-stats | +--:(maintenance-null) | +--ro maintenance-null? Empty Snippet of data hierarchy related to Path Discovery Wang & Wu Expires April 29, 2015 [Page 8] Internet-Draft Layer Independent OAM Management October 2014 3.5. Abstract Performance Measurement Command Rpc Rpc model defined here abstracts OAM specific commands in a technology independent manner. Here is rpc model for performance measurement command. rpcs: +--x performance-measurement | +--ro input | | +--ro technology identityref | | +--ro md-level uint32 | | +--ro md-name? string | | +--ro ma-name string | | +--ro (context-id)? | | | +--:(context-null) | | | +--ro context-null? empty | | +--ro source-mep* [mep-id,source-mep-addr] | | | +--ro (source-mep-addr)? | | | | +--:(mac-address) | | | | | +--ro mac-address? yang:mac-address | | | | +--:(ipv4-address) | | | | | +--ro ipv4-address? inet:ipv4-address | | | | +--:(ipv6-address) | | | | +--ro ipv6-address? inet:ipv6-address | | | +--ro mep-id? MEP-id | | +--ro destination-mep* [mep-id,destination-mep-addr] | | | +--ro (destination-mep-addr)? | | | | +--:(mac-address) | | | | | +--ro mac-address? yang:mac-address | | | | +--:(ipv4-address) | | | | | +--ro ipv4-address? inet:ipv4-address | | | | +--:(ipv6-address) | | | | +--ro ipv6-address? inet:ipv6-address | | | +--ro mep-id? MEP-id | | +--ro outgoing-interfaces* [interface] | | +--ro interface if:interface-ref | +--ro output | | +--ro md-level uint32 | | +--ro md-name? string | | +--ro ma-name string | +--ro response* | +--ro source-mep* [mep-id,source-mep-addr] | | +--ro (source-mep-addr)? | | | +--:(mac-address) | | | | +--ro mac-address? yang:mac-address | | | +--:(ipv4-address) | | | | +--ro ipv4-address? inet:ipv4-address | | | +--:(ipv6-address) Wang & Wu Expires April 29, 2015 [Page 9] Internet-Draft Layer Independent OAM Management October 2014 | | | +--ro ipv6-address? inet:ipv6-address | | +--ro mep-id? MEP-id | +--ro destination-mep* [mep-id,destination-mep-addr] | | +--ro (destination-mep-addr)? | | | +--:(mac-address) | | | | +--ro mac-address? yang:mac-address | | | +--:(ipv4-address) | | | | +--ro ipv4-address? inet:ipv4-address | | | +--:(ipv6-address) | | | +--ro ipv6-address? inet:ipv6-address | | +--ro mep-id? MEP-id | +--ro maintenance-stats | +--:(maintenance-null) | +--ro maintenance-null? Empty Snippet of data hierarchy related to Performance Measurement 4. OAM data hierarchy for Abstract Notification and rpc command The complete data hierarchy related to the abstract notification and rpc comand is presented below. module: gen-oam (defined in [I-D.tissa-lime-yang-oam-model]) +--rw domains +--rw domain* [md-name technology] +--rw technology identityref +--rw md-name-format MD-name-format +--rw md-name binary +--rw md-level int32 +--rw MAs! . . . . //the abstract rpc command and notification are defined in this document Please view in a fixed-width font such as Courier. notifications: +--n defect-condition-notification +--ro technology identityref +--ro md-name string +--ro md-level? uint32 +--ro ma-name string +--ro mep-id? MEP-id +--ro remote-mepid? MEP-id +--ro oper-status uint32 +--ro sub-oper-status uint32 Wang & Wu Expires April 29, 2015 [Page 10] Internet-Draft Layer Independent OAM Management October 2014 +--x contiuity-check | +--ro input | | +--ro technology identityref | | +--ro md-level uint32 | | +--ro md-name? string | | +--ro ma-name string | | +--ro (context-id)? | | | +--:(context-null) | | | +--ro context-null? empty | | +--ro source-mep* [mep-id,mep-addr] | | | +--ro (mep-addr)? | | | | +--:(mac-address) | | | | | +--ro mac-address? yang:mac-address | | | | +--:(ipv4-address) | | | | | +--ro ipv4-address? inet:ipv4-address | | | | +--:(ipv6-address) | | | | +--ro ipv6-address? inet:ipv6-address | | | +--ro mep-id? MEP-id | | +--ro destination-mep* [mep-id,destination-mep-addr] | | | +--ro (mep-addr)? | | | | +--:(mac-address) | | | | | +--ro mac-address? yang:mac-address | | | | +--:(ipv4-address) | | | | | +--ro ipv4-address? inet:ipv4-address | | | | +--:(ipv6-address) | | | | +--ro ipv6-address? inet:ipv6-address | | | +--ro mep-id? MEP-id | | +--ro outgoing-interfaces* [interface] | | +--ro interface if:interface-ref | +--ro output | | +--ro md-level uint32 | | +--ro md-name? string | | +--ro ma-name string | +--ro source-mep* [mep-id,source-mep-addr] | | +--ro (source-mep-addr)? | | | +--:(mac-address) | | | | +--ro mac-address? yang:mac-address | | | +--:(ipv4-address) | | | | +--ro ipv4-address? inet:ipv4-address | | | +--:(ipv6-address) | | | +--ro ipv6-address? inet:ipv6-address | | +--ro mep-id? MEP-id | +--ro destination-mep* [mep-id,destination-mep-addr] | | +--ro (destination-mep-addr)? | | | +--:(mac-address) | | | | +--ro mac-address? yang:mac-address | | | +--:(ipv4-address) | | | | +--ro ipv4-address? inet:ipv4-address Wang & Wu Expires April 29, 2015 [Page 11] Internet-Draft Layer Independent OAM Management October 2014 | | | +--:(ipv6-address) | | | +--ro ipv6-address? inet:ipv6-address | | +--ro mep-id? MEP-id | +--ro maintenance-stats | +--:(maintenance-null) | +--ro maintenance-null? Empty +--x connectity-verification | +--ro input | | +--ro technology identityref | | +--ro md-level uint32 | | +--ro md-name? string | | +--ro ma-name string | | +--ro (context-id)? | | | +--:(context-null) | | | +--ro context-null? empty | | +--ro source-mep* [mep-id,source-mep-addr] | | | +--ro (source-mep-addr)? | | | | +--:(mac-address) | | | | | +--ro mac-address? yang:mac-address | | | | +--:(ipv4-address) | | | | | +--ro ipv4-address? inet:ipv4-address | | | | +--:(ipv6-address) | | | | +--ro ipv6-address? inet:ipv6-address | | | +--ro mep-id? MEP-id | | +--ro destination-mep* [mep-id,destination-mep-addr] | | | +--ro (destination-mep-addr)? | | | | +--:(mac-address) | | | | | +--ro mac-address? yang:mac-address | | | | +--:(ipv4-address) | | | | | +--ro ipv4-address? inet:ipv4-address | | | | +--:(ipv6-address) | | | | +--ro ipv6-address? inet:ipv6-address | | | +--ro mep-id? MEP-id | | +--ro outgoing-interfaces* [interface] | | +--ro interface if:interface-ref | +--ro output | | +--ro md-level uint32 | | +--ro md-name? string | | +--ro ma-name string | +--ro source-mep* [mep-id,source-mep-addr] | | +--ro (source-mep-addr)? | | | +--:(mac-address) | | | | +--ro mac-address? yang:mac-address | | | +--:(ipv4-address) | | | | +--ro ipv4-address? inet:ipv4-address | | | +--:(ipv6-address) | | | +--ro ipv6-address? inet:ipv6-address | | +--ro mep-id? MEP-id Wang & Wu Expires April 29, 2015 [Page 12] Internet-Draft Layer Independent OAM Management October 2014 | +--ro destination-mep* [mep-id,dest-mep-addr] | | +--ro (destination-mep-addr)? | | | +--:(mac-address) | | | | +--ro mac-address? yang:mac-address | | | +--:(ipv4-address) | | | | +--ro ipv4-address? inet:ipv4-address | | | +--:(ipv6-address) | | | +--ro ipv6-address? inet:ipv6-address | | +--ro mep-id? MEP-id | +--ro maintenance-stats | +--:(maintenance-null) | +--ro maintenance-null? Empty +--x path-discovery | +--ro input | | +--ro technology identityref | | +--ro md-level uint32 | | +--ro md-name? string | | +--ro ma-name string | | +--ro (context-id)? | | | +--:(context-null) | | | +--ro context-null? empty | | +--ro source-mep* [mep-id,source-mep-addr] | | | +--ro (source-mep-addr)? MEP-id | | | | +--:(mac-address) | | | | | +--ro mac-address? yang:mac-address | | | | +--:(ipv4-address) | | | | | +--ro ipv4-address? inet:ipv4-address | | | | +--:(ipv6-address) | | | | +--ro ipv6-address? inet:ipv6-address | | | +--ro mep-id? MEP-id | | +--ro destination-mep* [mep-id,dest-mep-addr] | | | +--ro (destination-mep-addr)? MEP-id | | | | +--:(mac-address) | | | | | +--ro mac-address? yang:mac-address | | | | +--:(ipv4-address) | | | | | +--ro ipv4-address? inet:ipv4-address | | | | +--:(ipv6-address) | | | | +--ro ipv6-address? inet:ipv6-address | | | +--ro mep-id? MEP-id | | +--ro outgoing-interfaces* [interface] | | +--ro interface if:interface-ref | +--ro output | +--ro response* [mep-id] | | +--ro md-level uint32 | | +--ro md-name? string | | +--ro ma-name string | +--ro source-mep* [mep-id,source-mep-addr] | | +--ro (source-mep-addr)? MEP-id Wang & Wu Expires April 29, 2015 [Page 13] Internet-Draft Layer Independent OAM Management October 2014 | | | +--:(mac-address) | | | | +--ro mac-address? yang:mac-address | | | +--:(ipv4-address) | | | | +--ro ipv4-address? inet:ipv4-address | | | +--:(ipv6-address) | | | +--ro ipv6-address? inet:ipv6-address | | +--ro mep-id? MEP-id | +--ro destination-mep* [mep-id,dest-mep-addr] | | +--ro (destination-mep-addr)? MEP-id | | | +--:(mac-address) | | | | +--ro mac-address? yang:mac-address | | | +--:(ipv4-address) | | | | +--ro ipv4-address? inet:ipv4-address | | | +--:(ipv6-address) | | | +--ro ipv6-address? inet:ipv6-address | | +--ro mep-id? MEP-id | +--ro maintenance-stats | +--:(maintenance-null) | +--ro maintenance-null? Empty +--x performance-measurement | +--ro input | | +--ro technology identityref | | +--ro md-level uint32 | | +--ro md-name? string | | +--ro ma-name string | | +--ro (context-id)? | | | +--:(context-null) | | | +--ro context-null? empty | | +--ro source-mep* [mep-id,source-mep-addr] | | | +--ro (source-mep-addr)? | | | | +--:(mac-address) | | | | | +--ro mac-address? yang:mac-address | | | | +--:(ipv4-address) | | | | | +--ro ipv4-address? inet:ipv4-address | | | | +--:(ipv6-address) | | | | +--ro ipv6-address? inet:ipv6-address | | | +--ro mep-id? MEP-id | | +--ro destination-mep* [mep-id,dest-mep-addr] | | | +--ro (destination-mep-addr)? | | | | +--:(mac-address) | | | | | +--ro mac-address? yang:mac-address | | | | +--:(ipv4-address) | | | | | +--ro ipv4-address? inet:ipv4-address | | | | +--:(ipv6-address) | | | | +--ro ipv6-address? inet:ipv6-address | | | +--ro mep-id? MEP-id | | +--ro outgoing-interfaces* [interface] | | +--ro interface if:interface-ref Wang & Wu Expires April 29, 2015 [Page 14] Internet-Draft Layer Independent OAM Management October 2014 | +--ro output | | +--ro md-level uint32 | | +--ro md-name? string | | +--ro ma-name string | +--ro source-mep* [mep-id,source-mep-addr] | | +--ro (source-mep-addr)? | | | +--:(mac-address) | | | | +--ro mac-address? yang:mac-address | | | +--:(ipv4-address) | | | | +--ro ipv4-address? inet:ipv4-address | | | +--:(ipv6-address) | | | +--ro ipv6-address? inet:ipv6-address | | +--ro mep-id? MEP-id | +--ro destination-mep* [mep-id,dest-mep-addr] | | +--ro (destination-mep-addr)? | | | +--:(mac-address) | | | | +--ro mac-address? yang:mac-address | | | +--:(ipv4-address) | | | | +--ro ipv4-address? inet:ipv4-address | | | +--:(ipv6-address) | | | +--ro ipv6-address? inet:ipv6-address | | +--ro mep-id? MEP-id | +--ro maintenance-stats | +--:(maintenance-null) | +--ro maintenance-null? Empty data hierarchy of Management OAM 5. OAM YANG Module file "ietf-layer-independent-oam-management@2014-08-07.yang" module gen-oam { namespace "urn:ietf:params:xml:ns:yang:gen-oam"; prefix goam; import ietf-interfaces { prefix if; } import ietf-inet-types { prefix inet; } import ietf-yang-types { prefix yang; } organization "IETF LIME (Layer Independent OAM Management in Multi-Layer Environment) Working Group"; Wang & Wu Expires April 29, 2015 [Page 15] Internet-Draft Layer Independent OAM Management October 2014 description "This YANG module defines the abstract notification and rpc command for multi-layer OAM management to be used within IETF in a protocol independent manner."; revision 2014-10-23 { description "Initial revision."; reference " RFC XXXX: A YANG Data Model for Layer independent OAM management"; } /* * identity definitions, */ identity technology-types { description "this is the base identity of technology types which are ethernet, bfd, mpls, sfc, ipv4, ipv6"; } identity mpls { base technology-types; description "mpls technology type"; } identity sfc { base technology-types; description "sfc type"; } identity ipv4 { base technology-types; description "technology of ipv4"; } identity ipv6 { base technology-types; description "technology of ipv6"; } /* * typedef definitions Wang & Wu Expires April 29, 2015 [Page 16] Internet-Draft Layer Independent OAM Management October 2014 */ typedef vni { type uint32; } typedef MEP-address { type union { type yang:mac-address type inet:ipv4-address; type inet:ipv6-address; } description "Defines addresses of different MEP types. IPv4, IPv6"; } typedef MEP-id { type union{ type uint32 { range "1..8191"; } type yang:mac-address type inet:ipv4-address; type inet:ipv6-address; } description "Defines type for MEPID"; } typedef Context-Identifier { type union { type vni; type uint32; } description "defines context identifier types VNI, etc.."; } typedef oam-counter32 { type yang:zero-based-counter32; description "defines 32 bit counter for OAM"; } /* * grouping definitions Wang & Wu Expires April 29, 2015 [Page 17] Internet-Draft Layer Independent OAM Management October 2014 */ grouping context-id { description "grouping for context id, this will be augmented by others who use this component"; choice context-id { default "context-null"; case context-null { description "this is a place holder when no context is needed"; leaf context-null { type empty; description "there is no context define"; } } } } grouping maintenance-stats { description "grouping for maintenance statistics, this will be augmented by others who use this component"; choice maintenance-stats { default "maintenance-null"; case maintenance-null { description "this is a place holder when no maintenance statis is needed"; leaf maintenance-null { type empty; description "there is no maintenance statistics to be defined"; } } } } grouping interface-status { description "collection of interface related status"; leaf list interface-status{ key " admin-status, oper-status "; leaf admin-status { config false; type leafref { path "/if:interfaces-state/if:interface/if:admin-status"; Wang & Wu Expires April 29, 2015 [Page 18] Internet-Draft Layer Independent OAM Management October 2014 } description "oper status from ietf-interface module"; } leaf oper-status { config false; type leafref { path "/if:interfaces-state/if:interface/if:oper-status"; } description "oper status from ietf-interface module"; } } } leaf oper-status { type enumeration{ enum up; enum down; } description " This leaf specifies the operational status of the Maintenance Domain (MD)"; } leaf sub-oper-status { type enumeration{ mdDown; maDown; oamAppDown; pathDown;}; description " This leaf specifies the reason why the MD operational status as mentioned by the leaf Oper-Status is down. The mdDown indicates the MD is down. The maDown indicates the MA table is down. The oamAppDown indicates that the OAM application has notified that the entity monitored by this MEG is down. The pathDown indicates that the underlying path is down"; } } /* Wang & Wu Expires April 29, 2015 [Page 19] Internet-Draft Layer Independent OAM Management October 2014 * below is definitions of rpc commands */ rpc continuity-check { description "Generates continuity-check and return response"; input { leaf technology { type identityref; description "Defines the technology"; } leaf md-name{ status current; description "Defines the MA-Domain name. This is a binary (octet) string of 43 bytes"; type binary; } leaf md-level{ mandatory true; status current; description "Defines the MD-Level"; type int32; } leaf ma-name{ mandatory true; description "Define the MA-Name according to the specified format. This is 43 byte string."; type binary; } uses context-id; list source-mep { key "[mep-id,mep-address]"; uses mep-address; leaf mep-id { type MEP-id; } } Wang & Wu Expires April 29, 2015 [Page 20] Internet-Draft Layer Independent OAM Management October 2014 list destination-mep { key "[mep-id,mep-address]"; uses mep-address; leaf mep-id { type MEP-id; } } list outgoing-interfaces { key "interface"; leaf interface { type if:interface-ref; } } } output { leaf md-name{ status current; description "Defines the MA-Domain name. This is a binary (octet) string of 43 bytes"; type binary; } leaf md-level{ mandatory true; status current; description "Defines the MD-Level"; type int32; } leaf ma-name{ mandatory true; description "Define the MA-Name according to the specified format. This is 43 byte string."; type binary; } list source-mep { key "[mep-id,mep-address]"; uses mep-address; leaf mep-id { type MEP-id; } Wang & Wu Expires April 29, 2015 [Page 21] Internet-Draft Layer Independent OAM Management October 2014 } list destination-mep { key "[mep-id,mep-address]"; uses mep-address; leaf mep-id { type MEP-id; } } uses maintenance-stats { description "maintenance Stats of CC"; } } } rpc connectivity-verification { description "Generates connectivity-verification and return response"; input { leaf technology { type identityref; description "Defines the technology"; } leaf md-name{ status current; description "Defines the MA-Domain name. This is a binary (octet) string of 43 bytes"; type binary; } leaf md-level{ mandatory true; status current; description "Defines the MD-Level"; type int32; } leaf ma-name{ mandatory true; description Wang & Wu Expires April 29, 2015 [Page 22] Internet-Draft Layer Independent OAM Management October 2014 "Define the MA-Name according to the specified format. This is 43 byte string."; type binary; } uses context-id; list source-mep { key "[mep-id,mep-address]"; uses mep-address; leaf mep-id { type MEP-id; } } list destination-mep { key "[mep-id,mep-address]"; uses mep-address; leaf mep-id { type MEP-id; } } list outgoing-interfaces { key "interface"; leaf interface { type if:interface-ref; } } } output { leaf md-name{ status current; description "Defines the MA-Domain name. This is a binary (octet) string of 43 bytes"; type binary; } leaf md-level{ mandatory true; status current; description "Defines the MD-Level"; type int32; } leaf ma-name{ mandatory true; Wang & Wu Expires April 29, 2015 [Page 23] Internet-Draft Layer Independent OAM Management October 2014 description "Define the MA-Name according to the specified format. This is 43 byte string."; type binary; } list source-mep { key "[mep-id,mep-address]"; uses mep-address; leaf mep-id { type MEP-id; } } list destination-mep { key "[mep-id,mep-address]"; uses mep-address; leaf mep-id { type MEP-id; } } uses maintenance-stats { description "maintenance Stats of CV"; } } } rpc path discovery { description "Generates path discovery and return response"; input { leaf technology { type identityref; description "Defines the technology"; } leaf md-name{ status current; description "Defines the MA-Domain name. This is a binary (octet) string of 43 bytes"; type binary; } Wang & Wu Expires April 29, 2015 [Page 24] Internet-Draft Layer Independent OAM Management October 2014 leaf md-level{ mandatory true; status current; description "Defines the MD-Level"; type int32; } leaf ma-name{ mandatory true; description "Define the MA-Name according to the specified format. This is 43 byte string."; type binary; } uses context-id; list source-mep { key "[mep-id,mep-address]"; uses mep-address; leaf mep-id { type MEP-id; } } list destination-mep { key "[mep-id,mep-address]"; uses mep-address; leaf mep-id { type MEP-id; } } list outgoing-interfaces { key "interface"; leaf interface { type if:interface-ref; } } } output { list response { key "mep-id"; leaf md-name{ status current; description "Defines the MA-Domain name. This is a binary (octet) string of 43 bytes"; Wang & Wu Expires April 29, 2015 [Page 25] Internet-Draft Layer Independent OAM Management October 2014 type binary; } leaf md-level{ mandatory true; status current; description "Defines the MD-Level"; type int32; } leaf ma-name{ mandatory true; description "Define the MA-Name according to the specified format. This is 43 byte string."; type binary; } list source-mep { key "[mep-id,mep-address]"; uses mep-address; leaf mep-id { type MEP-id; } } list destination-mep { key "[mep-id,mep-address]"; uses mep-address; leaf mep-id { type MEP-id; } } uses maintenance-stats { description "maintenance Stats of path discovery "; } } } } rpc performance-measurement { description Wang & Wu Expires April 29, 2015 [Page 26] Internet-Draft Layer Independent OAM Management October 2014 "Generates performance-measurement"; input { leaf technology { type identityref; description "Defines the technology"; } leaf md-name{ status current; description "Defines the MA-Domain name. This is a binary (octet) string of 43 bytes"; type binary; } leaf md-level{ mandatory true; status current; description "Defines the MD-Level"; type int32; } leaf ma-name{ mandatory true; description "Define the MA-Name according to the specified format. This is 43 byte string."; type binary; } uses context-id; list source-mep { key "[mep-id,mep-address]"; uses mep-address; leaf mep-id { type MEP-id; } } list destination-mep { key "[mep-id,mep-address]"; uses mep-address; leaf mep-id { Wang & Wu Expires April 29, 2015 [Page 27] Internet-Draft Layer Independent OAM Management October 2014 type MEP-id; } } list outgoing-interfaces { key "interface"; leaf interface { type if:interface-ref; } } } output { leaf md-name{ status current; description "Defines the MA-Domain name. This is a binary (octet) string of 43 bytes"; type binary; } leaf md-level{ mandatory true; status current; description "Defines the MD-Level"; type int32; } leaf ma-name{ mandatory true; description "Define the MA-Name according to the specified format. This is 43 byte string."; type binary; } list source-mep { key "[mep-id,mep-address]"; uses mep-address; leaf mep-id { type MEP-id; } } list destination-mep { key "[mep-id,mep-address]"; uses mep-address; leaf mep-id { Wang & Wu Expires April 29, 2015 [Page 28] Internet-Draft Layer Independent OAM Management October 2014 type MEP-id; } } uses maintenance-stats { description "maintenance Stats of performance-measurement "; } } } /* * below is definitions of notifications */ notification defect-codition-notification { leaf technology { type identityref; description "Defines the technology"; } leaf md-name{ status current; description "Defines the MA-Domain name. This is a binary (octet) string of 43 bytes"; type binary; } leaf md-level{ mandatory true; status current; description "Defines the MD-Level"; type int32; } leaf ma-name{ mandatory true; description "Define the MA-Name according to the specified format. This is 43 byte string."; type binary; } uses context-id; Wang & Wu Expires April 29, 2015 [Page 29] Internet-Draft Layer Independent OAM Management October 2014 leaf mep-id { mandatory true; status current; description "Assigm MEPID in the range of 1..8191"; type MEP-id; } leaf remote-mepid { type MEP-id; description "Who is seeing the error (if known) if unknown make it 0."; } leaf oper-status { type enumeration{ enum up; enum down; } description " This leaf specifies the operational status of the Maintenance Association (MA)"; } leaf meg-sub-oper-status { type enumeration{ megDown; meDown; oamAppDown; pathDown;}; description " This leaf specifies the reason why the MEG operational status as mentioned by the leaf Meg-Oper-Status is down. The megDown indicates the MEG is down. The meDown indicates the ME table is down. The oamAppDown indicates that the OAM application has notified that the entity monitored by this MEG is down. The pathDown indicates that the underlying path is down"; } }//the notification defection-condition-notification }// end ietf-layer-independent-oam-management module Wang & Wu Expires April 29, 2015 [Page 30] Internet-Draft Layer Independent OAM Management October 2014 6. Security Considerations TBD. 7. IANA Considerations TBD. 8. References 8.1. Normative References [I-D.edprop-opsawg-multi-layer-oam] Wu, Q., "Problem Statement for Layer and Technology Independent OAM in a Multi- Layer Environment", ID http://tools.ietf.org/html/ draft-edprop-opsawg-multi-layer-oam-02, September 2014. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC6020] Bjorklund, M., "YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)", RFC 6020, October 2010. [RFC6241] Enns, R., Bjorklund, M., Schoenwaelder, J., and A. Bierman, "Network Configuration Protocol (NETCONF)", RFC 6241', June 2011. 8.2. Informative References [I-D.tissa-lime-yang-oam-model] Senevirathne , T. and Q. Wu, "YANG Data Model for Generic Operations, Administration, and Maintenance (OAM)", ID http://tools.ietf.org/html/ draft-tissa-lime-yang-oam-management-01, October 2014. Authors' Addresses Zitao Wang Huawei Technologies,Co.,Ltd 101 Software Avenue, Yuhua District Nanjing 210012 China Email: wangzitao@huawei.com Wang & Wu Expires April 29, 2015 [Page 31] Internet-Draft Layer Independent OAM Management October 2014 Qin Wu Huawei 101 Software Avenue, Yuhua District Nanjing, Jiangsu 210012 China Email: bill.wu@huawei.com Wang & Wu Expires April 29, 2015 [Page 32]