Reorganization of devicemanager directory structure
[ccsdk/features.git] / sdnr / wt / devicemanager-onap / onf14 / provider / src / main / yang / ethernet-container-2-0.yang
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/ethernet-container-2-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/ethernet-container-2-0.yang
new file mode 100644 (file)
index 0000000..1f163f5
--- /dev/null
@@ -0,0 +1,1955 @@
+module ethernet-container-2-0 {\r
+  yang-version 1.1;\r
+  namespace "urn:onf:yang:ethernet-container-2-0";\r
+  prefix ethernet-container;\r
+\r
+  import ietf-yang-types {\r
+    prefix yang;\r
+  }\r
+  import core-model-1-4 {\r
+    prefix core-model;\r
+  }\r
+\r
+  organization\r
+    "openBackhaul.com proposal to Open Networking Foundation (ONF)";\r
+  contact\r
+    "WG Web : https://github.com/openBackhaul/Overview\r
+     WG List: Thorsten.Heinze@openBackhaul.com\r
+     Editor : Thorsten Heinze\r
+     Email  : Thorsten.Heinze@openBackhaul.com";\r
+  description\r
+    "Technology specific amendment to the LayerProtocol class of the ONF Core IM for a transport resource for Ethernet.\r
+\r
+     Copyright 2019 openBackhaul.com\r
+\r
+     Licensed under the Apache License, Version 2.0 (the 'License');\r
+     you may not use this file except in compliance with the License.\r
+     You may obtain a copy of the License at\r
+     http://www.apache.org/licenses/LICENSE-2.0\r
+     Unless required by applicable law or agreed to in writing, software\r
+     distributed under the License is distributed on an 'AS IS' BASIS,\r
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+     See the License for the specific language governing permissions and\r
+     limitations under the License.";\r
+\r
+  revision 2020-01-21 {\r
+    description\r
+      "Model for the Transport SDN Pilot at Telefonica Germany\r
+       Please view https://github.com/openBackhaul/ethernetContainer/issues for changes.";\r
+    reference\r
+      "https://github.com/openBackhaul/ethernetContainer/tree/tsp: Model definition\r
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";\r
+  }\r
+  revision 2019-11-23 {\r
+    description\r
+      "Model for the Transport SDN Pilot at Telefonica Germany\r
+       Please view https://github.com/openBackhaul/ethernetContainer/issues for changes.";\r
+    reference\r
+      "https://github.com/openBackhaul/ethernetContainer/tree/tsp: Model definition\r
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";\r
+  }\r
+  revision 2019-06-14 {\r
+    description\r
+      "Model for the Transport SDN Pilot at Telefonica Germany\r
+       Please view https://github.com/openBackhaul/ethernetContainer/issues for changes.";\r
+    reference\r
+      "https://github.com/openBackhaul/ethernetContainer/tree/tsp: Model definition\r
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";\r
+  }\r
+\r
+  identity LAYER_PROTOCOL_NAME_TYPE_ETHERNET_CONTAINER_LAYER {\r
+    base core-model:LAYER_PROTOCOL_NAME_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  augment "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol" {\r
+    when "derived-from-or-self(./core-model:layer-protocol-name, 'ethernet-container:LAYER_PROTOCOL_NAME_TYPE_ETHERNET_CONTAINER_LAYER')";\r
+    uses ethernet-container-lp-spec;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  /****************************************\r
+   * package notifications\r
+   **************************************/ \r
+\r
+  notification object-creation-notification {\r
+    uses object-creation-notification;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  grouping object-creation-notification {\r
+    leaf counter {\r
+      type int64;\r
+      default "-1";\r
+      config false;\r
+      description\r
+        "Counts object creation notifications.";\r
+    }\r
+    leaf timestamp {\r
+      type yang:date-and-time;\r
+      default "2010-11-20T14:00:00+01:00";\r
+      config false;\r
+      description\r
+        "none";\r
+    }\r
+    leaf object-id-ref {\r
+      type leafref {\r
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";\r
+        require-instance false;\r
+      }\r
+      config false;\r
+      description\r
+        "none";\r
+    }\r
+    leaf object-type {\r
+      type string;\r
+      default "Type of created object not specified.";\r
+      config false;\r
+      description\r
+        "none";\r
+    }\r
+    description\r
+      "none";\r
+  }\r
+\r
+  notification object-deletion-notification {\r
+    uses object-deletion-notification;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  grouping object-deletion-notification {\r
+    leaf counter {\r
+      type int64;\r
+      default "-1";\r
+      config false;\r
+      description\r
+        "Counts object deletion notifications.";\r
+    }\r
+    leaf timestamp {\r
+      type yang:date-and-time;\r
+      default "2010-11-20T14:00:00+01:00";\r
+      config false;\r
+      description\r
+        "none";\r
+    }\r
+    leaf object-id-ref {\r
+      type leafref {\r
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";\r
+        require-instance false;\r
+      }\r
+      config false;\r
+      description\r
+        "none";\r
+    }\r
+    description\r
+      "none";\r
+  }\r
+\r
+  notification attribute-value-changed-notification {\r
+    uses attribute-value-changed-notification;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  grouping attribute-value-changed-notification {\r
+    leaf counter {\r
+      type int64;\r
+      default "-1";\r
+      config false;\r
+      description\r
+        "Counts attribute value changed notifications.";\r
+    }\r
+    leaf timestamp {\r
+      type yang:date-and-time;\r
+      default "2010-11-20T14:00:00+01:00";\r
+      config false;\r
+      description\r
+        "none";\r
+    }\r
+    leaf object-id-ref {\r
+      type leafref {\r
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";\r
+        require-instance false;\r
+      }\r
+      config false;\r
+      description\r
+        "none";\r
+    }\r
+    leaf attribute-name {\r
+      type string;\r
+      default "Attribute name not specified.";\r
+      config false;\r
+      description\r
+        "Name of the attribute that has been changed.";\r
+    }\r
+    leaf new-value {\r
+      type string;\r
+      default "New value not specified.";\r
+      config false;\r
+      description\r
+        "Attribute value converted to a string (xml, json, ...)";\r
+    }\r
+    description\r
+      "none";\r
+  }\r
+\r
+  notification problem-notification {\r
+    uses problem-notification;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  grouping problem-notification {\r
+    leaf counter {\r
+      type int64;\r
+      default "-1";\r
+      config false;\r
+      description\r
+        "Counts problem notifications";\r
+    }\r
+    leaf timestamp {\r
+      type yang:date-and-time;\r
+      default "2010-11-20T14:00:00+01:00";\r
+      config false;\r
+      description\r
+        "none";\r
+    }\r
+    leaf object-id-ref {\r
+      type leafref {\r
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";\r
+        require-instance false;\r
+      }\r
+      config false;\r
+      description\r
+        "none";\r
+    }\r
+    leaf problem {\r
+      type string;\r
+      default "Problem name not specified.";\r
+      config false;\r
+      description\r
+        "Name of the problem according to supportedAlarmList";\r
+    }\r
+    leaf severity {\r
+      type severity-type;\r
+      default "SEVERITY_TYPE_WARNING";\r
+      config false;\r
+      description\r
+        "Severity of the problem according to problemKindSeverity";\r
+    }\r
+    description\r
+      "none";\r
+  }\r
+\r
+  /****************************************\r
+   * grouping statements for object classes\r
+   **************************************/ \r
+  /****************************************\r
+   * package super-classes\r
+   **************************************/ \r
+\r
+  grouping current-problem {\r
+    leaf sequence-number {\r
+      type int16;\r
+      config false;\r
+      description\r
+        "Unique sequence number of the current problem object.";\r
+    }\r
+    leaf timestamp {\r
+      type yang:date-and-time;\r
+      default "2010-11-20T14:00:00+01:00";\r
+      config false;\r
+      description\r
+        "Time when the alarm was raised.";\r
+    }\r
+    leaf problem-severity {\r
+      type severity-type;\r
+      default "SEVERITY_TYPE_NOT_YET_DEFINED";\r
+      config false;\r
+      description\r
+        "Severity of the alarm.";\r
+    }\r
+    description\r
+      "none";\r
+  }\r
+\r
+  grouping current-performance {\r
+    leaf timestamp {\r
+      type yang:date-and-time;\r
+      default "2010-11-20T14:00:00+01:00";\r
+      config false;\r
+      description\r
+        "The timestamp associated with when the current data was collected.";\r
+    }\r
+    leaf suspect-interval-flag {\r
+      type boolean;\r
+      default "false";\r
+      config false;\r
+      description\r
+        "This attribute is used to indicate that the performance data for the current period may not be reliable. Some reasons for this to occur are:\r
+            – Suspect data were detected by the actual resource doing data collection.\r
+            – Transition of the administrativeState attribute to/from the 'lock' state.\r
+            – Transition of the operationalState to/from the 'disabled' state.\r
+            – Scheduler setting that inhibits the collection function.\r
+            – The performance counters were reset during the interval.\r
+            – The currentData (or subclass) object instance was created during the monitoring period.";\r
+    }\r
+    leaf elapsed-time {\r
+      type int64;\r
+      units "s";\r
+      default "-1";\r
+      config false;\r
+      description\r
+        "Number of seconds that elapsed since the last reset of the counter.";\r
+    }\r
+    leaf scanner-id {\r
+      type string;\r
+      default "Scanner ID not defined.";\r
+      config false;\r
+      description\r
+        "none";\r
+    }\r
+    leaf granularity-period {\r
+      type granularity-period-type;\r
+      config false;\r
+      description\r
+        "Time period between reset of the underlying counter.";\r
+    }\r
+    description\r
+      "none";\r
+  }\r
+\r
+  grouping historical-performance {\r
+    leaf suspect-interval-flag {\r
+      type boolean;\r
+      default "false";\r
+      config false;\r
+      description\r
+        "This attribute indicates that the data collected during the interval is suspect.";\r
+    }\r
+    leaf history-data-id {\r
+      type string;\r
+      default "History Data ID not defined.";\r
+      config false;\r
+      description\r
+        "none";\r
+    }\r
+    leaf granularity-period {\r
+      type granularity-period-type;\r
+      config false;\r
+      description\r
+        "Time period between reset of the underlying counter.";\r
+    }\r
+    leaf period-end-time {\r
+      type yang:date-and-time;\r
+      config false;\r
+      description\r
+        "Time when the counter values have been recorded and the counter reset.";\r
+    }\r
+    description\r
+      "none";\r
+  }\r
+\r
+  grouping ethernet-container-lp-spec {\r
+    container ethernet-container-pac {\r
+      uses ethernet-container-pac;\r
+      description\r
+        "none";\r
+    }\r
+    description\r
+      "none";\r
+  }\r
+\r
+  grouping ethernet-container-pac {\r
+    container ethernet-container-capability {\r
+      config false;\r
+      uses ethernet-container-capability;\r
+      description\r
+        "none";\r
+    }\r
+    container ethernet-container-configuration {\r
+      uses ethernet-container-configuration;\r
+      description\r
+        "none";\r
+    }\r
+    container ethernet-container-status {\r
+      config false;\r
+      uses ethernet-container-status;\r
+      description\r
+        "none";\r
+    }\r
+    container ethernet-container-current-problems {\r
+      config false;\r
+      uses ethernet-container-current-problems;\r
+      description\r
+        "none";\r
+    }\r
+    container ethernet-container-current-performance {\r
+      config false;\r
+      uses ethernet-container-current-performance;\r
+      description\r
+        "none";\r
+    }\r
+    container ethernet-container-historical-performances {\r
+      config false;\r
+      uses ethernet-container-historical-performances;\r
+      description\r
+        "none";\r
+    }\r
+    description\r
+      "none";\r
+  }\r
+\r
+  grouping ethernet-container-capability {\r
+    list available-queue-list {\r
+      key "queue-name";\r
+      config false;\r
+      min-elements 1;\r
+      max-elements 8;\r
+      uses available-queue-type;\r
+      description\r
+        "List of queues, which are available at the physical interface.";\r
+    }\r
+    leaf explicit-congestion-notification-is-avail {\r
+      type boolean;\r
+      default "false";\r
+      config false;\r
+      description\r
+        "1 = Explicit Congestion Notification is available at this queue.";\r
+    }\r
+    leaf ingress-policing-is-avail {\r
+      type boolean;\r
+      default "false";\r
+      config false;\r
+      description\r
+        "1 = This interface supports policing.";\r
+    }\r
+    leaf egress-shaping-is-avail {\r
+      type boolean;\r
+      default "false";\r
+      config false;\r
+      description\r
+        "1 = This interface supports shaping.";\r
+    }\r
+    leaf information-rate-min {\r
+      type int32;\r
+      units "kbit/s";\r
+      default "-1";\r
+      config false;\r
+      description\r
+        "Only relevant if (egressShapingIsAvail==1): Minimum configurable throuput in kbit/s.";\r
+    }\r
+    leaf information-rate-max {\r
+      type int32;\r
+      units "kbit/s";\r
+      default "-1";\r
+      config false;\r
+      description\r
+        "Only relevant if (egressShapingIsAvail==1): Maximum configurable throuput in kbit/s.";\r
+    }\r
+    leaf burst-size-min {\r
+      type int16;\r
+      units "kByte";\r
+      default "-1";\r
+      config false;\r
+      description\r
+        "Only relevant if (egressShapingIsAvail==1): Minimum configurable value for the number of kBytes, which could be sent in a single burst.";\r
+    }\r
+    leaf burst-size-max {\r
+      type int16;\r
+      units "kByte";\r
+      default "-1";\r
+      config false;\r
+      description\r
+        "Only relevant if (egressShapingIsAvail==1): Maximum configurable value for the number of kBytes, which could be sent in a single burst.";\r
+    }\r
+    leaf bundling-is-avail {\r
+      type boolean;\r
+      default "false";\r
+      config false;\r
+      description\r
+        "This attribute has to be set on 'true', if the device allows combining resources from several air interfaces for transporting this Ethernet container.";\r
+    }\r
+    leaf bundling-group-size-max {\r
+      type int8;\r
+      default "-1";\r
+      config false;\r
+      description\r
+        "802.3 according to 30.11.1.1.6 aLocalPAFCapacity and ITU-T Rec. G.998.3 Appendix II aGroupCapacity. No Mbit/s value, but number of Ethernet Segments that can be aggregated for transporting this Ethernet Container. Reasonable values are between1 and 32.";\r
+    }\r
+    leaf support-of-management-frames-without-preamble-is-avail {\r
+      type boolean;\r
+      default "false";\r
+      config false;\r
+      description\r
+        "802.3. 1 = Management frames with suppressed preamble are also accepted.";\r
+    }\r
+    list supported-header-compression-kind-list {\r
+      key "header-compression-name";\r
+      config false;\r
+      min-elements 1;\r
+      uses header-compression-kind;\r
+      description\r
+        "Lists the kinds of header compression, which are supported by the device.";\r
+    }\r
+    leaf fec-is-avail {\r
+      type boolean;\r
+      default "false";\r
+      config false;\r
+      description\r
+        "802.3 according to 30.5.1.1.15 aFECAbility, 45.2.1.92.1 BASE-R FEC ability and 45.2.3.37 10GBASE-PR and 10/1GBASE-PRX FEC ability register and ITU-T Rec. G.998.3 Appendix II aFECSupported. 1 = Indicates that an optional Forward Error Correction (FEC) is supported.";\r
+    }\r
+    leaf fec-word-size-max {\r
+      type int16;\r
+      units "Byte";\r
+      default "-1";\r
+      config false;\r
+      description\r
+        "ITU-T Rec. G.998.3 Appendix II aFECWordSize. Indicates maximum supported Forward Error Correction (FEC) code word size in Bytes. Expected values between 20 and 255.";\r
+    }\r
+    leaf-list supported-fec-redundancy-size-list {\r
+      type fec-redundancy-size-type;\r
+      config false;\r
+      min-elements 1;\r
+      description\r
+        "ITU-T Rec. G.998.3 Appendix II aFECRedundancySize. Indicates maximum supported Forward Error Correction (FEC) redundancy word size.";\r
+    }\r
+    leaf-list supported-fec-interleaver-kind-list {\r
+      type fec-interleaver-kind-type;\r
+      config false;\r
+      min-elements 1;\r
+      description\r
+        "ITU-T Rec. G.998.3 Appendix II aFECInterleaverType. Supported kinds of Forward Error Correction (FEC) interleaver";\r
+    }\r
+    leaf-list supported-fec-interleaver-depth-list {\r
+      type fec-interleaver-depth-type;\r
+      config false;\r
+      min-elements 1;\r
+      description\r
+        "ITU-T Rec. G.998.3 Appendix II aFECInterleaverDepth. Indicates the supported depths of the Forward Error Correction (FEC) interleaver.";\r
+    }\r
+    leaf encryption-is-avail {\r
+      type boolean;\r
+      default "false";\r
+      config false;\r
+      description\r
+        "Shall be marked 'true', if Ethernet payload encryption is available.";\r
+    }\r
+    leaf admin-shut-down-is-avail {\r
+      type boolean;\r
+      default "false";\r
+      config false;\r
+      description\r
+        "1 = Manual switching on and off of the interface without deleting it (underlying OSI network layers are also not affected) is available.";\r
+    }\r
+    leaf-list supported-loop-back-kind-list {\r
+      type loop-back-type;\r
+      config false;\r
+      min-elements 1;\r
+      max-elements 3;\r
+      description\r
+        "List of supported kinds of looping back.";\r
+    }\r
+    leaf maintenance-timer-range {\r
+      type string;\r
+      default "Range of the maintenance timer not yet defined.";\r
+      config false;\r
+      description\r
+        "Available time periods for maintenance configurations to be described. Concrete values shall be separated by commas (e.g. '10, 60, 360'). Ranges shall be expressed as two values separated by a minus (e.g. '10-360').";\r
+    }\r
+    leaf statistics-is-avail {\r
+      type boolean;\r
+      default "false";\r
+      config false;\r
+      description\r
+        "1 = Continuous statistics counters are available.";\r
+    }\r
+    leaf-list supported-alarm-list {\r
+      type string;\r
+      config false;\r
+      min-elements 2;\r
+      description\r
+        "Available alarms to be listed. Mandatory:'framingIsFaulty' and 'containerIsDown'. Further alarms might be added by the vendor.";\r
+    }\r
+    leaf performance-monitoring-is-avail {\r
+      type boolean;\r
+      default "false";\r
+      config false;\r
+      description\r
+        "1 = Collection and aggregation of performance values is available.";\r
+    }\r
+    description\r
+      "none";\r
+  }\r
+\r
+  grouping ethernet-container-configuration {\r
+    leaf interface-name {\r
+      type string;\r
+      default "Interface name not yet defined.";\r
+      description\r
+        "Description of the interface, could be a name, could be a number. Free text field to be filled by the operator.";\r
+    }\r
+    leaf interface-is-on {\r
+      type boolean;\r
+      default "false";\r
+      description\r
+        "Only relevant if (adminShutDownIsAvail==1). 1 = Activation of the interface. 0 = De-activation of the interface without deleting it (underlying OSI network layers are not affected).";\r
+    }\r
+    list queue-behavior-list {\r
+      key "queue-name";\r
+      min-elements 1;\r
+      max-elements 8;\r
+      uses queue-behavior-type;\r
+      description\r
+        "Defines scheduling and dropping behavior of all queues.";\r
+    }\r
+    leaf explicit-congestion-notification-is-on {\r
+      type boolean;\r
+      default "false";\r
+      description\r
+        "1 = Explicit Congestion Notification is activitated at this queue.";\r
+    }\r
+    leaf ingress-policing-profile {\r
+      type leafref {\r
+        path "/core-model:control-construct/core-model:profile-collection/core-model:profile/core-model:uuid";\r
+        require-instance false;\r
+      }\r
+      description\r
+        "Reference to the policing profile, which is active on this interface. Attribute to point to an instance of Profile with profileName=='PROFILE_NAME_TYPE_POLICING_PROFILE'.";\r
+    }\r
+    leaf egress-shaping-is-on {\r
+      type boolean;\r
+      default "false";\r
+      description\r
+        "1 = Shaping on the egress is activated.";\r
+    }\r
+    leaf maximum-information-rate {\r
+      type int32;\r
+      units "kbit/s";\r
+      default "-1";\r
+      description\r
+        "Only relevant if (egressShapingIsAvail==1): Limits the throughput on the egress.";\r
+    }\r
+    leaf maximum-burst-size {\r
+      type int16;\r
+      units "kByte";\r
+      default "-1";\r
+      description\r
+        "Only relevant if (egressShapingIsAvail==1): Limits the number of kBytes, which are sent in a single burst.";\r
+    }\r
+    leaf bundling-is-on {\r
+      type boolean;\r
+      default "false";\r
+      description\r
+        "802.3 according to 30.11.1.1.5 aPAFAdminState and 45.2.3.26.3 PAF enable. 1 = Algorithm for bundling Ethernet segments is activated (, even if only a single Structure would be associated).";\r
+    }\r
+    leaf header-compression-kind {\r
+      type leafref {\r
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol/ethernet-container:ethernet-container-pac/ethernet-container:ethernet-container-capability/ethernet-container:supported-header-compression-kind-list/ethernet-container:header-compression-name";\r
+        require-instance false;\r
+      }\r
+      must 'boolean(/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol/ethernet-container:ethernet-container-pac/ethernet-container:ethernet-container-capability/ethernet-container:supported-header-compression-kind-list[header-compression-name=current()])';\r
+      description\r
+        "Defines the kind of header compression to be used.";\r
+    }\r
+    leaf fec-is-on {\r
+      type boolean;\r
+      default "false";\r
+      description\r
+        "802.3 according to 30.5.1.1.16 aFECmode, 45.2.1.93.1 FEC enable and 45.2.3.38.2 10 Gb/s FEC Enable and ITU-T Rec. G.998.3 Appendix II aFECAdminState. Only relevant if (fecIsAvail==1). 1 = Activation of the Forward Error Correction (FEC).";\r
+    }\r
+    leaf fec-word-size {\r
+      type int16;\r
+      units "Byte";\r
+      default "-1";\r
+      description\r
+        "ITU-T Rec. G.998.3 Appendix II aFECWordSize. Only relevant if (fecIsSupported==1). Defining the Forward Error Correction (FEC) code word size in Bytes. Expected values between 20 and 255.";\r
+    }\r
+    leaf fec-redundancy-size {\r
+      type fec-redundancy-size-type;\r
+      default "FEC_REDUNDANCY_SIZE_TYPE_NOT_YET_DEFINED";\r
+      description\r
+        "ITU-T Rec. G.998.3 Appendix II aFECRedundancySize. Only relevant if (fecIsSupported==1). Defining the Forward Error Correction (FEC) redundancy word size.";\r
+    }\r
+    leaf fec-interleaver-kind {\r
+      type fec-interleaver-kind-type;\r
+      default "FEC_INTERLEAVER_KIND_TYPE_NOT_YET_DEFINED";\r
+      description\r
+        "ITU-T Rec. G.998.3 Appendix II aFECInterleaverType. Only relevant if (fecIsSupported==1). Defining the kind of Forward Error Correction (FEC) interleaver.";\r
+    }\r
+    leaf fec-interleaver-depth {\r
+      type fec-interleaver-depth-type;\r
+      default "FEC_INTERLEAVER_DEPTH_TYPE_NOT_YET_DEFINED";\r
+      description\r
+        "ITU-T Rec. G.998.3 Appendix II aFECInterleaverDepth. Only relevant if (fecIsSupported==1). Defining the depth of Forward Error Correction (FEC) interleaver.";\r
+    }\r
+    leaf encryption-is-on {\r
+      type boolean;\r
+      default "false";\r
+      description\r
+        "Activates encryption of the Ethernet payload.";\r
+    }\r
+    leaf cryptographic-key {\r
+      type string;\r
+      default "Cryptographic key not yet defined.";\r
+      description\r
+        "Key for transforming plaintext into cipher text data.";\r
+    }\r
+    leaf loop-back-kind-on {\r
+      type loop-back-type;\r
+      default "LOOP_BACK_TYPE_NOT_YET_DEFINED";\r
+      description\r
+        "Maintenance Feature. Configuration of a loop back of TDM time slots on this interface.";\r
+    }\r
+    leaf maintenance-timer {\r
+      type int32;\r
+      units "s";\r
+      default "-1";\r
+      description\r
+        "Time of existence of any maintenance configuration. 0 = maintenance timer is switched off. Valid values are defined in *Capability::maintenanceTimerRange.";\r
+    }\r
+    leaf statistics-is-on {\r
+      type boolean;\r
+      default "false";\r
+      description\r
+        "Only relevant if (statisticsIsAvail==1). 1 = Continuous statistics counters are switched on.";\r
+    }\r
+    list problem-kind-severity-list {\r
+      key "problem-kind-name";\r
+      min-elements 2;\r
+      uses problem-kind-severity-type;\r
+      description\r
+        "Severity of the problem to be configured.";\r
+    }\r
+    leaf performance-monitoring-is-on {\r
+      type boolean;\r
+      default "false";\r
+      description\r
+        "Only relevant if (performanceMonitoringIsAvail==1). 1 = Collection and aggregation of performance values is switched on.";\r
+    }\r
+    description\r
+      "Serving Structures are identified by LogicalTerminationPoint::_serverLtpRefList. If (bundlingIsAvail==1), multiplicity might be *. If (bundlingIsAvail==0), multiplicity must be 0..1. It is assumed that there is just one Ethernet segment per Structure.";\r
+  }\r
+\r
+  grouping ethernet-container-status {\r
+    leaf interface-status {\r
+      type interface-status-type;\r
+      default "INTERFACE_STATUS_TYPE_NOT_YET_DEFINED";\r
+      config false;\r
+      description\r
+        "Operational status of the interface.";\r
+    }\r
+    leaf bundling-is-up {\r
+      type boolean;\r
+      default "false";\r
+      config false;\r
+      description\r
+        "802.3 and ITU-T Rec. G.998.3 Appendix II aGroupStatus. 1 = Algorithm for bundling Ethernet segments is operative (, even if only a single Structure would be associated).";\r
+    }\r
+    leaf remote-site-is-faulty {\r
+      type boolean;\r
+      default "false";\r
+      config false;\r
+      description\r
+        "802.3. 1 = remote fault condition detected.";\r
+    }\r
+    leaf loop-back-kind-up {\r
+      type loop-back-type;\r
+      default "LOOP_BACK_TYPE_NOT_YET_DEFINED";\r
+      config false;\r
+      description\r
+        "The currently active (not just configured) type of loop back.";\r
+    }\r
+    leaf statistics-is-up {\r
+      type boolean;\r
+      default "false";\r
+      config false;\r
+      description\r
+        "1 = Statistics are currently counted";\r
+    }\r
+    leaf performance-monitoring-is-up {\r
+      type boolean;\r
+      default "false";\r
+      config false;\r
+      description\r
+        "1 = Performance values are currently collected and aggregated.";\r
+    }\r
+    leaf timestamp {\r
+      type yang:date-and-time;\r
+      default "2010-11-20T14:00:00+01:00";\r
+      config false;\r
+      description\r
+        "The timestamp associated with when the statistic values were read/retrieved.";\r
+    }\r
+    leaf last-10-sec-data-input-rate {\r
+      type int32;\r
+      units "kbit/s";\r
+      default "-1";\r
+      config false;\r
+      description\r
+        "Data receive rate over the last 10 second interval in kbit/s.";\r
+    }\r
+    leaf last-10-sec-data-output-rate {\r
+      type int32;\r
+      units "kbit/s";\r
+      default "-1";\r
+      config false;\r
+      description\r
+        "Data transmit rate over the last 10 second interval in kbit/s.";\r
+    }\r
+    leaf total-bytes-input {\r
+      type uint64;\r
+      units "Byte";\r
+      default "0";\r
+      config false;\r
+      description\r
+        "Received data volume in Byte.";\r
+    }\r
+    leaf total-bytes-output {\r
+      type uint64;\r
+      units "Byte";\r
+      default "0";\r
+      config false;\r
+      description\r
+        "Sent data volume in Byte.";\r
+    }\r
+    leaf forwarded-bytes-input {\r
+      type uint64;\r
+      units "Byte";\r
+      default "0";\r
+      config false;\r
+      description\r
+        "Number of received Bytes, for which the device was not their final destination and for which the device attempted to find a route to forward them to that final destination.";\r
+    }\r
+    leaf forwarded-bytes-output {\r
+      type uint64;\r
+      units "Byte";\r
+      default "0";\r
+      config false;\r
+      description\r
+        "Number of Bytes, for which the device was not their final destination and for which it was successful in finding a path to their final destination.";\r
+    }\r
+    description\r
+      "none";\r
+  }\r
+\r
+  grouping ethernet-container-current-problems {\r
+    list current-problem-list {\r
+      key "sequence-number";\r
+      config false;\r
+      uses container-current-problem-type;\r
+      description\r
+        "none";\r
+    }\r
+    leaf number-of-current-problems {\r
+      type int8;\r
+      default "-1";\r
+      config false;\r
+      description\r
+        "Number of alarms, which are currently active on this interface.";\r
+    }\r
+    leaf time-of-latest-change {\r
+      type yang:date-and-time;\r
+      default "2010-11-20T14:00:00+01:00";\r
+      config false;\r
+      description\r
+        "Date and time when the list of alarms has been changed for the last time.";\r
+    }\r
+    description\r
+      "none";\r
+  }\r
+\r
+  grouping ethernet-container-current-performance {\r
+    list current-performance-data-list {\r
+      key "granularity-period";\r
+      config false;\r
+      min-elements 1;\r
+      max-elements 2;\r
+      uses container-current-performance-type;\r
+      description\r
+        "none";\r
+    }\r
+    leaf number-of-current-performance-sets {\r
+      type int8;\r
+      default "-1";\r
+      config false;\r
+      description\r
+        "Number of sets of current performance values, which are provided in the list.";\r
+    }\r
+    description\r
+      "Aggregated performance information of the Ethernet container at a particular moment.";\r
+  }\r
+\r
+  grouping ethernet-container-historical-performances {\r
+    list historical-performance-data-list {\r
+      key "granularity-period period-end-time";\r
+      config false;\r
+      uses container-historical-performance-type;\r
+      description\r
+        "none";\r
+    }\r
+    leaf number-of-historical-performance-sets {\r
+      type int16;\r
+      default "-1";\r
+      config false;\r
+      description\r
+        "Number of sets of historical performance values, which are provided in the list.";\r
+    }\r
+    leaf time-of-latest-change {\r
+      type yang:date-and-time;\r
+      default "2010-11-20T14:00:00+01:00";\r
+      config false;\r
+      description\r
+        "Date and time when the list of sets of historical performance values has been changed for the last time (e.g. new one added or existing one deleted).";\r
+    }\r
+    description\r
+      "Aggregated performance information of the Ethernet container for a pre-defined measurement interval.";\r
+  }\r
+\r
+  grouping header-compression-kind {\r
+    leaf header-compression-name {\r
+      type string;\r
+      config false;\r
+      description\r
+        "none";\r
+    }\r
+    leaf header-compression-mode {\r
+      type header-compression-mode-type;\r
+      default "HEADER_COMPRESSION_MODE_TYPE_NOT_YET_DEFINED";\r
+      config false;\r
+      description\r
+        "Defines the way of configuring the header compression.";\r
+    }\r
+    leaf-list compressed-protocol-layer-list {\r
+      type protocol-layer-type;\r
+      config false;\r
+      min-elements 1;\r
+      description\r
+        "Only relevant if (headerCompressionMode==PROTOCOL_BASED). List of protocol layers that get compressed with this kind of header compression.";\r
+    }\r
+    leaf-list mpls-payload-kind-list {\r
+      type mpls-payload-kind-type;\r
+      config false;\r
+      min-elements 1;\r
+      description\r
+        "Defines how the header bytes inside the MPLS header has to be interpreted.";\r
+    }\r
+    leaf compressed-header-length {\r
+      type int16;\r
+      units "Byte";\r
+      default "-1";\r
+      config false;\r
+      description\r
+        "Only relevant if (headerCompressionMode==LENGTH_BASED). Number of Bytes of header information that get compressed.";\r
+    }\r
+    description\r
+      "none";\r
+  }\r
+\r
+  /****************************************\r
+   * typedef statements\r
+   **************************************/ \r
+\r
+  typedef loop-back-type {\r
+    type identityref {\r
+      base LOOP_BACK_TYPE;\r
+    }\r
+    description\r
+      "none";\r
+  }\r
+\r
+  typedef header-compression-mode-type {\r
+    type identityref {\r
+      base HEADER_COMPRESSION_MODE_TYPE;\r
+    }\r
+    description\r
+      "none";\r
+  }\r
+\r
+  typedef protocol-layer-type {\r
+    type identityref {\r
+      base PROTOCOL_LAYER_TYPE;\r
+    }\r
+    description\r
+      "none";\r
+  }\r
+\r
+  typedef mpls-payload-kind-type {\r
+    type identityref {\r
+      base MPLS_PAYLOAD_KIND_TYPE;\r
+    }\r
+    description\r
+      "none";\r
+  }\r
+\r
+  typedef queue-name-type {\r
+    type identityref {\r
+      base QUEUE_NAME_TYPE;\r
+    }\r
+    description\r
+      "none";\r
+  }\r
+\r
+  typedef drop-precedence-type {\r
+    type identityref {\r
+      base DROP_PRECEDENCE_TYPE;\r
+    }\r
+    description\r
+      "none";\r
+  }\r
+\r
+  typedef dropping-behavior-kind-type {\r
+    type identityref {\r
+      base DROPPING_BEHAVIOR_KIND_TYPE;\r
+    }\r
+    description\r
+      "none";\r
+  }\r
+\r
+  typedef scheduler-kind-type {\r
+    type identityref {\r
+      base SCHEDULER_KIND_TYPE;\r
+    }\r
+    description\r
+      "none";\r
+  }\r
+\r
+  typedef fec-redundancy-size-type {\r
+    type identityref {\r
+      base FEC_REDUNDANCY_SIZE_TYPE;\r
+    }\r
+    description\r
+      "none";\r
+  }\r
+\r
+  typedef fec-interleaver-kind-type {\r
+    type identityref {\r
+      base FEC_INTERLEAVER_KIND_TYPE;\r
+    }\r
+    description\r
+      "none";\r
+  }\r
+\r
+  typedef fec-interleaver-depth-type {\r
+    type identityref {\r
+      base FEC_INTERLEAVER_DEPTH_TYPE;\r
+    }\r
+    description\r
+      "ITU-T Rec. G.998.3 Appendix II aFECInterleaverDepth";\r
+  }\r
+\r
+  /*********************************************\r
+   * grouping statements for complex data types\r
+   *******************************************/ \r
+\r
+  identity LOOP_BACK_TYPE {\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity LOOP_BACK_TYPE_NONE {\r
+    base LOOP_BACK_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity LOOP_BACK_TYPE_BACK_TO_LOCAL {\r
+    base LOOP_BACK_TYPE;\r
+    description\r
+      "Returning the Ethernet frames of the local site on the outgoing interface back to the local site.";\r
+  }\r
+\r
+  identity LOOP_BACK_TYPE_BACK_TO_REMOTE {\r
+    base LOOP_BACK_TYPE;\r
+    description\r
+      "Returning the incoming Ethernet frames back to the remote site.";\r
+  }\r
+\r
+  identity LOOP_BACK_TYPE_NOT_YET_DEFINED {\r
+    base LOOP_BACK_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity HEADER_COMPRESSION_MODE_TYPE {\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity HEADER_COMPRESSION_MODE_TYPE_AUTO {\r
+    base HEADER_COMPRESSION_MODE_TYPE;\r
+    description\r
+      "The header compression algorithm determines the optimum compression.";\r
+  }\r
+\r
+  identity HEADER_COMPRESSION_MODE_TYPE_PROTOCOL_BASED {\r
+    base HEADER_COMPRESSION_MODE_TYPE;\r
+    description\r
+      "Predefined protocol layers are to be compressed.";\r
+  }\r
+\r
+  identity HEADER_COMPRESSION_MODE_TYPE_LENGTH_BASED {\r
+    base HEADER_COMPRESSION_MODE_TYPE;\r
+    description\r
+      "Predefined amount of header bytes are to be compressed.";\r
+  }\r
+\r
+  identity HEADER_COMPRESSION_MODE_TYPE_NOT_YET_DEFINED {\r
+    base HEADER_COMPRESSION_MODE_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity PROTOCOL_LAYER_TYPE {\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity PROTOCOL_LAYER_TYPE_NONE {\r
+    base PROTOCOL_LAYER_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity PROTOCOL_LAYER_TYPE_ETHERNET_MAC {\r
+    base PROTOCOL_LAYER_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity PROTOCOL_LAYER_TYPE_VLAN {\r
+    base PROTOCOL_LAYER_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity PROTOCOL_LAYER_TYPE_Q_IN_Q {\r
+    base PROTOCOL_LAYER_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity PROTOCOL_LAYER_TYPE_MPLS {\r
+    base PROTOCOL_LAYER_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity PROTOCOL_LAYER_TYPE_IPV4 {\r
+    base PROTOCOL_LAYER_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity PROTOCOL_LAYER_TYPE_IPV6 {\r
+    base PROTOCOL_LAYER_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity PROTOCOL_LAYER_TYPE_TCP {\r
+    base PROTOCOL_LAYER_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity PROTOCOL_LAYER_TYPE_UDP {\r
+    base PROTOCOL_LAYER_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity PROTOCOL_LAYER_TYPE_RTP {\r
+    base PROTOCOL_LAYER_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity PROTOCOL_LAYER_TYPE_GTP_U {\r
+    base PROTOCOL_LAYER_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity PROTOCOL_LAYER_TYPE_OTHERS {\r
+    base PROTOCOL_LAYER_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity PROTOCOL_LAYER_TYPE_NOT_YET_DEFINED {\r
+    base PROTOCOL_LAYER_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity MPLS_PAYLOAD_KIND_TYPE {\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity MPLS_PAYLOAD_KIND_TYPE_NONE {\r
+    base MPLS_PAYLOAD_KIND_TYPE;\r
+    description\r
+      "Parameter not required.";\r
+  }\r
+\r
+  identity MPLS_PAYLOAD_KIND_TYPE_AUTO {\r
+    base MPLS_PAYLOAD_KIND_TYPE;\r
+    description\r
+      "If the Control Word (CW) will be present, it would be Ethernet Over MPLS. OtherwiseI, it would be Pv4/IPv6.";\r
+  }\r
+\r
+  identity MPLS_PAYLOAD_KIND_TYPE_ETH_O_MPLS {\r
+    base MPLS_PAYLOAD_KIND_TYPE;\r
+    description\r
+      "Always Ethernet over MPLS ";\r
+  }\r
+\r
+  identity MPLS_PAYLOAD_KIND_TYPE_IP_O_MPLS {\r
+    base MPLS_PAYLOAD_KIND_TYPE;\r
+    description\r
+      "Always IPv4/IPv6 over MPLS";\r
+  }\r
+\r
+  identity MPLS_PAYLOAD_KIND_TYPE_NOT_YET_DEFINED {\r
+    base MPLS_PAYLOAD_KIND_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity QUEUE_NAME_TYPE {\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE {\r
+    base QUEUE_NAME_TYPE;\r
+    description\r
+      "QueueNumber=0;";\r
+  }\r
+\r
+  identity QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE1 {\r
+    base QUEUE_NAME_TYPE;\r
+    description\r
+      "QueueNumber=1;";\r
+  }\r
+\r
+  identity QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE2 {\r
+    base QUEUE_NAME_TYPE;\r
+    description\r
+      "QueueNumber=2;";\r
+  }\r
+\r
+  identity QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE3 {\r
+    base QUEUE_NAME_TYPE;\r
+    description\r
+      "QueueNumber=3;";\r
+  }\r
+\r
+  identity QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE4 {\r
+    base QUEUE_NAME_TYPE;\r
+    description\r
+      "QueueNumber=4;";\r
+  }\r
+\r
+  identity QUEUE_NAME_TYPE_EXPEDITED_FORWARDING_QUEUE {\r
+    base QUEUE_NAME_TYPE;\r
+    description\r
+      "QueueNumber=5;";\r
+  }\r
+\r
+  identity QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE6 {\r
+    base QUEUE_NAME_TYPE;\r
+    description\r
+      "QueueNumber=6;";\r
+  }\r
+\r
+  identity QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE7 {\r
+    base QUEUE_NAME_TYPE;\r
+    description\r
+      "QueueNumber=7;";\r
+  }\r
+\r
+  identity QUEUE_NAME_TYPE_QUEUENAME_NOT_YET_DEFINED {\r
+    base QUEUE_NAME_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity DROP_PRECEDENCE_TYPE {\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity DROP_PRECEDENCE_TYPE_ALL {\r
+    base DROP_PRECEDENCE_TYPE;\r
+    description\r
+      "If all drop precedence are affected. This includes the case of drop precedences are not implemented.";\r
+  }\r
+\r
+  identity DROP_PRECEDENCE_TYPE_LOW {\r
+    base DROP_PRECEDENCE_TYPE;\r
+    description\r
+      "Would be equal to GREEN.";\r
+  }\r
+\r
+  identity DROP_PRECEDENCE_TYPE_MEDIUM {\r
+    base DROP_PRECEDENCE_TYPE;\r
+    description\r
+      "Would be equal to YELLOW.";\r
+  }\r
+\r
+  identity DROP_PRECEDENCE_TYPE_HIGH {\r
+    base DROP_PRECEDENCE_TYPE;\r
+    description\r
+      "Would be equal to RED.";\r
+  }\r
+\r
+  identity DROP_PRECEDENCE_TYPE_NOT_YET_DEFINED {\r
+    base DROP_PRECEDENCE_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity DROPPING_BEHAVIOR_KIND_TYPE {\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity DROPPING_BEHAVIOR_KIND_TYPE_DROP_TAIL {\r
+    base DROPPING_BEHAVIOR_KIND_TYPE;\r
+    description\r
+      "When the queue is filled to capacity, newly arriving packets are discarded until there is room in the queue to accept new traffic.  Packets are not differentiated, i.e., all packets are treated identically.";\r
+  }\r
+\r
+  identity DROPPING_BEHAVIOR_KIND_TYPE_RED {\r
+    base DROPPING_BEHAVIOR_KIND_TYPE;\r
+    description\r
+      "Queue management based on Random Early Detection (RED).  RED drops packets based on a drop probability that is based on the average queue length, and settings of mininum and maximum queue thresholds.  On ECN-capable devices, packets may be marked instead of dropped to signal congestion to the sender.";\r
+  }\r
+\r
+  identity DROPPING_BEHAVIOR_KIND_TYPE_WRED {\r
+    base DROPPING_BEHAVIOR_KIND_TYPE;\r
+    description\r
+      "Queue management based on a variant of RED in which the packet drop probability is based on its traffic class.";\r
+  }\r
+\r
+  identity DROPPING_BEHAVIOR_KIND_TYPE_NOT_YET_DEFINED {\r
+    base DROPPING_BEHAVIOR_KIND_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity SCHEDULER_KIND_TYPE {\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity SCHEDULER_KIND_TYPE_STRICT {\r
+    base SCHEDULER_KIND_TYPE;\r
+    description\r
+      "Strict Priority";\r
+  }\r
+\r
+  identity SCHEDULER_KIND_TYPE_WFQ {\r
+    base SCHEDULER_KIND_TYPE;\r
+    description\r
+      "Weighted-Fair-Queuing";\r
+  }\r
+\r
+  identity SCHEDULER_KIND_TYPE_WRR {\r
+    base SCHEDULER_KIND_TYPE;\r
+    description\r
+      "Weighted Round Robin";\r
+  }\r
+\r
+  identity SCHEDULER_KIND_TYPE_DWRR {\r
+    base SCHEDULER_KIND_TYPE;\r
+    description\r
+      "Deficit Weighted Round Robin";\r
+  }\r
+\r
+  identity SCHEDULER_KIND_TYPE_NOT_YET_DEFINED {\r
+    base SCHEDULER_KIND_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity FEC_REDUNDANCY_SIZE_TYPE {\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity FEC_REDUNDANCY_SIZE_TYPE_2 {\r
+    base FEC_REDUNDANCY_SIZE_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity FEC_REDUNDANCY_SIZE_TYPE_4 {\r
+    base FEC_REDUNDANCY_SIZE_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity FEC_REDUNDANCY_SIZE_TYPE_8 {\r
+    base FEC_REDUNDANCY_SIZE_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity FEC_REDUNDANCY_SIZE_TYPE_16 {\r
+    base FEC_REDUNDANCY_SIZE_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity FEC_REDUNDANCY_SIZE_TYPE_20 {\r
+    base FEC_REDUNDANCY_SIZE_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity FEC_REDUNDANCY_SIZE_TYPE_NOT_YET_DEFINED {\r
+    base FEC_REDUNDANCY_SIZE_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity FEC_INTERLEAVER_KIND_TYPE {\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity FEC_INTERLEAVER_KIND_TYPE_NONE {\r
+    base FEC_INTERLEAVER_KIND_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity FEC_INTERLEAVER_KIND_TYPE_BLOCK {\r
+    base FEC_INTERLEAVER_KIND_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity FEC_INTERLEAVER_KIND_TYPE_CONVOLUTION {\r
+    base FEC_INTERLEAVER_KIND_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity FEC_INTERLEAVER_KIND_TYPE_NOT_YET_DEFINED {\r
+    base FEC_INTERLEAVER_KIND_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity FEC_INTERLEAVER_DEPTH_TYPE {\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity FEC_INTERLEAVER_DEPTH_TYPE_1 {\r
+    base FEC_INTERLEAVER_DEPTH_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity FEC_INTERLEAVER_DEPTH_TYPE_2 {\r
+    base FEC_INTERLEAVER_DEPTH_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity FEC_INTERLEAVER_DEPTH_TYPE_3 {\r
+    base FEC_INTERLEAVER_DEPTH_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity FEC_INTERLEAVER_DEPTH_TYPE_4 {\r
+    base FEC_INTERLEAVER_DEPTH_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity FEC_INTERLEAVER_DEPTH_TYPE_6 {\r
+    base FEC_INTERLEAVER_DEPTH_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity FEC_INTERLEAVER_DEPTH_TYPE_8 {\r
+    base FEC_INTERLEAVER_DEPTH_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity FEC_INTERLEAVER_DEPTH_TYPE_12 {\r
+    base FEC_INTERLEAVER_DEPTH_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity FEC_INTERLEAVER_DEPTH_TYPE_16 {\r
+    base FEC_INTERLEAVER_DEPTH_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity FEC_INTERLEAVER_DEPTH_TYPE_24 {\r
+    base FEC_INTERLEAVER_DEPTH_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity FEC_INTERLEAVER_DEPTH_TYPE_32 {\r
+    base FEC_INTERLEAVER_DEPTH_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity FEC_INTERLEAVER_DEPTH_TYPE_48 {\r
+    base FEC_INTERLEAVER_DEPTH_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity FEC_INTERLEAVER_DEPTH_TYPE_96 {\r
+    base FEC_INTERLEAVER_DEPTH_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity FEC_INTERLEAVER_DEPTH_TYPE_NOT_YET_DEFINED {\r
+    base FEC_INTERLEAVER_DEPTH_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity GRANULARITY_PERIOD_TYPE {\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity GRANULARITY_PERIOD_TYPE_UNKNOWN {\r
+    base GRANULARITY_PERIOD_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN {\r
+    base GRANULARITY_PERIOD_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS {\r
+    base GRANULARITY_PERIOD_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED {\r
+    base GRANULARITY_PERIOD_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity SEVERITY_TYPE {\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity SEVERITY_TYPE_NON_ALARMED {\r
+    base SEVERITY_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity SEVERITY_TYPE_WARNING {\r
+    base SEVERITY_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity SEVERITY_TYPE_MINOR {\r
+    base SEVERITY_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity SEVERITY_TYPE_MAJOR {\r
+    base SEVERITY_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity SEVERITY_TYPE_CRITICAL {\r
+    base SEVERITY_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity SEVERITY_TYPE_NOT_YET_DEFINED {\r
+    base SEVERITY_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity INTERFACE_STATUS_TYPE {\r
+    description\r
+      "none";\r
+  }\r
+\r
+  identity INTERFACE_STATUS_TYPE_UP {\r
+    base INTERFACE_STATUS_TYPE;\r
+    description\r
+      "Ready to pass packets.";\r
+  }\r
+\r
+  identity INTERFACE_STATUS_TYPE_DOWN {\r
+    base INTERFACE_STATUS_TYPE;\r
+    description\r
+      "The interface does not pass any packets.";\r
+  }\r
+\r
+  identity INTERFACE_STATUS_TYPE_TESTING {\r
+    base INTERFACE_STATUS_TYPE;\r
+    description\r
+      "In some test mode.  No operational packets can be passed.";\r
+  }\r
+\r
+  identity INTERFACE_STATUS_TYPE_UNKNOWN {\r
+    base INTERFACE_STATUS_TYPE;\r
+    description\r
+      "Status cannot be determined for some reason.";\r
+  }\r
+\r
+  identity INTERFACE_STATUS_TYPE_DORMANT {\r
+    base INTERFACE_STATUS_TYPE;\r
+    description\r
+      "Waiting for some external event.";\r
+  }\r
+\r
+  identity INTERFACE_STATUS_TYPE_NOT_PRESENT {\r
+    base INTERFACE_STATUS_TYPE;\r
+    description\r
+      "Some component (typically hardware) is missing.";\r
+  }\r
+\r
+  identity INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN {\r
+    base INTERFACE_STATUS_TYPE;\r
+    description\r
+      "Down due to state of lower-layer interface(s).";\r
+  }\r
+\r
+  identity INTERFACE_STATUS_TYPE_ADMIN_DOWN {\r
+    base INTERFACE_STATUS_TYPE;\r
+    description\r
+      "Down due to configuration.";\r
+  }\r
+\r
+  identity INTERFACE_STATUS_TYPE_NOT_YET_DEFINED {\r
+    base INTERFACE_STATUS_TYPE;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  /****************************************\r
+   * package super-types\r
+   **************************************/ \r
+\r
+  typedef granularity-period-type {\r
+    type identityref {\r
+      base GRANULARITY_PERIOD_TYPE;\r
+    }\r
+    description\r
+      "The enumeration with the options for granularity period of the performance data.";\r
+  }\r
+\r
+  typedef severity-type {\r
+    type identityref {\r
+      base SEVERITY_TYPE;\r
+    }\r
+    description\r
+      "According to ITU-T M.3160";\r
+  }\r
+\r
+  typedef interface-status-type {\r
+    type identityref {\r
+      base INTERFACE_STATUS_TYPE;\r
+    }\r
+    description\r
+      "Current Interface Status";\r
+  }\r
+\r
+  grouping problem-kind-severity-type {\r
+    leaf problem-kind-name {\r
+      type string;\r
+      description\r
+        "Name of the alarm according to supportedAlarmList";\r
+    }\r
+    leaf problem-kind-severity {\r
+      type severity-type;\r
+      default "SEVERITY_TYPE_NOT_YET_DEFINED";\r
+      description\r
+        "Severity of this type of alarm.";\r
+    }\r
+    description\r
+      "none";\r
+  }\r
+\r
+  grouping available-queue-type {\r
+    leaf queue-name {\r
+      type queue-name-type;\r
+      config false;\r
+      description\r
+        "Name of the queue.";\r
+    }\r
+    leaf max-queue-depth {\r
+      type int32;\r
+      units "Byte";\r
+      default "-1";\r
+      config false;\r
+      description\r
+        "Maximum configurable depth of the queue in Byte. openconfig-qos-interfaces.yang";\r
+    }\r
+    leaf queue-depth-configuration-is-avail {\r
+      type boolean;\r
+      default "false";\r
+      config false;\r
+      description\r
+        "1 = Size of the individual queue is configurable (setting thresholdHigh of a WRED profile might be an alternative way of configuring the effective queue depth).";\r
+    }\r
+    leaf-list available-dropping-behavior-kind-list {\r
+      type dropping-behavior-kind-type;\r
+      config false;\r
+      min-elements 1;\r
+      max-elements 4;\r
+      description\r
+        "Lists the available types of behavior in case of congestions.";\r
+    }\r
+    leaf-list available-drop-precedence-kind-list {\r
+      type drop-precedence-type;\r
+      config false;\r
+      min-elements 1;\r
+      max-elements 3;\r
+      description\r
+        "Explicit list (ALL not to be used here) of drop precedences, which are available for this queue.";\r
+    }\r
+    leaf wred-profile-per-drop-precedence-is-available {\r
+      type boolean;\r
+      default "false";\r
+      config false;\r
+      description\r
+        "1 = Separate WRED profiles can be defined for every drop precedence.";\r
+    }\r
+    leaf-list available-scheduling-kind-list {\r
+      type scheduler-kind-type;\r
+      config false;\r
+      min-elements 1;\r
+      max-elements 4;\r
+      description\r
+        "Lists the available types of scheduling.";\r
+    }\r
+    description\r
+      "none";\r
+  }\r
+\r
+  grouping wred-behavior-type {\r
+    leaf affected-drop-precedence {\r
+      type drop-precedence-type;\r
+      description\r
+        "Definition of the drop precedence, for which the WRED profile shall apply on.";\r
+    }\r
+    leaf affected-protocol {\r
+      type protocol-layer-type;\r
+      description\r
+        "Definition of the kind of protocol, for which the WRED profile shall apply on.";\r
+    }\r
+    leaf wred-profile {\r
+      type leafref {\r
+        path "/core-model:control-construct/core-model:profile-collection/core-model:profile/core-model:uuid";\r
+        require-instance false;\r
+      }\r
+      description\r
+        "Associates a WRED profile to the queue, respectively drop precedence. Attribute to point to an instance of Profile with profileName=='PROFILE_NAME_TYPE_WRED_PROFILE'.";\r
+    }\r
+    description\r
+      "none";\r
+  }\r
+\r
+  grouping queue-behavior-type {\r
+    leaf queue-name {\r
+      type queue-name-type;\r
+      description\r
+        "Name of the queue.";\r
+    }\r
+    leaf queue-depth {\r
+      type int32;\r
+      units "Byte";\r
+      default "-1";\r
+      description\r
+        "Only relevant if (queueDepthConfigurationIsAvail==1). Size of the queue in Byte.";\r
+    }\r
+    leaf dropping-behavior-kind {\r
+      type dropping-behavior-kind-type;\r
+      default "DROPPING_BEHAVIOR_KIND_TYPE_NOT_YET_DEFINED";\r
+      description\r
+        "Defines the behavior in case of congestions.";\r
+    }\r
+    list wred-behavior-list {\r
+      key "affected-drop-precedence affected-protocol";\r
+      uses wred-behavior-type;\r
+      description\r
+        "Only relevant if (droppingBehaviorKind==WRED).";\r
+    }\r
+    leaf scheduler-kind {\r
+      type scheduler-kind-type;\r
+      default "SCHEDULER_KIND_TYPE_NOT_YET_DEFINED";\r
+      description\r
+        "Type of scheduler to be used for this queue.";\r
+    }\r
+    leaf weighting {\r
+      type int8;\r
+      units "%";\r
+      default "-1";\r
+      description\r
+        "Only relevant if (schedulerKind==WFQ) OR (schedulerKind==DWRR) OR (schedulerKind==WRR). Serving rate for this weighted fair queueing queue as a percentage value.";\r
+    }\r
+    description\r
+      "none";\r
+  }\r
+\r
+  grouping container-current-problem-type {\r
+    leaf problem-name {\r
+      type string;\r
+      default "Problem name not specified.";\r
+      config false;\r
+      description\r
+        "Name of the alarm according to Container::ContainerCapability::supportedAlarms";\r
+    }\r
+    uses current-problem;\r
+    description\r
+      "none";\r
+  }\r
+\r
+  grouping queue-utilization-type {\r
+    leaf queue-name {\r
+      type queue-name-type;\r
+      config false;\r
+      description\r
+        "Name of the queue.";\r
+    }\r
+    leaf max-queue-length {\r
+      type int32;\r
+      units "Byte";\r
+      default "-1";\r
+      config false;\r
+      description\r
+        "Maximum observed queue length. openconfig-qos-interfaces.yang";\r
+    }\r
+    leaf avg-queue-length {\r
+      type int32;\r
+      units "Byte";\r
+      default "-1";\r
+      config false;\r
+      description\r
+        "Average observed queue length. openconfig-qos-interfaces.yang";\r
+    }\r
+    description\r
+      "none";\r
+  }\r
+\r
+  grouping container-performance-type {\r
+    leaf tx-ethernet-bytes-max-s {\r
+      type int32;\r
+      units "Bytes/s";\r
+      default "-1";\r
+      config false;\r
+      description\r
+        "Counts the number of Bytes of Ethernet traffic (before header compression) transmitted within a second and keeps the highest value within the measurement period. Field to be left blank for all types of TDM containers.";\r
+    }\r
+    leaf tx-ethernet-bytes-max-m {\r
+      type int64;\r
+      units "Bytes/min";\r
+      default "-1";\r
+      config false;\r
+      description\r
+        "Counts the number of Bytes of Ethernet traffic (before header compression) transmitted within a minute and keeps the highest value with in the measurement period. Field to be left blank for all types of TDM containers.";\r
+    }\r
+    leaf tx-ethernet-bytes-sum {\r
+      type int64;\r
+      units "Bytes";\r
+      default "-1";\r
+      config false;\r
+      description\r
+        "Total number of Bytes of Ethernet traffic (before header compression) transmitted (in direction out of the device) during the measurement period. Field to be left blank for all types of TDM containers.";\r
+    }\r
+    list queue-utilization-list {\r
+      key "queue-name";\r
+      config false;\r
+      max-elements 8;\r
+      uses queue-utilization-type;\r
+      description\r
+        "Utilization of the respective queue. openconfig-qos-interfaces.yang";\r
+    }\r
+    leaf fec-corrected-blocks {\r
+      type int32;\r
+      units "Blocks";\r
+      default "-1";\r
+      config false;\r
+      description\r
+        "802.3 according to 30.5.1.1.17 aFECCorrectedBlocks and 30.11.2.1.8 aPMEFECCorrectedBlocks and 45.2.1.94 10GBASE-R FEC corrected blocks counter. Counts received blocks that have been corrected by the Forward Error Correction (FEC) function.";\r
+    }\r
+    leaf fec-uncorrectable-blocks {\r
+      type int32;\r
+      units "Blocks";\r
+      default "-1";\r
+      config false;\r
+      description\r
+        "802.3 according to 30.5.1.1.18 aFECUncorrectableBlocks and 30.11.2.1.9 aPMEFECUncorrectableBlocks and 45.2.1.95 10GBASE-R FEC uncorrected blocks counter. Counts received blocks that could not been corrected by the Forward Error Correction (FEC) function.";\r
+    }\r
+    leaf time-period {\r
+      type int32;\r
+      units "s";\r
+      default "-1";\r
+      config false;\r
+      description\r
+        "Total length of the measurement period in seconds.";\r
+    }\r
+    description\r
+      "Consolidated performance information of the Container.";\r
+  }\r
+\r
+  grouping container-current-performance-type {\r
+    container performance-data {\r
+      config false;\r
+      uses container-performance-type;\r
+      description\r
+        "none";\r
+    }\r
+    uses current-performance;\r
+    description\r
+      "Turns performance information into current performance information by inheriting from OTN_CurrentData.";\r
+  }\r
+\r
+  grouping container-historical-performance-type {\r
+    container performance-data {\r
+      config false;\r
+      uses container-performance-type;\r
+      description\r
+        "none";\r
+    }\r
+    uses historical-performance;\r
+    description\r
+      "Turns performance information into historical performance information by inheriting from OTN_HistoryData.";\r
+  }\r
+}\r