diff --git a/models/tapi/src/main/yang/tapi-eth@2018-12-10.yang b/models/tapi/src/main/yang/tapi-eth@2018-12-10.yang
new file mode 100755
index 0000000..953affa
--- /dev/null
+++ b/models/tapi/src/main/yang/tapi-eth@2018-12-10.yang
@@ -0,0 +1,1904 @@
+module tapi-eth {
+    namespace "urn:onf:otcc:yang:tapi-eth";
+    prefix tapi-eth;
+    import tapi-common {
+        prefix tapi-common;
+    }
+    import tapi-topology {
+        prefix tapi-topology;
+    }
+    import tapi-connectivity {
+        prefix tapi-connectivity;
+    }
+    import tapi-oam {
+        prefix tapi-oam;
+    }
+    organization "ONF OTCC (Open Transport Configuration & Control) Project";
+    contact "
+         Project Web: <https://wiki.opennetworking.org/display/OTCC/TAPI>
+         Project List: <mailto:transport-api@opennetworking.org>
+         Editor: Karthik Sethuraman
+                 <mailto:karthik.sethuraman@necam.com>";
+    description "This module contains TAPI ETH Model definitions.
+        Source: TapiEth.uml
+        - The TAPI YANG models included in this TAPI release are a *normative* part of the TAPI SDK.
+        - The YANG specifications have been generated from the corresponding UML model using the [ONF EAGLE UML2YANG mapping tool]
+          <https://github.com/OpenNetworkingFoundation/EagleUmlYang>
+          and further edited manually to comply with the [ONF IISOMI UML2YANG mapping guidelines]
+          <https://wiki.opennetworking.org/display/OIMT/UML+-+YANG+Guidelines>
+        - Status of YANG model artifacts can be determined by referring to the corresponding UML artifacts.
+          As described in the UML models, some artifacts are considered *experimental*, and thus the corresponding YANG artifacts.
+        - The ONF TAPI release process does not guarantee backward compatibility of YANG models across major versions of TAPI releases.
+          The YANG model backward compatibility criteria are outlined in section 11 of <https://tools.ietf.org/html/rfc7950>.
+          YANG models included in this release may not be backward compatible with previous TAPI releases.
+        Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.
+        License: This module is distributed under the Apache License 2.0";
+    revision 2018-12-10 {
+        description "ONF Transport API version 2.1.1.
+                   Changes included in this TAPI release (v2.1.1) are listed in
+                   <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.1.1.md>";
+        reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model
+                  <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML>";
+    }
+    revision 2018-10-16 {
+        description "ONF Transport API version 2.1.0.
+                   Changes included in this TAPI release (v2.1.0) are listed in
+                   <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.1.0.md>";
+        reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model
+                  <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML>";
+    }
+    revision 2018-03-07 {
+        description "ONF Transport API version 2.0.2
+        This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
+        Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.2.md>";
+        reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
+                  <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.2/UML>";
+    }
+    revision 2018-02-16 {
+        description "ONF Transport API version 2.0.1
+        This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
+        Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.1.md>";
+        reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
+                  <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.1/UML>";
+    }
+    revision 2018-01-02 {
+        description "ONF Transport API version 2.0.0
+        This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
+        Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.0.md>";
+        reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
+                  <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.0/UML>";
+    }
+    augment "/tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-connectivity:cep-list/tapi-connectivity:connection-end-point" {
+        container eth-connection-end-point-spec {
+            uses eth-connection-end-point-spec;
+            description "Augments the base LayerProtocol information in ConnectionEndPoint with ETH-specific information";
+        }
+        description "Augments the base LayerProtocol information in ConnectionEndPoint with ETH-specific information";
+    }
+    augment "/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-job" {
+        container eth-loopback-job {
+            uses eth-loopback-job;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:context/tapi-oam:oam-context/tapi-oam:meg" {
+        container eth-meg-spec {
+            uses eth-meg-spec;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:context/tapi-oam:oam-context/tapi-oam:meg/tapi-oam:mep" {
+        container eth-mep-spec {
+            uses eth-mep-spec;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:context/tapi-oam:oam-context/tapi-oam:meg/tapi-oam:mip" {
+        container eth-mip-spec {
+            uses eth-mip-spec;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-job" {
+        container eth-pro-active-2way-measurement-job {
+            uses eth-pro-active-2way-measurement-job;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-job" {
+        container eth-link-trace-job {
+            uses eth-link-trace-job;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-job" {
+        container eth-test-job {
+            uses eth-test-job;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-job" {
+        container eth-pro-active-1way-measurement-job {
+            uses eth-pro-active-1way-measurement-job;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-job/tapi-oam:pm-current-data" {
+        container eth-pro-active-dm-performance-data {
+            uses eth-pro-active-dm-performance-data;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-job/tapi-oam:pm-current-data/tapi-oam:pm-history-data" {
+        container eth-pro-active-dm-performance-data {
+            uses eth-pro-active-dm-performance-data;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-job/tapi-oam:pm-current-data" {
+        container eth-pro-active-lm-performance-data {
+            uses eth-pro-active-lm-performance-data;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-job/tapi-oam:pm-current-data/tapi-oam:pm-history-data" {
+        container eth-pro-active-lm-performance-data {
+            uses eth-pro-active-lm-performance-data;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-job/tapi-oam:pm-current-data" {
+        container eth-on-demand-dm-performance-data {
+            uses eth-on-demand-dm-performance-data;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-job/tapi-oam:pm-current-data" {
+        container eth-on-demand-1-lm-performance-data {
+            uses eth-on-demand-1-lm-performance-data;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-job/tapi-oam:pm-current-data" {
+        container eth-on-demand-1-dm-performance-data {
+            uses eth-on-demand-1-dm-performance-data;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-job/tapi-oam:pm-current-data" {
+        container eth-pro-active-1-dm-performance-data {
+            uses eth-pro-active-1-dm-performance-data;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-job/tapi-oam:pm-current-data/tapi-oam:pm-history-data" {
+        container eth-pro-active-1-dm-performance-data {
+            uses eth-pro-active-1-dm-performance-data;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-job/tapi-oam:pm-current-data" {
+        container eth-pro-active-1-lm-performance-data {
+            uses eth-pro-active-1-lm-performance-data;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-job/tapi-oam:pm-current-data/tapi-oam:pm-history-data" {
+        container eth-pro-active-1-lm-performance-data {
+            uses eth-pro-active-1-lm-performance-data;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-job" {
+        container eth-on-demand-1way-measurement-job {
+            uses eth-on-demand-1way-measurement-job;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-job" {
+        container eth-on-demand-2way-measurement-job {
+            uses eth-on-demand-2way-measurement-job;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-job/tapi-oam:pm-current-data/tapi-oam:pm-history-data" {
+        container eth-on-demand-1-dm-performance-data {
+            uses eth-on-demand-1-dm-performance-data;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-job/tapi-oam:pm-current-data/tapi-oam:pm-history-data" {
+        container eth-on-demand-1-lm-performance-data {
+            uses eth-on-demand-1-lm-performance-data;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-job/tapi-oam:pm-current-data/tapi-oam:pm-history-data" {
+        container eth-on-demand-dm-performance-data {
+            uses eth-on-demand-dm-performance-data;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-job/tapi-oam:pm-current-data" {
+        container eth-on-demand-lm-performance-data {
+            uses eth-on-demand-lm-performance-data;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-job/tapi-oam:pm-current-data/tapi-oam:pm-history-data" {
+        container eth-on-demand-lm-performance-data {
+            uses eth-on-demand-lm-performance-data;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-profile/tapi-oam:pm-threshold-data" {
+        container eth-1-dm-threshold-data {
+            uses eth-1-dm-threshold-data;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-profile/tapi-oam:pm-threshold-data" {
+        container eth-1-lm-threshold-data {
+            uses eth-1-lm-threshold-data;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-profile/tapi-oam:pm-threshold-data" {
+        container eth-dm-threshold-data {
+            uses eth-dm-threshold-data;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-profile/tapi-oam:pm-threshold-data" {
+        container eth-lm-threshold-data {
+            uses eth-lm-threshold-data;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-job/tapi-oam:pm-current-data" {
+        container eth-link-trace-result-data {
+            uses eth-link-trace-result-data;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-job/tapi-oam:pm-current-data" {
+        container eth-test-result-data {
+            uses eth-test-result-data;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-job/tapi-oam:pm-current-data" {
+        container eth-loopback-result-data {
+            uses eth-loopback-result-data;
+            description "none";
+        }
+        description "none";
+    }
+
+   /**************************
+    * package object-classes
+    **************************/
+    grouping eth-ctp-pac {
+        leaf-list auxiliary-function-position-sequence {
+            type uint64;
+            description "This attribute indicates the positions (i.e., the relative order) of all the MEP, MIP, and TCS objects which are associated with the CTP.";
+        }
+        leaf vlan-config {
+            type uint64;
+            description "This attribute models the ETHx/ETH-m_A_So_MI_Vlan_Config information defined in G.8021.
+                range of type : -1, 0, 1..4094";
+        }
+        leaf csf-rdi-fdi-enable {
+            type boolean;
+            description "This attribute models the MI_CSFrdifdiEnable information defined in G.8021.";
+        }
+        leaf csf-report {
+            type boolean;
+            description "This attribute models the MI_CSF_Reported information defined in G.8021.
+                range of type : true, false";
+        }
+        leaf-list filter-config-snk {
+            type mac-address;
+            description "This attribute models the FilteConfig MI defined in 8.3/G.8021. It indicates the configured filter action for each of the 33 group MAC addresses for control frames. The 33 MAC addresses are:
+                01-80-C2-00-00-10,
+                01-80-C2-00-00-00 to 01-80-C2-00-00-0F, and
+                01-80-C2-00-00-20 to 01-80-C2-00-00-2F.
+                The filter action is Pass or Block.
+                If the destination address of the incoming ETH_CI_D matches one of the above addresses, the filter process shall perform the corresponding configured filter action.
+                If none of the above addresses match, the ETH_CI_D is passed.";
+        }
+        leaf mac-length {
+            type uint64;
+            default "2000";
+            description "This attribute models the MAC_Lenght MI defined in 8.6/G.8021 for the MAC Length Check process. It indicates the allowed maximum frame length in bytes.
+                range of type : 1518, 1522, 2000";
+        }
+        container filter-config {
+            uses control-frame-filter;
+            description "This attribute models the FilterConfig MI defined in section 8.3/G.8021. It indicates the configured filter action for each of the 33 group MAC addresses for control frames. The 33 MAC addresses are:
+                - All bridges address: 01-80-C2-00-00-10,
+                - Reserved addresses: 01-80-C2-00-00-00 to 01-80-C2-00-00-0F,
+                - GARP Application addresses: 01-80-C2-00-00-20 to 01-80-C2-00-00-2F.
+                The filter action is Pass or Block.
+                If the destination address of the incoming ETH_CI_D matches one of the above addresses, the filter process shall perform the corresponding configured filter action.
+                If none of the above addresses match, the ETH_CI_D is passed.";
+        }
+        leaf is-ssf-reported {
+            type boolean;
+            description "This attribute provisions whether the SSF defect should be reported as fault cause or not.
+                It models the ETH-LAG_FT_Sk_MI_SSF_Reported defined in G.8021.";
+        }
+        leaf pll-thr {
+            type uint64;
+            description "This attribute provisions the threshold for the number of active ports. If the number of active ports is more than zero but less than the provisioned threshold, a cPLL (Partial Link Loss) is raised. See section 9.7.1.2 of G.8021.
+                range of type : 0..number of ports";
+        }
+        leaf actor-oper-key {
+            type uint64;
+            config false;
+            description "See 802.1AX:
+                The current operational value of the Key for the Aggregator. The administrative Key value may differ from the operational Key value for the reasons discussed in 5.6.2.
+                The meaning of particular Key values is of local significance.
+                range of type : 16 bit";
+        }
+        leaf actor-system-id {
+            type mac-address;
+            description "See 802.1AX:
+                A MAC address used as a unique identifier for the System that contains this Aggregator.";
+        }
+        leaf actor-system-priority {
+            type uint64;
+            description "See 802.1AX:
+                Indicating the priority associated with the Actors System ID.
+                range of type : 2-octet";
+        }
+        leaf collector-max-delay {
+            type uint64;
+            description "See 802.1AX:
+                The value of this attribute defines the maximum delay, in tens of microseconds, that may be imposed by the Frame Collector between receiving a frame from an Aggregator Parser, and either delivering the frame to its MAC Client or discarding the frame (see IEEE 802.1AX clause 5.2.3.1.1).
+                range of type : 16-bit";
+        }
+        leaf data-rate {
+            type uint64;
+            config false;
+            description "See 802.1AX:
+                The current data rate, in bits per second, of the aggregate link. The value is calculated as N times the data rate of a single link in the aggregation, where N is the number of active links.";
+        }
+        leaf partner-oper-key {
+            type uint64;
+            config false;
+            description "See 802.1AX:
+                The current operational value of the Key for the Aggregators current protocol Partner. If the aggregation is manually configured, this Key value will be a value assigned by the local System.
+                range of type : 16-bit";
+        }
+        leaf partner-system-id {
+            type mac-address;
+            config false;
+            description "See 802.1AX:
+                A MAC address consisting of the unique identifier for the current protocol Partner of this Aggregator. A value of zero indicates that there is no known Partner. If the aggregation is manually configured, this System ID value will be a value assigned by the local System.";
+        }
+        leaf partner-system-priority {
+            type uint64;
+            config false;
+            description "See 802.1AX:
+                Indicates the priority associated with the Partners System ID. If the aggregation is manually configured, this System Priority value will be a value assigned by the local System.
+                range of type : 2-octet";
+        }
+        leaf csf-config {
+            type csf-config;
+            description "This attribute models the combination of all CSF related MI signals (MI_CSF_Enable, MI_CSFrdifdi_Enable, MI_CSFdci_Enable) as defined in G.8021.
+                range of type : true, false";
+        }
+        container traffic-shaping {
+            uses traffic-shaping-pac;
+            description "none";
+        }
+        container traffic-conditioning {
+            uses traffic-conditioning-pac;
+            description "none";
+        }
+        description "none";
+    }
+    grouping eth-connection-end-point-spec {
+        container ety-term {
+            uses ety-termination-pac;
+            description "none";
+        }
+        container eth-term {
+            uses eth-termination-pac;
+            description "none";
+        }
+        container eth-ctp {
+            uses eth-ctp-pac;
+            description "none";
+        }
+        description "none";
+    }
+    grouping eth-termination-pac {
+        container priority-regenerate {
+            uses priority-mapping;
+            description "This attribute models the ETHx/ETH-m _A_Sk_MI_P_Regenerate information defined in G.8021.";
+        }
+        leaf ether-type {
+            type vlan-type;
+            description "This attribute models the ETHx/ETH-m _A_Sk_MI_Etype information defined in G.8021.";
+        }
+        leaf-list filter-config-1 {
+            type mac-address;
+            description "This attribute models the ETHx/ETH-m_A_Sk_MI_Filter_Config information defined in G.8021.
+                It indicates the configured filter action for each of the 33 group MAC addresses for control frames.
+                The 33 MAC addresses are:
+                01-80-C2-00-00-10,
+                01-80-C2-00-00-00 to 01-80-C2-00-00-0F, and
+                01-80-C2-00-00-20 to 01-80-C2-00-00-2F.
+                The filter action is Pass or Block.
+                If the destination address of the incoming ETH_CI_D matches one of the above addresses, the filter process shall perform the corresponding configured filter action.
+                If none of the above addresses match, the ETH_CI_D is passed.
+                range of type : MacAddress:
+                01-80-C2-00-00-10,
+                01-80-C2-00-00-00 to
+                01-80-C2-00-00-0F, and
+                01-80-C2-00-00-20 to
+                01-80-C2-00-00-2F;
+                ActionEnum:
+                PASS, BLOCK";
+        }
+        leaf frametype-config {
+            type frame-type;
+            description "This attribute models the ETHx/ETH-m_A_Sk_MI_Frametype_Config information defined in G.8021.
+                range of type : see Enumeration";
+        }
+        leaf port-vid {
+            type vid;
+            default "1";
+            description "This attribute models the ETHx/ETH-m _A_Sk_MI_PVID information defined in G.8021.";
+        }
+        leaf priority-code-point-config {
+            type pcp-coding;
+            description "This attribute models the ETHx/ETH-m _A_Sk_MI_PCP_Config information defined in G.8021.
+                range of type : see Enumeration";
+        }
+        description "This object class models the Ethernet Flow Termination function located at a layer boundary.";
+    }
+    grouping ety-termination-pac {
+        leaf is-fts-enabled {
+            type boolean;
+            description "This attribute indicates whether Forced Transmitter Shutdown (FTS) is enabled or not. It models the ETYn_TT_So_MI_FTSEnable information.";
+        }
+        leaf is-tx-pause-enabled {
+            type boolean;
+            description "This attribute identifies whether the Transmit Pause process is enabled or not. It models the MI_TxPauseEnable defined in G.8021.";
+        }
+        leaf phy-type {
+            type ety-phy-type;
+            config false;
+            description "This attribute identifies the PHY type of the ETY trail termination. See IEEE 802.3 clause 30.3.2.1.2.";
+        }
+        leaf-list phy-type-list {
+            type ety-phy-type;
+            config false;
+            description "This attribute identifies the possible PHY types that could be supported at the ETY trail termination. See IEEE 802.3 clause 30.3.2.1.3.";
+        }
+        description "none";
+    }
+    grouping traffic-conditioning-pac {
+        list prio-config-list {
+            key 'queue-id';
+            config false;
+            uses priority-configuration;
+            description "This attribute indicates the Priority Splitter function for the mapping of the Ethernet frame priority (ETH_CI_P) values to the output queue.";
+        }
+        list cond-config-list {
+            key 'queue-id';
+            config false;
+            uses traffic-conditioning-configuration;
+            description "This attribute indicates for the conditioner process the conditioning parameters:
+                - Queue ID: Indicates the Queue ID
+                - Committed Information Rate (CIR): number of bits per second
+                - Committed Burst Size (CBS): number of bytes
+                - Excess Information Rate (EIR): number of bits per second
+                - Excess Burst Size (EBS): number of bytes
+                - Coupling flag (CF): 0 or 1
+                - Color mode (CM): color-blind and color-aware.";
+        }
+        leaf codirectional {
+            type boolean;
+            config false;
+            description "This attribute indicates the direction of the conditioner. The value of true means that the conditioner (modeled as a TCS Sink according to G.8021) is associated with the sink part of the containing CTP. The value of false means that the conditioner (modeled as a TCS Sink according to G.8021) is associated with the source part of the containing CTP.";
+        }
+        description "This object class models the ETH traffic conditioning function as defined in G.8021.
+            Basic attributes: codirectional, condConfigList, prioConfigList";
+    }
+    grouping traffic-shaping-pac {
+        list prio-config-list {
+            key 'queue-id';
+            config false;
+            uses priority-configuration;
+            description "This attribute configures the Priority Splitter function for the mapping of the Ethernet frame priority (ETH_CI_P) values to the output queue.";
+        }
+        list queue-config-list {
+            key 'queue-id';
+            config false;
+            uses queue-configuration;
+            description "This attribute configures the Queue depth and Dropping threshold parameters of the Queue process. The Queue depth sets the maximum size of the queue in bytes. An incoming ETH_CI traffic unit is dropped if there is insufficient space in the queue to hold the whole unit. The Dropping threshold sets the threshold of the queue. If the queue is filled beyond this threshold, incoming ETH_CI traffic units accompanied by the ETH_CI_DE signal set are dropped.";
+        }
+        leaf sched-config {
+            type scheduling-configuration;
+            config false;
+            description "This attribute configures the scheduler process. The value of this attribute is for further study because it is for further study in G.8021.
+                Scheduler is a pointer to a Scheduler object, which is to be defined in the future (because in G.8021, this is FFS).
+                Note that the only significance of the GTCS function defined in G.8021 is the use of a common scheduler for shaping. Given that, G.8052 models the common scheduler feature by having a common value for this attribute.";
+        }
+        leaf codirectional {
+            type boolean;
+            config false;
+            description "This attribute indicates the direction of the shaping function. The value of true means that the shaping (modeled as a TCS Source according to G.8021) is associated with the source part of the containing CTP. The value of false means that the shaping (modeled as a TCS Source according to G.8021) is associated with the sink part of the containing CTP.";
+        }
+        description "This object class models the ETH traffic shaping function as defined in G.8021.
+            Basic attribute: codirectional, prioConfigList, queueConfigList, schedConfig";
+    }
+    grouping eth-meg-spec {
+        leaf client-mel {
+            type uint64;
+            description "none";
+        }
+        description "none";
+    }
+    grouping eth-mep-spec {
+        container eth-mep-common {
+            uses eth-mep-common;
+            description "none";
+        }
+        container eth-mep-source-pac {
+            uses eth-mep-source;
+            description "none";
+        }
+        container eth-mep-sink {
+            uses eth-mep-sink;
+            description "none";
+        }
+        description "none";
+    }
+    grouping eth-mip-spec {
+        leaf mip-mac {
+            type mac-address;
+            config false;
+            description "This attribute contains the MAC address of the MIP instance.";
+        }
+        leaf is-full-mip {
+            type boolean;
+            config false;
+            description "This attribute indicates whether the MIP is a full MIP (true) or a down-half MIP (false).";
+        }
+        description "none";
+    }
+    grouping eth-loopback-job {
+        container eth-lb-msg {
+            uses eth-oam-msg-common-pac;
+            description "none";
+        }
+        leaf number {
+            type uint64;
+            description "G.8052: This parameter specifies how many LB messages to be sent for the LB_Series process.";
+        }
+        description "This class represents the Loopback (LB) process (send a series of LB messages carrying a test pattern to a particular MEP). The termination occurs at specified stop time (schedule attribute of OamJob).
+            This class models also the 'loopback discover' process, when destinationAddress is multicast.
+            When number is greater than 1, then the process is to perform a Loopback (LB) Series process (send a series of N LB messages to a particular MEP/MIP. ";
+    }
+    grouping eth-mep-common {
+        leaf mep-mac {
+            type mac-address;
+            config false;
+            description "This attribute contains the MAC Address of the MEP.";
+        }
+        leaf is-cc-enabled {
+            type boolean;
+            description "This attribute models the MI_CC_Enable signal defined in G.8021 and configured as specified in G8051.";
+        }
+        leaf cc-period {
+            type oam-period;
+            description "This attribute models the MI_CC_Period signal defined in G.8021 and configured as specified in G8051.
+                It is the period at which the CCM message should be sent. 
+                Default values are: 3.33 ms for PS, 100 ms for PM, 1 s for FM.";
+        }
+        leaf cc-priority {
+            type uint64 {
+                range "0..7";
+            }
+            default "7";
+            description "This attribute models the MI_CC_Pri signal defined in G.8021 and configured as specified in G8051. It is the priority at which the CCM message should be sent.";
+        }
+        leaf lck-period {
+            type oam-period;
+            description "This attribute models the MI_LCK_Period signal defined in G.8021 and configured as specified in G8051. It is the frequency at which the LCK messages should be sent.
+                range of type : 1s, 1min";
+        }
+        leaf lck-priority {
+            type uint64 {
+                range "0..7";
+            }
+            default "7";
+            description "This attribute models the MI_LCK_Pri signal defined in G.8021 and configured as specified in G8051. It is the priority at which the LCK messages should be sent.";
+        }
+        description "Basic attributes: adminState, clientMel, megIdentifier, mepMac
+            Continuity Check Process related attributes: ccPeriod, ccPriority, isCcEnabled
+            Lock Process related attributes: lckPeriod, lckPriority
+            This object class models the MEP functions that are common to MEP Sink and MEP Source.";
+    }
+    grouping eth-mep-sink {
+        leaf-list dm-1-priority {
+            type uint64;
+            description "This attribute indicates the list of 1DM priorities for the MepSink.";
+        }
+        leaf ais-priority {
+            type uint64 {
+                range "0..7";
+            }
+            default "7";
+            description "This attribute models the MI_AIS_Pri signal defined in G.8021 and configured as specified in G8051. It is the priority at which the AIS messages should be sent.";
+        }
+        leaf ais-period {
+            type oam-period;
+            description "This attribute models the MI_AIS_Period signal defined in G.8021 and configured as specified in G8051. It is the frequency at which the AIS messages should be sent.
+                range of type : 1s, 1min";
+        }
+        leaf is-csf-reported {
+            type boolean;
+            default "true";
+            description "This attribute models the MI_CSF_Reported signal defined in G.8021 and configured as specified in G8051. It configures whether the secondary failure CSF should be reported or not.";
+        }
+        leaf is-csf-rdi-fdi-enabled {
+            type boolean;
+            default "true";
+            description "This attribute models the MI_CSFrdifdiEnable signal defined in G.8021 and configured as specified in G8051.";
+        }
+        container bandwidth-report {
+            config false;
+            uses bandwidth-report;
+            description "This attribute models the content of the bandwidth report received by the MEP Sink from the peer MEP Source.";
+        }
+        leaf lm-degm {
+            type uint64;
+            default "10";
+            description "This attribute defines the number of consecutive bad seconds necessary for the 'degraded' detection. See also section 'Degraded signal defect (dDEG)' in G.8021.";
+        }
+        leaf lm-deg-thr {
+            type uint64;
+            default "30";
+            description "This attribute defines the threshold for declaring a 'bad second'. See also section 'Degraded signal defect (dDEG)' in G.8021.";
+        }
+        leaf lm-m {
+            type uint64 {
+                range "2..10";
+            }
+            default "10";
+            description "This attribute defines the number of consecutive good seconds necessary for the clearing of 'degraded'. See also section 'Degraded signal defect (dDEG)' in G.8021.";
+        }
+        leaf lm-tf-min {
+            type uint64;
+            description "This attribute defines the necessary number of transmitted frames to enable the detection of 'bad seconds'. See also section 'Degraded signal defect (dDEG)' in G.8021.";
+        }
+        description "1DM related attribute: 1DmPriority
+            AIS Process related attributes: aisPeriod, aisPriority
+            Bandwidth notification Process related attribute: bandwidthReport
+            Basic attribute: peerMepRefList
+            CSF Process related attributes: isCsfRdiFdiEnabled, isCsfReported
+            Defect correlation Process related attribute: currentProblemList
+            This object class models the MEP sink function. Instance of this object class can be created and contained by ETH CTP or TTP objects.
+            It also provides the management of the dual-ended maintenance job, such as test.
+            This object contains the configuration parameters for detecting 'degraded signal' (DEG).";
+    }
+    grouping eth-mep-source {
+        leaf aps-priority {
+            type uint64 {
+                range "0..7";
+            }
+            default "7";
+            description "This attribute specifies the priority of the APS messages.
+                See section 8.1.5    APS insert process in G.8021.";
+        }
+        leaf csf-priority {
+            type uint64 {
+                range "0..7";
+            }
+            default "7";
+            description "This attribute models the MI_CSF_Pri signal defined in G.8021 and configured as specified in G8051. It is the priority at which the CSF messages should be sent";
+        }
+        leaf csf-period {
+            type oam-period;
+            description "This attribute models the MI_CSF_Period signal defined in G.8021 and configured as specified in G8051. It is the period at which the CSF messages should be sent.
+                range of type : 1s, 1min";
+        }
+        leaf csf-config {
+            type csf-config;
+            description "This attribute models the combination of all CSF related MI signals (MI_CSF_Enable, MI_CSFrdifdi_Enable, MI_CSFdci_Enable) as defined in G.8021.";
+        }
+        description "APS Process related attribute: apsPriority
+            Basic attribute: mepIdentifier
+            CSF Process related attributes: csfConfig, csfPeriod, csfPriority
+            Link trace related operation: linkTrace
+            Loopback related operations: loopbackDiscover, loopbackSeries, loopbackTest, loopbackTestTerminate
+            On demand measurement job control related operation: establishOnDemandDualEndedMeasurementJobSource
+            Proactive measurement job control related operation: establishProActiveDualEndedMeasurementJobSource
+            Test related operations: testInitiatorStart, testInitiatorTerminate
+            This object class models the MEP source function. Instance of this object class can be created and contained by ETH CTP or TTP objects.
+            It also provides the management of single-ended maintenance jobs, such as loopback test, loopback discover, loopback series, link trace, and dual-ended maintenance job, such as test.";
+    }
+    grouping eth-link-trace-job {
+        container eth-lt-msg {
+            uses eth-oam-operation-common-pac;
+            description "none";
+        }
+        leaf time-to-live {
+            type uint64;
+            description "G.8052: This parameter provides the Time To Live (TTL) parameter of the Link Track protocol.
+                The TTL parameter allows the receiver (MIP or MEP) of the LTM frame to determine if the frame can be terminated. TTL is decremented every time the LTM frame is relayed. LTM frame with TTL<=1 is terminated and not relayed.";
+        }
+        description "This class represents the Link Trace (LT) process for fault localization or for discovering the intermediate MIPs along the link from the MEP Source to a target MEP or MIP. An LTM frame will be sent from the MEP source to the target MEP/MIP.
+            The termination occurs at specified stop time (schedule attribute of OamJob).";
+    }
+    grouping eth-test-job {
+        container eth-test-msg {
+            uses eth-oam-msg-common-pac;
+            description "none";
+        }
+        description "This class represents the 1-way on-demand in-service or out-of-service diagnostic test. The diagnostic test includes verifying bandwidth throughput, frame loss, bit errors, etc. TST frames are transmitted.
+            The termination occurs at specified stop time (schedule attribute of OamJob).";
+    }
+    grouping eth-on-demand-measurement-job-control-sink {
+        leaf responder-mep-id {
+            type string;
+            description "none";
+        }
+        leaf source-address {
+            type mac-address;
+            description "This attribute contains the MAC address of the peer MEP. See G.8013 for details.";
+        }
+        leaf priority {
+            type uint64;
+            default "7";
+            description "This attribute contains the priority of the OAM PDU frames.
+                range of type : 0, 1, 2, 3, 4, 5, 6, 7";
+        }
+        leaf test-identifier {
+            type uint64;
+            description "This attribute is used to distinguish each measurement session if multiple measurement sessions are simultaneously activated towards a peer MEP including concurrent on-demand and proactive tests. It must be unique at least within the context of any measurement type for the MEG and initiating MEP.
+                range of type : 0..(2^32) - 1";
+        }
+        description "This object class represents an on-demand measurement job controller sink for 1-way measurements. It is created as a result of an establishOnDemandDualEndedMeasurementJobSink() operation. It is deleted either automatically after the measurement job has completed (stop time reached) and the performance data AVC notification has been sent, or by an explicit abortOnDemandMeasurementJob() operation when the measurement job is running.";
+    }
+    grouping eth-on-demand-measurement-job-control-source {
+        leaf controller-mep-id {
+            type string;
+            description "none";
+        }
+        leaf oam-pdu-generation-type {
+            type oam-pdu-generation-type;
+            description "This attribute contains the pattern that is used for the generation of OAM PDUs.";
+        }
+        leaf destination-address {
+            type mac-address;
+            description "This attribute contains the MAC address of the peer MEP. See G.8013 for details.";
+        }
+        leaf priority {
+            type uint64;
+            default "7";
+            description "This attribute contains the priority of the OAM PDU frames.
+                range of type : 0, 1, 2, 3, 4, 5, 6, 7";
+        }
+        leaf message-period {
+            type message-period;
+            description "This attribute contains the frequency of the OAM message (PDU) generation within a series.
+                Note that the value 0 means that only one OAM message per measurement interval is generated.
+                range of type : See corresponding Enum.";
+        }
+        leaf repetition-period {
+            type repetition-period;
+            description "This attribute contains the time between the start of two measurement intervals. This IS applicable for the repetitive instance type and MAY be applicable for the repetitive series type.
+                Note that a value of 0 means not applicable (NA), which is for the cases of single instance, single series, or repetitive series without extra gap in between the measurement intervals (i.e., also as known as continuous series).";
+        }
+        leaf measurement-interval {
+            type uint64;
+            description "This attribute contains the discrete non overlapping periods of time (in seconds) during which measurements are performed (i.e., OAM messages are generated) and reports are gathered at the end of the measurement intervals. Note that the value 0 means a degenerated measurement interval with a single OAM message and the report is sent as immediately as possible.
+                range of type : Non-negative";
+        }
+        leaf test-identifier {
+            type uint64;
+            description "This attribute is used to distinguish each measurement session if multiple measurement sessions are simultaneously activated towards a peer MEP including concurrent on-demand and proactive tests. It must be unique at least within the context of any measurement type for the MEG and initiating MEP.
+                Note: The attribute is not used in case of LMM/LMR measurement.
+                range of type : 0..(2^32) - 1";
+        }
+        leaf data-tlv-length {
+            type uint64;
+            description "This parameter provides the size of the optional data TLV.
+                Non-negative integer represents the number of bytes for the length of the padding TLV.
+                Notes:
+                When configuring this parameter one should be aware of the maximum allowed total frame size limitation.
+                The attribute is not used in case of 2-way loss measurement.
+                range of type : Depends on the allowed MTU size.";
+        }
+        description "Basic attributes: destinationAddress, priority
+            Measurement configuration related attributes: oamPduGenerationType, startTime, stopTime, messagePeriod, repetitionPeriod, measurementInterval
+            Optional attributes: dataTlvLength, testIdentifier
+            This object class represents an on-demand measurement job controller source for 1-way measurements. It is created as a result of an establishOnDemandDualEndedMeasurementJobSource() operation. It is deleted either automatically after the measurement job has completed (stop time reached), or by an explicit abortOnDemandMeasurementJob() operation while the measurement job is running.";
+    }
+    grouping eth-pro-active-measurement-job-control-sink {
+        leaf responder-mep-id {
+            type string;
+            description "none";
+        }
+        leaf is-enabled {
+            type boolean;
+            default "true";
+            description "This attribute identifies the state of the measurement job. If set to TRUE, the MEP performs proactive Performance Measurement.";
+        }
+        leaf source-address {
+            type mac-address;
+            description "This attribute contains the MAC address of the peer MEP. See G.8013 for details.";
+        }
+        leaf test-identifier {
+            type uint64;
+            description "This attribute is used to distinguish each measurement session if multiple measurement sessions are simultaneously activated towards a peer MEP including concurrent on-demand and proactive tests. It must be unique at least within the context of any measurement type for the MEG and initiating MEP.
+                range of type : 0..(2^32) - 1";
+        }
+        description "This object class allows the control of the proactive 1-way measurement. It is created as a part of an establishProActiveDualEndedMeasurementJobSink() operation. Lifecycle: A pre-condition of deleting the object is that the Enable attribute should have the value FALSE.";
+    }
+    grouping eth-pro-active-measurement-job-control-source {
+        leaf controller-mep-id {
+            type string;
+            description "none";
+        }
+        leaf is-enabled {
+            type boolean;
+            default "true";
+            description "This attribute identifies the state of the measurement job. If set to TRUE, the MEP performs proactive Performance Measurement.";
+        }
+        leaf destination-address {
+            type mac-address;
+            description "This attribute provides the Unicast MAC address of the intented destination.";
+        }
+        leaf priority {
+            type uint64 {
+                range "0..7";
+            }
+            default "7";
+            description "This attribute contains the priority value on which the MEP performs the measurement. When the measurement is enabled, the MEP should use this value to encode the priority of generated measurement frames. The EMF usese this value to assign the P parameter of the measurement operation.";
+        }
+        leaf period {
+            type oam-period;
+            description "This attribute indicates the period (frequency) of the measurement frame transmission.
+                range of type : 100ms, 1s, 10s";
+        }
+        leaf test-identifier {
+            type uint64;
+            description "This attribute is used to distinguish each measurement session if multiple measurement sessions are simultaneously activated towards a peer MEP including concurrent on-demand and proactive tests. It must be unique at least within the context of any measurement type for the MEG and initiating MEP.
+                Note: The attribute is not used in case of 2-way loss measurement.
+                range of type : 0..(2^32) - 1";
+        }
+        leaf data-tlv-length {
+            type uint64;
+            description "This parameter provides the size of the optional data TLV.
+                Non-negative integer represents the number of bytes for the length of the padding TLV.
+                Notes:
+                When configuring this parameter one should be aware of the maximum allowed total frame size limitation.
+                The attribute is not used in case of 2-way loss measurement.
+                range of type : Depends on the allowed MTU size.";
+        }
+        description "This object class represents a proactive measurement job controller source for 1way measurements. It is created as a part of an establishProactiveDualEndedMeasurementJobSource() operation.";
+    }
+    grouping eth-pro-active-1-dm-performance-data {
+        container pro-active-near-end-1-dm-parameters {
+            uses statistical-dm-performance-parameters;
+            description "This attribute contains the statistical near end performnace parameters.";
+        }
+        description "This object class represents the PM current data collected in a pro-active delay measurement job (using 1DM).";
+    }
+    grouping eth-pro-active-1-lm-performance-data {
+        container pro-active-near-end-1-lm-parameters {
+            uses statistical-lm-performance-parameters;
+            description "This attribute contains the statistical near end performnace parameters.";
+        }
+        description "This object class represents the PM current data collected in a pro-active loss measurement job (using 1SL).";
+    }
+    grouping eth-pro-active-dm-performance-data {
+        container pro-active-bi-dir-dm-parameters {
+            uses statistical-dm-performance-parameters;
+            description "This attribute contains the statistical bidirectional performnace parameters.";
+        }
+        container pro-active-far-end-dm-parameters {
+            uses statistical-dm-performance-parameters;
+            description "This attribute contains the statistical far end performnace parameters.";
+        }
+        container pro-active-near-end-dm-parameters {
+            uses statistical-dm-performance-parameters;
+            description "This attribute contains the statistical near end performnace parameters.";
+        }
+        description "This object class represents the PM current data collected in a pro-active delay measurement job (using DMM/DMR).";
+    }
+    grouping eth-pro-active-lm-performance-data {
+        container pro-active-far-end-lm-parameters {
+            uses statistical-lm-performance-parameters;
+            description "This attribute contains the statistical far end performnace parameters.";
+        }
+        container pro-active-near-end-lm-parameters {
+            uses statistical-lm-performance-parameters;
+            description "This attribute contains the statistical near end performnace parameters.";
+        }
+        leaf bidirectional-uas {
+            type uint64;
+            description "This attribute contains the bidirectional UAS (unavailable seconds) detected in the monitoring interval.
+                range of type : 0..900 for 15min interval or 0..86400 for 24 hr interval.";
+        }
+        description "This object class represents the PM current data collected in a pro-active loss measurement job (using LMM/LMR or SLM/SLR).";
+    }
+    grouping eth-on-demand-1-dm-performance-data {
+        container on-demand-near-end-1-dm-parameters {
+            uses on-demand-dm-performance-parameters;
+            description "This attribute contains the results of an on-demand frame delay measurement job in the ingress direction.";
+        }
+        description "none";
+    }
+    grouping eth-on-demand-1-lm-performance-data {
+        container on-demand-near-end-1-lm-parameters {
+            uses on-demand-lm-performance-parameters;
+            description "This attribute contains the results of an on-demand synthetic loss measurement job in the ingress direction.";
+        }
+        description "none";
+    }
+    grouping eth-on-demand-dm-performance-data {
+        container on-demand-far-end-dm-parameters {
+            uses on-demand-dm-performance-parameters;
+            description "This attribute contains the results of an on-demand frame delay measurement job in the ingress direction.";
+        }
+        container on-demand-near-end-dm-parameters {
+            uses on-demand-dm-performance-parameters;
+            description "This attribute contains the results of an on-demand frame delay measurement job in the ingress direction.";
+        }
+        description "none";
+    }
+    grouping eth-on-demand-lm-performance-data {
+        container on-demand-far-end-lm-parameters {
+            uses on-demand-lm-performance-parameters;
+            description "This attribute contains the results of an on-demand synthetic loss measurement job in the egress direction.";
+        }
+        container on-demand-near-end-lm-parameters {
+            uses on-demand-lm-performance-parameters;
+            description "This attribute contains the results of an on-demand synthetic loss measurement job in the ingress direction.";
+        }
+        description "none";
+    }
+    grouping eth-pro-active-1way-measurement-job {
+        container pro-active-control-1way-source {
+            uses eth-pro-active-measurement-job-control-source;
+            description "none";
+        }
+        container pro-active-control-1way-sink {
+            uses eth-pro-active-measurement-job-control-sink;
+            description "none";
+        }
+        description "none";
+    }
+    grouping eth-pro-active-2way-measurement-job {
+        container pro-active-control-2way-source {
+            uses eth-pro-active-measurement-job-control-source;
+            description "none";
+        }
+        description "none";
+    }
+    grouping eth-on-demand-2way-measurement-job {
+        container on-demand-control-2way-source {
+            uses eth-on-demand-measurement-job-control-source;
+            description "none";
+        }
+        description "none";
+    }
+    grouping eth-on-demand-1way-measurement-job {
+        container on-demand-control-1way-source {
+            uses eth-on-demand-measurement-job-control-source;
+            description "none";
+        }
+        container on-demand-control-1way-sink {
+            uses eth-on-demand-measurement-job-control-sink;
+            description "none";
+        }
+        description "none";
+    }
+    grouping eth-1-dm-threshold-data {
+        container near-end-1-dm-cross-threshold {
+            uses statistical-dm-performance-parameters;
+            description "This attribute contains the near end cross threshold values of the delay measurements.";
+        }
+        container near-end-1-dm-clear-threshold {
+            uses statistical-dm-performance-parameters;
+            description "This attribute contains the near end clear threshold values of the delay measurements.";
+        }
+        description "This data type contains the threshold values for frame delay related 1-way measurements.";
+    }
+    grouping eth-1-lm-threshold-data {
+        container near-end-1-lm-cross-threshold {
+            uses statistical-lm-performance-parameters;
+            description "This attribute contains the near end cross threshold values of the loss measurements.";
+        }
+        container near-end-1-lm-clear-threshold {
+            uses statistical-lm-performance-parameters;
+            description "This attribute is only valid for frame loss ratio parameters and counter type parameters working in the 'standing condition method' (see G.7710, section 10.1.7.2: Threshold reporting) and contains the near end clear threshold values of the loss measurements.";
+        }
+        description "This data type contains the threshold values for frame loss related 1-way measurements.";
+    }
+    grouping eth-dm-threshold-data {
+        container near-end-dm-cross-threshold {
+            uses statistical-dm-performance-parameters;
+            description "This attribute contains the near end cross threshold values of the delay measurements.";
+        }
+        container near-end-dm-clear-threshold {
+            uses statistical-dm-performance-parameters;
+            description "This attribute contains the near end clear threshold values of the delay measurements.";
+        }
+        container far-end-dm-cross-threshold {
+            uses statistical-dm-performance-parameters;
+            description "This attribute contains the far end cross threshold values of the delay measurements.";
+        }
+        container far-end-dm-clear-threshold {
+            uses statistical-dm-performance-parameters;
+            description "This attribute contains the far end clear threshold values of the delay measurements.";
+        }
+        container bi-dir-dm-cross-threshold {
+            uses statistical-dm-performance-parameters;
+            description "This attribute contains the bidirectional cross threshold values of the delay measurements.";
+        }
+        container bi-dir-dm-clear-threshold {
+            uses statistical-dm-performance-parameters;
+            description "This attribute contains the bidirectional clear threshold values of the delay measurements.";
+        }
+        description "This data type contains the threshold values for frame delay related 2-way measurements.";
+    }
+    grouping eth-lm-threshold-data {
+        container near-end-lm-cross-threshold {
+            uses statistical-lm-performance-parameters;
+            description "This attribute contains the near end cross threshold values of the loss measurements.";
+        }
+        container near-end-lm-clear-threshold {
+            uses statistical-lm-performance-parameters;
+            description "This attribute is only valid for frame loss ratio parameters and counter type parameters working in the 'standing condition method' (see G.7710, section 10.1.7.2: Threshold reporting) and contains the near end clear threshold values of the loss measurements.";
+        }
+        container far-end-lm-cross-threshold {
+            uses statistical-lm-performance-parameters;
+            description "This attribute contains the far end cross threshold values of the loss measurements.";
+        }
+        container far-end-lm-clear-threshold {
+            uses statistical-lm-performance-parameters;
+            description "This attribute is only valid for frame loss ratio parameters and counter type parameters working in the 'standing condition method' (see G.7710, section 10.1.7.2: Threshold reporting) and contains the far end clear threshold values of the loss measurements.";
+        }
+        leaf bi-dir-lm-uas-cross-threshold {
+            type uint64;
+            description "This attribute contains the bidirectional cross threshold value of the UAS loss measurement.";
+        }
+        leaf bi-dir-lm-uas-clear-threshold {
+            type uint64;
+            description "This attribute is only valid for the UAS parameter working in the 'standing condition method' (see G.7710, section 10.1.7.2: Threshold reporting) and contains the bidirectional clear threshold value of the UAS loss measurement.";
+        }
+        description "This data type contains the threshold values for frame loss related 2-way measurements.";
+    }
+    grouping eth-loopback-result-data {
+        leaf rec-lbr-frames {
+            type uint64;
+            config false;
+            description "G.8052: This parameter returns the total number of received LBR messages, including the out of order LBR frames.";
+        }
+        leaf out-of-order-lbr-frames {
+            type uint64;
+            config false;
+            description "G.8052: This parameter returns the number of LBR traffic unites (messages) that were received out of order (OO).";
+        }
+        leaf sent-lbm-frames {
+            type uint64;
+            config false;
+            description "G.8052: This parameter returns the total number of sent LBM frames.";
+        }
+        leaf crc-lbr-frames {
+            type uint64;
+            config false;
+            description "G.8052: This parameter returns the number of LBR frames where the CRC in the pattern failed.";
+        }
+        leaf ber-lbr-frames {
+            type uint64;
+            config false;
+            description "G.8052: This parameter returns the number of LBR frames where there was a bit error in the pattern.";
+        }
+        leaf-list detected-peer-mep {
+            type mac-address;
+            config false;
+            description "G.8052: This parameter returns the MAC addresses of the discovered peer MEPs of the subject MEP.";
+        }
+        description "none";
+    }
+    grouping eth-link-trace-result-data {
+        list result-list {
+            key 'source-address';
+            config false;
+            uses link-trace-result;
+            description "G.8052: This parameter returns the results of the LT process. It contains a list of the result received from the individual LTR frames.
+                The result from the individual LTR frame include the Source Mac Address, the TTL, and TLV.";
+        }
+        description "none";
+    }
+    grouping eth-test-result-data {
+        leaf sent-tst-frames {
+            type uint64;
+            config false;
+            description "G.8052: This parameter returns the total number of sent TST frames.";
+        }
+        description "none";
+    }
+    grouping eth-oam-operation-common-pac {
+        leaf destination-address {
+            type mac-address;
+            description "G.8052: This parameter provides the destination address, i.e., the MAC Address of the target MEP or MIP.";
+        }
+        leaf priority {
+            type uint64;
+            default "7";
+            description "G.8052: This parameter provides the priority to be used in the LBM frame.";
+        }
+        description "none";
+    }
+    grouping eth-oam-msg-common-pac {
+        leaf period {
+            type oam-period;
+            description "G.8052: This parameter provides the periodicity of the TST OAM messages.";
+        }
+        leaf drop-eligibility {
+            type boolean;
+            description "G.8052: This parameter provides the eligibility of frames with unicast ETH-TST information to be discarded when congestion conditions are encountered.";
+        }
+        leaf data-tlv-length {
+            type uint64;
+            description "G.8052: This parameter provides the length (in number of octet) of the optional Data TLV to be included in the TST frame.";
+        }
+        leaf test-pattern {
+            type uint64;
+            description "G.8052: This parameter provides the test pattern to be used in the optional Data TLV.
+                Examples of test patterns include pseudo-random bit sequence (PRBS) 2^31-1 as specified in clause 5.8 of [ITU-T O.150], all '0' pattern, etc.
+                The following values of pattern types are defined:
+                0: 'Null signal without CRC-32'
+                1: 'Null signal with CRC-32'
+                2: 'PRBS 2^31-1 without CRC-32'
+                3: 'PRBS 2^31-1 with CRC-32'.";
+        }
+        uses eth-oam-operation-common-pac;
+        description "none";
+    }
+
+   /**************************
+    * package type-definitions
+    **************************/
+    identity ETH_OAM_JOB_TYPE {
+        base tapi-oam:OAM_JOB_TYPE;
+        description "none";
+    }
+    identity ETH_OAM_JOB_TYPE_ETH_1DM {
+        base ETH_OAM_JOB_TYPE;
+        description "none";
+    }
+    identity ETH_OAM_JOB_TYPE_ETH_1SLM {
+        base ETH_OAM_JOB_TYPE;
+        description "none";
+    }
+    identity ETH_OAM_JOB_TYPE_ETH_LM_CCM {
+        base ETH_OAM_JOB_TYPE;
+        description "none";
+    }
+    identity ETH_OAM_JOB_TYPE_ETH_LM_LMM {
+        base ETH_OAM_JOB_TYPE;
+        description "none";
+    }
+    identity ETH_OAM_JOB_TYPE_ETH_SLM {
+        base ETH_OAM_JOB_TYPE;
+        description "none";
+    }
+    identity ETH_OAM_JOB_TYPE_ETH_DM {
+        base ETH_OAM_JOB_TYPE;
+        description "none";
+    }
+    identity ETH_OAM_JOB_TYPE_ETH_LTC {
+        base ETH_OAM_JOB_TYPE;
+        description "none";
+    }
+    identity ETH_OAM_JOB_TYPE_ETH_LBK {
+        base ETH_OAM_JOB_TYPE;
+        description "none";
+    }
+    identity ETH_OAM_JOB_TYPE_ETH_TEST {
+        base ETH_OAM_JOB_TYPE;
+        description "none";
+    }
+    grouping priority-configuration {
+        leaf priority {
+            type uint64 {
+                range "0..7";
+            }
+            description "none";
+        }
+        leaf queue-id {
+            type uint64 {
+                range "1..8";
+            }
+            description "none";
+        }
+        description "none";
+    }
+    grouping queue-configuration {
+        leaf queue-id {
+            type uint64;
+            description "This attribute indicates the queue id.";
+        }
+        leaf queue-depth {
+            type uint64;
+            description "This attribute defines the depth of the queue in bytes.";
+        }
+        leaf queue-threshold {
+            type uint64;
+            description "This attribute defines the threshold of the queue in bytes.";
+        }
+        description "none";
+    }
+    grouping traffic-conditioning-configuration {
+        leaf cir {
+            type uint64;
+            description "This attribute indicates the Committed Information Rate in bits/s.";
+        }
+        leaf cbs {
+            type uint64;
+            description "This attribute indicates the Committed Burst Size in bytes.";
+        }
+        leaf eir {
+            type uint64;
+            description "This attribute indicates the Excess Information Rate in bits/s.";
+        }
+        leaf ebs {
+            type uint64;
+            description "This attribute indicates the Excess Burst Size in bytes.";
+        }
+        leaf coupling-flag {
+            type boolean;
+            description "This attribute indicates the coupling flag.";
+        }
+        leaf colour-mode {
+            type colour-mode;
+            description "This attribute indicates the colour mode.";
+        }
+        leaf queue-id {
+            type uint64 {
+                range "1..8";
+            }
+            description "This attribute indicates the queue id.";
+        }
+        description "none";
+    }
+    typedef mac-address {
+        type string;
+        description "This primitive data type contains an Ethernet MAC address defined by IEEE 802a. The format of the address consists of 12 hexadecimal characters, grouped in pairs and separated by '-' (e.g., 03-27-AC-75-3E-1D).";
+    }
+    grouping priority-mapping {
+        leaf priority-0 {
+            type uint64 {
+                range "0..7";
+            }
+            description "This attribute defines the new priority value for the old priority value 0.";
+        }
+        leaf priority-1 {
+            type uint64 {
+                range "0..7";
+            }
+            default "1";
+            description "This attribute defines the new priority value for the old priority value 1.";
+        }
+        leaf priority-2 {
+            type uint64 {
+                range "0..7";
+            }
+            default "2";
+            description "This attribute defines the new priority value for the old priority value 2.";
+        }
+        leaf priority-3 {
+            type uint64 {
+                range "0..7";
+            }
+            default "3";
+            description "This attribute defines the new priority value for the old priority value 3.";
+        }
+        leaf priority-4 {
+            type uint64 {
+                range "0..7";
+            }
+            default "4";
+            description "This attribute defines the new priority value for the old priority value 4.";
+        }
+        leaf priority-5 {
+            type uint64 {
+                range "0..7";
+            }
+            default "5";
+            description "This attribute defines the new priority value for the old priority value 5.";
+        }
+        leaf priority-6 {
+            type uint64 {
+                range "0..7";
+            }
+            default "6";
+            description "This attribute defines the new priority value for the old priority value 6.";
+        }
+        leaf priority-7 {
+            type uint64 {
+                range "0..7";
+            }
+            default "7";
+            description "This attribute defines the new priority value for the old priority value 7.";
+        }
+        description "This data type provides the priority mapping done in the 'P Regenerate' process defined in G.8021.";
+    }
+    typedef vid {
+        type string;
+        description "This primitive type models the 12 Bit VLAN identifier of a VLAN tag.";
+    }
+    typedef modify-cross-connection-data {
+        type string;
+        description "none";
+    }
+    grouping address-tuple {
+        leaf address {
+            type mac-address;
+            description "This attribute contains the MAC address of the address tuple.";
+        }
+        leaf-list port-list {
+            type mac-address;
+            description "This attribute contains the ports associated to the MAC address in the address tuple.";
+        }
+        description "This data type contains an address tuple consisting of a MAC address and a corresponding port list.";
+    }
+    typedef scheduling-configuration {
+        type string;
+        description "The syntax of this dataType is pending on the specification in G.8021, which is for further study.";
+    }
+    grouping control-frame-filter {
+        leaf c-2-00-00-10 {
+            type boolean;
+            description "This attribute identifies the 'All LANs Bridge Management Group Address'.";
+        }
+        leaf c-2-00-00-00 {
+            type boolean;
+            description "This attribute identifies the STP/RSTP/MSTP protocol address.";
+        }
+        leaf c-2-00-00-01 {
+            type boolean;
+            description "This attribute identifies the IEEE MAC-specific Control Protocols group address (PAUSE protocol).";
+        }
+        leaf c-2-00-00-02 {
+            type boolean;
+            description "This attribute identifies the IEEE 802.3 Slow_Protocols_Multicast address (LACP/LAMP or Link OAM protocols).";
+        }
+        leaf c-2-00-00-03 {
+            type boolean;
+            description "This attribute identifies the Nearest non-TPMR Bridge group address (Port Authentication protocol).";
+        }
+        leaf c-2-00-00-04 {
+            type boolean;
+            description "This attribute identifies the IEEE MAC-specific Control Protocols group address.";
+        }
+        leaf c-2-00-00-05 {
+            type boolean;
+            description "Reserved for future standardization.";
+        }
+        leaf c-2-00-00-06 {
+            type boolean;
+            description "Reserved for future standardization.";
+        }
+        leaf c-2-00-00-07 {
+            type boolean;
+            description "This attribute identifies the Metro Ethernet Forum E-LMI protocol group address.";
+        }
+        leaf c-2-00-00-08 {
+            type boolean;
+            description "This attribute identifies the Provider Bridge Group address.";
+        }
+        leaf c-2-00-00-09 {
+            type boolean;
+            description "Reserved for future standardization.";
+        }
+        leaf c-2-00-00-0-a {
+            type boolean;
+            description "Reserved for future standardization.";
+        }
+        leaf c-2-00-00-0-b {
+            type boolean;
+            description "Reserved for future standardization.";
+        }
+        leaf c-2-00-00-0-c {
+            type boolean;
+            description "Reserved for future standardization.";
+        }
+        leaf c-2-00-00-0-d {
+            type boolean;
+            description "This attribute identifies the Provider Bridge MVRP address.";
+        }
+        leaf c-2-00-00-0-e {
+            type boolean;
+            description "This attribute identifies the Individual LAN Scope group address, Nearest Bridge group address (LLDP protocol).";
+        }
+        leaf c-2-00-00-0-f {
+            type boolean;
+            description "Reserved for future standardization.";
+        }
+        leaf c-2-00-00-20 {
+            type boolean;
+            description "This attribute identifies the Customer and Provider Bridge MMRP address.";
+        }
+        leaf c-2-00-00-21 {
+            type boolean;
+            description "This attribute identifies the Customer Bridge MVRP address.";
+        }
+        leaf c-2-00-00-22 {
+            type boolean;
+            description "Reserved for future standardization.";
+        }
+        leaf c-2-00-00-23 {
+            type boolean;
+            description "Reserved for future standardization.";
+        }
+        leaf c-2-00-00-24 {
+            type boolean;
+            description "Reserved for future standardization.";
+        }
+        leaf c-2-00-00-25 {
+            type boolean;
+            description "Reserved for future standardization.";
+        }
+        leaf c-2-00-00-26 {
+            type boolean;
+            description "Reserved for future standardization.";
+        }
+        leaf c-2-00-00-27 {
+            type boolean;
+            description "Reserved for future standardization.";
+        }
+        leaf c-2-00-00-28 {
+            type boolean;
+            description "Reserved for future standardization.";
+        }
+        leaf c-2-00-00-29 {
+            type boolean;
+            description "Reserved for future standardization.";
+        }
+        leaf c-2-00-00-2-a {
+            type boolean;
+            description "Reserved for future standardization.";
+        }
+        leaf c-2-00-00-2-b {
+            type boolean;
+            description "Reserved for future standardization.";
+        }
+        leaf c-2-00-00-2-c {
+            type boolean;
+            description "Reserved for future standardization.";
+        }
+        leaf c-2-00-00-2-d {
+            type boolean;
+            description "Reserved for future standardization.";
+        }
+        leaf c-2-00-00-2-e {
+            type boolean;
+            description "Reserved for future standardization.";
+        }
+        leaf c-2-00-00-2-f {
+            type boolean;
+            description "Reserved for future standardization.";
+        }
+        description "This data type identifies the filter action for each of the 33 group MAC addresses (control frames).
+            Value 'false' means block: The frame is discarded by the filter process.
+            Value 'true' means pass: The frame is passed unchanged through the filter process.";
+    }
+    grouping bandwidth-report {
+        leaf source-mac-address {
+            type mac-address;
+            description "The sourceMacAddress is the address from the far end.";
+        }
+        leaf port-id {
+            type uint64;
+            description "This attribute returns the far end port identifier.";
+        }
+        leaf nominal-bandwidth {
+            type uint64;
+            description "This attribute returns the configured bandwidth";
+        }
+        leaf current-bandwidth {
+            type uint64;
+            description "This attribute returns the current bandwidth.";
+        }
+        description "Data type for the bandwidth report.";
+    }
+    typedef admin-state {
+        type enumeration {
+            enum LOCK {
+                description "none";
+            }
+            enum NORMAL {
+                description "none";
+            }
+        }
+        description "none";
+    }
+    typedef colour-mode {
+        type enumeration {
+            enum COLOUR_BLIND {
+                description "none";
+            }
+            enum COLOUR_AWARE {
+                description "none";
+            }
+        }
+        description "none";
+    }
+    typedef csf-config {
+        type enumeration {
+            enum DISABLED {
+                description "This literal covers the following states of the CSF related MI informations:
+                    - MI_CSF_Enable is false
+                    - MI_CSFrdifdi_Enable is false
+                    - MI_CSFdci_Enable is false.";
+            }
+            enum ENABLED {
+                description "This literal covers the following states of the CSF related MI informations:
+                    - MI_CSF_Enable is true
+                    - MI_CSFrdifdi_Enable is false
+                    - MI_CSFdci_Enable is false.";
+            }
+            enum ENABLED_WITH_RDI_FDI {
+                description "This literal covers the following states of the CSF related MI informations:
+                    - MI_CSF_Enable is true
+                    - MI_CSFrdifdi_Enable is true
+                    - MI_CSFdci_Enable is false.";
+            }
+            enum ENABLED_WITH_RDI_FDI_DCI {
+                description "This literal covers the following states of the CSF related MI informations:
+                    - MI_CSF_Enable is true
+                    - MI_CSFrdifdi_Enable is true
+                    - MI_CSFdci_Enable is true.";
+            }
+            enum ENABLED_WITH_DCI {
+                description "This literal covers the following states of the CSF related MI informations:
+                    - MI_CSF_Enable is true
+                    - MI_CSFrdifdi_Enable is false
+                    - MI_CSFdci_Enable is true.";
+            }
+        }
+        description "none";
+    }
+    typedef ety-phy-type {
+        type enumeration {
+            enum OTHER {
+                description "none";
+            }
+            enum UNKNOWN {
+                description "none";
+            }
+            enum NONE {
+                description "none";
+            }
+            enum 2BASE_TL {
+                description "none";
+            }
+            enum 10MBIT_S {
+                description "none";
+            }
+            enum 10PASS_TS {
+                description "none";
+            }
+            enum 100BASE_T4 {
+                description "none";
+            }
+            enum 100BASE_X {
+                description "none";
+            }
+            enum 100BASE_T2 {
+                description "none";
+            }
+            enum 1000BASE_X {
+                description "none";
+            }
+            enum 1000BASE_T {
+                description "none";
+            }
+            enum 10GBASE-X {
+                description "none";
+            }
+            enum 10GBASE_R {
+                description "none";
+            }
+            enum 10GBASE_W {
+                description "none";
+            }
+        }
+        description "none";
+    }
+    typedef frame-type {
+        type enumeration {
+            enum ADMIT_ONLY_VLAN_TAGGED_FRAMES {
+                description "none";
+            }
+            enum ADMIT_ONLY_UNTAGGED_AND_PRIORITY_TAGGED_FRAMES {
+                description "none";
+            }
+            enum ADMIT_ALL_FRAMES {
+                description "none";
+            }
+        }
+        description "none";
+    }
+    typedef oam-period {
+        type enumeration {
+            enum 3_33MS {
+                description "Default for protection.";
+            }
+            enum 10MS {
+                description "none";
+            }
+            enum 100MS {
+                description "none";
+            }
+            enum 1S {
+                description "none";
+            }
+            enum 10S {
+                description "none";
+            }
+            enum 1MIN {
+                description "none";
+            }
+            enum 10MIN {
+                description "none";
+            }
+        }
+        description "Provides the frequency for the OAM PDU insertion.";
+    }
+    typedef pcp-coding {
+        type enumeration {
+            enum 8P0D {
+                description "none";
+            }
+            enum 7P1D {
+                description "none";
+            }
+            enum 6P2D {
+                description "none";
+            }
+            enum 5P3D {
+                description "none";
+            }
+            enum DEI {
+                description "This enumeration value means that all priorities should be drop eligible.
+                    DEI = Drop Eligibility Indicator";
+            }
+        }
+        description "This enum models the coding of the Priority Code Point as defined in section 'Priority Code Point encoding' of IEEE 802.1Q.";
+    }
+    typedef vlan-type {
+        type enumeration {
+            enum C_Tag {
+                description "0x8100";
+            }
+            enum S_Tag {
+                description "0x88a8";
+            }
+            enum I_Tag {
+                description "88-e7";
+            }
+        }
+        description "This enumeration contains the Ethertypes defined in IEEE 802.1Q.";
+    }
+    typedef repetition-period {
+        type enumeration {
+            enum 1MIN {
+                description "none";
+            }
+            enum 1S {
+                description "none";
+            }
+            enum 10S {
+                description "none";
+            }
+            enum 0 {
+                description "none";
+            }
+        }
+        description "This enumeration defines the allowed values for the repetition period in on-demand measurements.
+            Note: The value 0 means that the value is not relevant.";
+    }
+    typedef message-period {
+        type enumeration {
+            enum 10MS {
+                description "none";
+            }
+            enum 100MS {
+                description "none";
+            }
+            enum 1S {
+                description "none";
+            }
+            enum 10S {
+                description "none";
+            }
+            enum 0 {
+                description "none";
+            }
+        }
+        description "This enumeration defines the allowed values for the message period in on-demand measurements.
+            Notes:
+            The value 10ms is only used in synthetic loss measurements.
+            The value 0 means that the value is not relevant.";
+    }
+    typedef oam-pdu-generation-type {
+        type enumeration {
+            enum SINGLE_INSTANCE {
+                description "none";
+            }
+            enum REPETITIVE_INSTANCE {
+                description "none";
+            }
+            enum SINGLE_SERIES {
+                description "none";
+            }
+            enum REPETITIVE_SERIES {
+                description "none";
+            }
+        }
+        description "This enumeration defines the generation pattern of the on-demand OAM PDUs (messages). ";
+    }
+    grouping on-demand-dm-performance-parameters {
+        leaf number-of-samples {
+            type uint64;
+            description "This attribute contains the number of received DM frames (successful samples) used for this frame delay measurement.
+                range of type : non-negative";
+        }
+        leaf-list frame-delay-list {
+            type uint64;
+            description "This attribute contains the frame delays measured in ns (nano second, 1x10e-9 seconds). The multiplicity is defined by the numberOfSamples attribute.";
+        }
+        leaf-list frame-delay-variation-list {
+            type uint64;
+            description "This attribute contains the frame delay variations measured in ns (nano second).  The multiplicity is defined by (numberOfSamples - 1, for numberOfSamples > 0).";
+        }
+        description "This data type contains the results of an on-demand delay measurement job.";
+    }
+    grouping on-demand-lm-performance-parameters {
+        leaf total-transmitted-frames {
+            type uint64;
+            description "This attribute contains the total number of frames transmitted.";
+        }
+        leaf total-lost-frames {
+            type uint64;
+            description "This attribute contains the total number of frames lost.";
+        }
+        leaf total-frame-loss-ratio {
+            type decimal64 {
+                fraction-digits 7;
+            }
+            description "This attribute contains the frame loss ratio (number of lost frames divided by the number of total frames (N_LF / N_TF)).
+                The accuracy of the value is for further study.";
+        }
+        description "This data type contains the results of an on-demand loss measurement job.";
+    }
+    grouping statistical-dm-performance-parameters {
+        leaf minimum-frame-delay {
+            type uint64;
+            description "This attribute contains the minimum frame delay observed over the monitored period. It is measured in units of ns (nano second, 1x10e-9 seconds).";
+        }
+        leaf average-frame-delay {
+            type uint64;
+            description "This attribute contains the average frame delay observed over the monitored period. It is measured in units of ns (nano second, 1x10e-9 seconds).";
+        }
+        leaf maximum-frame-delay {
+            type uint64;
+            description "This attribute contains the maximum frame delay observed over the monitored period. It is measured in units of ns (nano second, 1x10e-9 seconds).";
+        }
+        leaf minimum-frame-delay-variation {
+            type uint64;
+            description "This attribute contains the minimum frame delay variation measured in units of ns (nano second, 1x10e-9 seconds).";
+        }
+        leaf average-frame-delay-variation {
+            type uint64;
+            description "This attribute contains the average frame delay variation measured in units of ns (nano second, 1x10e-9 seconds).";
+        }
+        leaf maximum-frame-delay-variation {
+            type uint64;
+            description "This attribute contains the maximum frame delay variation measured in units of ns (nano second, 1x10e-9 seconds).";
+        }
+        description "This data type contains the statistical delay measurement performance parameters.";
+    }
+    grouping statistical-lm-performance-parameters {
+        leaf minimum-frame-loss-ratio {
+            type decimal64 {
+                fraction-digits 7;
+            }
+            description "This attribute contains the minimum frame loss ratio calculated over a period of time.
+                The accuracy of the value is for further study.";
+        }
+        leaf average-frame-loss-ratio {
+            type decimal64 {
+                fraction-digits 7;
+            }
+            description "This attribute contains the average frame loss ratio calculated over a period of time.
+                The accuracy of the value is for further study.";
+        }
+        leaf maximum-frame-loss-ratio {
+            type decimal64 {
+                fraction-digits 7;
+            }
+            description "This attribute contains the maximum frame loss ratio calculated over a period of time.
+                The accuracy of the value is for further study.";
+        }
+        leaf ses {
+            type uint64;
+            description "This attribute contains the SES detected in the monitoring interval.
+                range of type : 0..900 for 15min interval or 0..86400 for 24 hr interval.";
+        }
+        leaf uas {
+            type uint64;
+            description "This attribute contains UAS (unavailable seconds) detected in the monitoring interval.
+                range of type : 0..900 for 15min interval or 0..86400 for 24 hr interval.";
+        }
+        description "This data type contains the statistical loss measurement performance parameters.";
+    }
+    typedef eth-oam-job-type {
+        type identityref {
+            base ETH_OAM_JOB_TYPE;
+        }
+        description "none";
+    }
+    grouping link-trace-result {
+        leaf source-address {
+            type mac-address;
+            description "G.8052: This attribute contains the source MAC Address of an individual LTR frame result.";
+        }
+        leaf time-to-live {
+            type uint64;
+            description "G.8052: This attribute contains the Time To Live (TTL) value of an individual LTR frame result.";
+        }
+        leaf data-tlv-length {
+            type uint64;
+            description "G.8052: This attribute contains the length (in number of octets) of the Data TLV of an individual LTR frame result.";
+        }
+        description "G.8052: This data type contains the result from an individual LTR frame.";
+    }
+}
