Initial import of Microsemi Driver
Change-Id: I431d5f2c18e0b66a84c36273c3d9f0b84f223841
Added in BUCK files for building driver
Change-Id: I70681327f5b89f67e904c45d5974ab393652d51f
Corrected some syntax errors
Change-Id: I11150cc499c212005f80619e3900e747f1c23d96
Updated pom file to clean build
Change-Id: I6613ddc9e6802aa882e716cf04df210249870835
Added in utility functions for EA1000 Init
Change-Id: I51ffe0cf0daf9ffcea0e2479ee9982fcd1755440
Added YMS code to Microsemi Driver
Change-Id: I6f2a14e454c6909bf9e9f6025321c74c98c13c72
Updated driver to work with YMS and YCH
Change-Id: If7dbe3cd5bd1b6f902d09d6b2dc3895605d70f70
Implemented IetfSystemManager as a service and call on YMS as a service
Change-Id: If1c5e8482b1f53f578a3b0b770accd50024111cf
Moved YMS calls over in to Yang Service implementation
Change-Id: I044aad06f1ef7452bc48e88987787a683666cd72
improved unit test for IetfSystemManager
Change-Id: I48fbf831e7e5ca0e1ef3de8288e56da1b5ebb7a4
Major changes to IetfSystemManager to work in live system
Change-Id: I6e3aa118ba422151f314b9a666860d90905c9929
Added in retry mechanism for DeviceDescription to wait for YCH
Change-Id: If8e0f2c2f315ffd6db15627a11382a00217dd262
Added in implementation of MseaSaFiltering and unit tests
Change-Id: I34bf888e0e732bd4664d1fb8ef5abb679b1506fe
Updated driver with unit tests for MseaSaFiltering
Change-Id: I7ea2407a546622ff55d1ab21610c45697546d632
Modified removeFlowRules of Ea1000FlowRuleProgrammable
Change-Id: Ibb4a555f61887a8e6e42af588bb42f7b70f58efb
Added in manager for MseaUniEvc service with unit tests
Change-Id: Idc5853f46051548973f52a0659f7f88982ff960c
Implemented getFlowEntries() for EVCs from EA1000
Change-Id: Ie85dadfa7760f0b30a9bdf6ccd09cca9f097fff9
Added in translation of FlowRules in to EVC on EA1000
Change-Id: Icfb65171c3300c96b3ca4e18cbd327f0ed2190be
Added in handling of FlowRule deletion including complex ceVlanMaps
Change-Id: I7fd0bb0ef04d1b40e4b7d6a6db7f7ee662329780
Updated Service entries for new onos-yang-tools
Change-Id: I44e655202f3a45073e1e16f83737caed6e01afa8
Revert "Updated Service entries for new onos-yang-tools"
This reverts commit 642b550ef1de12ed59bad2eaa3a2da414d2e5e59.
Improved timeout mechanism for YANG model loading
Change-Id: If744ecd206372e822edf2b736c83226321a12256
Minor edits of EVC creation
Change-Id: Ib0a4763deaf6dce37625ba77f5095b39cd98272d
Added in CustomEvc and supporting classes
Change-Id: Iad60eb1bcd48d2aec55b894b2d419b51852c3b2f
Created CeVlanUtils to resolve loading problem
Change-Id: I0d63931ad2c5ad2725861ebc7dccc4d5fe7b9298
Modified startup check
Change-Id: I6e6bcfa7e615044cb08fe7ee2f8a6c8b89aabb21
Modified handlin of flow rules
Change-Id: I965a79c23298866122aeb94c6d9d584aafee3bd5
Fixed problem with ceVlanMap
Change-Id: If1458c35d0b95b5b25b6636f098292f9e91c06c6
Minor Pom edits
Change-Id: I5cefb18674aa04b1f50bd7e2306260c1c3ad3814
Commented out extension references in YANG files to avoid onos-yang-tools problems
Change-Id: I32fdb34c4f476f495fe28e75d0f410aaf14e2ec1
Corrected error in removing 0 in CeVlanMapUtils
Change-Id: I8cd1fd02788b81c2613364d5639ef6e090057f80
Changes in YMS to accomodate EA1000 driver
Change-Id: I6ae2b9bd2be49eae8d4ad2f929dfe3214c514550
diff --git a/drivers/microsemi/ea1000yang/src/main/yang/msea-soam-pm.yang b/drivers/microsemi/ea1000yang/src/main/yang/msea-soam-pm.yang
new file mode 100644
index 0000000..21c05a6
--- /dev/null
+++ b/drivers/microsemi/ea1000yang/src/main/yang/msea-soam-pm.yang
@@ -0,0 +1,1479 @@
+module msea-soam-pm {
+
+ namespace "http://www.microsemi.com/microsemi-edge-assure/msea-soam-pm";
+ prefix "msea-soam-pm"; //MicroSemi EdgeAssure (msea)
+
+ import ietf-yang-types {
+ prefix yang;
+ revision-date 2013-07-15;
+ }
+
+ import msea-cfm {
+ prefix msea-cfm;
+ }
+
+ import msea-types {
+ prefix msea;
+ }
+
+ organization
+ "Microsemi Inc., FTD Division";
+
+ contact
+ "Web URL: http://www.microsemi.com/
+ E-mail: info@microsemi.com
+ Postal: Microsemi Corporation Corporate Headquarters
+ One Enterprise Aliso Viejo,
+ CA 92656
+ U.S.A.
+ Phone: +1 949 380 6100
+ Fax: +1 949 215-4996";
+
+ description
+ "This YANG module is a fork of the original mef-soam-pm YANG Module defined in MEF 39
+ for the management of Ethernet Services Operations, Administration and
+ Maintenance for Performance Monitoring and extends the Connectivity Fault
+ Management (CFM) YANG modules.
+ This fork is done specifically to suit the EdgeAssure which has some extra
+ constraints that are not handled by the original YANG.
+
+ Copyright 2016 Microsemi Inc.
+ All rights reserved.";
+
+ revision "2016-02-29" {
+ description
+ "Initial EdgeAssure version forked from mef-soam-pm@2012-04-16 - Sean Condon, Microsemi";
+ reference
+ "Service OAM Fault Management YANG Modules (MEF 39), April 2012";
+ }
+
+ //
+ // Type definitions related to MEF SOAM PM
+ //
+
+ typedef suspect-status-type {
+ type boolean;
+ description
+ "This boolean data type indicates whether the measurement interval
+ has been marked as suspect.
+
+ The object is set to false at the start of a measurement
+ interval. It is set to true when there is a discontinuity in the
+ performance measurements during the measurement interval.
+ Conditions for a discontinuity include, but are not limited to
+ the following:
+
+ 1 - The local time-of-day clock is adjusted by at least 10
+ seconds
+ 2 - The conducting of a performance measurement is halted before
+ the current measurement interval is completed
+ 3 - A local test, failure, or reconfiguration that disrupts
+ service";
+ reference
+ "[MEF SOAM PM IA] R39, R40, 41 and R42";
+ }
+
+ typedef performance-monitoring-interval-type {
+ type uint32 {
+ range "3..3600000";
+ }
+ units ms;
+ description
+ "This integer data type indicates the transmission time between the
+ SOAM PM frames for session, in ms.";
+ }
+
+
+ typedef session-status-type {
+ type enumeration {
+ enum active {
+ description
+ "Indicates the measurement instance is active.";
+ }
+ enum not-active {
+ description
+ "Indicates the measurement instance is not active.";
+ }
+ }
+
+ description
+ "This enumeration data type defines the status of PM session of a MEP.";
+ reference
+ "MEF-SOAM-TC-MIB.MefSoamTcStatusType";
+ }
+
+
+ typedef measurement-bin-type {
+ type enumeration {
+ enum two-way-frame-delay {
+ description
+ "Indicates a measurement bin for two-way Frame Delay.";
+ }
+
+ enum two-way-inter-frame-delay-variation {
+ description
+ "Indicates a measurement bin for two-way Inter-frame Delay
+ Variation.";
+ }
+ }
+
+ description
+ "This enumeration data type indicates whether the bin number is for Frame
+ Delay and Inter-Frame Delay Variation.";
+ reference
+ "MEF-SOAM-TC-MIB.MefSoamTcDelayMeasurementBinType";
+ }
+
+ //
+ // Groupings related to MEF SOAM PM
+ //
+
+ grouping remote-mep-group {
+ description
+ "This grouping includes objects which identify a remote MEP.";
+ choice remote-mep {
+ mandatory true;
+ description
+ "The remote MEP can be identified by either a MAC address or a MEP ID";
+
+ case mac-address {
+ leaf mac-address {
+ type yang:mac-address;
+// msea:not-changeable;
+
+ description
+ "The Target MAC Address Field to be transmitted: A unicast
+ destination MAC address.
+
+ This object is only valid for the entity transmitting the
+ SOAM Loss and Delay Measurement frames and is ignored by
+ the entity receiving SOAM Loss and Delay Measurement
+ frames.";
+ }
+ }
+ case mep-id {
+ leaf mep-id {
+ type leafref {
+ path "/msea-cfm:mef-cfm/msea-cfm:maintenance-domain/msea-cfm:maintenance-association/msea-cfm:remote-meps";
+ }
+// msea:not-changeable;
+
+ description
+ "The Maintenance Association End Point Identifier of another MEP in
+ the same Maintenance Association to which the SOAM Loss or Delay
+ Measurement frame is to be sent.
+
+ This object is only valid for the entity transmitting the
+ SOAM Loss Measurement or Delay Measurement frames and is
+ ignored by the entity receiving SOAM Loss Measurement or
+ Delay Measurement frames.";
+ }
+ }
+ }
+ }
+
+ 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 {
+ default immediate;
+ description
+ "Measurement session start time can be immediate, relative or
+ absolute.";
+
+ container immediate {
+ presence "Start the measurement session immediately.";
+
+ description
+ "This object specifies the start time to be immediately at the time
+ of session creation.";
+ }
+ }
+ }
+
+ container stop-time {
+ description
+ "This container defines the session stop time";
+
+ choice stop-time {
+ default none;
+ description
+ "Measurement session stop time can be none, relative or
+ absolute.";
+
+ container none {
+ presence "Never end the measurement session.";
+
+ description
+ "This object specifies the measurement session to never end.";
+ }
+ }
+ }
+ }
+
+ grouping loss-measurement-stats-group {
+ description
+ "This grouping includes statistics objects for a SOAM Loss Measurement
+ session.";
+
+ leaf suspect-status {
+ type suspect-status-type;
+
+ description
+ "Whether the Measurement Interval has been marked as suspect.
+
+ The object is set to false at the start of a measurement
+ interval. It is set to true when there is a discontinuity in
+ the performance measurements during the Measurement Interval.
+ Conditions for a discontinuity include, but are not limited to
+ the following:
+
+ 1 - The local time-of-day clock is adjusted by at least 10 seconds
+ 2 - The conducting of a performance measurement is halted before the
+ current Measurement Interval is completed
+ 3 - A local test, failure, or reconfiguration that disrupts service";
+ reference
+ "MEF-SOAM-PM-MIB.mefSoamLmCurrentStatsSuspect";
+ }
+
+ leaf forward-transmitted-frames {
+ type yang:gauge32;
+ mandatory true;
+
+ description
+ "This object contains the number of frames transmitted in the forward
+ direction by this MEP.
+
+ For a PM Session of types lmm or ccm this includes Ethernet
+ Service Frames and SOAM PDUs that are in a higher MEG level
+ only.
+
+ For a PM Session of type slm this includes the count of SOAM
+ ETH-SLM frames only.";
+ reference
+ "MEF-SOAM-PM-MIB.mefSoamLmCurrentStatsForwardTransmittedFrames";
+ }
+
+ leaf forward-received-frames {
+ type yang:gauge32;
+ mandatory true;
+
+ description
+ "This object contains the number of frames received in the forward
+ direction by this MEP.
+
+ For a PM Session of types lmm or ccm this includes Ethernet
+ Service Frames and SOAM PDUs that are in a higher MEG level only.
+
+ For a PM Session of type slm this includes the count of SOAM
+ ETH-SLM frames only.";
+ reference
+ "MEF-SOAM-PM-MIB.mefSoamLmCurrentStatsForwardReceivedFrames";
+ }
+
+ 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 this Measurement
+ Interval. The FLR value is a ratio that is expressed as a
+ percent with a value of 0 (ratio 0.00) through 100000 (ratio
+ 1.00).
+
+ Units are in milli-percent, where 1 indicates 0.001 percent.";
+ reference
+ "MEF-SOAM-PM-MIB.mefSoamLmCurrentStatsForwardAvgFlr";
+ }
+
+ leaf backward-transmitted-frames {
+ type yang:gauge32;
+ mandatory true;
+
+ description
+ "This object contains the number of frames transmitted in the backward
+ direction by this MEP.
+
+ For a PM Session of type lmm or ccm this includes Ethernet
+ Service Frames and SOAM PDUs that are in a higher MEG level
+ only.
+
+ For a PM Session of type slm this includes the count of SOAM
+ ETH-SLM frames only.";
+ reference
+ "MEF-SOAM-PM-MIB.mefSoamLmCurrentStatsBackwardTransmittedFrames";
+ }
+
+ leaf backward-received-frames {
+ type yang:gauge32;
+ mandatory true;
+
+ description
+ "This object contains the number of frames received in the backward
+ direction by this MEP.
+
+ For a PM Session of type lmm this includes Ethernet Service
+ Frames and SOAM PDUs that are in a higher MEG level only.
+
+ For a PM Session of type slm this includes the count of SOAM
+ ETH-SLM frames only.";
+ reference
+ "MEF-SOAM-PM-MIB.mefSoamLmCurrentStatsBackwardReceivedFrames";
+ }
+
+ leaf backward-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
+ backward direction calculated by this MEP for this Measurement
+ Interval. The FLR value is a ratio that is expressed as a
+ percent with a value of 0 (ratio 0.00) through 100000 (ratio
+ 1.00).
+
+ Units are in milli-percent, where 1 indicates 0.001 percent.";
+ reference
+ "MEF-SOAM-PM-MIB.mefSoamLmCurrentStatsBackwardAvgFlr";
+ }
+
+ leaf soam-pdus-sent {
+ type yang:gauge32;
+ description
+ "This object contains the count of the number of SOAM PDUs sent during
+ this Measurement Interval.
+
+ This object applies when type is lmm, slm or ccm. It indicates
+ the number of LMM, CCM, or SLM SOAM frames transmitted.";
+ reference
+ "MEF-SOAM-PM-MIB.mefSoamLmCurrentStatsSoamPdusSent";
+ }
+
+ leaf soam-pdus-received {
+ type yang:gauge32;
+
+ description
+ "This object contains the count of the number of SOAM PDUs PDUs received
+ in this Measurement Interval.
+
+ This object applies when type is lmm, slm, or ccm. This object
+ indicates the number of LMR, CCM, or SLR SOAM frames received.";
+ reference
+ "MEF-SOAM-PM-MIB.mefSoamLmCurrentStatsSoamPdusReceived";
+ }
+ }
+
+ grouping delay-measurement-stats-group {
+ description
+ "This grouping includes statistics objects for a SOAM Delay Measurement
+ session.";
+
+ leaf suspect-status {
+ type suspect-status-type;
+ description
+ "Whether the Measurement Interval has been marked as suspect.
+
+ The object is to be set to false at the start of a measurement
+ interval. It is set to true when there is a discontinuity in
+ the performance measurements during the Measurement Interval.
+ Conditions for a discontinuity include, but are not limited to
+ the following:
+
+ 1 - The local time-of-day clock is adjusted by at least 10 seconds
+ 2 - The conducting of a performance measurement is halted before the
+ current Measurement Interval is completed
+ 3 - A local test, failure, or reconfiguration that disrupts service";
+ }
+
+ leaf frame-delay-two-way-min {
+ type yang:gauge32;
+ units "μs";
+
+ description
+ "This object contains the minimum two-way frame delay calculated by this
+ MEP for this Measurement Interval.
+
+ This object is undefined if measurement-type is dm1-transmitted
+ or dm1-received.";
+ }
+
+ leaf frame-delay-two-way-max {
+ type yang:gauge32;
+ units "μs";
+
+ description
+ "This object contains the maximum two-way frame delay calculated by this
+ MEP for this Measurement Interval.
+
+ This object is undefined if measurement-type is dm1DmTx or
+ dm1-received.";
+ }
+
+ leaf frame-delay-two-way-average {
+ type yang:gauge32;
+ units "μs";
+
+ description
+ "This object contains the average two-way frame delay calculated by this
+ MEP for this Measurement Interval.
+
+ This object is undefined if measurement-type is dm1-transmitted or
+ dm1-received.";
+ }
+
+ leaf inter-frame-delay-variation-two-way-min {
+ type yang:gauge32;
+ units "μs";
+
+ description
+ "This object contains the minimum two-way inter-frame delay interval
+ calculated by this MEP for this Measurement Interval.
+
+ The value of this object is undefined when measurement-type is
+ dm1-transmitted or dm1-received.";
+ }
+
+ leaf inter-frame-delay-variation-two-way-max {
+ type yang:gauge32;
+ units "μs";
+
+ description
+ "This object contains the maximum two-way inter-frame delay interval
+ calculated by this MEP for this Measurement Interval.
+
+ The value of this object is undefined when measurement-type is
+ dm1-transmitted or dm1-received.";
+ }
+
+ leaf inter-frame-delay-variation-two-way-average {
+ type yang:gauge32;
+ units "μs";
+
+ description
+ "This object contains the average two-way inter-frame delay interval
+ calculated by this MEP for this Measurement Interval.
+
+ The value of this object is undefined when measurement-type is
+ dm1-transmitted or dm1-received.";
+ }
+
+ leaf soam-pdus-received {
+ type yang:gauge32;
+ description
+ "This object contains the count of the number of SOAM PDUs received in
+ this Measurement Interval.
+
+ This object indicates the number of DMR and 1DM SOAM frames
+ received. This object applies when measurement-type is dmm or
+ dm1-received and is undefined if measurement-type is
+ dm1-transmitted.";
+ }
+ }
+
+ grouping delay-measurement-bins-content-group {
+ description
+ "This grouping contains result measurement bin objects for a SOAM Delay
+ Measurement session.";
+
+ leaf type {
+ type measurement-bin-type;
+
+ description
+ "This object specifies whether the bin number is for Frame Delay and
+ Inter-Frame Delay Variation.";
+ }
+
+ leaf number {
+ type uint8 {
+ range "1..4";
+ }
+
+ description
+ "This object specifies the bin number for the configured boundary. The
+ first bin has bin number 1.";
+ }
+
+ leaf lower-bound {
+ type yang:gauge32;
+ units "μs";
+
+ description
+ "This object specifies the lower boundary for a measurement bin. The
+ upper boundary is defined by the next bin value or infinite for
+ the last bin defined. The measurement boundary for each
+ measurement bin is to be larger than the measurement boundary
+ of the preceding measurement bin. By default, the next bin is
+ set to 5000us larger than the lower bin boundary.
+
+ The values in a bin boundary object represents the time range
+ used to segregate delay data into the appropriate statistical
+ data bin. For five bins with default values, each bin has the
+ following time range:
+
+ bin 1 = 0, range is 0us
+ bin 2 = 5000, range is 5,000us
+ bin 3 = 10000, range is 10,000us
+ bin 4 = 15000, range is 15,000us
+ bin 5 = 20000, range is 20,000us
+
+ The first bin boundary (number set to 1) always contains the
+ value of 0. Attempting to write a non-zero value to this bin
+ will result in an error.";
+ }
+
+ leaf counter {
+ type yang:gauge32;
+ config false;
+
+ description
+ "This object contains the count of the number of completed measurements
+ initiated in this Measurement Interval whose value falls within
+ the range specified for this bin (that is, greater than or
+ equal to the measurement boundary for the bin, and (unless the
+ bin is the last bin) less than the measurement boundary for the
+ following bin.";
+ reference
+ "MEF-SOAM-PM-MIB.mefSoamDmCurrentStatsBinsCounter";
+ }
+ }
+
+ grouping delay-measurement-bins-group {
+ description
+ "This grouping contains the top-level structure for the three types of
+ measurements (frame delay and inter frame delay variation)";
+
+ container bins {
+ description
+ "This container defines the bins content for FD, IFDR, and FDR
+ sessions.";
+
+ list frame-delay {
+ key "type number";
+ uses delay-measurement-bins-content-group;
+
+ description
+ "Data definitions related to frame delay bins content.";
+ }
+
+ list inter-frame-delay-variation {
+ key "type number";
+ uses delay-measurement-bins-content-group;
+
+ description
+ "Data definitions related to inter frame delay bins content.";
+ }
+
+ }
+ }
+
+
+ grouping bin-lower-limit-override-attribs {
+
+ description
+ "Bin 1 of each type will always be 0.
+ The upper limit of each bin will be defined by the lower
+ limit of the next bin. The upper limit of the last bin
+ is unbounded.";
+
+ leaf bin2-lower-limit {
+ type uint32 {
+ range "10..max";
+ }
+ units "μs";
+ must "current() < ../bin3-lower-limit" {
+ error-message "Bin 2 must be between 0 and bin 3 lower limit";
+ error-app-tag "msea-soampm-must-01";
+ }
+ description "The lower limit of the bin 2 in microseconds";
+ }
+
+ leaf bin3-lower-limit {
+ type uint32 {
+ range "10..max";
+ }
+ units "μs";
+ must "current() > ../bin2-lower-limit and current() < ../bin4-lower-limit" {
+ error-message "Bin 3 must be between bin 2 and bin 4 lower limits";
+ error-app-tag "msea-soampm-must-02";
+ }
+ description "The lower limit of the bin 3 in microseconds";
+ }
+
+ leaf bin4-lower-limit {
+ type uint32 {
+ range "10..max";
+ }
+ units "μs";
+ must "current() > ../bin3-lower-limit" {
+ error-message "Bin 4 must be greater than 3 lower limit";
+ error-app-tag "msea-soampm-must-03";
+ }
+ description "The lower limit of the bin 4 in microseconds";
+ }
+ }
+
+ //
+ // Augments into CFM related to MEF SOAM PM
+ //
+
+ augment "/msea-cfm:mef-cfm/msea-cfm:pm-global" {
+
+ description "High level attributes that apply to the whole device generally
+ or that apply equally across all instances of a child entity.
+ Delay measurement services should be stopped before changing
+ these values, including the limit overrides";
+
+ leaf dm-bins-per-fd-interval {
+ type uint16 {
+ range "4";
+ }
+ default 4;
+
+ description
+ "This object specifies the number of measurement bins per Measurement
+ Interval for Frame Delay measurements.
+
+ Fixed at 4.";
+ }
+
+ leaf dm-bins-per-ifdv-interval {
+ type uint16 {
+ range "4";
+ }
+ default 4;
+
+ description
+ "This object specifies the number of measurement bins per Measurement
+ Interval for Inter-Frame Delay Variation measurements.
+
+ Fixed at 4.";
+ }
+
+
+ container bin-lower-limit-override-two-way-frame-delay {
+
+ uses bin-lower-limit-override-attribs {
+ refine bin2-lower-limit {
+ default 10000;
+ }
+ refine bin3-lower-limit {
+ default 20000;
+ }
+ refine bin4-lower-limit {
+ default 37000;
+ }
+ }
+
+ description "Override of the default Measurement Bin default
+ lower limits for Two Way Frame Delay.";
+
+ }
+
+ container bin-lower-limit-override-two-way-ifdv {
+
+ uses bin-lower-limit-override-attribs {
+ refine bin2-lower-limit {
+ default 3000;
+ }
+ refine bin3-lower-limit {
+ default 8000;
+ }
+ refine bin4-lower-limit {
+ default 100000;
+ }
+ }
+
+ description "Override of the default Measurement Bin default
+ lower limits for Two Way Interframe Delay Variation.";
+ }
+ }
+
+
+ augment "/msea-cfm:mef-cfm/msea-cfm:maintenance-domain/msea-cfm:maintenance-association" +
+ "/msea-cfm:maintenance-association-end-point" {
+ description
+ "This set of data definitions extends the MEG End Point (as described
+ Y.1731) or Maintenance End Point (as described in 802.1q) defined
+ in the MEF CFM module (MEF-CFM), specifically with regards to
+ Loss Measurement and Delay Measurement.";
+
+ container loss-measurements {
+ description
+ "This container contains a collection of data definitions related to
+ Loss Measurements.";
+
+ list loss-measurement {
+ key lm-id;
+ max-elements 16;
+
+ description
+ "A list of Loss Measurement PM Sessions where each instance is uniquely
+ identified by an id attribute.
+ This grouping includes configuration objects for the Frame Loss
+ Measurement function defined in [Y.1731] and [MEF SOAM PM IA].";
+ reference
+ "MEF-SOAM-PM-MIB.mefSoamLmCfgTable, [Y.1731] and [MEF SOAM PM IA]";
+
+ leaf lm-id {
+ type uint8 {
+ range 1..16;
+ }
+
+ description
+ "This object uniquely identifies a scheduled loss measurement.";
+ }
+
+ must "count(/msea-cfm:mef-cfm/msea-cfm:maintenance-domain/msea-cfm:maintenance-association/msea-cfm:maintenance-association-end-point/msea-soam-pm:loss-measurement) <= 128" {
+ error-message "The maximum number of LMs on the whole device must not exceed 128";
+ error-app-tag "msea-soampm-must-04";
+ }
+
+ uses remote-mep-group;
+ uses measurement-timing-group;
+
+ leaf administrative-state {
+ type boolean;
+ default false;
+
+ description
+ "The administrative state of the MEP. Setting to true starts this Loss Measurement";
+ }
+
+ leaf measurement-type {
+ type enumeration {
+ enum slm {
+ description
+ "SLM SOAM PDU generated and received SLR responses tracked.";
+ }
+ }
+ default slm;
+
+ description
+ "This object specifies what type of Loss Measurement will be
+ performed.";
+ reference
+ "MEF-SOAM-PM-MIB.mefSoamLmCfgType";
+ }
+
+ leaf version {
+ type enumeration {
+ enum Y.1731-2008 {
+ description
+ "Indicates the PDU formats defined in Y.1731-2008";
+ }
+ }
+ default Y.1731-2008;
+
+ description
+ "This object indicates the version of the PDUs used to perform Loss
+ Measurement.
+ The exact PDUs to use are specified by this object in
+ combination with measurement-type.";
+ reference
+ "MEF-SOAM-PM-MIB.mefSoamLmCfgVersion";
+ }
+
+ leaf enabled-counters {
+ type bits {
+ bit forward-transmitted-frames {description "Count the number of frames transmitted in the forward direction by this MEP";}
+ bit forward-received-frames {description "Count the number of frames received in the forward direction by this MEP";}
+ bit forward-average-flr {description "Calculate the average one-way frame loss ratio in the forward direction calculated by this MEP";}
+ bit backward-transmitted-frames {description "Count the number of frames transmitted in the backward direction by this MEP";}
+ bit backward-received-frames {description "Count the number of frames received in the backward direction by this MEP";}
+ bit backward-average-flr {description "Calculate the average one-way frame loss ratio in the backward direction calculated by this MEP";}
+ bit soam-pdus-sent {description "Count of the number of SOAM PDUs sent during this Measurement Interval";}
+ bit soam-pdus-received {description "Count of the number of SOAM PDUs received during this Measurement Interval";}
+ bit measured-stats-forward-measured-flr {description "Measure the Frame Loss Ratio in the forward direction calculated by this MEP from the last received SOAM PDU";}
+ bit measured-stats-backward-measured-flr {description "Measure the Frame Loss Ratio in the backward direction calculated by this MEP from the last received SOAM PDU";}
+
+ }
+ default "";
+
+// msea:not-changeable;
+
+ description
+ "A vector of bits that indicates the type of SOAM LM counters found in
+ the current-stats and history-stats that are enabled.
+
+ A present bit enables the specific SOAM LM counter. A not present
+ bit disables the SOAM LM counter.
+
+ If a particular SOAM LM counter is not supported the BIT value
+ is not present.
+
+ Not all SOAM LM counters are supported for all SOAM LM types. ";
+ reference
+ "MEF-SOAM-PM-MIB.mefSoamLmCfgMeasurementEnable";
+ }
+
+ leaf message-period {
+ type enumeration {
+ enum 1000ms {
+ description "The default 1000ms message period for LM";
+ }
+ enum 100ms {
+ description "100ms message period for LM";
+ }
+ enum 10ms {
+ description "10ms message period for LM";
+ }
+ enum 3ms {
+ description "3ms message period for LM";
+ }
+ }
+ default 1000ms;
+// msea:not-changeable;
+
+ description
+ "This object specifies the interval between Loss Measurement OAM message
+ transmission. For Loss Measurement monitoring applications the
+ default value is 1 sec.
+
+ This object is not applicable if measurement-type is set to
+ 'ccm' and is ignored for that Loss Measurement Type.";
+ reference
+ "MEF-SOAM-PM-MIB.mefSoamLmCfgMessagePeriod";
+ }
+
+ leaf priority {
+ type msea:priority-type;
+ mandatory true;
+// msea:not-changeable;
+
+ must "count(/msea-cfm:mef-cfm/msea-cfm:maintenance-domain[msea-cfm:id = current()/../../../../../msea-cfm:id]/msea-cfm:maintenance-association[msea-cfm:id = current()/../../../../msea-cfm:id]/msea-cfm:maintenance-association-end-point[msea-cfm:mep-identifier=current()/../../../msea-cfm:mep-identifier]/msea-soam-pm:loss-measurements/msea-soam-pm:loss-measurement[msea-soam-pm:priority=current()]) <= 1" {
+ error-message "The priority of a Loss Measurement must be unique within its MEP";
+ error-app-tag "msea-soampm-must-05";
+ }
+
+ description
+ "This object specifies the priority of frames with Performance
+ Monitoring OAM message information.";
+ reference
+ "MEF-SOAM-PM-MIB.mefSoamLmCfgPriority";
+ }
+
+ leaf frame-size {
+ type uint32 {
+ range "64 .. 9600";
+ }
+ units bytes;
+ default 64;
+// msea:not-changeable;
+
+ description
+ "This object specifies the Loss Measurement frame size between 64 bytes
+ and the maximum transmission unit of the EVC.
+
+ The range of frame sizes from 64 through 2000 octets need to be
+ supported, and the range of frame sizes from 2001 through 9600
+ octets is suggested be supported.
+
+ The adjustment to the frame size of the standard frame size is
+ accomplished by the addition of a Data or Test TLV. A Data or
+ Test TLV is only added to the frame if the frame size is greater
+ than 64 bytes.";
+ reference
+ "MEF-SOAM-PM-MIB.mefSoamLmCfgFrameSize";
+ }
+
+ leaf measurement-interval {
+ type uint32 {
+ range "1..525600";
+ }
+ units minutes;
+ default 15;
+// msea:not-changeable;
+
+ description
+ "This object specifies the Measurement Interval for FLR statistics, in
+ minutes.
+
+ A Measurement Interval of 15 minutes needs to be supported,
+ other intervals may be supported.";
+ reference
+ "MEF-SOAM-PM-MIB.mefSoamLmCfgMeasurementInterval";
+ }
+
+ leaf number-intervals-stored {
+ type uint32 {
+ range "32";
+ }
+ default 32;
+
+ description
+ "This object specifies the number of completed measurement intervals to
+ store in the history statistic table.
+
+ At least 32 completed measurement intervals are to be
+ stored.";
+ reference
+ "MEF-SOAM-PM-MIB.mefSoamLmCfgNumIntervalsStored";
+ }
+
+ leaf number-intervals-returned {
+ type uint32 {
+ range "2..32";
+ }
+ default 32;
+
+ description
+ "This object specifies the number of completed measurement intervals to
+ return from the history statistic table.
+ The number stored on the device is fixed at 32";
+ }
+
+ leaf session-status {
+ type session-status-type;
+ config false;
+
+ description
+ "This object indicates the current status of the LM session. A value
+ of 'active' indicates the current LM session is active,
+ i.e. the current time lies between the start time and the
+ stop time, and enabled is true. A value of 'not-active'
+ indicates the current LM session is not active, i.e. it has
+ not started yet, has stopped upon reaching the stop time,
+ or is disabled.";
+ }
+
+ leaf measured-forward-flr {
+ type yang:gauge32 {
+ range "0..100000";
+ }
+ units milli-percent;
+ config false;
+
+ description
+ "This object contains the Frame Loss Ratio in the forward direction
+ calculated by this MEP from the last received SOAM PDU. The
+ FLR value is a ratio that is expressed as a percent with a
+ value of 0 (ratio 0.00) through 100000 (ratio 1.00).
+
+ Units are in milli-percent, where 1 indicates 0.001
+ per-cent.";
+ reference
+ "MEF-SOAM-PM-MIB.mefSoamLmMeasuredStatsForwardFlr";
+ }
+
+ leaf measured-backward-flr {
+ type yang:gauge32 {
+ range "0..100000";
+ }
+ units milli-percent;
+ config false;
+
+ description
+ "This object contains the Frame Loss Ratio in the backward direction
+ calculated by this MEP from the last received SOAM PDU. The
+ FLR value is a ratio that is expressed as a percent with a
+ value of 0 (ratio 0.00) through 100000 (ratio 1.00).
+
+ Units are in milli-percent, where 1 indicates 0.001
+ percent.";
+ reference
+ "MEF-SOAM-PM-MIB.mefSoamLmMeasuredStatsBackwardFlr";
+ }
+
+ container current-measurement-stats {
+ config false;
+
+ description
+ "This container contains the results for the current Measurement
+ Interval in a SOAM Loss Measurement session gathered during
+ the interval indicated by measurement-interval.";
+
+ leaf id {
+ type uint32;
+
+ description
+ "The index for the current Measurement Interval for this PM
+ session. This value will become the value for id of the
+ history-measurement-stats list once the Measurement
+ Interval is completed.";
+ }
+
+ leaf start-time {
+ type yang:date-and-time;
+ mandatory true;
+
+ description
+ "The time that the current Measurement Interval started.";
+ }
+
+ leaf elapsed-time {
+ type uint32 {
+ range "0..2147483647";
+ }
+ units "0.01s";
+ mandatory true;
+
+ description
+ "The time that the current Measurement Interval has been running,
+ in 0.01 seconds.";
+ }
+
+ uses loss-measurement-stats-group;
+ }
+
+ list history-measurement-stats {
+ key id;
+ config false;
+ description
+ "This list contains the results for history Measurement
+ Intervals in a SOAM Loss Measurement session.";
+
+ leaf id {
+ type uint32;
+
+ description
+ "The index for the Measurement Interval within this
+ PM session.";
+ }
+
+ leaf end-time {
+ type yang:date-and-time;
+ mandatory true;
+
+ description
+ "The time that the Measurement Interval ended.";
+ }
+
+ leaf elapsed-time {
+ type uint32 {
+ range "0..2147483647";
+ }
+ mandatory true;
+
+ description
+ "The length of time that the Measurement Interval ran for,
+ in 0.01 seconds.";
+ }
+
+ uses loss-measurement-stats-group;
+ }
+ }
+ }
+
+ container delay-measurements {
+ description
+ "This container contains a collection of data definitions related to
+ Delay Measurements. The measurements are persisted as config data
+ with results being retrieved from the device as needed";
+
+ list delay-measurement {
+ key dm-id;
+ max-elements 16;
+
+ description
+ "A list of Delay Measurements where each instance is
+ uniquely identified by an id attribute.
+ This includes configuration objects for the Delay Measurement
+ function defined in [Y.1731] and [MEF SOAM PM IA].";
+ reference
+ "MEF-SOAM-PM-MIB.mefSoamDmCfgTable, [Y.1731], and [MEF SOAM PM IA].";
+
+ leaf dm-id {
+ type uint8 {
+ range 1..16;
+ }
+
+ description
+ "This object uniquely identifies a scheduled delay measurement.";
+ }
+
+ must "count(/msea-cfm:mef-cfm/msea-cfm:maintenance-domain/msea-cfm:maintenance-association/msea-cfm:maintenance-association-end-point/msea-soam-pm:delay-measurement) <= 128" {
+ error-message "The maximum number of DMs on the whole device must not exceed 128";
+ error-app-tag "msea-soampm-must-06";
+ }
+
+ uses remote-mep-group;
+ uses measurement-timing-group;
+
+ leaf administrative-state {
+ type boolean;
+ default false;
+
+ description
+ "The administrative state of the MEP. Setting to true starts this Delay Measurement";
+ }
+
+ leaf measurement-type {
+ type enumeration {
+ enum dmm {
+ description
+ "DMM SOAM PDU generated, DMR responses received (one-way or two-way
+ measurements).";
+ }
+ }
+ default dmm;
+
+ description
+ "This object indicates what type of Delay Measurement is to be
+ performed.
+
+ The exact PDUs to use are specified by this object in
+ combination with version.";
+ }
+
+ leaf version {
+ type enumeration {
+ enum Y.1731-2011 {
+ description
+ "Indicates the PDU formats defined in Y.1731-2011.";
+ }
+ }
+ default Y.1731-2011;
+
+ description
+ "This object indicates the version of the PDUs used to perform Delay
+ Measurement.
+
+ The exact PDUs to use are specified by this object in
+ combination with measurement-type.";
+ reference
+ "[Y.1731]";
+ }
+
+ leaf measurement-enable {
+ type bits {
+ bit soam-pdus-received {description "Count of the number of SOAM PDUs received";}
+ bit frame-delay-two-way-bins {description "Capture the two-way frame delay in bins";}
+ bit frame-delay-two-way-min {description "Capture the minimum two-way frame delay";}
+ bit frame-delay-two-way-max {description "Capture the maximum two-way frame delay";}
+ bit frame-delay-two-way-average {description "Calculate the average two-way frame delay";}
+ bit inter-frame-delay-variation-two-way-bins {description "Capture the two-way inter-frame-delay-variation in bins";}
+ bit inter-frame-delay-variation-two-way-min {description "Capture the minimum inter-frame-delay-variation frame delay";}
+ bit inter-frame-delay-variation-two-way-max {description "Capture the maximum inter-frame-delay-variation frame delay";}
+ bit inter-frame-delay-variation-two-way-average {description "Calculate the average inter-frame-delay-variation frame delay";}
+ }
+ default "";
+// msea:not-changeable;
+
+ description
+ "A vector of bits that indicates the type of SOAM DM counters that
+ are enabled.
+
+ A present bit enables the specific SOAM DM counter.
+
+ A not present bit disables the SOAM DM counter.
+
+ If a particular SOAM DM counter is not supported the BIT value
+ is not present.
+
+ Not all SOAM DM counters are supported for all SOAM DM types.";
+ }
+
+ leaf message-period {
+ type enumeration {
+ enum 1000ms {
+ description "1000ms message period for DM";
+ }
+ enum 100ms {
+ description "100ms message period for DM";
+ }
+ enum 10ms {
+ description "10ms message period for DM";
+ }
+ enum 3ms {
+ description "3ms message period for DM";
+ }
+ }
+ default 100ms;
+// msea:not-changeable;
+
+ description
+ "This object specifies the interval between Delay Measurement OAM
+ message transmission. For Delay Measurement monitoring applications,
+ the default value is 100ms.";
+ }
+
+ leaf priority {
+ type msea:priority-type;
+ mandatory true;
+// msea:not-changeable;
+
+ description
+ "This object specifies the priority of frames with Performance
+ Monitoring OAM message information.";
+ }
+
+ leaf frame-size {
+ type uint32 {
+ range "64 .. 9600";
+ }
+ default 64;
+// msea:not-changeable;
+
+ description
+ "This object specifies the Delay Measurement frame size between 64 bytes
+ and the maximum transmission unit of the EVC.
+
+ The range of frame sizes from 64 through 2000 octets need to be
+ supported, and the range of frame sizes from 2001 through 9600
+ octets is suggested to be supported.
+
+ The adjustment to the frame size of the standard frame size is
+ accomplished by the addition of a Data or Test TLV. A Data or
+ Test TLV is only added to the frame if the frame size is
+ greater than 64 bytes.";
+ }
+
+ leaf measurement-interval {
+ type uint32 {
+ range "1..1440";
+ }
+ units minutes;
+ default 15;
+// msea:not-changeable;
+
+ description
+ "This object specifies a Measurement Interval in minutes.
+
+ A Measurement Interval 15 minutes needs to be supported, other
+ intervals may be supported.";
+ reference
+ "MEF-SOAM-PM-MIB.mefSoamDmCfgMeasurementInterval";
+ }
+
+ leaf number-intervals-stored {
+ type uint32 {
+ range "32";
+ }
+ default 32;
+ description
+ "This object specifies the number of completed measurement intervals to
+ store in the history statistic table.
+
+ At least 32 completed measurement intervals are to be
+ stored.";
+ reference
+ "MEF-SOAM-PM-MIB.mefSoamLmCfgNumIntervalsStored";
+ }
+
+ leaf number-intervals-returned {
+ type uint32 {
+ range "2..32";
+ }
+ default 32;
+
+ description
+ "This object specifies the number of completed measurement intervals to
+ return from the history statistic table.
+ The number of intervals stored is fixed at 32 on the device";
+
+ }
+
+ leaf session-status {
+ type session-status-type;
+ config false;
+
+ description
+ "This object indicates the current status of the DM session. A value
+ of 'active' indicates the current DM session is active,
+ i.e. the current time lies between the start time and the
+ stop time, and enabled is true. A value of 'not-active'
+ indicates the current DM session is not active, i.e. it has
+ not started yet, has stopped upon reaching the stop time,
+ or is disabled.";
+ }
+
+ leaf frame-delay-two-way {
+ type yang:gauge32;
+ units microseconds;
+ config false;
+
+ description
+ "This object contains the two-way frame delay calculated by this MEP
+ from the last received SOAM PDU.
+
+ This object is undefined is measurement-type is
+ dm1-transmitted or dm1-received.";
+ reference
+ "MEF-SOAM-PM-MIB.mefSoamDmMeasuredStatsFrameDelayTwoWay";
+ }
+
+ leaf inter-frame-delay-variation-two-way {
+ type yang:gauge32;
+ units microseconds;
+ config false;
+
+ 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.";
+ reference
+ "MEF-SOAM-PM-MIB.mefSoamDmMeasuredStatsIfdvTwoWay";
+ }
+
+ container current-stats {
+ config false;
+
+ description
+ "This container contains the results for the current Measurement
+ Interval in a SOAM Delay Measurement session gathered
+ during the interval indicated by measurement-interval.";
+
+ leaf id {
+ type uint32;
+
+ description
+ "The index for the current Measurement Interval for this PM
+ session. This value will become the value for id of the
+ history-measurement-stats list once the Measurement
+ Interval is completed.";
+ }
+
+ leaf start-time {
+ type yang:date-and-time;
+ mandatory true;
+
+ description
+ "The time that the current Measurement Interval started.";
+ }
+
+ leaf elapsed-time {
+ type uint32 {
+ range "0..2147483647";
+ }
+ mandatory true;
+
+ description
+ "The time that the current Measurement Interval has been running,
+ in 0.01 seconds.";
+ }
+
+ uses delay-measurement-stats-group;
+ uses delay-measurement-bins-group;
+ }
+
+ list history-stats {
+ key id;
+ config false;
+ description
+ "This list contains the results for history Measurement Intervals in
+ a SOAM Delay Measurement session.";
+
+ leaf id {
+ type uint32;
+
+ description
+ "The identifier for the Measurement Interval within this
+ PM session.";
+ }
+
+ leaf end-time {
+ type yang:date-and-time;
+ mandatory true;
+
+ description
+ "The time that the Measurement Interval ended.";
+ }
+
+ leaf elapsed-time {
+ type uint32 {
+ range "0..2147483647";
+ }
+ mandatory true;
+
+ description
+ "The length of time that the Measurement Interval ran for, in 0.01
+ seconds.";
+ }
+
+ uses delay-measurement-stats-group;
+ uses delay-measurement-bins-group;
+ }
+ }
+ }
+ }
+
+ //
+ // RPCs related to MEF SOAM PM
+ //
+
+ rpc clear-loss-history-stats {
+ description
+ "Clear the Loss Measurement history list (history-availability-stats and
+ history-measurement-stats) for a specific session. All instance
+ data is deleted.";
+
+ input {
+ uses msea-cfm:maintenance-association-end-point-reference {
+ refine maintenance-domain {
+ mandatory true;
+ }
+ refine maintenance-association {
+ mandatory true;
+ }
+ refine maintenance-association-end-point {
+ mandatory true;
+ }
+ }
+
+ leaf lm-id {
+ type leafref {
+ path "/msea-cfm:mef-cfm/msea-cfm:maintenance-domain/msea-cfm:maintenance-association/msea-cfm:maintenance-association-end-point/msea-soam-pm:loss-measurements/msea-soam-pm:loss-measurement/msea-soam-pm:lm-id";
+ }
+ mandatory true;
+
+ description
+ "The LM ID of the loss measurement session of which the loss
+ measurement history should be cleared";
+ }
+ }
+ }
+
+
+
+
+ rpc clear-delay-history-stats {
+ description
+ "Clear the Delay Measurement history list (history-stats) for a specific
+ session. All instance data is deleted.";
+
+ input {
+ uses msea-cfm:maintenance-association-end-point-reference { //Added to specify the MEP SC 10-Dec-15
+ refine maintenance-domain {
+ mandatory true;
+ }
+ refine maintenance-association {
+ mandatory true;
+ }
+ refine maintenance-association-end-point {
+ mandatory true;
+ }
+ }
+
+
+ leaf dm-id {
+ type leafref {
+ path "/msea-cfm:mef-cfm/msea-cfm:maintenance-domain/msea-cfm:maintenance-association/msea-cfm:maintenance-association-end-point/msea-soam-pm:delay-measurements/msea-soam-pm:delay-measurement/msea-soam-pm:dm-id";
+ }
+ mandatory true;
+
+ description
+ "The DM ID of the loss measurement session of which the loss
+ measurement history should be cleared";
+ }
+ }
+ }
+
+ //
+ // Notifications related to MEF SOAM PM
+ //
+
+}
+