| 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 */ |