Internet Draft Deepak Kumar T. Senevirathne CISCO T. Singh JUNIPER Qin Wu Weiguo Hao Huawei Category: Standard Track Expires August 2015 August 17, 2015 YANG Data Model for TRILL Operations, Administration, and Maintenance (OAM) Performance Management draft-ietf-trill-yang-pm-01.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 Feburary 18, 2016. 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 carefully, as they describe your rights and restrictions with respect Kumar, Deepak Expires February 18, 2016 [Page 1] Internet Draft TRILL PM YANG August 17, 2015 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. Abstract This document presents YANG Data model for TRILL OAM PM[TRILL-PM]. It extends the YANG model defined in [GENYANGGOAM] and [TRILLOAMYANG] for TRILL OAM Performance management technology specifics. Kumar, Deepak Expires February 18, 2016 [Page 2] Internet Draft TRILL PM YANG August 17, 2015 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Conventions used in this document . . . . . . . . . . . . . . . 4 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 . . . . . . . . . . . . . . . . . . . . . . . . 6 4.3 Context-id . . . . . . . . . . . . . . . . . . . . . . . . . 6 4.4 Grouping Statements . . . . . . . . . . . . . . . . . . . . 6 4.5 RPC definition . . . . . . . . . . . . . . . . . . . . . . . 6 4.5.1 create-loss-measurement . . . . . . . . . . . . . . . . 6 4.5.2 abort-loss-measurement . . . . . . . . . . . . . . . . . 6 4.5.3 create-delay-measurement . . . . . . . . . . . . . . . . 7 4.4.4 abort-delay-measurement . . . . . . . . . . . . . . . . 7 5. TRILL PM data hierarchy . . . . . . . . . . . . . . . . . . . . 7 6. TRILL PM YANG module . . . . . . . . . . . . . . . . . . . . . 13 7. Security Considerations . . . . . . . . . . . . . . . . . . . 36 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 36 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 37 9.1. Normative References . . . . . . . . . . . . . . . . . . . 37 9.2. Informative References . . . . . . . . . . . . . . . . . . 37 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 37 1. Introduction Fault Management for TRILL is defined in [TRILL-FM]. 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 [TRILL-FM]. Performance Management for TRILL is defined in [TRILL-PM]. TRILL Performance Management utilizes the [Y.1731-2013/G.8013] and extends it with Loss Measurement and Delay measurement. Generic OAM Yang model [GENYANGGOAM] presents Generic Yang data model for all OAM technologies. In this document we extend the YANG model defined in [GENYANGGOAM] and [TRILLOAMYANG] for TRILL OAM Performance management. Details are provided in section 4 below. Kumar, Deepak Expires February 18, 2016 [Page 3] Internet Draft TRILL PM YANG August 17, 2015 2. Conventions used in this document 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 [8021.Q] MEP - Maintenance End Point [RFC7174] [8021Q] [RFC6371] MIP - Maintenance Intermediate Point [RFC7174] [8021.Q] [RFC6371] MA - Maintenance Association [8021.Q] [RFC7174] MD - Maintenance Domain [8021.Q] 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 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 +-+-+-+-+-+ Kumar, Deepak Expires February 18, 2016 [Page 4] Internet Draft TRILL PM YANG August 17, 2015 | Gen | |OAM YANG | +-+-+-+-+-+ | 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[GENYANGGOAM]. In this draft we augment MEP Configuration with Performance Management configuration and statistics for Delay Measurement and Performance Measurement. For technology specific we are re-using identify defined in [TRILLOAMYANG] model. identity trill { base goam:technology-types; description "trill 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 Kumar, Deepak Expires February 18, 2016 [Page 5] Internet Draft TRILL PM YANG August 17, 2015 augment /goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP: 4.2 Flow Entropy As defined in TRILL OAM Yang[TRILLOAMYANG] model. 4.3 Context-id As defined in TRILL OAM Yang[TRILLOAMYANG] model. 4.4 Grouping Statements loss-measurement-configuration-group, groups configuration objects for Frame Loss Measurement function defined in [TRILL-PM]. loss-stats-group, groups statistics object for [TRILL-PM] Loss measurement section. measurement-timing-group, groups object used for proactive and on- demand scheduling of PM measurement sessions. delay-measurement-configuration-group, groups configuration objects for Delay measurement function defined in [TRILL-PM] delay-measurement-stats-group, groups statistics objects for a TRILL Delay measurement sessions. 4.5 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 loss-measurement-configuration-group, measurement-timing-group, and delay-measurement-configuration-group defines input extension for Delay and Loss measurement RPCs. 4.5.1 create-loss-measurement RPC allows scheduling of one-way or two-way on-demand or proactive performance monitoring loss measurement session. 4.5.2 abort-loss-measurement RPC allow aborting of currently running or scheduled loss measurement session. Kumar, Deepak Expires February 18, 2016 [Page 6] Internet Draft TRILL PM YANG August 17, 2015 4.5.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. 5. 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: 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 Kumar, Deepak Expires February 18, 2016 [Page 7] Internet Draft TRILL PM YANG August 17, 2015 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 | +--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 Kumar, Deepak Expires February 18, 2016 [Page 8] Internet Draft TRILL PM YANG August 17, 2015 | +--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 +--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 Kumar, Deepak Expires February 18, 2016 [Page 9] Internet Draft TRILL PM YANG August 17, 2015 +--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) | | | +--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 Kumar, Deepak Expires February 18, 2016 [Page 10] Internet Draft TRILL PM YANG August 17, 2015 +--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)? | | | +--:(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-loss-measurement Kumar, Deepak Expires February 18, 2016 [Page 11] Internet Draft TRILL PM YANG August 17, 2015 | +--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 | | +--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 Kumar, Deepak Expires February 18, 2016 [Page 12] Internet Draft TRILL PM YANG August 17, 2015 | | +--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 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 2015-01-07 { description "Initial revision."; } identity trill { Kumar, Deepak Expires February 18, 2016 [Page 13] Internet Draft TRILL PM YANG August 17, 2015 base goam:technology-types; description "trill 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 TRILL-PM."; reference TRILL-PM; leaf measurement-type { type enumeration { 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."; Kumar, Deepak Expires February 18, 2016 [Page 14] Internet Draft TRILL PM YANG August 17, 2015 reference TRILL-PM; } 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 TRILL-PM-pdus-sent; bit TRILL-PM-pdus-received; } default " "; description "A vector of bits that indicates the type of TRILL-PM loss measurement coutners 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 TRILL-PM Loss Measurement types."; } 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; Kumar, Deepak Expires February 18, 2016 [Page 15] Internet Draft TRILL PM YANG August 17, 2015 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 TRILL-PM. "; } 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; 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 { Kumar, Deepak Expires February 18, 2016 [Page 16] Internet Draft TRILL PM YANG August 17, 2015 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 backward direction by this session. This is count of TRILL-PM 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 TRILL-PM SLM and 1SL frames."; } leaf backward-min-frame-loss-ration { type uint32 { Kumar, Deepak Expires February 18, 2016 [Page 17] Internet Draft TRILL PM YANG August 17, 2015 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 { 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)"; Kumar, Deepak Expires February 18, 2016 [Page 18] Internet Draft TRILL PM YANG August 17, 2015 } 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 TRILL-PM 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 TRILL-PM SLM and 1SL frames."; } leaf forward-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 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-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 forward direction calculated by this MEP for the session Kumar, Deepak Expires February 18, 2016 [Page 19] Internet Draft TRILL PM YANG August 17, 2015 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-ration { 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 "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 Kumar, Deepak Expires February 18, 2016 [Page 20] Internet Draft TRILL PM YANG August 17, 2015 "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 { description "This grouping includes configuration objects for Delay Measurement function defined in TRILL-PM."; reference "TRILL-PM."; leaf measurement-type { type enumeration { enum dmm { description "DMM PDU generated, DMR responses received."; } enum dm1-transmitted { description Kumar, Deepak Expires February 18, 2016 [Page 21] Internet Draft TRILL PM YANG August 17, 2015 "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 " "; 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."; Kumar, Deepak Expires February 18, 2016 [Page 22] Internet Draft TRILL PM YANG August 17, 2015 } 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 TRILL-PM. "; } 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; 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 Kumar, Deepak Expires February 18, 2016 [Page 23] Internet Draft TRILL PM YANG August 17, 2015 "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 { 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 { Kumar, Deepak Expires February 18, 2016 [Page 24] Internet Draft TRILL PM YANG August 17, 2015 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 { 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; Kumar, Deepak Expires February 18, 2016 [Page 25] Internet Draft TRILL PM YANG August 17, 2015 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; 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."; } } Kumar, Deepak Expires February 18, 2016 [Page 26] Internet Draft TRILL PM YANG August 17, 2015 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 TRILL-PM."; 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; 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; Kumar, Deepak Expires February 18, 2016 [Page 27] Internet Draft TRILL PM YANG August 17, 2015 } } 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 TRILL-PM 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 TRILL-PM 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 TRILL-PM frame. One way Delay require sufficiently precise clock 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. Kumar, Deepak Expires February 18, 2016 [Page 28] Internet Draft TRILL PM YANG August 17, 2015 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 Interval in a TRILL-PM 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 { Kumar, Deepak Expires February 18, 2016 [Page 29] Internet Draft TRILL PM YANG August 17, 2015 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 TRILL-PM 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 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 { Kumar, Deepak Expires February 18, 2016 [Page 30] Internet Draft TRILL PM YANG August 17, 2015 description "This container contains a collection of data definitions related to Loss Measurements as defined in TRILL-PM."; 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."; } } 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"; } Kumar, Deepak Expires February 18, 2016 [Page 31] Internet Draft TRILL PM YANG August 17, 2015 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 TRILL-PM 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 "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 Kumar, Deepak Expires February 18, 2016 [Page 32] Internet Draft TRILL PM YANG August 17, 2015 Interval for TRILL-PM 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 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; } } Kumar, Deepak Expires February 18, 2016 [Page 33] Internet Draft TRILL PM YANG August 17, 2015 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 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; 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 Kumar, Deepak Expires February 18, 2016 [Page 34] Internet Draft TRILL PM YANG August 17, 2015 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."; } } } //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; Kumar, Deepak Expires February 18, 2016 [Page 35] Internet Draft TRILL PM YANG August 17, 2015 } } 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 February 18, 2016 [Page 36] Internet Draft TRILL PM YANG August 17, 2015 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. [GENYANGGOAM] 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. 9.2. Informative References [RFC7174] TRILL OAM Framework [802.1Q] IEEE, "IEEE Standard for Local and metropolitan area networks - Media Access Control (MAC) Bridges and Virtual Bridge Local Area Networks", IEEE Std 802.1Q-2011, 31 August 2011. [RFC6371] Busi, I., et.al., "Operations, Administration, and Maintenance Framework for MPLS-Based Transport Networks, RFC 6317, September 2011. [RFC6291] Andersson, L., et.al., "Guidelines for the use of the "OAM" Acronym in the IETF" RFC 6291, June 2011. [RFC6325] Perlman, R., et.al., "Routing Bridges (RBridges): Base Protocol Specification", RFC 6325, July 2011. [TRILL-FM] Senevirathne, T., et.al., "TRILL Fault Management", draft- ietf-trill-oam-fm, Work in Progress. [TRILL-PM] Mizrahi, T., et.al., "Loss and delay in Transparent Interconnection of Lots of Links (TRILL)", draft-ietf- trill-loss-delay, Work in Progress. Authors' Addresses Tissa Senevirathne CISCO Systems 375 East Tasman Drive. Kumar, Deepak Expires February 18, 2016 [Page 37] Internet Draft TRILL PM YANG August 17, 2015 San Jose, CA 95134 USA. Phone: 408-853-2291 Email: tsenevir@gmail.com Deepak Kumar CISCO Systems 510 McCarthy Blvd Milpitas, CA 95035. Email: dekumar@cisco.com Tapraj Singh Juniper Networks 1194 N Mathilda Avenue Sunnyvale, CA 94089 Email: tsingh@juniper.net Qin Wu Huawei 101 Software Avenue, Yuhua District Nanjing, Jiangsu 210012 Email: bill.wu@huawei.com Weiguo Hao Huawei Email: haoweiguo@huawei.com Kumar, Deepak Expires February 18, 2016 [Page 38]