[Docs] [txt|pdf|xml|html] [Tracker] [Email] [Diff1] [Diff2] [Nits]
Versions: 00 01 02 03
Network Working Group Z. Wang
Internet-Draft Q. Wu
Intended status: Standards Track Huawei
Expires: September 24, 2015 March 23, 2015
Additional RPC definitions to Generic YANG Data Model for layer
Independent OAM Management
draft-wang-lime-rpc-yang-oam-management-02
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 September 24, 2015.
Copyright Notice
Copyright (c) 2015 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 September 24, 2015 [Page 1]
Internet-Draft Layer Independent OAM Management March 2015
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 . . . . . . . . . . . . . . . . . 5
3.3. Abstract CV Command Rpc . . . . . . . . . . . . . . . . . 5
3.4. Abstract Path Discovery Command Rpc . . . . . . . . . . . 6
3.5. Abstract Performance Measurement Command Rpc . . . . . . 8
3.6. Abstract other-function Command Rpc . . . . . . . . . . 9
4. OAM data hierarchy for Abstract Notification and rpc command 11
5. OAM YANG Module . . . . . . . . . . . . . . . . . . . . . . . 16
6. Security Considerations . . . . . . . . . . . . . . . . . . . 31
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 31
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 31
8.1. Normative References . . . . . . . . . . . . . . . . . . 31
8.2. Informative References . . . . . . . . . . . . . . . . . 32
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 32
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:
Wang & Wu Expires September 24, 2015 [Page 2]
Internet-Draft Layer Independent OAM Management March 2015
o client
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:
<status> <flags> <name> <opts> <type>
<status> is one of:
+ for current
x for deprecated
o for obsolete
<flags> is one of:
rw for configuration data
ro for non-configuration data
-x for rpcs
-n for notifications
<name> is the name of the node
If the node is augmented into the tree from another module, its name
is printed as <prefix>:<name>.
Wang & Wu Expires September 24, 2015 [Page 3]
Internet-Draft Layer Independent OAM Management March 2015
<opts> is one of:
? for an optional leaf or choice
! for a presence container
* for a leaf-list or list
[<keys>] for a list's keys
<type> 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 string
+--ro md-level? uint32
+--ro ma-name-string string
+--ro mep-id? MP-id
+--ro remote-mepid
| +--ro (MEP-ID)?
| +----:(MEP-ID-int)
| | +--ro MEP-ID-int ? int32
+--ro oper-status enumeration
+--ro sub-oper-status enumeration
+--ro error-message string
Snippet of data hierarchy related to Management OAM domains
Wang & Wu Expires September 24, 2015 [Page 4]
Internet-Draft Layer Independent OAM Management March 2015
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.
rpcs:
+--x contiuity-check
| +--ro input
| | +--ro technology identityref
| | +--ro md-level uint32
| | +--ro md-name-string? string
| | +--ro ma-name-string string
| | +--ro source-mep
| | | +--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
| | | +--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 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.
Wang & Wu Expires September 24, 2015 [Page 5]
Internet-Draft Layer Independent OAM Management March 2015
rpcs:
+--x connectity-verification
| +--ro input
| | +--ro technology identityref
| | +--ro md-level uint32
| | +--ro md-name-string? string
| | +--ro ma-name-string string
| | +--ro source-mep
| | | +--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
| | | +--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 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.
Wang & Wu Expires September 24, 2015 [Page 6]
Internet-Draft Layer Independent OAM Management March 2015
rpcs:
+--x path-discovery
| +--ro input
| | +--ro technology identityref
| | +--ro md-level uint32
| | +--ro md-name-string? string
| | +--ro ma-name-string string
| | +--ro source-mep
| | | +--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
| | | +--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*[response-index]
| | +--ro response-index uint8
| | +--ro destination-mp
| | | +--ro (mp-address)?
| | | | +--:(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 mp-id?
| | +--ro maintenance-stats
| | +--:(maintenance-null)
| | +--ro maintenance-null? Empty
Snippet of data hierarchy related to Path Discovery
Wang & Wu Expires September 24, 2015 [Page 7]
Internet-Draft Layer Independent OAM Management March 2015
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 initiated-performance-measurement
| +--ro input
| | +--ro technology identityref
| | +--ro md-level uint32
| | +--ro md-name-string? string
| | +--ro ma-name-string string
| | +--ro source-mep
| | | +--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-mp
| | | +--ro (destination-mp-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 interval uint32
| | +--ro pm-type uint32
| +--ro output
| | +--ro maintenance-stats
| | +--:(maintenance-null)
| | +--ro maintenance-null? Empty
+--x revoke-performance-measurement
| +--ro input
| | +--ro technology identityref
| | +--ro md-level uint32
| | +--ro md-name-string? string
| | +--ro ma-name-string string
| | +--ro source-mep
| | | +--ro (source-mep-addr)?
| | | | +--:(mac-address)
Wang & Wu Expires September 24, 2015 [Page 8]
Internet-Draft Layer Independent OAM Management March 2015
| | | | | +--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-mp
| | | +--ro (destination-mp-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 interval uint32
| | +--ro pm-type uint32
Snippet of data hierarchy related to Performance Measurement
3.6. Abstract other-function Command Rpc
Here is rpc model for other-function command. This model is a basic
model. Specific OAM function can inherit and augment it such as
Diagnostic Test, Lock Alarm reporting, Client failing indicate, RDI.
etc.
rpcs:
+--x initiated-other-function
| +--ro input
| | +--ro function-name string
| | +--ro technology identityref
| | +--ro md-level uint32
| | +--ro md-name-string? string
| | +--ro ma-name-string string
| | +--ro source-mep
| | | +--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
| | | +--ro (destination-mep-addr)? MEP-id
Wang & Wu Expires September 24, 2015 [Page 9]
Internet-Draft Layer Independent OAM Management March 2015
| | | | +--:(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 (other-function-parameters)?
| | +--:(parameters-null)
| | +--ro parameters-null Empty
| +--ro output
| | +--ro maintenance-stats
| | +--:(maintenance-null)
| | +--ro maintenance-null? Empty
+--x revoke-other-function
| +--ro input
| | +--ro function-name string
| | +--ro technology identityref
| | +--ro md-level uint32
| | +--ro md-name-string? string
| | +--ro ma-name-string string
| | +--ro source-mep
| | | +--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
| | | +--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 (other-function-parameters)?
| | +--:(parameters-null)
| | +--ro parameters-null Empty
Snippet of data hierarchy related to other-function
Wang & Wu Expires September 24, 2015 [Page 10]
Internet-Draft Layer Independent OAM Management March 2015
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-string string
+--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 string
+--ro md-level? uint32
+--ro ma-name-string string
+--ro mep-id? MP-id
+--ro remote-mepid
| +--ro (MEP-ID)?
| +----:(MEP-ID-int)
| | +--ro MEP-ID-int ? int32
+--ro oper-status enumeration
+--ro sub-oper-status enumeration
+--ro error-message string
+--x continuity-check
| +--ro input
| | +--ro technology identityref
| | +--ro md-level uint32
| | +--ro md-name-string? string
| | +--ro ma-name-string string
| | +--ro source-mep
| | | +--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
Wang & Wu Expires September 24, 2015 [Page 11]
Internet-Draft Layer Independent OAM Management March 2015
| | | +--ro mep-id? MEP-id
| | +--ro destination-mep
| | | +--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 maintenance-stats
| | +--:(maintenance-null)
| | +--ro maintenance-null? Empty
+--x connectity-verification
| +--ro input
| | +--ro technology identityref
| | +--ro md-level uint32
| | +--ro md-name-string? string
| | +--ro ma-name-string string
| | +--ro source-mep
| | | +--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
| | | +--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 maintenance-stats
| | +--:(maintenance-null)
| | +--ro maintenance-null? Empty
Wang & Wu Expires September 24, 2015 [Page 12]
Internet-Draft Layer Independent OAM Management March 2015
+--x path-discovery
| +--ro input
| | +--ro technology identityref
| | +--ro md-level uint32
| | +--ro md-name-string? string
| | +--ro ma-name-string string
| | +--ro source-mep
| | | +--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
| | | +--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*[response-index]
| | +--ro response-index uint8
| | +--ro destination-mp
| | | +--ro (mp-address)?
| | | | +--:(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 mp-id?
| | +--ro maintenance-stats
| | +--:(maintenance-null)
| | +--ro maintenance-null? Empty
+--x initiated-performance-measurement
| +--ro input
| | +--ro technology identityref
| | +--ro md-level uint32
| | +--ro md-name-string? string
| | +--ro ma-name-string string
Wang & Wu Expires September 24, 2015 [Page 13]
Internet-Draft Layer Independent OAM Management March 2015
| | +--ro source-mep
| | | +--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
| | | +--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 interval uint32
| | +--ro pm-type uint32
| +--ro output
| | +--ro maintenance-stats
| | +--:(maintenance-null)
| | +--ro maintenance-null? Empty
+--x revoke-performance-measurement
| +--ro input
| | +--ro technology identityref
| | +--ro md-level uint32
| | +--ro md-name-string? string
| | +--ro ma-name-string string
| | +--ro source-mep
| | | +--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-mp
| | | +--ro (destination-mp-addr)?
| | | | +--:(mac-address)
| | | | | +--ro mac-address? yang:mac-address
| | | | +--:(ipv4-address)
| | | | | +--ro ipv4-address? inet:ipv4-address
| | | | +--:(ipv6-address)
Wang & Wu Expires September 24, 2015 [Page 14]
Internet-Draft Layer Independent OAM Management March 2015
| | | | +--ro ipv6-address? inet:ipv6-address
| | | +--ro mep-id? MEP-id
| | +--ro outgoing-interfaces* [interface]
| | +--ro interface if:interface-ref
| | +--ro interval uint32
| | +--ro pm-type uint32
+--x initiated-other-function
| +--ro input
| | +--ro function-name string
| | +--ro technology identityref
| | +--ro md-level uint32
| | +--ro md-name-string? string
| | +--ro ma-name-string string
| | +--ro source-mep
| | | +--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
| | | +--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 (other-function-parameters)?
| | +--:(parameters-null)
| | +--ro parameters-null Empty
| +--ro output
| | +--ro maintenance-stats
| | +--:(maintenance-null)
| | +--ro maintenance-null? Empty
+--x revoke-other-function
| +--ro input
| | +--ro function-name string
| | +--ro technology identityref
| | +--ro md-level uint32
| | +--ro md-name-string? string
| | +--ro ma-name-string string
| | +--ro source-mep
Wang & Wu Expires September 24, 2015 [Page 15]
Internet-Draft Layer Independent OAM Management March 2015
| | | +--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
| | | +--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 (other-function-parameters)?
| | +--:(parameters-null)
| | +--ro parameters-null Empty
data hierarchy of Management OAM
5. OAM YANG Module
<CODE BEGINS> file "ietf-lime-rpc-yang-oam-management@2014-12-16.yang "
module goam-rpc {
namespace "urn:ietf:params:xml:ns:yang:goam-rpc";
prefix goam-rpc;
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";
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-12-16 {
description
"Initial revision.";
reference " RFC XXXX: A YANG Data Model for Layer independent OAM management";
Wang & Wu Expires September 24, 2015 [Page 16]
Internet-Draft Layer Independent OAM Management March 2015
}
/*
* 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
*/
typedef vni {
type uint32;
}
grouping mp-address {
choice mp-address {
case mac-address {
leaf mac-address {
type yang:mac-address;
}
}
case ipv4-address {
leaf ipv4-address {
type inet:ipv4-address;
}
}
case ipv6-address {
Wang & Wu Expires September 24, 2015 [Page 17]
Internet-Draft Layer Independent OAM Management March 2015
leaf ipv6-address {
type inet:ipv6-address;
}
}
}
}
typedef MP-id {
type union{
type uint32 {
range "1..8191";
}
type yang:mac-address;
type inet:ipv4-address;
type inet:ipv6-address;
}
description
"Defines type for MPID";
}
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
*/
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";
}
Wang & Wu Expires September 24, 2015 [Page 18]
Internet-Draft Layer Independent OAM Management March 2015
}
}
}
grouping default-parameter{
description
"grouping for default parameters, this will be augmented
by others who use this component";
choice other-function-parameters {
default "parameters-null";
case parameters-null {
description
"this is a place holder when no specific parameter is needed";
leaf parameters-null {
type empty;
description
"there is no specific parameter to be defined";
}
}
}
}
grouping MD-status {
description
"collection of maintenance domain related status";
leaf error-message {
type string {
length "0..255";
}
description
"Error message to indicate more details.";
}
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{
enum mdDown;
enum maDown;
enum oamAppDown;
enum pathDown;}
description
" This leaf specifies the reason why the MD operational
status as mentioned by the leaf Oper-Status
Wang & Wu Expires September 24, 2015 [Page 19]
Internet-Draft Layer Independent OAM Management March 2015
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";
}
}
grouping measurement-time-group{
container measurement-timing {
description
"Data definitions related to measurement timing";
choice measurement-timing {
mandatory true;
description
"This will be augmented by specific technologies who use this component";
case measurement-timing-null {
leaf time-null {
type empty;
description
"there is no measurement time define";
}
}
}
}
}
/*
* below is definitions of rpc commands
*/
rpc continuity-check {
description
"Generates continuity-check and return response";
input {
leaf technology {
status current;
type identityref
{
base technology-types;
}
mandatory true;
description
"Defines the technology";
}
leaf md-name-string{
status current;
Wang & Wu Expires September 24, 2015 [Page 20]
Internet-Draft Layer Independent OAM Management March 2015
description
"Defines the MA-Domain name.";
type string;
}
leaf md-level{
mandatory true;
status current;
description
"Defines the MD-Level";
type int32;
}
leaf ma-name-string{
mandatory true;
description
"Define the MA-Name";
type string;
}
container source-mep {
uses mp-address;
leaf mep-id {
type MP-id;
}
}
container destination-mep {
uses mp-address;
leaf MP-id {
type MP-id;
}
}
list outgoing-interfaces {
key "interface";
leaf interface {
type if:interface-ref;
}
}
}
output {
uses maintenance-stats {
description
"maintenance Stats of CC";
}
}
}
rpc connectivity-verification {
description
"connectivity-verification and return response";
input {
leaf technology {
Wang & Wu Expires September 24, 2015 [Page 21]
Internet-Draft Layer Independent OAM Management March 2015
status current;
type identityref
{
base technology-types;
}
mandatory true;
description
"Defines the technology";
}
leaf md-name-string{
status current;
description
"Defines the MA-Domain name.";
type string;
}
leaf md-level{
mandatory true;
status current;
description
"Defines the MD-Level";
type int32;
}
leaf ma-name-string{
mandatory true;
description
"Define the MA-Name";
type string;
}
container source-mep {
uses mp-address;
leaf mep-id {
type MP-id;
}
}
container destination-mep {
uses mp-address;
leaf mep-id {
type MP-id;
}
}
list outgoing-interfaces {
key "interface";
leaf interface {
type if:interface-ref;
}
}
}
Wang & Wu Expires September 24, 2015 [Page 22]
Internet-Draft Layer Independent OAM Management March 2015
output {
uses maintenance-stats {
description
"maintenance Stats of CV";
}
}
}
rpc path-discovery {
description
"path discovery and return response";
input {
leaf technology {
status current;
type identityref
{
base technology-types;
}
mandatory true;
description
"Defines the technology";
}
leaf md-name-string{
status current;
description
"Defines the MA-Domain name.";
type string;
}
leaf md-level{
mandatory true;
status current;
description
"Defines the MD-Level";
type int32;
}
leaf ma-name-string{
mandatory true;
description
"Define the MA-Name";
type string;
}
container source-mep {
uses mp-address;
leaf mep-id {
type MP-id;
}
}
container destination-mep {
Wang & Wu Expires September 24, 2015 [Page 23]
Internet-Draft Layer Independent OAM Management March 2015
uses mp-address;
leaf mep-id {
type MP-id;
}
}
list outgoing-interfaces {
key "interface";
leaf interface {
type if:interface-ref;
}
}
}
output {
list response{
key "response-index";
leaf response-index{
type uint8;
}
container destination-mp {
uses mp-address;
leaf mp-id {
type MP-id;
}
}
uses maintenance-stats {
description
"maintenance Stats of path discovery ";
}
}
}
}
rpc initiated-performance-measurement {
description
"Generates performance-measurement";
input {
leaf technology {
status current;
type identityref
{
base technology-types;
}
mandatory true;
description
"Defines the technology";
}
leaf md-name-string{
status current;
description
Wang & Wu Expires September 24, 2015 [Page 24]
Internet-Draft Layer Independent OAM Management March 2015
"Defines the MA-Domain name";
type string;
}
leaf md-level{
mandatory true;
status current;
description
"Defines the MD-Level";
type int32;
}
leaf ma-name-string{
mandatory true;
description
"Define the MA-Name";
type string;
}
container source-mep {
uses mp-address;
leaf mep-id {
type MP-id;
}
}
container destination-mep {
uses mp-address;
leaf mep-id {
type MP-id;
}
}
list outgoing-interfaces {
key "interface";
leaf interface {
type if:interface-ref;
}
}
leaf interval {
default "0";
description
"Defines perform measurement Interval";
type uint32;
}
leaf pm-type{
description
"Indicate the type of perform measurement";
type uint32;
}
uses measurement-time-group;
}
Wang & Wu Expires September 24, 2015 [Page 25]
Internet-Draft Layer Independent OAM Management March 2015
output {
uses maintenance-stats {
description
"maintenance Stats of performance-measurement ";
}
}
}
rpc revoke-performance-measurement {
description
"Revoke performance measurement";
input {
leaf technology {
status current;
type identityref
{
base technology-types;
}
mandatory true;
description
"Defines the technology";
}
leaf md-name-string{
status current;
description
"Defines the MA-Domain name.";
type string;
}
leaf md-level{
mandatory true;
status current;
description
"Defines the MD-Level";
type int32;
}
leaf ma-name-string{
mandatory true;
description
"Define the MA-Name";
type string;
}
container source-mep {
uses mp-address;
leaf mep-id {
type MP-id;
}
}
container destination-mep {
Wang & Wu Expires September 24, 2015 [Page 26]
Internet-Draft Layer Independent OAM Management March 2015
uses mp-address;
leaf mep-id {
type MP-id;
}
}
list outgoing-interfaces {
key "interface";
leaf interface {
type if:interface-ref;
}
}
leaf interval {
default "0";
description
"Defines perform measurement Interval";
type uint32;
}
leaf pm-type{
description
"Indicate the type of perform measurement";
type uint32;
}
}
}
rpc initiated-other-function{
description
"Generates other-function";
input {
leaf technology {
status current;
type identityref
{
base technology-types;
}
mandatory true;
description
"Defines the technology";
}
leaf function-name{
type string;
description
"Indicate the function name ";
}
leaf md-name-string{
status current;
description
"Defines the MA-Domain name.";
type string;
Wang & Wu Expires September 24, 2015 [Page 27]
Internet-Draft Layer Independent OAM Management March 2015
}
leaf md-level{
mandatory true;
status current;
description
"Defines the MD-Level";
type int32;
}
leaf ma-name-string{
mandatory true;
description
"Define the MA-Name string.";
type string;
}
container source-mep {
uses mp-address;
leaf mep-id {
type MP-id;
}
}
container destination-mep {
uses mp-address;
leaf mep-id {
type MP-id;
}
}
list outgoing-interfaces {
key "interface";
leaf interface {
type if:interface-ref;
}
}
uses default-parameter;
}
output {
uses maintenance-stats {
description
"maintenance Stats of performance-measurement ";
}
}
}
rpc revoke-other-function{
description
"Revoke other-function";
input {
Wang & Wu Expires September 24, 2015 [Page 28]
Internet-Draft Layer Independent OAM Management March 2015
leaf technology {
status current;
type identityref
{
base technology-types;
}
mandatory true;
description
"Defines the technology";
}
leaf function-name{
type string;
description
"Indicate the function name ";
}
leaf md-name-string{
status current;
description
"Defines the MA-Domain name.";
type string;
}
leaf md-level{
mandatory true;
status current;
description
"Defines the MD-Level";
type int32;
}
leaf ma-name-string{
mandatory true;
description
"Define the MA-Name";
type string;
}
container source-mep {
uses mp-address;
leaf mep-id {
type MP-id;
}
}
container destination-mep {
uses mp-address;
leaf mep-id {
type MP-id;
}
}
list outgoing-interfaces {
Wang & Wu Expires September 24, 2015 [Page 29]
Internet-Draft Layer Independent OAM Management March 2015
key "interface";
leaf interface {
type if:interface-ref;
}
}
uses default-parameter;
}
}
/*
* below is definitions of notifications
*/
notification defect-codition-notification {
leaf technology {
status current;
type identityref
{
base technology-types;
}
mandatory true;
description
"Defines the technology";
}
leaf md-name-string{
status current;
description
"Defines the MA-Domain name.";
type string;
}
leaf md-level{
mandatory true;
status current;
description
"Defines the MD-Level";
type int32;
}
leaf ma-name-string{
mandatory true;
description
"Define the MA-Name";
type string;
}
leaf mep-id {
mandatory true;
status current;
description
"Assign MEPID in the range of 1..8191";
type MP-id;
Wang & Wu Expires September 24, 2015 [Page 30]
Internet-Draft Layer Independent OAM Management March 2015
}
container remote-mepid {
choice MEP-ID{
default "MEP-ID-int";
case MEP-ID-int{
leaf MEP-ID-int{
type int32;
}
}
}
}
uses MD-status;
}
}
<CODE ENDS>
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.
Wang & Wu Expires September 24, 2015 [Page 31]
Internet-Draft Layer Independent OAM Management March 2015
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
Qin Wu
Huawei
101 Software Avenue, Yuhua District
Nanjing, Jiangsu 210012
China
Email: bill.wu@huawei.com
Wang & Wu Expires September 24, 2015 [Page 32]
Html markup produced by rfcmarkup 1.129d, available from
https://tools.ietf.org/tools/rfcmarkup/