blob: 9f40ba83d2fce694284c3544cc1710bb65e565ca [file] [log] [blame]
module y-1564 {
/*** NAMESPACE / PREFIX DEFINITION ***/
namespace "http://www.microsemi.com/y1564";
prefix "y1564";
import svc-activation-types {
prefix sa;
}
import msea-types {
prefix msea;
revision-date 2016-02-29;
}
/*** META INFORMATION ***/
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 defines the interface for Rec. ITU-T Y.1564
(03/2011) Ethernet service activation test methodology
Copyright 2015 Microsemi Inc.
All rights reserved.";
revision "2015-10-29" {
description
"Initial version - Sean Condon, Microsemi
This version does not cover frame reordering (Section 7.2.5)";
reference "Initial implementation";
}
/*
* Typedefs
*/
/*
* Groupings
*/
grouping service-attributes-group {
description
"Attributes for service definition";
leaf service-id {
type uint8 {
range 1..8;
}
mandatory true;
description "The unique ID of the Service";
}
}
grouping result-attributes-group {
description "Common attributes in result";
leaf status {
type sa:test-status;
mandatory true;
description "Status of the test - Values are disabled,
running, pending, stopped, completed or failed";
}
}
grouping pass-fail-group {
leaf passed {
type boolean;
description
"Flag that indicates whether the test component
sucessfully met the test criteria.";
}
leaf fail-reason {
type enumeration {
enum notFailed {
value 0;
description "Test did not fail";
}
enum zeroTxCount {
value 1;
description "The test resulted in no transmitted packets";
}
enum zeroRxCount {
value 2;
description "No packets were received";
}
enum exceedFdvThreshold {
value 3;
description "The measured maximum Frame Delay Variation value exceeded the allowable threshold";
}
enum exceedFtdThreshold {
value 4;
description "The measured maximum Frame Transfer Delay value exceeded the allowable threshold";
}
enum exceedLossThreshold {
value 5;
description "The measured Frame Loss value exceeded the allowable threshold";
}
enum exceedAvailThreshold {
value 6;
description "The measured maximum Availability value exceeded the allowable threshold";
}
enum irAvgTooHigh {
value 7;
description "The measured Information Rate is above the maximum allowable rate";
}
enum irAvgTooLow {
value 8;
description "The measured Information Rate is below the maximum allowable rate";
}
enum targetUnknown {
value 9;
description "The MAC address of the target MEP was not known";
}
}
}
}
grouping y1564-test-result-group {
description "Common attributes in test result";
leaf tf {
type uint64;
description
"Count of the frames transmitted during the test period.";
}
leaf rf {
type uint64;
description
"Count of the frames received during the test period.";
}
leaf fl {
type uint64;
description
"Count of the frames lost during the test period.";
}
leaf flr {
type uint32;
units "m%";
description "The Frame Loss Ratio achieved. Units are 0.001%";
}
leaf elapsed {
type uint16;
units "s";
description
"The number of number of seconds the test has been running";
}
leaf fs {
type uint16;
units byte;
description "The Frame Size for which these results apply";
}
leaf ulr-min {
type uint32;
units "bit/s";
description "The minimum Utilised Line Rate achieved";
}
leaf ulr-max {
type uint32;
units "bit/s";
description "The maximum Utilised Line Rate achieved";
}
leaf ulr-avg {
type uint32;
units "bit/s";
description "The average Utilised Line Rate achieved";
}
leaf ulr-meas {
type uint32;
units "bit/s";
description
"The instantaneous Utilised Line Rate measured
at the time of this result set";
}
leaf ftd-min {
type uint32;
units "μs";
description "The minimum Frame Transfer Delay achieved";
}
leaf ftd-max {
type uint32;
units "μs";
description "The maximum Frame Transfer Delay achieved";
}
leaf ftd-avg {
type uint32;
units "μs";
description "The average Frame Transfer Delay achieved";
}
leaf ftd-meas {
type uint32;
units "μs";
description
"The instantaneous Frame Transfer Delay
measured at the time of this result set";
}
leaf fdv-min {
type uint32;
units "μs";
description "The minimum Frame Delay Variation achieved";
}
leaf fdv-max {
type uint32;
units "μs";
description "The maximum Frame Delay Variation achieved";
}
leaf fdv-avg {
type uint32;
units "μs";
description "The average Frame Delay Variation achieved";
}
leaf fdv-meas {
type uint32;
units "μs";
description
"The instantaneous Frame Delay Variation measured
at the time of this result set";
}
}
/*
* Features
*/
feature emix {
description
"This feature indicates that the device supports
EMIX style of repeating frame rates patterns";
reference
"Rec. ITU-T Y.1564 (03/2011) Section 8.1.1";
}
/*
* Configuration
*/
container y1564-test {
description "The overall configuration of the Y.1564
tests are done through the 'service' entities";
leaf config-step-duration {
type uint16 {
range 1..60;
}
units second;
default 60;
description "The duration of each step when
performing Configuration tests";
reference "Rec. ITU-T Y.1564 (03/2011) Section 8.3";
}
choice performance-duration-choice {
description
"Duration can be chosen from enumerated values or
specified as a duration in minutes";
reference "Rec. ITU-T Y.1564 (03/2011) Section 8.2.1";
case fixed-durations-renamed {
leaf performance-duration-fixed {
type enumeration {
enum Test15m {
value 15;
description "15 minute test duration";
}
enum Test2h {
value 120;
description "2 hour test duration";
}
enum Test24h {
value 1440;
description "24 hour test duration";
}
enum Unbounded {
description "Unbounded test duration";
}
}
default Test15m;
description "Fixed durations set";
}
}
case test-duration-minutes {
leaf performance-duration {
type uint16 {
range 1..max;
}
units min;
description
"The duration of Performance tests specified in minutes";
reference "Rec. ITU-T Y.1564 (03/2011) Section 8.2.1";
}
}
}
leaf performance-frame-size {
type sa:frame-size-type;
units octet;
default 512;
description
"The frame size used for the performance test.
Frame sizes for configuration are configured at a
the service level. This is a constant value per service (
frame size repeating emix values are not supported)";
reference "Rec. ITU-T Y.1564 (03/2011) Section 8.1.1";
}
list service-config {
key service-id;
description "The services can be configured on this device";
uses service-attributes-group;
leaf enabled {
type boolean;
default true;
description "Toggles whether the service is enabled in tests";
}
container mep-config {
presence "Presence indicates that a MEP has been configured";
uses msea:mep-config-attribs-noref;
leaf remote-mep-id {
type msea:mep-id-type;
must "current()/../maintenance-association-end-point != current()" {
error-message "Remote MEP Id must not be the same as Local MEP Id";
error-app-tag "msea-svc-must-01";
}
//mandatory true; //Should not be mandatory in a top level container
description "The Id of the remote MEP";
}
container overwrite-pcp {
presence "Enables PCP Overwrite";
description "If present allows attributes to be
specified for the PCP overwrite";
uses sa:overwrite-pcp-attribs;
}
}
leaf config-frame-size {
type sa:frame-size-type;
units octet;
default 512;
description
"The frame size used for the service configuration test.
Frame sizes for performance test is configured at a
higher level. This is a constant value per service (
frame size repeating emix values are not supported)";
reference "Rec. ITU-T Y.1564 (03/2011) Section 8.1.1";
}
leaf cir {
type uint16 {
range min..1000;
}
units "Mb/s";
default 1;
description "Committed Information Rate. If 0 then will return zeros";
reference "Rec. ITU-T Y.1564 (03/2011) Section 8.1";
}
leaf eir {
type uint16 {
range min..1000;
}
units "Mb/s";
description "Excess Information Rate. If 0 then this test is disabled";
reference "Rec. ITU-T Y.1564 (03/2011) Section 8.1";
}
leaf colour-aware {
type boolean;
default true;
description "Indicates if the service is colour aware or not";
reference "Rec. ITU-T Y.1564 (03/2011) Section 6.2.1";
}
leaf m-factor {
type uint16;
units "kb/s";
description "The M factor is added to allow for the effect of
the traffic policer's CBS and EBS settings, and test time.
Experience will determine the values for M.
Additional guidance on M is for further study.";
reference "Rec. ITU-T Y.1564 (03/2011) Section 8.1.2 C.2";
}
container enable-step-test {
presence "Enables step test";
description "If this item is present then a step load test of
CIR will be performed.
Otherwise simple validation of CIR will be performed.";
reference "Rec. ITU-T Y.1564 (03/2011) Section 8.1.2";
leaf step-load-size-override {
type uint16 {
range 1..1000;
}
units "Mb/s";
description "A manually specified Step Load size in Mb/s.
A maximum of 4 steps will be taken. If not specified
the default behaviour means the CIR rate divided by
4 rounded up to nearest Mb/s. When CIR rate is below 4Mb/s
then a corresponding nuumber of steps will be used";
reference "Rec. ITU-T Y.1564 (03/2011) Section 8.1";
}
}
container enable-policing-test {
presence "Enables Policing test";
description "If this item is present then a Policing
test will be performed.
Otherwise no Policing will be performed.";
reference "Rec. ITU-T Y.1564 (03/2011) Section 8.1.2";
}
container service-acceptance-criteria {
description "Attributes that tune the Service Acceptance
Criteria per service.";
leaf accepted-flr {
type uint32 {
range min..100000;
}
units "m%";
description "A measured Frame Loss Ratio greater than
or equal to this value will result in test fail.
Units are 0.001%. Default is 0";
reference "Rec. ITU-T Y.1564 (03/2011) Section 8.3";
}
leaf accepted-ftd {
type uint32;
units "μs";
mandatory true;
description "A measured Frame Transfer Delay greater than
or equal to this value will result in test fail.";
reference "Rec. ITU-T Y.1564 (03/2011) Section 8.3";
}
leaf accepted-fdv {
type uint32;
units "μs";
mandatory true;
description "A measured Frame Delay Variation greater than
or equal to this value will result in test fail.";
reference "Rec. ITU-T Y.1564 (03/2011) Section 8.3";
}
leaf accepted-availability {
type uint32 {
range min..100000;
}
units "m%";
default 100000;
description "A measured Availability for a performance
test must meet or exceed this value. Values are in
milli-percent. Default is 100%";
}
}
}
}
container y1564-results {
config false;
description "Top level container for results from the tests";
container configuration {
description
"The results of the Y.1564 Configuration tests on each
service which was enabled when the test was run";
reference "Rec. ITU-T Y.1564 (03/2011) Section 8.1.3";
list service {
key service-id;
description "The results for the services configured on this device";
uses service-attributes-group;
uses sa:results-header-group;
container cir-results {
description "Results for Committed Information Rate
part of the test";
leaf steps {
type uint8;
description "Indicates the number if steps taken so far.";
}
list step {
key step-id;
description "A list of results for each of the steps for
the CIR test";
leaf step-id {
type uint8;
mandatory true;
description "The index of the step";
}
uses result-attributes-group;
uses pass-fail-group;
container green-frames {
uses y1564-test-result-group;
description "The details of frames marked green during
the step of the CIR test";
}
}
}
container eir-results {
description "Results for Excess Information Rate
part of the test";
uses result-attributes-group;
uses pass-fail-group;
container green-frames {
uses y1564-test-result-group;
description
"The details of frames marked green of the EIR test";
}
container yellow-frames {
uses y1564-test-result-group;
description
"The details of frames marked yellow of the EIR test";
}
}
container policer-results {
presence "Can be omitted if policer test is
not enabled on this service";
description "Container for the policer results";
uses result-attributes-group;
uses pass-fail-group;
container green-frames {
uses y1564-test-result-group;
description
"The details of frames marked green of the Policer test";
}
container yellow-frames {
uses y1564-test-result-group;
description
"The details of frames marked yellow of the Policer test";
}
}
}
}
container performance {
description
"The results of the Y.1564 Performance tests on each
service was 'enabled'";
reference "Rec. ITU-T Y.1564 (03/2011) Section 8.2.2";
uses sa:results-header-group;
list service {
key service-id;
description "The services can be configured on this device";
uses service-attributes-group;
uses pass-fail-group;
uses y1564-test-result-group;
leaf avail-sec {
type uint32;
units "s";
description
"The count of seconds during the test period for which
service was Available";
}
}
}
}
/*
* RPCs
*/
rpc run-y1564-test {
description
"Run the configured Y.1564 test on each service
that has been marked 'enabled'";
input {
leaf tests-enabled {
type bits {
bit configuration {
description "Runs the configuration tests";
}
bit performance {
description "Runs the performance tests";
}
}
default "configuration performance";
description
"Bit mask to define which parts of the test are run.
Specify as a set of space separated string values";
}
}
}
rpc stop-y1564-test {
description
"Stop the running Y.1564 test on all services";
}
/*
* Notifications
*/
notification y1564-test-updated {
description
"A y1564-test-updated notification is sent
when the state of a test changes.";
uses sa:notification-group;
leaf service-id {
type uint16;
mandatory true;
description "The ID of the Service that is being tested";
}
}
}