Internet Draft Deepak Kumar T. Senevirathne CISCO T. Singh JUNIPER Category: Standard Track Expires May 2015 November 19, 2014 YANG Data Model for TRILL Operations, Administration, and Maintenance (OAM) Performance Management draft-deepak-trill-yang-pm-00.txt 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), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. 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." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire on May 19, 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 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 Kumar, Deepak Expires May 2015 [Page 1] Internet Draft TRILL PM YANG November 19, 2014 described in the Simplified BSD License. Abstract This document presents YANG Data model for TRILL OAM PM[TRILLOAMPM]. It extends Yang Data Model for TRILL OAM [TRILLOAMYANG] with trill Performance Monitoring technology specifics. Kumar, Deepak Expires May 2015 [Page 2] Internet Draft TRILL PM YANG November 19, 2014 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Conventions used in this document . . . . . . . . . . . . . . . 3 2.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4 3. Architecture of OAM YANG Model and Relationship to TRILL OAM PM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4. YANG Extension . . . . . . . . . . . . . . . . . . . . . . . . 5 4.1 MEP Address . . . . . . . . . . . . . . . . . . . . . . . . 5 4.1 MEP Configuration Extension . . . . . . . . . . . . . . . . 5 4.2 Flow Entropy . . . . . . . . . . . . . . . . . . . . . . . . 5 4.3 Context-id . . . . . . . . . . . . . . . . . . . . . . . . . 6 4.4 RPC definition . . . . . . . . . . . . . . . . . . . . . . . 6 4.4.1 create-loss-measurement . . . . . . . . . . . . . . . . 6 4.4.2 abort-loss-measurement . . . . . . . . . . . . . . . . . 6 4.4.3 create-delay-measurement . . . . . . . . . . . . . . . . 6 4.4.4 abort-delay-measurement . . . . . . . . . . . . . . . . 6 4. TRILL PM data hierarchy . . . . . . . . . . . . . . . . . . . . 6 6. TRILL PM YANG module . . . . . . . . . . . . . . . . . . . . . 12 7. Security Considerations . . . . . . . . . . . . . . . . . . . 35 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 35 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 36 9.1. Normative References . . . . . . . . . . . . . . . . . . . 36 9.2. Informative References . . . . . . . . . . . . . . . . . . 36 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 36 1. Introduction Fault Management for TRILL is defined in [TRILLOAMFM]. TRILL Fault Management utilizes the [8021Q] CFM model and extends CFM with technology specific details. Those technology specific extensions are flow-entropy for multipath support, MEP addressing on TRILL identifiers, and so on. The extensions are explained in detail in [TRILLOAMFM]. Performance Management for TRILL is defined in [TRILLOAMPM]. TRILL Performance Management utilizes the [Y.1731-2013/G.8013] and extends it with Loss Measurement and Delay measurement. Generic OAM Yang model [GENYANGOAM] presents Generic Yang data model for all OAM technologies. In this document we extend the YANG model defined in [GENYANGOAM] for TRILL OAM Performance management. 2. Conventions used in this document Kumar, Deepak Expires May 2015 [Page 3] Internet Draft TRILL PM YANG November 19, 2014 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 RFC-2119 [RFC2119]. 2.1. Terminology ECMP - Equal Cost Multipath MP - Maintenance Point [8021Q] MEP - Maintenance End Point [RFC7174] [8021Q] [RFC6371] MIP - Maintenance Intermediate Point [RFC7174] [8021Q] [RFC6371] MA - Maintenance Association [8021Q] [RFC7174] MD - Maintenance Domain [8021Q] OAM - Operations, Administration, and Maintenance [RFC6291] TRILL - Transparent Interconnection of Lots of Links [RFC6325] DMM - Delay Measurement Message 1SL - One-way Synthetic Loss Measurement message 1DM - One-way Delay Measurement message DMR - Delay Measurement Reply OAM - Operations, Administration, and Maintenance [OAM] PM - Performance Monitoring SLM - Synthetic Loss Measurement Message SLR - Synthetic Loss Measurement Reply TLV - Type, Length, and Value 3. Architecture of OAM YANG Model and Relationship to TRILL OAM PM +-+-+-+-+-+ | Gen | |OAM YANG | Kumar, Deepak Expires May 2015 [Page 4] Internet Draft TRILL PM YANG November 19, 2014 +-+-+-+-+-+ | O | +--------+-----------------------------------------+ | | | | | +-+-+-+-+-+ | +-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+ | TRILL | | | NVO3 | | MPLS | . . .| foo | |OAM YANG | | |OAM YANG | |OAM YANG | |OAM YANG | +-+-+-+-+-+ | +-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+ | | | | | | +-+-+-+-+ | | | | |TRILL | | | | +---|OAM PM | | | | |YANG | | | | +-+-+-+-+ | | | | | | | +----------------------------------------------------+ | Uniform API | +----------------------------------------------------+ Figure 1 Relationship of TRILL OAM PM Yang model to Generic OAM YANG model 4. YANG Extension MEP Addressing is defined in Generic OAM YANG model[GENOAMYANG]. TRILL OAM PM Yang is extended to augment MEP Configuration with Performance Management configuration and statistics for Delay Measurement and Performance Measurement. identity trill { base goam:technology-types; description "trill pm type"; } 4.1 MEP Address As defined in TRILL OAM Yang[TRILLOAMYANG] model. TRILL OAM Yang is referenced. 4.1 MEP Configuration Extension module: trill-oam-pm augment /goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP: 4.2 Flow Entropy Kumar, Deepak Expires May 2015 [Page 5] Internet Draft TRILL PM YANG November 19, 2014 As defined in TRILL OAM Yang[TRILLOAMYANG] model. 4.3 Context-id As defined in TRILL OAM Yang[TRILLOAMYANG] model. 4.4 RPC definition The rpc model facilitates issuing commands to a NETCONF server (in this case to the device that needs to execute the OAM command) and obtaining a response. Grouping Statements 1. loss-measurement-configuration-group 2. measurement-timing-group 3. delay-measurement-configuration-group defines input extension for Delay and Loss measurement. 4.4.1 create-loss-measurement RPC allows scheduling of one-way or two-way on-demand or proactive performance monitoring loss measurement session. 4.4.2 abort-loss-measurement RPC allow aborting of currently running or scheduled loss measurement session. 4.4.3 create-delay-measurement RPC allow scheduling of one-way or two-way on-demand or proactive performance monitoring delay measurement session. 4.4.4 abort-delay-measurement RPC allow aborting of currently running or scheduled delay measurement session. 4. TRILL PM data hierarchy The complete data hierarchy related to the OAM YANG is presented below. The following notations are used within the tree and carry the meaning as noted below. Each node is printed as: is one of: + for current x for deprecated o for obsolete is one of: Kumar, Deepak Expires May 2015 [Page 6] Internet Draft TRILL PM YANG November 19, 2014 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 :. 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 module: trill-oam-pm augment /goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP: +--rw delay-responder? boolean augment /goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP: +--rw delay-measurements +--ro delay-measurements* [session-cookie] | +--ro session-cookie uint32 | +--ro id? string | +--ro status? boolean +--rw measurement-type? enumeration +--rw measurement-enable? bits +--rw message-period? uint32 +--rw frame-size? uint32 +--rw data-pattern? enumeration +--rw measurement-interval? uint32 +--rw number-intervals-stored? uint32 +--rw ifdv-selection-offset? uint32 +--rw session-type? enumeration +--rw start-time | +--rw (start-time)? | +--:(immediate) | | +--rw immediate! | +--:(absolute) | +--rw absolute? yang:date-and-time +--rw stop-time Kumar, Deepak Expires May 2015 [Page 7] Internet Draft TRILL PM YANG November 19, 2014 | +--rw (stop-time)? | +--:(none) | | +--rw none! | +--:(absolute) | +--rw absolute? yang:date-and-time +--rw destination-mep | +--rw (mp-address)? | | +--:(mac-address) | | | +--rw mac-address? yang:mac-address | | +--:(ipv4-address) | | | +--rw ipv4-address? inet:ipv4-address | | +--:(ipv6-address) | | +--rw ipv6-address? inet:ipv6-address | +--rw mep-id? toam:tril-rb-nickname +--rw frame-delay-two-way? yang:gauge32 +--rw frame-delay-forward? yang:gauge32 +--rw frame-delay-backward? yang:gauge32 +--rw inter-frame-delay-variation-two-way? yang:gauge32 +--rw inter-frame-delay-variation-forward? yang:gauge32 +--rw inter-frame-delay-variation-backward? yang:gauge32 +--rw current-stats | +--rw start-time? yang:date-and-time | +--rw elapsed-time? uint32 | +--rw suspect-status? boolean | +--rw frame-delay-two-way-min? uint32 | +--rw frame-delay-two-way-max? uint32 | +--rw frame-delay-two-way-average? uint32 | +--rw frame-delay-forward-min? uint32 | +--rw frame-delay-forward-average? uint32 | +--rw frame-delay-forward-max? uint32 | +--rw frame-delay-backward-min? uint32 | +--rw frame-delay-backward-max? uint32 | +--rw frame-delay-backward-average? uint32 | +--rw frame-delay-variation-backward-min? uint32 | +--rw frame-delay-variation-backward-max? uint32 | +--rw frame-delay-variation-backward-average? uint32 | +--rw frame-delay-variation-forward-min? uint32 | +--rw frame-delay-variation-forward-average? uint32 | +--rw frame-delay-variation-forward-max? uint32 | +--rw frame-delay-variation-two-way-min? uint32 | +--rw frame-delay-variation-two-way-average? uint32 | +--rw frame-delay-variation-two-way-max? uint32 +--rw history-stats* [id] +--rw id uint32 +--rw start-time? yang:date-and-time +--rw elapsed-time? uint32 +--rw suspect-status? boolean +--rw frame-delay-two-way-min? uint32 Kumar, Deepak Expires May 2015 [Page 8] Internet Draft TRILL PM YANG November 19, 2014 +--rw frame-delay-two-way-max? uint32 +--rw frame-delay-two-way-average? uint32 +--rw frame-delay-forward-min? uint32 +--rw frame-delay-forward-average? uint32 +--rw frame-delay-forward-max? uint32 +--rw frame-delay-backward-min? uint32 +--rw frame-delay-backward-max? uint32 +--rw frame-delay-backward-average? uint32 +--rw frame-delay-variation-backward-min? uint32 +--rw frame-delay-variation-backward-max? uint32 +--rw frame-delay-variation-backward-average? uint32 +--rw frame-delay-variation-forward-min? uint32 +--rw frame-delay-variation-forward-average? uint32 +--rw frame-delay-variation-forward-max? uint32 +--rw frame-delay-variation-two-way-min? uint32 +--rw frame-delay-variation-two-way-average? uint32 +--rw frame-delay-variation-two-way-max? uint32 augment /goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP: +--rw loss-measurements +--ro loss-measurements* [session-cookie] | +--ro session-cookie uint32 | +--ro id? string | +--ro status? boolean +--rw measurement-type? enumeration +--rw enabled-counters? bits +--rw message-period? uint32 +--rw frame-size? uint32 +--rw data-pattern? enumeration +--rw measurement-interval? uint32 +--rw number-intervals-stored? uint32 +--rw session-type? enumeration +--rw start-time | +--rw (start-time)? | +--:(immediate) | | +--rw immediate! | +--:(absolute) | +--rw absolute? yang:date-and-time +--rw stop-time | +--rw (stop-time)? | +--:(none) | | +--rw none! | +--:(absolute) | +--rw absolute? yang:date-and-time +--rw destination-mep | +--rw (mp-address)? | | +--:(mac-address) | | | +--rw mac-address? yang:mac-address | | +--:(ipv4-address) Kumar, Deepak Expires May 2015 [Page 9] Internet Draft TRILL PM YANG November 19, 2014 | | | +--rw ipv4-address? inet:ipv4-address | | +--:(ipv6-address) | | +--rw ipv6-address? inet:ipv6-address | +--rw mep-id? toam:tril-rb-nickname +--rw measurement-forward-flr? yang:gauge32 +--rw measurement-backward-flr? yang:gauge32 +--rw current-stats | +--rw start-time? yang:date-and-time | +--rw elapsed-time? uint32 | +--rw suspect-status? boolean | +--rw backward-transmitted-frames? yang:gauge32 | +--rw backward-received-frames? yang:gauge32 | +--rw backward-min-frame-loss-ration? uint32 | +--rw backward-max-frame-loss-ration? uint32 | +--rw backward-average-frame-loss-ration? uint32 | +--rw forward-transmitted-frames? yang:gauge32 | +--rw forward-received-frames? yang:gauge32 | +--rw forward-min-frame-loss-ration? uint32 | +--rw forward-max-frame-loss-ration? uint32 | +--rw forward-average-frame-loss-ration? uint32 +--rw history-stats* [id] +--rw id uint32 +--rw start-time? yang:date-and-time +--rw elapsed-time? uint32 +--rw suspect-status? boolean +--rw backward-transmitted-frames? yang:gauge32 +--rw backward-received-frames? yang:gauge32 +--rw backward-min-frame-loss-ration? uint32 +--rw backward-max-frame-loss-ration? uint32 +--rw backward-average-frame-loss-ration? uint32 +--rw forward-transmitted-frames? yang:gauge32 +--rw forward-received-frames? yang:gauge32 +--rw forward-min-frame-loss-ration? uint32 +--rw forward-max-frame-loss-ration? uint32 +--rw forward-average-frame-loss-ration? uint32 rpcs: +---x create-loss-measurement | +--ro input | | +--ro measurement-type? enumeration | | +--ro enabled-counters? bits | | +--ro message-period? uint32 | | +--ro frame-size? uint32 | | +--ro data-pattern? enumeration | | +--ro measurement-interval? uint32 | | +--ro number-intervals-stored? uint32 | | +--ro session-type? enumeration | | +--ro start-time | | | +--ro (start-time)? Kumar, Deepak Expires May 2015 [Page 10] Internet Draft TRILL PM YANG November 19, 2014 | | | +--:(immediate) | | | | +--ro immediate! | | | +--:(absolute) | | | +--ro absolute? yang:date-and-time | | +--ro stop-time | | | +--ro (stop-time)? | | | +--:(none) | | | | +--ro none! | | | +--:(absolute) | | | +--ro absolute? yang:date-and-time | | +--ro destination-mep | | | +--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 mep-id? toam:tril-rb-nickname | | +--ro flow-entropy? toam:flow-entropy-trill | +--ro output | +--ro session-id uint32 +---x abort-loss-measurement | +--ro input | +--ro technology identityref | +--ro MD-name-string MD-name-string | +--ro MA-name-string? MA-name-string | +--ro destination-mep | | +--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 mep-id? toam:tril-rb-nickname | +--ro session-id uint32 +---x create-delay-measurement | +--ro input | | +--ro measurement-type? enumeration | | +--ro measurement-enable? bits | | +--ro message-period? uint32 | | +--ro frame-size? uint32 | | +--ro data-pattern? enumeration | | +--ro measurement-interval? uint32 | | +--ro number-intervals-stored? uint32 | | +--ro ifdv-selection-offset? uint32 | | +--ro session-type? enumeration Kumar, Deepak Expires May 2015 [Page 11] Internet Draft TRILL PM YANG November 19, 2014 | | +--ro start-time | | | +--ro (start-time)? | | | +--:(immediate) | | | | +--ro immediate! | | | +--:(absolute) | | | +--ro absolute? yang:date-and-time | | +--ro stop-time | | | +--ro (stop-time)? | | | +--:(none) | | | | +--ro none! | | | +--:(absolute) | | | +--ro absolute? yang:date-and-time | | +--ro destination-mep | | | +--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 mep-id? toam:tril-rb-nickname | | +--ro flow-entropy? toam:flow-entropy-trill | | +--ro context-type? boolean | | +--ro context-id-vlan? toam:vlan | | +--ro context-id-fgl? toam:fgl | +--ro output | +--ro session-id uint32 +---x abort-delay-measurement +--ro input +--ro technology identityref +--ro MD-name-string MD-name-string +--ro MA-name-string? MA-name-string +--ro destination-mep | +--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 mep-id? toam:tril-rb-nickname +--ro context-type? boolean +--ro context-id-vlan? toam:vlan +--ro context-id-fgl? toam:fgl +--ro session-id uint32 6. TRILL PM YANG module Kumar, Deepak Expires May 2015 [Page 12] Internet Draft TRILL PM YANG November 19, 2014 module trill-oam-pm { namespace "urn:cisco:params:xml:ns:yang:tril-oam-pm"; prefix trilloampm; import gen-oam { prefix goam; } import trill-oam { prefix toam; } import ietf-yang-types { prefix yang; } revision 2014-11-16 { description "Initial revision."; } identity trillpm { base goam:technology-types; description "trill pm type"; } grouping context-id-group { leaf context-type { type boolean; } description "If context-type is set then it's context-id-vlan, else it's context-id-fgl."; leaf context-id-vlan { type toam:vlan; } leaf context-id-fgl { type toam:fgl; } } grouping loss-measurement-configuration-group { description "This grouping includes configuration objects for Frame Loss Measurement function defined in TRILLPM."; reference TRILLPM; leaf measurement-type { type enumeration { Kumar, Deepak Expires May 2015 [Page 13] Internet Draft TRILL PM YANG November 19, 2014 enum slm { description "TRILL PM SLM Frames generated and received SLR responses tracked."; } enum 1sl { description "TRILL PM 1SL Frames generated."; } } default slm; description "This object specifies what type of Loss Measurement will be performed."; reference TRILLPM; } leaf enabled-counters { type bits { bit forward-min-flr; bit forward-max-flr; bit forward-average-flr; bit backward-min-flr; bit backward-max-flr; bit backward-average-flr; bit TRILLPM-pdus-sent; bit TRILLPM-pdus-received; } default " "; description "A vector of bits that indicates the type of TRILLPM loss measurement counters found in the current-stats and history that are enabled. A present bit enables the specific counter. A not present bit disables the specific counter. Not all counters are supported for all TRILLPM Loss Measurement types."; Kumar, Deepak Expires May 2015 [Page 14] Internet Draft TRILL PM YANG November 19, 2014 } leaf message-period { type uint32; default 1000; description "This objects specifies the interval between Loss Measurement OAM message transmission. Default value is 1 sec."; } leaf frame-size { type uint32 { range "64 .. 9600"; } default 64; description "This object specifies the Loss Measurement OAM frame size. The adjustment of the frame size of the standard frame size is accomplished by addition of a Data TLV as mention in TRILLPM. "; } leaf data-pattern { type enumeration { enum zeroes { description "Indicates the Data TLV contains all 0s."; } enum ones { description "Indicates the Data TLV contains all 1s."; } } default zeroes; description "This object specifies the LM data pattern included in OAM frame."; } leaf measurement-interval { type uint32; units minutes; default 15; Kumar, Deepak Expires May 2015 [Page 15] Internet Draft TRILL PM YANG November 19, 2014 description "This object specifies a Measurement Interval in minutes."; } leaf number-intervals-stored { type uint32 { range "2..10"; } default 10; description "This object specifies the number of completed measurement intervals to store in the history statistics table."; } leaf session-type { type enumeration { enum proactive { description "The current session is 'proactive'."; } enum on-demand { description "The current session is on-demand."; } } description "This object indicates whether the current session is defined to be proactive or on-demand."; } } grouping loss-stats-group { description "This grouping includes statistics object for TRILL PM Loss Measurement session."; leaf suspect-status { type boolean; description "if bit is set it means measurement interval statistics is not valid."; } leaf backward-transmitted-frames { type yang:gauge32; description "This object contains the number of frames transmitted in the Kumar, Deepak Expires May 2015 [Page 16] Internet Draft TRILL PM YANG November 19, 2014 backward direction by this session. This is count of TRILLPM SLM and 1SL frames."; } leaf backward-received-frames { type yang:gauge32; description "This object contains the number of frames received in the backward direction by this session. This is count of TRILLPM SLM and 1SL frames."; } leaf backward-min-frame-loss-ration { type uint32 { range "0..100000"; } units milli-percent; description "This object contains the minimum one-way frame loss ratio in the backward direction calculated by this MEP for the session in this Measurement Interval. The FLR value is a ratio that is expressed as a percent with a value 0 (ratio 0.00) through 100000 (ration 1.00)"; } leaf backward-max-frame-loss-ration { type uint32 { range "0..100000"; } units milli-percent; description "This object contains the maximum one-way frame loss ratio in the backward direction calculated by this MEP for the session in this Measurement Interval. The FLR value is a ratio that is expressed as a percent with a value 0 (ratio 0.00) through 100000 (ration 1.00)"; } leaf backward-average-frame-loss-ration { type uint32 { Kumar, Deepak Expires May 2015 [Page 17] Internet Draft TRILL PM YANG November 19, 2014 range "0..100000"; } units milli-percent; description "This object contains the average one-way frame loss ratio in the backward direction calculated by this MEP for the session in this Measurement Interval. The FLR value is a ratio that is expressed as a percent with a value 0 (ratio 0.00) through 100000 (ration 1.00)"; } leaf forward-transmitted-frames { type yang:gauge32; description "This object contains the number of frames transmitted in the forward direction by this session. This is count of TRILLPM SLM and 1SL frames."; } leaf forward-received-frames { type yang:gauge32; description "This object contains the number of frames received in the forward direction by this session. This is count of TRILLPM SLM and 1SL frames."; } leaf forward-min-frame-loss-ratio { type uint32 { range "0..100000"; } units milli-percent; description "This object contains the minimum one-way frame loss ratio in the forward direction calculated by this MEP for the session in this Measurement Interval. The FLR value is a ratio that is expressed as a percent with a value 0 Kumar, Deepak Expires May 2015 [Page 18] Internet Draft TRILL PM YANG November 19, 2014 (ratio 0.00) through 100000 (ration 1.00)"; } leaf forward-max-frame-loss-ratio { type uint32 { range "0..100000"; } units milli-percent; description "This object contains the maximum one-way frame loss ratio in the forward direction calculated by this MEP for the session in this Measurement Interval. The FLR value is a ratio that is expressed as a percent with a value 0 (ratio 0.00) through 100000 (ration 1.00)"; } leaf forward-average-frame-loss-ratio { type uint32 { range "0..100000"; } units milli-percent; description "This object contains the average one-way frame loss ratio in the forward direction calculated by this MEP for the session in this Measurement Interval. The FLR value is a ratio that is expressed as a percent with a value 0 (ratio 0.00) through 100000 (ration 1.00)"; } } grouping measurement-timing-group { description "This grouping includes objects used for proactive and on-demand scheduling of PM measurement sessions."; container start-time { description Kumar, Deepak Expires May 2015 [Page 19] Internet Draft TRILL PM YANG November 19, 2014 "This container defines the session start time."; choice start-time { description "Measurement sessions tart time can be immediate, relative, or absolute."; container immediate { presence "Start the measurement session immediately."; } leaf absolute { type yang:date-and-time; description "This objects specifies the scheduled start time to perform the on-demand monitoring operations."; } } } container stop-time { description "This container defines the session stop time."; choice stop-time { description "Measurement session stop time can be none, or absolute."; container none { presence "Never end the measurement session."; } leaf absolute { type yang:date-and-time; description "This objects specifies the scheduled stop time to perform the on-demand monitoring operations."; } } } } grouping delay-measurement-configuration-group { Kumar, Deepak Expires May 2015 [Page 20] Internet Draft TRILL PM YANG November 19, 2014 description "This grouping includes configuration objects for Delay Measurement function defined in TRILLPM."; reference "TRILLPM."; leaf measurement-type { type enumeration { enum dmm { description "DMM PDU generated, DMR responses received."; } enum dm1-transmitted { description "1DM PDU generated."; } enum dm1-received { description "1DM PDU received and measurement generated."; } } } leaf measurement-enable { type bits { bit toam-sent; bit toam-received; bit frame-delay-two-way-min; bit frame-delay-two-way-max; bit frame-delay-two-way-average; bit frame-delay-forward-min; bit frame-delay-forward-max; bit frame-delay-forward-average; bit frame-delay-backward-min; bit frame-delay-backward-max; bit frame-delay-backward-average; bit inter-frame-delay-variation-forward-min; bit inter-frame-delay-variation-forward-max; bit inter-frame-delay-variation-forward-average; bit inter-frame-delay-variation-backward-min; bit inter-frame-delay-variation-backward-max; bit inter-frame-delay-variation-backward-average; bit inter-frame-delay-variation-two-way-min; bit inter-frame-delay-variation-two-way-max; bit inter-frame-delay-variation-two-way-average; } default " "; Kumar, Deepak Expires May 2015 [Page 21] Internet Draft TRILL PM YANG November 19, 2014 description "A vector of bits that indicates the type of DM counters that are enabled. A set bit enables the specific DM counter. A clear bit disables the specific DM counter. Not all DM counters are supported for all DM types."; } leaf message-period { type uint32; default 100; description "This objects specifies the interval between Delay Measurement OAM message transmission. Default value is 100ms."; } leaf frame-size { type uint32 { range "64 .. 9600"; } default 64; description "This object specifies the Delay Measurement OAM frame size. The adjustment of the frame size of the standard frame size is accomplished by addition of a Data TLV as mention in TRILLPM. "; } leaf data-pattern { type enumeration { enum zeroes { description "Indicates the Data TLV contains all 0s."; } enum ones { description "Indicates the Data TLV contains all 1s."; } } default zeroes; description "This object specifies the DM data pattern included in OAM frame."; } leaf measurement-interval { type uint32; Kumar, Deepak Expires May 2015 [Page 22] Internet Draft TRILL PM YANG November 19, 2014 units minutes; default 15; description "This object specifies a Measurement Interval in minutes."; } leaf number-intervals-stored { type uint32 { range "2..10"; } default 10; description "This object specifies the number of completed measurement intervals to store in the history statistics table."; } leaf ifdv-selection-offset { type uint32 { range "1..10"; } default 1; description "This object specifies the selection offset for Inter Frame Delay variation measurements. If this value is set to n, then the IFDV is calculated by taking the difference in frame delay between frame F and frame (F+n)."; } leaf session-type { type enumeration { enum proactive { description "The current session is 'proactive'."; } enum on-demand { description "The current session is on-demand."; } } description "This object indicates whether the current session is defined to be proactive or on-demand."; } } grouping delay-measurement-stats-group { Kumar, Deepak Expires May 2015 [Page 23] Internet Draft TRILL PM YANG November 19, 2014 description "This grouping includes statistics objects for a TRILL PM Delay Measurement session."; leaf suspect-status { type boolean; description "if bit is set it means measurement interval statistics is not valid."; } leaf frame-delay-two-way-min { type uint32; units microseconds; } leaf frame-delay-two-way-max { type uint32; units microseconds; } leaf frame-delay-two-way-average { type uint32; units microseconds; } leaf frame-delay-forward-min { type uint32; units microseconds; } leaf frame-delay-forward-average { type uint32; units microseconds; } leaf frame-delay-forward-max { type uint32; units microseconds; } leaf frame-delay-backward-min { type uint32; units microseconds; } leaf frame-delay-backward-max { type uint32; units microseconds; } leaf frame-delay-backward-average { Kumar, Deepak Expires May 2015 [Page 24] Internet Draft TRILL PM YANG November 19, 2014 type uint32; units microseconds; } leaf frame-delay-variation-backward-min { type uint32; units microseconds; } leaf frame-delay-variation-backward-max { type uint32; units microseconds; } leaf frame-delay-variation-backward-average { type uint32; units microseconds; } leaf frame-delay-variation-forward-min { type uint32; units microseconds; } leaf frame-delay-variation-forward-average { type uint32; units microseconds; } leaf frame-delay-variation-forward-max { type uint32; units microseconds; } leaf frame-delay-variation-two-way-min { type uint32; units microseconds; } leaf frame-delay-variation-two-way-average { type uint32; units microseconds; } leaf frame-delay-variation-two-way-max { type uint32; units microseconds; } } augment "/goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP" { description "This set of data definitions extends the MEP as described in goam"; leaf delay-responder { type boolean; Kumar, Deepak Expires May 2015 [Page 25] Internet Draft TRILL PM YANG November 19, 2014 default true; description "This object specifies whether Delay Measurement (DMM) single ended Responder is enabled. The value 'false' indicates the Delay measurement responder is disabled and received DMM will be discarded."; } } augment "/goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP" { description "This set of data definitions extends the MEP as described in goam, specially with regards to Delay Measurements."; container delay-measurements { description "This container contains a collection of data definitions related to Delay Measurements as defined in TRILLPM."; list delay-measurements { key "session-cookie"; config false; description "List of Delay Measurement PM Sessions where each instance is uniquely identified by an session-cookie attribute."; leaf session-cookie { config false; type uint32; description "cookie to identify Delay Measurement session."; } leaf id { type string; description "This object uniquely identifies a scheduled measurement time."; } leaf status { type boolean; Kumar, Deepak Expires May 2015 [Page 26] Internet Draft TRILL PM YANG November 19, 2014 config false; description "This object indicates DM session status, true means Active, false means not-active."; } } uses delay-measurement-configuration-group; uses measurement-timing-group; container destination-mep { uses goam:mp-address; leaf mep-id { type toam:tril-rb-nickname; } } leaf frame-delay-two-way { type yang:gauge32; units microseconds; description "This object contains the frame delay calculated by this MEP from the last received TRILLPM frame. This object is undefined if measurement-type is dm1."; } leaf frame-delay-forward { type yang:gauge32; units microseconds; description "This object contains the frame delay in the forward direction calculated by this MEP from the last received TRILLPM frame. One way Delay require sufficiently precise clock Synchronization. This object is undefined if it's dm1-transmitted."; } leaf frame-delay-backward { type yang:gauge32; units microseconds; description "This object contains the frame delay in the backward direction calculated by this MEP from the last received TRILLPM frame. One way Delay require sufficiently precise clock Kumar, Deepak Expires May 2015 [Page 27] Internet Draft TRILL PM YANG November 19, 2014 Synchronization. This object is undefined if it's dm1-transmitted or dm1-received."; } leaf inter-frame-delay-variation-two-way { type yang:gauge32; units microseconds; description "This object contains the last two-way inter-frame delay interval calculated by this MEP. The value of this object is undefined when measurement-type is dm1-transmitted or dm1-received."; } leaf inter-frame-delay-variation-forward { type yang:gauge32; units microseconds; description "This object contains the last one-way inter-frame delay in the forward direction calculated by this MEP. The value of this object is undefined when measurement-type is dm1-transmitted."; } leaf inter-frame-delay-variation-backward { type yang:gauge32; units microseconds; description "This object contains the last one-way inter-frame delay in the backward direction calculated by this MEP. The value of this object is undefined when measurement-type is dm1-transmitted or dm-received."; } container current-stats { description "This container contains result of the current Measurement Kumar, Deepak Expires May 2015 [Page 28] Internet Draft TRILL PM YANG November 19, 2014 Interval in a TRILLPM Delay measurement session gathered during the interval indicated by measurement-interval."; leaf start-time { type yang:date-and-time; description "Start time for current measurement interval."; } leaf elapsed-time { type uint32; description "Elapsed time for current measurement interval in 0.01 seconds."; } uses delay-measurement-stats-group; } list history-stats { key id; description "This list contains the result for historic Measurement Interval for TRILLPM session."; leaf id { type uint32; } leaf start-time { type yang:date-and-time; description "Start time for measurement interval."; } leaf elapsed-time { type uint32; description "Elapsed time for measurement interval in 0.01 seconds."; } Kumar, Deepak Expires May 2015 [Page 29] Internet Draft TRILL PM YANG November 19, 2014 uses delay-measurement-stats-group; } } } augment "/goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP" { description "This set of data definitions extends the MEP as described in goam, specially with regards to Loss Measurements."; container loss-measurements { description "This container contains a collection of data definitions related to Loss Measurements as defined in TRILLPM."; list loss-measurements { key "session-cookie"; config false; description "List of Loss Measurement PM Sessions where each instance is uniquely identified by an session-cookie attribute."; leaf session-cookie { config false; type uint32; description "cookie to identify Loss Measurement session."; } leaf id { type string; description "This object uniquely identifies a scheduled measurement time."; } leaf status { type boolean; config false; description "This object indicates DM session status, true means Active, false means not-active."; } } Kumar, Deepak Expires May 2015 [Page 30] Internet Draft TRILL PM YANG November 19, 2014 uses loss-measurement-configuration-group; uses measurement-timing-group; container destination-mep { uses goam:mp-address; leaf mep-id { type toam:tril-rb-nickname; } } leaf measurement-forward-flr { type yang:gauge32 { range "0..100000"; } units milli-percent; description "This object contains the Frame loss Ratio in forward direction."; } leaf measurement-backward-flr { type yang:gauge32 { range "0..100000"; } units milli-percent; description "This object contains the Frame loss Ratio in backward direction."; } container current-stats { description "This container contains result of the current Measurement Interval in a TRILLPM Loss measurement session gathered during the interval indicated by measurement-interval."; leaf start-time { type yang:date-and-time; description "Start time for current measurement interval."; } leaf elapsed-time { type uint32; description Kumar, Deepak Expires May 2015 [Page 31] Internet Draft TRILL PM YANG November 19, 2014 "Elapsed time for current measurement interval in 0.01 seconds."; } uses loss-stats-group; } list history-stats { key id; description "This list contains the result for historic Measurement Interval for TRILLPM session."; leaf id { type uint32; } leaf start-time { type yang:date-and-time; description "Start time for measurement interval."; } leaf elapsed-time { type uint32; description "Elapsed time for measurement interval in 0.01 seconds."; } uses loss-stats-group; } } } //RPCs related to TRILLOAM PM rpc create-loss-measurement { description "Schedule a one-way and two-way on-demand or proactive performance monitoring loss measurements on a specific MEP and Flow. A list entry associated with the newly created session will be Kumar, Deepak Expires May 2015 [Page 32] Internet Draft TRILL PM YANG November 19, 2014 created in the loss-measurements container and the assigned session identifier will be returned in the output parameter."; input { uses loss-measurement-configuration-group; uses measurement-timing-group; container destination-mep { uses goam:mp-address; leaf mep-id { type toam:tril-rb-nickname; } } leaf flow-entropy { type toam:flow-entropy-trill; } } output { leaf session-id { type uint32; mandatory true; description "The session identifier of the newly created loss measurement session."; } } } //end of rpc rpc abort-loss-measurement { description "Abort a currently running or scheduled single-ended on-demand TRILL PM function."; input { uses goam:maintenance-domain-id; uses goam:ma-identifier; container destination-mep { uses goam:mp-address; leaf mep-id { type toam:tril-rb-nickname; } } leaf session-id { type uint32; Kumar, Deepak Expires May 2015 [Page 33] Internet Draft TRILL PM YANG November 19, 2014 mandatory true; description "The session Id of the measurement session to be aborted."; } } } //end of RPC rpc create-delay-measurement { description "Schedule a one-way and two-way on-demand or proactive performance monitoring delay measurements on a specific MEP and Flow. A list entry associated with the newly created session will be created in the delay-measurements container and the assigned session identifier will be returned in the output parameter."; input { uses delay-measurement-configuration-group; uses measurement-timing-group; container destination-mep { uses goam:mp-address; leaf mep-id { type toam:tril-rb-nickname; } } leaf flow-entropy { type toam:flow-entropy-trill; } uses context-id-group; } output { leaf session-id { type uint32; mandatory true; description "The session identifier of the newly created delay measurement session."; } } Kumar, Deepak Expires May 2015 [Page 34] Internet Draft TRILL PM YANG November 19, 2014 } //end of rpc rpc abort-delay-measurement { description "Abort a currently running or scheduled single-ended on-demand TRILL PM function."; input { uses goam:maintenance-domain-id; uses goam:ma-identifier; container destination-mep { uses goam:mp-address; leaf mep-id { type toam:tril-rb-nickname; } } uses context-id-group; leaf session-id { type uint32; mandatory true; description "The session Id of the measurement session to be aborted."; } } } //end of RP } 7. Security Considerations There are no security considerations relevant to this document. 8. IANA Considerations No actions are required from IANA as result of the publication of this document. Kumar, Deepak Expires May 2015 [Page 35] Internet Draft TRILL PM YANG November 19, 2014 9. References 9.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC4234] Crocker, D. and P. Overell, "Augmented BNF for Syntax Specifications: ABNF", RFC 4234, October 2005. 9.2. Informative References [Y1731] ITU, "OAM functions and mechanisms for Ethernet based networks", ITU-T G.8013/Y.1731, July, 2011. [RFC6905] TRILL OAM Requirement [RFC7174] TRILL OAM Framework [TRILLOAM] Senevirathne, T., et.al., "TRILL Fault Management", Work in progress, October, 2014. [GENYANGOAM] Senevirathne, T., et.al., "Generic YANG Data Model for Operations, Administration and Maintenance (OAM)", Work in Progress, October, 2014. [TRILLOAMYANG] Senevirathne, T., et.al., "YANG Data Model for TRILL Operations, Administration, Maintenance(OAM)", Work in Progress, September, 2014. Authors' Addresses Tissa Senevirathne CISCO Systems 375 East Tasman Drive. San Jose, CA 95134 USA. Phone: 408-853-2291 Email: tsenevir@cisco.com Deepak Kumar CISCO Systems 510 McCarthy Blvd Milpitas, CA 95035. Email: dekumar@cisco.com Kumar, Deepak Expires May 2015 [Page 36] Internet Draft TRILL PM YANG November 19, 2014 Tapraj Singh Juniper Networks 1194 N Mathilda Avenue Sunnyvale, CA 94089 Email: tsingh@juniper.net Kumar, Deepak Expires May 2015 [Page 37]