blob: 5075ffb1b62cd0541739df4b013461fe1883bc6d [file] [log] [blame]
module msea-uni-evc-service {
namespace "http://www.microsemi.com/microsemi-edge-assure/msea-uni-evc-service";
prefix "msea-svcs"; //MicroSemi EdgeAssure (msea)
import msea-types {
prefix msea;
revision-date 2016-02-29;
}
// import ietf-interfaces { prefix if; }
// import mef-uni-evc-interface { prefix mef-interface; }
import ENTITY-STATE-TC-MIB {prefix "entity-state";}
/*** 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 is based on the MEF 40 SNMP model, for the management
objects for the management of User Network Interfaces (UNIs) and Ethernet
Virtual Connections (EVCs). It has been converted to YANG and modified
slightly to suit the EdgeAssure SFP which has some extra
constraints that are not handled by the original model
Copyright 2016 Microsemi Inc.
All rights reserved.";
reference
"***************************************************************************
Reference Overview
A number of base documents have been used to create this MIB. The following
are the abbreviations for the baseline documents:
[MEF 40] refers to SNMP MIB
[MEF6.1] refers to MEF 6.1 'Ethernet Services Definitions - Phase 2',
April 2008
[MEF 6.1.1] refers to MEF 6.1.1 'Layer 2 Control Protocol Handling Amendment
to MEF 6.1', January 2012
[MEF 7.2] refers to MEF 7.2 'Carrier Ethernet Management Information Model',
January 2013
[MEF 10.2] refers to MEF 10.2 'Ethernet Services Attributes Phase 2',
October 2009
[MEF 26.1] refers to MEF 26.1 'External Network Network Interface (ENNI) -
Phase 2', January 2012
[Q.840.1] refers to 'ITU-T Requirements and analysis for NMS-EMS
management interface of Ethernet over Transport and Metro Ethernet
Network (EoT/MEN)', March 2007
****************************************************************************";
revision "2016-03-17" {
description
"Initial Version. Sean Condon - Microsemi";
reference "MEF 6.2";
}
grouping uni-attributes {
description "Common UNI attributes";
leaf bundling-multiplex { //aka mefServiceUniCfgBundlingMultiplex
type enumeration {
enum allToOne {
description
"All to One Bundling, used for Private services:
EPL, EP-LAN, and EP-Tree";
}
enum bundling {
description
"Bundling, indicates one or more
CE-VLANS per service, used for virtual private CE-VLAN
preservation services: EVPL, EVP-LAN, EVP-Tree";
}
enum multiplex {
description
"Service Multiplexing, indicates
one or more EVCs per UNI, used for virtual private
CE-VLAN preservation or non-preservation services:
EVPL, EVP-LAN, EVP-Tree";
}
enum bundlingMultiplex {
description
"Service Multiplexing plus
Bundling, indicates one or more EVCs per UNI that are
composed of one or more CE-VLANs, used for virtual
CE-VLAN preservation services: EVPL, EVP-LAN, EVP-Tree";
}
}
default allToOne;
// msea:not-changeable;
description
"Configures bundling and multiplexing options for the UNI. This object
is an enumerated list of possible multiplexing and bundling options
on a UNI that is unambiguous and provides only the legal possibilities.";
reference
"[MEF 6.1] 6.0, [MEF 7.2] 6.2.1.2";
}
}
grouping evc-per-uni-extension-attributes {
description "EVC attributes that are configured depending on
the UNI side.";
leaf ce-vlan-map { //aka mefServiceEvcPerUniCfgCeVlanMap
type msea:service-list-type;
mandatory true;
description
"This object indicates the CE-VLANs associated with the specific
EVC on a UNI. CE-VLAN IDs have value of 0 to 4095. The CE-VLAN ID
list can be a single value or multiple values separated by a delimiter.
Some valid values are: '100', '1:10', '10,20,30', '1:4095'. In the
first example only CE-VLAN ID 100 is associated with the VLAN map.
In the second example the CE-VLAN map includes CE-VLAN IDs 1 through
10 (range of values). The third example indicates three separate values
that make up the CE-VLAN map. The last example indicates all CE-VLAN IDs
are included in the map (range of values). ";
reference
"[MEF 6.1] 6.1; [MEF 7.2] 6.2.1.3";
}
leaf ingress-bwp-group-index { //aka mefServiceEvcPerUniCfgIngressBwpGrpIndex
type leafref {
path "/msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:bwp-group/msea-svcs:group-index";
}
mandatory true;
description
"This object is the index number of the ingress bandwidth profile group
associated with the current EVC on a UNI. A value of 0 indicates that
no ingress bandwidth profile group is associated with the EVC on a UNI.
This index indicates the specific bandwidth profile group previously
configured via mefServiceBwpGrpCfgTable and mefServiceBwpCfgTable
using this value for mefServiceBwpGrpCfgIndex. There may be multiple
entries in mefServiceBwpCfgTable using this index, each containing
bandwidth parameters for a different Class of Service Identifier.";
reference
"[MEF 6.1] 6.1; [MEF 7.2] 6.2.1.3";
}
choice tag-manipulation {
description "Tag Action to take for an EVC.
If no case is specified then the default noAction will apply";
//case noAction - if not specified then noAction will be taken
case tagPop {
container tag-pop {
description "Pop the tag.";
presence "Tag pop.";
}
}
case tagPush {
container tag-push {
description "Push the tag.";
leaf push-tag-type { //Microsemi Eagle specific configuration attribute
type enumeration {
enum pushCtag { description "Use Ctag type on push"; }
enum pushStag { description "Use Stag type on push"; }
}
default pushCtag;
description
"Specify what tag type should be used is if tagAction is 'push'.";
reference
"Edge Assure internal API";
}
leaf outer-tag-vlan { //Microsemi Eagle specific configuration attribute
type msea:vlan-id-type;
mandatory true;
description
"The VLan value to use as the outer tag's vlan.";
reference
"Edge Assure internal API";
}
}
}
case tagOverwrite {
container tag-overwrite {
description "Overwrite the tag";
leaf outer-tag-vlan { //Microsemi Eagle specific configuration attribute
type msea:vlan-id-type;
mandatory true;
description
"The VLan value to use as the outer tag's vlan.";
reference
"Edge Assure internal API";
}
}
}
}
leaf evc-per-uni-service-type { //aka mefServiceEvcPerUniCfgServiceType
type enumeration {
enum epl {
description "Ethernet Private Line Service (EPL)
Point-to-Point EVC, all to one bundling";
}
enum evpl {
description "Ethernet Virtual Private Line (EVPL)
Point-to-Point EVC, bundling and/or multiplexing";
}
enum eplan {
description "Ethernet Private LAN Service (EP-LAN)
Multipoint-to-Multipoint EVC, all to one bundling";
}
enum evplan {
description "Ethernet Virtual Private LAN Service (EVP-LAN)
Multipoint-to-Multipoint EVC, bundling and/or multiplexing";
}
enum eptree {
description "Ethernet Private Tree Service (EP-Tree)
Rooted-Multipoint EVC, all to one bundling";
}
enum evptree {
description "Ethernet Virtual Private Tree Service (EVP-Tree)
Rooted-Multipoint EVC, bundling and/or multiplexing";
}
}
config false;
description
"This object indicates the specific Ethernet service type. The value is
derived from the EVC object 'mefServiceEvcCfgType' and the UNI object
'mefServiceUniCfgBundlingMultiplex'.";
reference
"[MEF 6.1] 6.1; [MEF 7.2] 6.2.1.3";
}
list flow-mapping {
description "A list to track the VLANs relationship to a Flow";
key ce-vlan-id;
leaf ce-vlan-id {
type msea:vlan-id-type;
description "A VLan Id";
}
leaf flow-id {
type uint64;
description "An identifier for a Flow Rule related to this VLan Id";
}
}
}
grouping pcp-color-map-grouping {
description "The PCP identifiers for the COS";
leaf pcp-id {
description "The priority level";
type msea:priority-type;
}
leaf pcp-color {
description "The color to apply to this Priority";
type msea:cos-color-type;
// msea:not-changeable;
}
}
container mef-services {
description
"This acts as a container of the MEF (6.2) Services configuration.";
container uni {
// must "count(/if:interfaces/if:interface/[mef-interface:mef-service-type = 'bUni2d1']) = 2" {
// error-message "The interfaces must be configured as a UNI";
// error-app-tag "msea-uni-must-01";
// } //Unenforceable as the interface resides in a different module - may have to be implemented in the TransAPI
presence "If present this device acts as a UNI";
description "This Edge Assure device support only one UNI.
This device supports only one UNI even though it has two interfaces.
One of the interfaces corresponds to the UNI-N side of the UNI,
while the other interface corresponds to the UNI-C side of the interface.
Each side performs the mapping to and from the EVC on the ingress
of packets to the device.";
leaf name { //aka mefServiceUniCfgIdentifier
type msea:identifier45;
mandatory true;
description
"This object indicates the UNI identifier.
MEF 26.1 restricts the maximum size identifiers to 45 octets.";
reference
"[MEF 6.1] 6.0, [MEF 7.2] 6.2.1.2";
}
leaf uni-side-interface-assignment {
type enumeration {
enum uni-c-on-host {
description "Uni-C (Customer) is the Host/eth1/LAN - commonly the System port.
Uni-N (Network) is the Optics/eth0/WAN - commonly the Carrier port";
}
enum uni-c-on-optics {
description "Uni-C (Customer) is the Optics/eth0/WAN - commonly the Carrier port.
Uni-N (Network) is the Host/eth1/LAN - commonly the System port";
}
}
default uni-c-on-host;
// msea:not-changeable;
description "An attribute to configure the assignment of UNI-C (Customer) and
UNI-N (Network) to the interfaces.
This Edge Assure supports only one UNI over its two interfaces.
One of the interfaces corresponds to the UNI-N side of the UNI,
while the other interface corresponds to the UNI-C side of the interface.
Each side acts on packets only on ingress at each interface";
}
container uni-c { //aka mefServiceUniCfgEntry
presence "If present this configures the UNI-C";
uses uni-attributes;
must "//msea-svcs:mef-services/msea-svcs:uni/msea-svcs:uni-n" {
error-app-tag "msea-svcs-must-00";
error-message "Both UNI-C and UNI-N must be specified";
}
description "The configuration of the UNI-C side of the UNI.
UNI-C refers to eth1 by default but can be changed through the
uni-side-interface-assignment attribute.
The interface used must have been configured as a UNI";
}
container uni-n { //aka mefServiceUniCfgEntry
presence "If present this configures the UNI-N";
uses uni-attributes;
must "//msea-svcs:mef-services/msea-svcs:uni/msea-svcs:uni-c" {
error-app-tag "msea-svcs-must-01";
error-message "Both UNI-C and UNI-N must be specified";
}
description "The configuration of the UNI-C side of the UNI.
UNI-N refers to eth0 by default but can be changed through the
uni-side-interface-assignment attribute.
The interface used must have been configured as a UNI";
}
list evc { //aka mefServiceEvcPerUniCfgEntry
key evc-index;
max-elements 32;
description "The UNI can support one or more EVCs";
leaf evc-index { //aka mefServiceEvcCfgIndex
type uint32 {
range 1..max;
}
description
"The specific instance of an EVC number.";
}
leaf name { //aka mefServiceEvcCfgIdentifier
type msea:identifier45;
mandatory true;
description
"This object indicates the EVC identifier. The identifier is
an arbitrary text string that is used to identify an EVC.
Unique string values are chosen to uniquely identify the EVC.
Octet values of 0x00 through 0x1f are illegal.
MEF 26.1 restricts the maximum size identifiers to 45 octets.";
reference
"[MEF 6.1] 6.1; [MEF 7.2] 6.2.1.3";
}
leaf uni-evc-id { //aka mefServiceEvcCfgIdentifier
type msea:identifier45;
config false;
description
"The UNI EVC ID is a string formed by the concatenation of
the UNI ID (Section 9.1) and the EVC ID (Section 8.2) that
is used to identify an EVC at the UNI. It is intended for
management and control purposes.";
reference
"[MEF 10.3] 10.1";
}
leaf service-type { //aka mefServiceEvcCfgServiceType
type enumeration {
enum pointToPoint {
description "EVC Point-to-Point service,
used for EPL and EVPL services";
}
enum multipointToMultipoint {
description "EVC Multipoint-to-Multipoint
Service, used for EP-LAN and EVP-LAN
services";
}
enum rootedMultipoint {
description "EVC Rooted-Multipoint Service,
used for EP-Tree and EVP-Tree services";
}
}
default pointToPoint;
// msea:not-changeable;
description
"This object configures the EVC service type for the ME-NE.";
reference
"[MEF 6.1] 6.1; [MEF 7.2] 6.2.1.3";
}
leaf mtu-size { //aka mefServiceEvcCfgMtuSize
type uint32 {
range "9600";
}
units "octets";
default 9600;
description
"This object indicates the configured EVC maximum service frame format
size. It must be less than or equal to the
mefServiceEvcStatusMaxMtuSize.";
reference
"[MEF 6.1] 6.1; [MEF 7.2] 6.2.1.3";
}
leaf cevlan-id-preservation { //aka mefServiceEvcCfgCevlanIdPreservation
type msea:service-preservation-type;
default preserve;
// msea:not-changeable;
description
"This object configures the EVC CE-VLAN ID preservation.
preserve(1) The CE-VLAN ID is preserved. The ingress CE-VLAN
is the CE-VLAN ID at the egress UNI
noPreserve(2) The CE-VLAN ID is not preserved. The ingress
CE-VLAN ID may not be the CE-VLAN ID at the egress
UNI";
reference
"[MEF 6.1] 6.1; [MEF 7.2] 6.2.1.3";
}
leaf cevlan-cos-preservation { //aka mefServiceEvcCfgCevlanCosPreservation
type msea:service-preservation-type;
default preserve;
// msea:not-changeable;
description
"This object configures EVC CE-VLAN CoS preservation.
preserve(1) The CE-VLAN CoS is preserved. The ingress CE-VLAN
CoS is the CE-VLAN CoS at the egress UNI
noPreserve(2) The CE-VLAN CoS is not preserved. The ingress
CE-VLAN CoS may not be the CE-VLAN CoS at the
egress UNI";
reference
"[MEF 6.1] 6.1; [MEF 7.2] 6.2.1.3";
}
container evc-status { //aka mefServiceEvcStatusEntry
config false;
description
"The conceptual row of mefServiceEvcStatusTable.";
leaf max-mtu-size { //aka mefServiceEvcStatusMaxMtuSize
type uint32 {
range "1522..16384";
}
units "octets";
description
"This object indicates the EVC maximum configurable service
frame format size. The actual configured size is set via the
mefServiceEvcCfgMtuSize object.";
reference
"[MEF 6.1] 6.1; [MEF 7.2] 6.2.1.3";
}
leaf max-num-uni { //aka mefServiceEvcStatusMaxNumUni
type uint32 {
range "2..16384";
}
description
"This object indicates the maximum number of UNIs in an EVC. For
a Point-to-Point EVC this value is '2'. For a Multipoint EVC the
value can be '2' or greater.";
reference
"[MEF 6.1] 6.1; [MEF 7.2] 6.2.1.3";
}
leaf operational-state { //aka mefServiceEvcStatusOperationalState
type entity-state:EntityOperState;
description
"This object indicates the operational state (current
capability) of the EVC.
If the value is 'enabled', the EVC is able to ingress and
egress service frames and has been set to active.
If the value is 'disabled' the EVC is not able to ingress and
egress service frames, has detected an operational failure
condition, or has failed an internal test.
If the value is 'testing' the EVC has been placed into a test mode,
either a troubleshooting mode or a test mode.
If the value is 'unknown' the EVC is unable to report the operational
state.";
reference
"[MEF 7.2] 6.2.1.3";
}
} //End evc-status
container evc-per-uni {
leaf evc-uni-type { //aka mefServiceEvcUniCfgType
type enumeration {
enum root {
description "Valid setting for all service types. A UNI set
to this value may send frames to UNIs configured
as 'root' or 'leaf'";
}
}
default root;
description
"This object configures UNI type on an EVC.";
reference
"[MEF 10.2]";
}
container evc-per-uni-c { //aka mefServiceUniCfgEntry
description "The configuration of the UNI-C side of the EVC-per-UNI.";
uses evc-per-uni-extension-attributes;
} //End evc-per-uni-c
container evc-per-uni-n { //aka mefServiceUniCfgEntry
description "The configuration of the UNI-N side of the EVC-per-UNI";
uses evc-per-uni-extension-attributes;
} //End evc-per-uni-n
}
} //End evc
} //end of uni
container profiles {
list bwp-group { //aka mefServiceBwpGrpCfgEntry
key "group-index";
max-elements 64;
description
"Bandwidth profile group settings table entry.";
leaf group-index { //aka mefServiceBwpGrpCfgIndex
type uint8;
description
"Bandwidth profile group index number";
}
list bwp { //aka mefServiceBwpCfgEntry
key "cos-index";//Changed to cos-index (from bwp-index) based on MEP 40 6.4.2
unique name;
max-elements 64;
description
"Bandwidth profile settings table entry.";
leaf cos-index { //aka mefServiceBwpCfgCosIndex
type leafref {
path "/msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:cos/msea-svcs:cos-index";
}
description
"This object is the index number of the CoS ID profile
associated with the current bandwidth profile. A value of 0 indicates
that no CoS ID profile is associated with the bandwidth profile and the
bandwidth profile applies to all CoS IDs.
This index indicates a specific CoS ID profile previously configured via
mefServiceCosCfgTable as indicated by the mefServiceCosCfgIndex object.";
reference
"[MEF 6.1] 6.1; [MEF 7.2] 6.2.1.3";
must "count(//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:cos[msea-svcs:cos-index=//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:bwp-group[msea-svcs:group-index=current()/../../msea-svcs:group-index]/msea-svcs:bwp/msea-svcs:cos-index]/msea-svcs:*/priority[.='0']) <= 1" {
error-app-tag "msea-svcs-must-02";
error-message "Priority 0 can be specified only once in the COS's related to a BWP Group";
}
must "count(//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:cos[msea-svcs:cos-index=//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:bwp-group[msea-svcs:group-index=current()/../../msea-svcs:group-index]/msea-svcs:bwp/msea-svcs:cos-index]/msea-svcs:*/priority[.='1']) <= 1" {
error-app-tag "msea-svcs-must-03";
error-message "Priority 1 can be specified only once in the COS's related to a BWP Group";
}
must "count(//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:cos[msea-svcs:cos-index=//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:bwp-group[msea-svcs:group-index=current()/../../msea-svcs:group-index]/msea-svcs:bwp/msea-svcs:cos-index]/msea-svcs:*/priority[.='2']) <= 1" {
error-app-tag "msea-svcs-must-04";
error-message "Priority 2 can be specified only once in the COS's related to a BWP Group";
}
must "count(//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:cos[msea-svcs:cos-index=//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:bwp-group[msea-svcs:group-index=current()/../../msea-svcs:group-index]/msea-svcs:bwp/msea-svcs:cos-index]/msea-svcs:*/priority[.='3']) <= 1" {
error-app-tag "msea-svcs-must-05";
error-message "Priority 3 can be specified only once in the COS's related to a BWP Group";
}
must "count(//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:cos[msea-svcs:cos-index=//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:bwp-group[msea-svcs:group-index=current()/../../msea-svcs:group-index]/msea-svcs:bwp/msea-svcs:cos-index]/msea-svcs:*/priority[.='4']) <= 1" {
error-app-tag "msea-svcs-must-06";
error-message "Priority 4 can be specified only once in the COS's related to a BWP Group";
}
must "count(//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:cos[msea-svcs:cos-index=//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:bwp-group[msea-svcs:group-index=current()/../../msea-svcs:group-index]/msea-svcs:bwp/msea-svcs:cos-index]/msea-svcs:*/priority[.='5']) <= 1" {
error-app-tag "msea-svcs-must-07";
error-message "Priority 5 can be specified only once in the COS's related to a BWP Group";
}
must "count(//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:cos[msea-svcs:cos-index=//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:bwp-group[msea-svcs:group-index=current()/../../msea-svcs:group-index]/msea-svcs:bwp/msea-svcs:cos-index]/msea-svcs:*/priority[.='6']) <= 1" {
error-app-tag "msea-svcs-must-08";
error-message "Priority 6 can be specified only once in the COS's related to a BWP Group";
}
must "count(//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:cos[msea-svcs:cos-index=//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:bwp-group[msea-svcs:group-index=current()/../../msea-svcs:group-index]/msea-svcs:bwp/msea-svcs:cos-index]/msea-svcs:*/priority[.='7']) <= 1" {
error-app-tag "msea-svcs-must-09";
error-message "Priority 7 can be specified only once in the COS's related to a BWP Group";
}
must "count(//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:cos[msea-svcs:cos-index=//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:bwp-group[msea-svcs:group-index=current()/../../msea-svcs:group-index]/msea-svcs:bwp/msea-svcs:cos-index]/msea-svcs:evc-cos-type-all-8-prio-to-1-evc-color) <= 1" {
error-app-tag "msea-svcs-must-10";
error-message "Only one COS can be specified in a Bandwidth Profile Group when the cos-type is 'evc-cos-type-all-8-prio-to-1-evc-color' ";
}
must "count(//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:cos[msea-svcs:cos-index=//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:bwp-group[msea-svcs:group-index=current()/../../msea-svcs:group-index]/msea-svcs:bwp/msea-svcs:cos-index]/msea-svcs:evc-cos-type-all-8-prio-to-1-pcp-color) <= 1" {
error-app-tag "msea-svcs-must-11";
error-message "Only one COS can be specified in a Bandwidth Profile Group when the cos-type is 'evc-cos-type-all-8-prio-to-1-pcp-color' ";
}
must "count(//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:cos[msea-svcs:cos-index=//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:bwp-group[msea-svcs:group-index=current()/../../msea-svcs:group-index]/msea-svcs:bwp/msea-svcs:cos-index]/msea-svcs:evc-cos-type-all-8-prio-to-1-dei-color) <= 1" {
error-app-tag "msea-svcs-must-12";
error-message "Only one COS can be specified in a Bandwidth Profile Group when the cos-type is 'evc-cos-type-all-8-prio-to-1-dei-color' ";
}
must "current()/../../msea-svcs:group-index > 0" {
error-app-tag "msea-svcs-must-15";
error-message "No BWP's can be added to the Bandwidth Profile Group 0, as this index represents a special case";
}
}
leaf name { //mefServiceBwpCfgIdentifier
type string {
length "1..45";
}
mandatory true;
description
"This object indicates the bandwidth profile identifier for the
associated bandwidth profile index and is an arbitrary
text string that is used to identify a bandwidth profile. Unique
string values are chosen to uniquely identify the bandwidth
profile.
Octet values of 0x00 through 0x1f are illegal.
MEF 26.1 restricts the maximum size identifiers to 45 octets.";
reference
"[MEF 6.1] 6.0, 6.1, 6.2, 6.3; [MEF 7.2] 6.2.1.2, 6.2.1.3";
}
leaf committed-information-rate { //aka mefServiceBwpCfgCir
type uint32 {
range "0..10000000";
}
units "kbits/s";
default 1000000;
// msea:not-changeable;
description
"This object indicates the Committed Information Rate (CIR) in kbits/s
and defines the average rate in kbits/sec up to which
the network delivers Service Frames. Service Frames that meet
the CIR are said to be in profile or in conformance to performance
objectives. These frames are generally identified as 'Green'
Service Frames.";
reference
"[MEF 6.1] 6.0, 6.1, 6.2, 6.3; [MEF 7.2] 6.2.1.2, 6.2.1.3";
}
leaf committed-burst-size { //aka mefServiceBwpCfgCbs
type uint32 {
range "0..10000000";
}
units "bytes";
default 12;
// msea:not-changeable;
description
"This object indicates the Committed Burst Size (CBS) in bytes. It limits
the maximum number of bytes available for a burst of Service Frames sent
at interface speed to remain CIR-conformant.";
reference
"[MEF 10.2]";
}
leaf excess-information-rate { //aka mefServiceBwpCfgEir
type uint32 {
range "0..10000000";
}
units "kbits/s";
// msea:not-changeable;
description
"This object indicates the Excess Information Rate (EIR) in kbits/s
and defines the average rate in kbits/sec of Service Frames up to
which the network may deliver Service Frames but without performance
objectives. Service Frames that meet the EIR as set to be in out-of-
profile or not in conformance to performance objectives. These
frames are not guaranteed to be delivered and are generally identified
as 'Yellow' service frames.";
reference
"[MEF 6.1] 6.0, 6.1, 6.2, 6.3; [MEF 7.2] 6.2.1.2, 6.2.1.3";
}
leaf excess-burst-size { //aka mefServiceBwpCfgEbs
type uint32 {
range "0..10000000";
}
units "bytes";
// msea:not-changeable;
description
"This object indicates the Excess Burst Size (EBS) in bytes. It limits
the maximum number of bytes available for a burst of Service Frames
sent at the interface speed to remain EIR-conformant.";
reference
"[MEF 6.1] 6.0, 6.1, 6.2, 6.3; [MEF 7.2] 6.2.1.2, 6.2.1.3";
}
leaf color-mode { //aka mefServiceBwpCfgCm
type enumeration {
enum colorBlind {description "A bandwidth profile property where ingress
Service Frames are not pre-colored for either
green or yellow, and if present, is ignored when
determining the level of compliance for each
Service Frame";
}
enum colorAware {
description "A bandwidth profile property were a pre-determined
level of Bandwidth Profile compliance for each
Service Frame is taken into account when determining
the level of compliance for each Service Frame.
Each service frame can be colored red (discarded),
yellow (conditional delivery), or green (unconditional
delivery.";
}
}
default colorBlind;
// msea:not-changeable;
description
"This object configures the bandwidth profile color mode.";
reference
"[MEF 6.1] 6.0, 6.1, 6.2, 6.3; [MEF 7.2] 6.2.1.2, 6.2.1.3";
}
leaf coupling-flag { //aka mefServiceBwpCfgCf
type enumeration {
enum couplingYellowEirOnly {
description "The long term average bit rate of Service
Frames that are declared Yellow is bounded by EIR.";
}
enum couplingYellowEirPlusCir {
description "The long term average bit rate of Service
Frames that are declared Yellow is bounded
by CIR + EIR depending on the volume of
the offered Service Frames that are
declared Green.";
}
}
default couplingYellowEirOnly;
// msea:not-changeable;
description
"This object configures the bandwidth profile coupling flag and has
the effect of controlling the volume of the Service Frames that are
declared Yellow.";
reference
"[MEF 6.1] 6.0, 6.1, 6.2, 6.3; [MEF 7.2] 6.2.1.2, 6.2.1.3";
}
} //End bwp
} //End bwp-group
list cos { //aka mefServiceCosCfgEntry
key "cos-index";
unique name;
max-elements 64;
description
"Class of Service Identifier settings table entry.";
leaf cos-index { //aka mefServiceCosCfgIndex
type uint32 {
range 1..max;
}
description
"Class of Service Identifier profile index number.";
}
leaf name { //aka mefServiceCosCfgIdentifier
type string {
length 1..45;
}
description
"This object indicates the Class of Service Name for the
associated CoS profile index and is an arbitrary text string that is
used to identify a CoS ID profile. Unique string values are chosen to
uniquely identify the profile.
Octet values of 0x00 through 0x1f are illegal.
MEF 26.1 restricts the maximum size identifiers to 45 octets.";
reference
"[MEF 6.1] 6.0, 6.1, 6.2, 6.3; [MEF 7.2] 6.2.1.2, 6.2.1.3";
}
choice cos-type-choice {
description "CoS configuration alternatives.";
//We have 6 choices in a single tier choice structure which is easier for client
//tools to represent automatically rather than a two tier choice structure
case evc-cos-type-evc-color-id {
container evc-cos-type-all-8-prio-to-1-evc-color {
description "Indicates that the CoS profile is associated
with the virtual channel, i.e. EVC or OVC. All 8 priorities
are mapped to the outgoing-cos-value - therefore there can
only be one of this type of COS specified in any BWP Group";
leaf evc-all-8-color-to {
description "The color to be applied regardless of priority";
mandatory true;
type msea:cos-color-type;
}
}
}
case evc-cos-type-pcp-color-id {
container evc-cos-type-all-8-prio-to-1-pcp-color {
description "Indicates that the CoS profile is associated
with the virtual channel, i.e. EVC or OVC. All 8 priorities
are mapped to the outgoing-cos-value - therefore there can
only be one of this type of COS specified in any BWP Group";
list pcp-color-per-prio {
key pcp-id;
description "The PCP value of the incoming frame is
used to lookup the following table to determine the
frame's color";
min-elements 8;
max-elements 8;
uses pcp-color-map-grouping;
}
}
}
case evc-cos-type-dei-color-id {
container evc-cos-type-all-8-prio-to-1-dei-color {
presence "Cos type EVC and Color Mapping DEI";
description "Indicates that the CoS profile is associated
with the virtual channel, i.e. EVC or OVC. All 8 priorities
are mapped to the outgoing-cos-value - therefore there can
only be one of this type of COS specified in any BWP Group
The source of the color is DEI of the
incoming frame. False (0) in the DEI field will set
the color to Green and True (1) will set to Yellow";
}
}
case pcp-cos-type-evc-color-id {
container pcp-cos-type-n-prio-to-1-evc-color {
description "Indicates that the CoS profile is associated
with the incoming frame's Priority Code Point (priority bits).";
leaf-list priority {
type msea:priority-type;
ordered-by system;
description "A list of priorities that apply to this COS.
When the COS type is PCP a subset of the priorities can
be specified. Other priorities can be specified in
additional COS profiles. In total the same priority
cannot be repeated in a BWP Group";
min-elements 1;
max-elements 8;
}
leaf evc-all-8-colors-to {
description "The color to be applied regardless
of priority. If multiple instances of this cos
type have different values then the color-type
of the last one will apply";
type msea:cos-color-type;
mandatory true;
}
}
}
case pcp-cos-type-pcp-color-id {
container pcp-cos-type-n-prio-to-1-pcp-color {
description "Indicates that the CoS profile is associated
with the incoming frame's Priority Code Point (priority bits).
The PCP value of the incoming frame is used to lookup the
follwing table to determine the frame's color";
leaf-list priority {
type msea:priority-type;
min-elements 1;
max-elements 8;
ordered-by system;
description "A list of priorities that apply to this COS.
When the COS type is PCP a subset of the priorities can
be specified. Other priorities can be specified in
additional COS profiles. In total the same priority
cannot be repeated in a BWP Group";
}
list pcp-color-for-prio {
key pcp-id;
description "Each priority specified above must
have a corresponding color otherwise the default
(green) will apply";
min-elements 1;
ordered-by system;
uses pcp-color-map-grouping {
refine pcp-id {
must "count(current()/../../msea-svcs:priority[.=current()]) = 1" {
error-message "Each element must already exist in the priority list";
}
}
}
}
}
}
case pcp-cos-type-dei-color-id {
container pcp-cos-type-n-prio-to-1-dei-color {
description "Indicates that the CoS profile is associated
with the incoming frame's Priority Code Point (priority bits).
The DEI value of the incoming frame is used to determine
the frame's color. False (0) in the DEI field of the frame
will set the color to Green and True (1) will set to Yellow";
leaf-list priority {
type msea:priority-type;
min-elements 1;
max-elements 8;
ordered-by system;
description "A list of priorities that apply to this COS.
When the COS type is PCP a subset of the priorities can
be specified. Other priorities can be specified in
additional COS profiles. In total the same priority
cannot be repeated in a BWP Group";
}
}
}
mandatory true;
// msea:not-changeable;
}
leaf outgoing-cos-value {
type msea:priority-type;
mandatory true;
// msea:not-changeable;
description
"Used to set the egress COS to use for all ingress COS explicitly listed";
reference
"Edge Assure internal API";
}
leaf color-aware {
type boolean;
mandatory true;
// msea:not-changeable;
description
"Set if the profile should be treated as colour aware (true) or not (false)";
reference
"Edge Assure internal API";
}
leaf color-forward {
type boolean;
mandatory true;
// msea:not-changeable;
description
"Used to override the colour mapping of the profile. If true the ingress colour is forwarded";
reference
"Edge Assure internal API";
}
} //End cos
} //End of profiles
} //End of mef-services
} /* end of module msea-uni-evc-service */