diff --git a/models/tapi/src/main/yang/tapi-common@2018-03-07.yang b/models/tapi/src/main/yang/tapi-common@2018-10-16.yang
similarity index 83%
rename from models/tapi/src/main/yang/tapi-common@2018-03-07.yang
rename to models/tapi/src/main/yang/tapi-common@2018-10-16.yang
index 9569c14..0d68ca6 100644
--- a/models/tapi/src/main/yang/tapi-common@2018-03-07.yang
+++ b/models/tapi/src/main/yang/tapi-common@2018-10-16.yang
@@ -2,36 +2,53 @@
     namespace "urn:onf:otcc:yang:tapi-common";
     prefix tapi-common;
     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>";
+    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 Common Model definitions.
         Source: TapiCommon.uml
         Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.
         License: This module is distributed under the Apache License 2.0
         ";
+    revision 2018-10-16 {
+        description "ONF Transport API version 2.1.0.
+          - The TAPI YANG models included in this TAPI release (v2.1.0) 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 are not backward compatible with previous TAPI releases.
+          - 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.
+        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
+        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.
+        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
+        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.
+        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
+        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>";
     }
 
@@ -39,7 +56,7 @@
     * definitions of refrences
     *************************/
     grouping service-interface-point-ref {
-        leaf service-interface-point-id {
+        leaf service-interface-point-uuid {
             type leafref {
                 path '/tapi-common:context/tapi-common:service-interface-point/tapi-common:uuid';
             }
@@ -124,7 +141,6 @@
         grouping tapi-context {
             list service-interface-point {
                 key 'uuid';
-                min-elements 2;
                 uses service-interface-point;
                 description "none";
             }
@@ -140,12 +156,17 @@
             description "none";
         }
         grouping service-interface-point {
-            leaf-list layer-protocol-name {
+            leaf layer-protocol-name {
                 type layer-protocol-name;
                 config false;
-                min-elements 1;
                 description "Usage of layerProtocolName [>1]  in the ServiceInterfacePoint should be considered experimental";
             }
+            leaf-list supported-layer-protocol-qualifier {
+                type layer-protocol-qualifier;
+                config false;
+                min-elements 1;
+                description "none";
+            }
             uses resource-spec;
             uses admin-state-pac;
             uses capacity-pac;
@@ -192,6 +213,9 @@
     /***********************
     * package type-definitions
     **********************/ 
+        identity LAYER_PROTOCOL_QUALIFIER {
+            description "none";
+        }
         typedef administrative-state {
             type enumeration {
                 enum LOCKED {
@@ -255,27 +279,18 @@
         }
         typedef layer-protocol-name {
             type enumeration {
-                enum OTSiA {
-                    description "Models the OTSiA layer as per ITU-T G.872 (2017) version 4";
-                }
-                enum OCH {
-                    description "Models the legacy OCH layer as per ITU-T G.872";
-                }
-                enum OTU {
-                    description "Models the OTU layer as per ITU-T G.872";
-                }
                 enum ODU {
                     description "Models the ODU layer as per ITU-T G.872";
                 }
                 enum ETH {
                     description "Models the ETH layer as per ITU-T G.8010";
                 }
-                enum ETY {
-                    description "Models the ETY layer as per ITU-T G.8010";
-                }
                 enum DSR {
                     description "Models a Digital Signal of an unspecified rate. This value can be used when the intent is to respresent an generic digital layer signal without making any statement on its format or overhead (processing) capabilities.";
                 }
+                enum PHOTONIC_MEDIA {
+                    description "Models the OCH, OTSi, OTSiA, OTSiG, OMS, OTS and Media channels as per ITU-T G.872 (2017) version 4";
+                }
             }
             description "Provides a controlled list of layer protocol names and indicates the naming authority.
                 Note that it is expected that attributes will be added to this structure to convey the naming authority name, the name of the layer protocol using a human readable string and any particular standard reference.
@@ -509,6 +524,12 @@
                 enum KBPS {
                     description "Indicates that the integer CapacityValue is in Kilobit-per-second";
                 }
+                enum GHz {
+                    description "none";
+                }
+                enum MHz {
+                    description "none";
+                }
             }
             description "none";
         }
@@ -540,6 +561,76 @@
             }
             description "none";
         }
+        grouping time-period {
+            leaf value {
+                type uint64;
+                description "none";
+            }
+            leaf unit {
+                type time-unit;
+                description "none";
+            }
+            description "none";
+        }
+        typedef time-unit {
+            type enumeration {
+                enum YEARS {
+                    description "none";
+                }
+                enum MONTHS {
+                    description "none";
+                }
+                enum DAYS {
+                    description "none";
+                }
+                enum HOURS {
+                    description "none";
+                }
+                enum MINUTES {
+                    description "none";
+                }
+                enum SECONDS {
+                    description "none";
+                }
+                enum MILLISECONDS {
+                    description "none";
+                }
+                enum MICROSECONDS {
+                    description "none";
+                }
+                enum NANOSECONDS {
+                    description "none";
+                }
+                enum PICOSECONDS {
+                    description "none";
+                }
+            }
+            description "none";
+        }
+        grouping time-interval {
+            list period {
+                min-elements 1;
+                max-elements 5;
+                uses time-period;
+                description "none";
+            }
+            description "none";
+        }
+        typedef layer-protocol-qualifier {
+            type identityref {
+                base LAYER_PROTOCOL_QUALIFIER;
+            }
+            description "This enumeration is used to qualify the sub-layers (if applicable) for a specific LayerProtocol.
+                This extensible enumeration is intentionally empty in the common module and will be augmented with layer-specific values in the respective technology-specific modules.
+                Examples:
+                - LayerProtocolName := OPTICAL_DATA_UNIT
+                LayerProtocolQualifier := 'ODU_FLEX', 'ODU_0', 'ODU_1', 'ODU_2', 'ODU_2E', 'ODU_3', 'ODU_4'', 'ODU_CBR'', 'ODU_GFP'', 'ODU_GFP_HAO', etc
+                - LayerProtocolName := DIGITAL_SIGNAL_RATE
+                LayerProtocolQualifier := 'GBE', '10_GBE_WAN', '10_GBE_LAN', '100_GBE', 'FC_100', 'FC_200', 'FC_400', 'FC_800', 'FC_1200', 'FC_1600', 'FC_3200', 'STM_1', 'STM_4', 'STM_16', 'STM_64', 'STM_256', 'OC_3', 'OC_12', 'OC_48', 'OC_192', 'OC_768', 'OTU_1', 'OTU_2', 'OTU_2E', 'OTU_3', 'OTU_4', 'GPON', 'XGPON', 'IB_SDR', 'IB_DDR', 'IB_QDR', 'SBCON_ESCON', 'DVB_ASI', 'SDI', 'SDI_1G5', 'SDI_3G', etc
+                - LayerProtocolName := PHOTONIC_MEDIA
+                LayerProtocolQualifier := OCH, OTSi, OTSiA, NMC, NMCA, SMC, SMCA, OMS, OTS
+                ";
+        }
 
     /***********************
     * package interfaces
diff --git a/models/tapi/src/main/yang/tapi-connectivity@2018-03-07.yang b/models/tapi/src/main/yang/tapi-connectivity@2018-10-16.yang
similarity index 79%
rename from models/tapi/src/main/yang/tapi-connectivity@2018-03-07.yang
rename to models/tapi/src/main/yang/tapi-connectivity@2018-10-16.yang
index 75c0231..f4c0606 100644
--- a/models/tapi/src/main/yang/tapi-connectivity@2018-03-07.yang
+++ b/models/tapi/src/main/yang/tapi-connectivity@2018-10-16.yang
@@ -11,43 +11,66 @@
         prefix tapi-path-computation;
     }
     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>";
+    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 Connectivity Model definitions.
         Source: TapiConnectivity.uml
         Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.
         License: This module is distributed under the Apache License 2.0";
+    revision 2018-10-16 {
+        description "ONF Transport API version 2.1.0.
+          - The TAPI YANG models included in this TAPI release (v2.1.0) 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 are not backward compatible with previous TAPI releases.
+          - 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.
+        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
+        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.
+        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
+        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.
+        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
+        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" {
-        uses connectivity-context;
+        container connectivity-context {
+            uses connectivity-context;
+            description "Augments the base TAPI Context with ConnectivityService information";
+        }
         description "Augments the base TAPI Context with ConnectivityService information";
     }
-    augment "/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point" {
-        uses cep-list;
+    augment "/tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point" {
+    	container cep-list {
+            uses cep-list;
+            description "none";
+        }
         description "none";
     }
 
@@ -55,9 +78,9 @@
     * definitions of references
     *************************/
     grouping connectivity-service-ref {
-        leaf connectivity-service-id {
+        leaf connectivity-service-uuid {
             type leafref {
-                path '/tapi-common:context/tapi-connectivity:connectivity-service/tapi-connectivity:uuid';
+                path '/tapi-common:context/tapi-connectivity:connectivity-context/tapi-connectivity:connectivity-service/tapi-connectivity:uuid';
             }
             description "none";
         }
@@ -66,19 +89,19 @@
 
     grouping connectivity-service-end-point-ref {
     	uses connectivity-service-ref;
-    	leaf connectivity-service-end-point-id {
+    	leaf connectivity-service-end-point-local-id {
 	    	type leafref {
-	            path '/tapi-common:context/tapi-connectivity:connectivity-service/tapi-connectivity:end-point/tapi-connectivity:local-id';
+	            path '/tapi-common:context/tapi-connectivity:connectivity-context/tapi-connectivity:connectivity-service/tapi-connectivity:end-point/tapi-connectivity:local-id';
 	        }
 	    	description "none";
     	}
     	description "none";
     }
     grouping connection-end-point-ref {
-        uses tapi-topology:owned-node-edge-point-ref;
-        leaf connection-end-point-id {
+        uses tapi-topology:node-edge-point-ref;
+        leaf connection-end-point-uuid {
             type leafref {
-                path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-connectivity:connection-end-point/tapi-connectivity:uuid';
+                path '/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/tapi-connectivity:uuid';
             }
             description "none";
         }
@@ -86,9 +109,9 @@
     }
 
     grouping connection-ref {
-        leaf connection-id {
+        leaf connection-uuid {
             type leafref {
-                path '/tapi-common:context/tapi-connectivity:connection/tapi-connectivity:uuid';
+                path '/tapi-common:context/tapi-connectivity:connectivity-context/tapi-connectivity:connection/tapi-connectivity:uuid';
             }
             description "none";
         }
@@ -97,9 +120,9 @@
 
     grouping switch-control-ref {
         uses connection-ref;
-        leaf switch-control-id {
+        leaf switch-control-uuid {
             type leafref {
-                path '/tapi-common:context/tapi-connectivity:connection/tapi-connectivity:switch-control/tapi-connectivity:uuid';
+                path '/tapi-common:context/tapi-connectivity:connectivity-context/tapi-connectivity:connection/tapi-connectivity:switch-control/tapi-connectivity:uuid';
             }
             description "none";
         }
@@ -108,9 +131,9 @@
     
     grouping route-ref {
     	uses connection-ref;
-        leaf route-id {
+        leaf route-local-id {
             type leafref {
-                path '/tapi-common:context/tapi-connectivity:connection/tapi-connectivity:route/tapi-connectivity:local-id';
+                path '/tapi-common:context/tapi-connectivity:connectivity-context/tapi-connectivity:connection/tapi-connectivity:route/tapi-connectivity:local-id';
             }
             description "none";
         }
@@ -123,19 +146,26 @@
         grouping connection {
             list connection-end-point {
                 uses connection-end-point-ref;
-                key 'topology-id node-id owned-node-edge-point-id connection-end-point-id';
+                key 'topology-uuid node-uuid node-edge-point-uuid connection-end-point-uuid';
                 config false;
                 min-elements 2;
                 description "none";
             }
             list lower-connection {
                 uses connection-ref;
-                key 'connection-id';
+                key 'connection-uuid';
+                config false;
                 description "An Connection object supports a recursive aggregation relationship such that the internal construction of an Connection can be exposed as multiple lower level Connection objects (partitioning).
                     Aggregation is used as for the Node/Topology  to allow changes in hierarchy. 
                     Connection aggregation reflects Node/Topology aggregation. 
                     The FC represents a Cross-Connection in an NE. The Cross-Connection in an NE is not necessarily the lowest level of FC partitioning.";
             }
+            list supported-client-link {
+            	uses tapi-topology:link-ref;
+                key 'topology-uuid link-uuid';
+                config false;
+                description "none";
+            }
             list route {
                 key 'local-id';
                 config false;
@@ -169,20 +199,25 @@
                 config false;
                 description "none";
             }
-            container connectivity-service-end-point {
-                uses connectivity-service-end-point-ref;
+            leaf layer-protocol-qualifier {
+                type tapi-common:layer-protocol-qualifier;
+                config false;
                 description "none";
             }
-            list parent-node-edge-point {
-                uses tapi-topology:owned-node-edge-point-ref;
-                key 'topology-id node-id owned-node-edge-point-id';
+            container parent-node-edge-point {
+            	uses tapi-topology:node-edge-point-ref;
                 config false;
-                min-elements 1;
                 description "none";
             }
             list client-node-edge-point {
-                uses tapi-topology:owned-node-edge-point-ref;
-                key 'topology-id node-id owned-node-edge-point-id';
+                uses tapi-topology:node-edge-point-ref;
+                key 'topology-uuid node-uuid node-edge-point-uuid';
+                config false;
+                description "none";
+            }
+            list aggregated-connection-end-point {
+                uses connection-end-point-ref;
+                key 'topology-uuid node-uuid node-edge-point-uuid connection-end-point-uuid';
                 config false;
                 description "none";
             }
@@ -203,6 +238,10 @@
                 The structure of LTP supports all transport protocols including circuit and packet forms.";
         }
         grouping connectivity-constraint {
+            leaf service-layer {
+                type tapi-common:layer-protocol-name;
+                description "none";
+            }
             leaf service-type {
                 type service-type;
                 description "none";
@@ -211,39 +250,27 @@
                 type string;
                 description "An abstract value the meaning of which is mutually agreed – typically represents metrics such as - Class of service, priority, resiliency, availability";
             }
-            leaf is-exclusive {
-                type boolean;
-                default "true";
-                description "To distinguish if the resources are exclusive to the service  - for example between EPL(isExclusive=true) and EVPL (isExclusive=false), or between EPLAN (isExclusive=true) and EVPLAN (isExclusive=false)";
-            }
             container requested-capacity {
                 uses tapi-common:capacity;
                 description "none";
             }
+            leaf connectivity-direction {
+                type tapi-common:forwarding-direction;
+                description "none";
+            }
             container schedule {
                 uses tapi-common:time-range;
                 description "none";
             }
-            list cost-characteristic {
-                key 'cost-name';
-                uses tapi-topology:cost-characteristic;
-                description "The list of costs where each cost relates to some aspect of the TopologicalEntity.";
-            }
-            list latency-characteristic {
-                key 'traffic-property-name';
-                uses tapi-topology:latency-characteristic;
-                description "The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic.";
-            }
             container coroute-inclusion {
-                uses connectivity-service-ref;
+            	uses connectivity-service-ref;
                 description "none";
             }
             list diversity-exclusion {
-                uses connectivity-service-ref;
-                key 'connectivity-service-id';
+            	uses connectivity-service-ref;
+                key 'connectivity-service-uuid';
                 description "none";
             }
-            uses route-compute-policy;
             description "none";
         }
         grouping connectivity-service {
@@ -255,23 +282,16 @@
             }
             list connection {
                 uses connection-ref;
-                key 'connection-id';
+                key 'connection-uuid';
                 config false;
                 description "none";
             }
-            leaf direction {
-                type tapi-common:forwarding-direction;
-                description "none";
-            }
-            leaf layer-protocol-name {
-                type tapi-common:layer-protocol-name;
-                description "none";
-            }
             uses tapi-common:service-spec;
             uses connectivity-constraint;
-            uses topology-constraint;
-            uses tapi-common:admin-state-pac;
+            uses tapi-path-computation:routing-constraint;
+            uses tapi-path-computation:topology-constraint;
             uses resilience-constraint;
+            uses tapi-common:admin-state-pac;
             description "The ForwardingConstruct (FC) object class models enabled potential for forwarding between two or more LTPs and like the LTP supports any transport protocol including all circuit and packet forms.
                 At the lowest level of recursion, a FC represents a cross-connection within an NE.";
         }
@@ -280,10 +300,20 @@
                 type tapi-common:layer-protocol-name;
                 description "none";
             }
+            leaf layer-protocol-qualifier {
+                type tapi-common:layer-protocol-qualifier;
+                description "none";
+            }
             container service-interface-point {
                 uses tapi-common:service-interface-point-ref;
                 description "none";
             }
+            list connection-end-point {
+            	uses connection-end-point-ref;
+                key 'topology-uuid node-uuid node-edge-point-uuid connection-end-point-uuid';
+                config false;
+                description "none";
+            }
             container capacity {
                 uses tapi-common:capacity;
                 description "none";
@@ -313,7 +343,7 @@
         grouping route {
             list connection-end-point {
                 uses connection-end-point-ref;
-                key 'topology-id node-id owned-node-edge-point-id connection-end-point-id';
+                key 'topology-uuid node-uuid node-edge-point-uuid connection-end-point-uuid';
                 config false;
                 min-elements 2;
                 description "none";
@@ -340,13 +370,13 @@
         grouping switch {
             list selected-connection-end-point {
                 uses connection-end-point-ref;
-                key 'topology-id node-id owned-node-edge-point-id connection-end-point-id';
+                key 'topology-uuid node-uuid node-edge-point-uuid connection-end-point-uuid';
                 min-elements 1;
                 description "none";
             }
             list selected-route {
                 uses route-ref;
-                key 'connection-id route-id';
+                key 'connection-uuid route-local-id';
                 min-elements 1;
                 description "none";
             }
@@ -380,7 +410,7 @@
         grouping switch-control {
             list sub-switch-control {
                 uses switch-control-ref;
-                key 'connection-id switch-control-id';
+                key 'connection-uuid switch-control-uuid';
                 description "none";
             }
             list switch {
@@ -439,68 +469,12 @@
                 type uint64;
                 description "Used to limit the maximum swtich times. When work fault disappears , and traffic return to the original work path, switch counter reset.";
             }
-            leaf layer-protocol {
+            leaf-list preferred-restoration-layer {
                 type tapi-common:layer-protocol-name;
                 description "Indicate which layer this resilience parameters package configured for.";
             }
             description "A list of control parameters to apply to a switch.";
         }
-        grouping topology-constraint {
-            list include-topology {
-                uses tapi-topology:topology-ref;
-                key 'topology-id';
-                config false;
-                description "none";
-            }
-            list avoid-topology {
-                uses tapi-topology:topology-ref;
-                key 'topology-id';
-                config false;
-                description "none";
-            }
-            list include-path {
-                uses tapi-path-computation:path-ref;
-                key 'path-id';
-                config false;
-                description "none";
-            }
-            list exclude-path {
-                uses tapi-path-computation:path-ref;
-                key 'path-id';
-                config false;
-                description "none";
-            }
-            list include-link {
-                uses tapi-topology:link-ref;
-                key 'topology-id link-id';
-                config false;
-                description "This is a loose constraint - that is it is unordered and could be a partial list ";
-            }
-            list exclude-link {
-                uses tapi-topology:link-ref;
-                key 'topology-id link-id';
-                config false;
-                description "none";
-            }
-            list include-node {
-                uses tapi-topology:node-ref;
-                key 'topology-id node-id';
-                config false;
-                description "This is a loose constraint - that is it is unordered and could be a partial list";
-            }
-            list exclude-node {
-                uses tapi-topology:node-ref;
-                key 'topology-id node-id';
-                config false;
-                description "none";
-            }
-            leaf-list preferred-transport-layer {
-                type tapi-common:layer-protocol-name;
-                config false;
-                description "soft constraint requested by client to indicate the layer(s) of transport connection that it prefers to carry the service. This could be same as the service layer or one of the supported server layers";
-            }
-            description "none";
-        }
         grouping cep-list {
             list connection-end-point {
                 key 'uuid';
@@ -509,17 +483,6 @@
             }
             description "none";
         }
-        grouping route-compute-policy {
-            leaf route-objective-function {
-                type route-objective-function;
-                description "none";
-            }
-            leaf diversity-policy {
-                type diversity-policy;
-                description "none";
-            }
-            description "none";
-        }
 
     /***********************
     * package type-definitions
@@ -612,52 +575,6 @@
             }
             description "none";
         }
-        typedef route-objective-function {
-            type enumeration {
-                enum MIN_WORK_ROUTE_HOP {
-                    description "none";
-                }
-                enum MIN_WORK_ROUTE_COST {
-                    description "none";
-                }
-                enum MIN_WORK_ROUTE_LATENCY {
-                    description "none";
-                }
-                enum MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_HOP {
-                    description "none";
-                }
-                enum MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_COST {
-                    description "none";
-                }
-                enum MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_LATENCY {
-                    description "none";
-                }
-                enum LOAD_BALANCE_MAX_UNUSED_CAPACITY {
-                    description "none";
-                }
-            }
-            description "none";
-        }
-        typedef diversity-policy {
-            type enumeration {
-                enum SRLG {
-                    description "none";
-                }
-                enum SRNG {
-                    description "none";
-                }
-                enum SNG {
-                    description "none";
-                }
-                enum NODE {
-                    description "none";
-                }
-                enum LINK {
-                    description "none";
-                }
-            }
-            description "none";
-        }
         typedef protection-role {
             type enumeration {
                 enum WORK {
@@ -737,12 +654,16 @@
                     uses connectivity-service-end-point;
                     description "none";
                 }
-                container conn-constraint {
+                container connectivity-constraint {
                     uses connectivity-constraint;
                     description "none";
                 }
-                container topo-constraint {
-                    uses topology-constraint;
+                container routing-constraint {
+                    uses tapi-path-computation:routing-constraint;
+                    description "none";
+                }
+                container topology-constraint {
+                    uses tapi-path-computation:topology-constraint;
                     description "none";
                 }
                 list resilience-constraint {
@@ -772,12 +693,16 @@
                     uses connectivity-service-end-point;
                     description "none";
                 }
-                container conn-constraint {
+                container connectivity-constraint {
                     uses connectivity-constraint;
                     description "none";
                 }
-                container topo-constraint {
-                    uses topology-constraint;
+                container routing-constraint {
+                    uses tapi-path-computation:routing-constraint;
+                    description "none";
+                }
+                container topology-constraint {
+                    uses tapi-path-computation:topology-constraint;
                     description "none";
                 }
                 list resilience-constraint {
@@ -804,12 +729,6 @@
                     description "none";
                 }
             }
-            output {
-                container service {
-                    uses connectivity-service;
-                    description "none";
-                }
-            }
         }
 
 }
diff --git a/models/tapi/src/main/yang/tapi-dsr@2018-10-16.yang b/models/tapi/src/main/yang/tapi-dsr@2018-10-16.yang
new file mode 100644
index 0000000..362ab4e
--- /dev/null
+++ b/models/tapi/src/main/yang/tapi-dsr@2018-10-16.yang
@@ -0,0 +1,214 @@
+module tapi-dsr {
+    namespace "urn:onf:otcc:yang:tapi-dsr";
+    prefix tapi-dsr;
+    import tapi-common {
+        prefix tapi-common;
+    }
+    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 "none";
+    revision 2018-10-16 {
+        description "ONF Transport API version 2.1.0.
+          - The TAPI YANG models included in this TAPI release (v2.1.0) 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 are not backward compatible with previous TAPI releases.
+          - 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>";
+    }
+    /***********************
+    * package type-definitions
+    **********************/ 
+        identity DIGITAL_SIGNAL_TYPE {
+        	base tapi-common:LAYER_PROTOCOL_QUALIFIER;
+            description "none";
+        }
+        identity DIGITAL_SIGNAL_TYPE_GigE {
+            base DIGITAL_SIGNAL_TYPE;
+            description "none";
+        }
+        identity DIGITAL_SIGNAL_TYPE_10_GigE_LAN {
+            base DIGITAL_SIGNAL_TYPE;
+            description "none";
+        }
+        identity DIGITAL_SIGNAL_TYPE_10_GigE_WAN {
+            base DIGITAL_SIGNAL_TYPE;
+            description "none";
+        }
+        identity DIGITAL_SIGNAL_TYPE_40_GigE {
+            base DIGITAL_SIGNAL_TYPE;
+            description "none";
+        }
+        identity DIGITAL_SIGNAL_TYPE_100_GigE {
+            base DIGITAL_SIGNAL_TYPE;
+            description "none";
+        }
+        identity DIGITAL_SIGNAL_TYPE_FC_100 {
+            base DIGITAL_SIGNAL_TYPE;
+            description "none";
+        }
+        identity DIGITAL_SIGNAL_TYPE_FC_200 {
+            base DIGITAL_SIGNAL_TYPE;
+            description "none";
+        }
+        identity DIGITAL_SIGNAL_TYPE_FC_400 {
+            base DIGITAL_SIGNAL_TYPE;
+            description "none";
+        }
+        identity DIGITAL_SIGNAL_TYPE_FC_800 {
+            base DIGITAL_SIGNAL_TYPE;
+            description "none";
+        }
+        identity DIGITAL_SIGNAL_TYPE_FC_1200 {
+            base DIGITAL_SIGNAL_TYPE;
+            description "none";
+        }
+        identity DIGITAL_SIGNAL_TYPE_FC_1600 {
+            base DIGITAL_SIGNAL_TYPE;
+            description "none";
+        }
+        identity DIGITAL_SIGNAL_TYPE_FC_3200 {
+            base DIGITAL_SIGNAL_TYPE;
+            description "none";
+        }
+        identity DIGITAL_SIGNAL_TYPE_STM_1 {
+            base DIGITAL_SIGNAL_TYPE;
+            description "none";
+        }
+        identity DIGITAL_SIGNAL_TYPE_STM_4 {
+            base DIGITAL_SIGNAL_TYPE;
+            description "none";
+        }
+        identity DIGITAL_SIGNAL_TYPE_STM_16 {
+            base DIGITAL_SIGNAL_TYPE;
+            description "none";
+        }
+        identity DIGITAL_SIGNAL_TYPE_STM_64 {
+            base DIGITAL_SIGNAL_TYPE;
+            description "none";
+        }
+        identity DIGITAL_SIGNAL_TYPE_STM_256 {
+            base DIGITAL_SIGNAL_TYPE;
+            description "none";
+        }
+        identity DIGITAL_SIGNAL_TYPE_OC_3 {
+            base DIGITAL_SIGNAL_TYPE;
+            description "none";
+        }
+        identity DIGITAL_SIGNAL_TYPE_OC_12 {
+            base DIGITAL_SIGNAL_TYPE;
+            description "none";
+        }
+        identity DIGITAL_SIGNAL_TYPE_OC_48 {
+            base DIGITAL_SIGNAL_TYPE;
+            description "none";
+        }
+        identity DIGITAL_SIGNAL_TYPE_OC_192 {
+            base DIGITAL_SIGNAL_TYPE;
+            description "none";
+        }
+        identity DIGITAL_SIGNAL_TYPE_OC_768 {
+            base DIGITAL_SIGNAL_TYPE;
+            description "none";
+        }
+        identity DIGITAL_SIGNAL_TYPE_OTU_1 {
+            base DIGITAL_SIGNAL_TYPE;
+            description "none";
+        }
+        identity DIGITAL_SIGNAL_TYPE_OTU_2 {
+            base DIGITAL_SIGNAL_TYPE;
+            description "none";
+        }
+        identity DIGITAL_SIGNAL_TYPE_OTU_2E {
+            base DIGITAL_SIGNAL_TYPE;
+            description "none";
+        }
+        identity DIGITAL_SIGNAL_TYPE_OTU_3 {
+            base DIGITAL_SIGNAL_TYPE;
+            description "none";
+        }
+        identity DIGITAL_SIGNAL_TYPE_OTU_4 {
+            base DIGITAL_SIGNAL_TYPE;
+            description "none";
+        }
+        identity DIGITAL_SIGNAL_TYPE_GPON {
+            base DIGITAL_SIGNAL_TYPE;
+            description "none";
+        }
+        identity DIGITAL_SIGNAL_TYPE_XGPON {
+            base DIGITAL_SIGNAL_TYPE;
+            description "none";
+        }
+        identity DIGITAL_SIGNAL_TYPE_IB_SDR {
+            base DIGITAL_SIGNAL_TYPE;
+            description "none";
+        }
+        identity DIGITAL_SIGNAL_TYPE_IB_DDR {
+            base DIGITAL_SIGNAL_TYPE;
+            description "none";
+        }
+        identity DIGITAL_SIGNAL_TYPE_IB_QDR {
+            base DIGITAL_SIGNAL_TYPE;
+            description "none";
+        }
+        identity DIGITAL_SIGNAL_TYPE_SBCON_ESCON {
+            base DIGITAL_SIGNAL_TYPE;
+            description "none";
+        }
+        identity DIGITAL_SIGNAL_TYPE_DVB_ASI {
+            base DIGITAL_SIGNAL_TYPE;
+            description "none";
+        }
+        identity DIGITAL_SIGNAL_TYPE_SDI {
+            base DIGITAL_SIGNAL_TYPE;
+            description "none";
+        }
+        identity DIGITAL_SIGNAL_TYPE_SDI_1G5 {
+            base DIGITAL_SIGNAL_TYPE;
+            description "none";
+        }
+        identity DIGITAL_SIGNAL_TYPE_SDI_3G {
+            base DIGITAL_SIGNAL_TYPE;
+            description "none";
+        }
+        typedef digital-signal-type {
+            type identityref {
+                base DIGITAL_SIGNAL_TYPE;
+            }
+            description "none";
+        }
+
+}
diff --git a/models/tapi/src/main/yang/tapi-eth@2018-03-07.yang b/models/tapi/src/main/yang/tapi-eth@2018-03-07.yang
deleted file mode 100644
index 0de1f8d..0000000
--- a/models/tapi/src/main/yang/tapi-eth@2018-03-07.yang
+++ /dev/null
@@ -1,802 +0,0 @@
-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;
-    }
-    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
-        Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.
-        License: This module is distributed under the Apache License 2.0";
-    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/tapi-topology:node/tapi-topology:owned-node-edge-point" {
-        uses eth-node-edge-point-spec;
-        description "Augments the base LayerProtocol information in NodeEndPoint with ETH-specific information";
-    }
-    augment "/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-connectivity:connection-end-point" {
-        uses eth-connection-end-point-spec;
-        description "Augments the base LayerProtocol information in ConnectionEndPoint with ETH-specific information";
-    }
-    /***********************
-    * 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 Actor’s 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 Aggregator’s 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 Partner’s 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 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 {
-                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 {
-                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 {
-                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 {
-                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-node-edge-point-spec {
-            container ety-term {
-                uses ety-termination-pac;
-                description "none";
-            }
-            description "none";
-        }
-
-    /***********************
-    * package type-definitions
-    **********************/ 
-        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.";
-        }
-
-}
diff --git a/models/tapi/src/main/yang/tapi-eth@2018-10-16.yang b/models/tapi/src/main/yang/tapi-eth@2018-10-16.yang
new file mode 100644
index 0000000..e4cd3f3
--- /dev/null
+++ b/models/tapi/src/main/yang/tapi-eth@2018-10-16.yang
@@ -0,0 +1,1892 @@
+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
+        Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.
+        License: This module is distributed under the Apache License 2.0";
+    revision 2018-10-16 {
+        description "ONF Transport API version 2.1.0.
+          - The TAPI YANG models included in this TAPI release (v2.1.0) 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 are not backward compatible with previous TAPI releases.
+          - 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 {
+                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 {
+                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 {
+                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 {
+                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 {
+                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.";
+        }
+
+}
diff --git a/models/tapi/src/main/yang/tapi-notification@2018-03-07.yang b/models/tapi/src/main/yang/tapi-notification@2018-10-16.yang
similarity index 86%
rename from models/tapi/src/main/yang/tapi-notification@2018-03-07.yang
rename to models/tapi/src/main/yang/tapi-notification@2018-10-16.yang
index 4447e29..b4a5bc7 100644
--- a/models/tapi/src/main/yang/tapi-notification@2018-03-07.yang
+++ b/models/tapi/src/main/yang/tapi-notification@2018-10-16.yang
@@ -5,39 +5,59 @@
         prefix tapi-common;
     }
     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>";
+    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 Notification Model definitions.
         Source: TapiNotification.uml
         Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.
         License: This module is distributed under the Apache License 2.0";
+    revision 2018-10-16 {
+        description "ONF Transport API version 2.1.0.
+          - The TAPI YANG models included in this TAPI release (v2.1.0) 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 are not backward compatible with previous TAPI releases.
+          - 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.
+        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
+        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.
+        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
+        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.
+        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
+        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" {
-        uses notification-context;
+        container notification-context {
+            uses notification-context;
+            description "Augments the base TAPI Context with NotificationService information";
+        }
         description "Augments the base TAPI Context with NotificationService information";
     }
     /***********************
@@ -207,8 +227,8 @@
                 config false;
                 description "none";
             }
-            leaf pervceived-severity {
-                type perceived-serverity-type;
+            leaf perceived-severity {
+                type perceived-severity-type;
                 config false;
                 description "none";
             }
@@ -243,6 +263,18 @@
                 config false;
                 description "none";
             }
+            leaf perceived-severity {
+                type perceived-tca-severity;
+                description "none";
+            }
+            leaf measurement-interval {
+                type tapi-common:date-and-time;
+                description "none";
+            }
+            leaf suspect-interval-flag {
+                type boolean;
+                description "none";
+            }
             description "none";
         }
 
@@ -349,6 +381,9 @@
                 enum RULE {
                     description "none";
                 }
+                enum OAM_JOB {
+                    description "none";
+                }
             }
             description "The list of TAPI Global Object Class types on which Notifications can be raised.";
         }
@@ -377,7 +412,7 @@
             }
             description "none";
         }
-        typedef perceived-serverity-type {
+        typedef perceived-severity-type {
             type enumeration {
                 enum CRITICAL {
                     description "none";
@@ -425,6 +460,17 @@
             }
             description "none";
         }
+        typedef perceived-tca-severity {
+            type enumeration {
+                enum WARNING {
+                    description "none";
+                }
+                enum CLEAR {
+                    description "none";
+                }
+            }
+            description "none";
+        }
 
     /***********************
     * package interfaces
diff --git a/models/tapi/src/main/yang/tapi-oam@2018-03-07.yang b/models/tapi/src/main/yang/tapi-oam@2018-03-07.yang
deleted file mode 100644
index 261f5f0..0000000
--- a/models/tapi/src/main/yang/tapi-oam@2018-03-07.yang
+++ /dev/null
@@ -1,341 +0,0 @@
-module tapi-oam {
-    namespace "urn:onf:otcc:yang:tapi-oam";
-    prefix tapi-oam;
-    import tapi-common {
-        prefix tapi-common;
-    }
-    import tapi-connectivity {
-        prefix tapi-connectivity;
-    }
-    import tapi-topology {
-        prefix tapi-topology;
-    }
-    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 OAM Model definitions.
-        Source: TapiOam.uml
-        Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.
-        License: This module is distributed under the Apache License 2.0";
-    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" {
-        uses oam-context;
-        description "Augments the base TAPI Context with OamService information";
-    }
-    augment "/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point" {
-        uses mep-mip-list;
-        description "none";
-    }
-    augment "/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-connectivity:connection-end-point" {
-        uses mep-mip-list;
-        description "none";
-    }
-    
-    /*************************
-    * definitions of references
-    *************************/
-    grouping oam-service-ref {
-        leaf oam-service-id {
-            type leafref {
-                path '/tapi-common:context/tapi-oam:oam-service/tapi-oam:uuid';
-            }
-            description "none";
-        }
-        description "none";
-    }
-
-    grouping oam-service-end-point-ref {
-    	uses oam-service-ref;
-    	leaf oam-service-end-point-id {
-	    	type leafref {
-	            path '/tapi-common:context/tapi-oam:oam-service/tapi-oam:end-point/tapi-oam:local-id';
-	        }
-	    	description "none";
-    	}
-    	description "none";
-    }
-    grouping meg-ref {
-        leaf meg-id {
-            type leafref {
-            	path '/tapi-common:context/tapi-oam:meg/tapi-oam:uuid';
-            }
-            description "none";
-        }
-        description "none";
-    }
-
-    grouping mep-ref {
-    	uses meg-ref;
-        leaf mep-id {
-            type leafref {
-            	path '/tapi-common:context/tapi-oam:meg/tapi-oam:mep/tapi-oam:local-id';
-            }
-            description "none";
-        }
-        description "none";
-    }
-    
-    grouping mip-ref {
-    	uses meg-ref;
-        leaf mip-id {
-            type leafref {
-            	path '/tapi-common:context/tapi-oam:meg/tapi-oam:mip/tapi-oam:local-id';
-            }
-            description "none";
-        }
-        description "none";
-    }
-    
-    grouping me-ref {
-    	uses meg-ref;
-        leaf me-id {
-            type leafref {
-            	path '/tapi-common:context/tapi-oam:meg/tapi-oam:me/tapi-oam:local-id';
-            }
-            description "none";
-        }
-        description "none";
-    }
-    
-    /***********************
-    * package object-classes
-    **********************/ 
-        grouping mep {
-            leaf-list on-demand-measurement-job {
-                type leafref {
-                    path '/tapi-common:context/tapi-oam:oam-service/tapi-oam:end-point/tapi-oam:on-demand-measurement-job/tapi-oam:local-id';
-                }
-                config false;
-                description "none";
-            }
-            leaf-list pro-active-measurement-job {
-                type leafref {
-                    path '/tapi-common:context/tapi-oam:oam-service/tapi-oam:end-point/tapi-oam:pro-active-measurement-job/tapi-oam:local-id';
-                }
-                config false;
-                description "none";
-            }
-            leaf layer-protocol-name {
-                type tapi-common:layer-protocol-name;
-                config false;
-                description "none";
-            }
-            leaf meg-identifier {
-                type string;
-                config false;
-                description "none";
-            }
-            leaf mep-identifier {
-                type string;
-                config false;
-                description "none";
-            }
-            leaf-list peer-mep-identifier {
-                type string;
-                config false;
-                min-elements 1;
-                description "none";
-            }
-            leaf monitored-direction {
-                type tapi-common:termination-direction;
-                description "none";
-            }
-            uses tapi-common:local-class;
-            description "none";
-        }
-        grouping on-demand-measurement-job {
-            uses tapi-common:local-class;
-            uses tapi-common:admin-state-pac;
-            description "none";
-        }
-        grouping pro-active-measurement-job {
-            uses tapi-common:local-class;
-            uses tapi-common:admin-state-pac;
-            description "none";
-        }
-        grouping meg {
-            list me {
-                key 'local-id';
-                config false;
-                min-elements 1;
-                uses me;
-                description "none";
-            }
-            list mep {
-                key 'local-id';
-                config false;
-                uses mep;
-                description "1. ME may have 0 MEPs (case of transit domains where at least 1 MIP is present)
-                    2. ME may have 1 MEP (case of edge domaind, where the peer MEP is ouside the managed domain)
-                    3. ME may have 2 MEPs";
-            }
-            list mip {
-                key 'local-id';
-                config false;
-                uses mip;
-                description "ME may 0, 1, or more MIPs";
-            }
-            leaf meg-level {
-                type uint64;
-                config false;
-                description "none";
-            }
-            uses tapi-common:resource-spec;
-            description "none";
-        }
-        grouping me {
-            list mep {
-                uses mep-ref;
-                key 'meg-id mep-id';
-                config false;
-                max-elements 2;
-                description "none";
-            }
-            list mip {
-            	uses mip-ref;
-                key 'meg-id mip-id';
-                config false;
-                description "none";
-            }
-            container connection-route {
-            	uses tapi-connectivity:route-ref;
-                config false;
-                description "none";
-            }
-            uses tapi-common:local-class;
-            description "none";
-        }
-        grouping mip {
-            leaf layer-protocol-name {
-                type tapi-common:layer-protocol-name;
-                config false;
-                description "none";
-            }
-            uses tapi-common:local-class;
-            description "none";
-        }
-        grouping oam-service {
-            container meg {
-            	uses meg-ref;
-                config false;
-                description "none";
-            }
-            list end-point {
-                key 'local-id';
-                min-elements 1;
-                uses oam-service-end-point;
-                description "none";
-            }
-            uses tapi-common:service-spec;
-            description "none";
-        }
-        grouping oam-context {
-            list oam-service {
-                key 'uuid';
-                uses oam-service;
-                description "none";
-            }
-            list meg {
-                key 'uuid';
-                config false;
-                uses meg;
-                description "none";
-            }
-            description "none";
-        }
-        grouping oam-service-end-point {
-        	container service-interface-point {
-                uses tapi-common:service-interface-point-ref;
-                description "none";
-            }
-        	container connectivity-service-end-point {
-                uses tapi-connectivity:connectivity-service-end-point-ref;
-                description "none";
-            }
-            list pro-active-measurement-job {
-                key 'local-id';
-                uses pro-active-measurement-job;
-                description "none";
-            }
-            list on-demand-measurement-job {
-                key 'local-id';
-                uses on-demand-measurement-job;
-                description "none";
-            }
-            container associated-mep {
-                uses mep-ref;
-                config false;
-                description "none";
-            }
-            leaf direction {
-                type tapi-common:port-direction;
-                config false;
-                description "none";
-            }
-            uses tapi-common:local-class;
-            description "none";
-        }
-        grouping mep-mip-list {
-            list mip {
-            	uses mip-ref;
-                key 'meg-id mip-id';
-                description "none";
-            }
-            list mep {
-            	uses mep-ref;
-                key 'meg-id mep-id';
-                description "none";
-            }
-            description "none";
-        }
-
-    /***********************
-    * package interfaces
-    **********************/ 
-        rpc abort-measurement-job {
-            description "none";
-        }
-        rpc disable-pro-active-measurement-job {
-            description "none";
-        }
-        rpc enable-pro-active-measurement-job {
-            description "none";
-        }
-        rpc establish-measurement-job {
-            description "none";
-        }
-        rpc get-contained-measurement-jobs {
-            description "none";
-        }
-        rpc terminate-measurement-job {
-            description "none";
-        }
-        rpc get-all-contained-meg {
-            description "none";
-        }
-
-}
diff --git a/models/tapi/src/main/yang/tapi-oam@2018-10-16.yang b/models/tapi/src/main/yang/tapi-oam@2018-10-16.yang
new file mode 100644
index 0000000..baadabf
--- /dev/null
+++ b/models/tapi/src/main/yang/tapi-oam@2018-10-16.yang
@@ -0,0 +1,826 @@
+module tapi-oam {
+    namespace "urn:onf:otcc:yang:tapi-oam";
+    prefix tapi-oam;
+    import tapi-common {
+        prefix tapi-common;
+    }
+    import tapi-connectivity {
+        prefix tapi-connectivity;
+    }
+    import tapi-topology {
+        prefix tapi-topology;
+    }
+    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 OAM Model definitions.
+        Source: TapiOam.uml
+        Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.
+        License: This module is distributed under the Apache License 2.0";
+    revision 2018-10-16 {
+        description "ONF Transport API version 2.1.0.
+          - The TAPI YANG models included in this TAPI release (v2.1.0) 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 are not backward compatible with previous TAPI releases.
+          - 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" {
+        container oam-context {
+            uses oam-context;
+            description "Augments the base TAPI Context with OamService information";
+        }
+        description "Augments the base TAPI Context with OamService information";
+    }
+    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 mep-mip-list {
+            uses mep-mip-list;
+            description "none";
+        }
+        description "none";
+    }
+    
+    /*************************
+    * definitions of references
+    *************************/
+    grouping oam-service-ref {
+        leaf oam-service-uuid {
+            type leafref {
+                path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-service/tapi-oam:uuid';
+            }
+            description "none";
+        }
+        description "none";
+    }
+
+    grouping oam-service-end-point-ref {
+    	uses oam-service-ref;
+    	leaf oam-service-end-point-local-id {
+	    	type leafref {
+	            path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-service/tapi-oam:end-point/tapi-oam:local-id';
+	        }
+	    	description "none";
+    	}
+    	description "none";
+    }
+    
+    grouping meg-ref {
+        leaf meg-uuid {
+            type leafref {
+                path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:meg/tapi-oam:uuid';
+            }
+            description "none";
+        }
+        description "none";
+    }
+    
+    grouping maintenance-entity-ref {
+    	uses meg-ref;
+    	leaf maintenance-entity-local-id {
+	    	type leafref {
+	            path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:meg/tapi-oam:me/tapi-oam:local-id';
+	        }
+	    	description "none";
+    	}
+    	description "none";
+    }
+    
+    grouping mep-ref {
+    	uses meg-ref;
+    	leaf mep-local-id {
+	    	type leafref {
+	            path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:meg/tapi-oam:mep/tapi-oam:local-id';
+	        }
+	    	description "none";
+    	}
+    	description "none";
+    }
+    
+    grouping mip-ref {
+    	uses meg-ref;
+    	leaf mip-local-id {
+	    	type leafref {
+	            path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:meg/tapi-oam:mip/tapi-oam:local-id';
+	        }
+	    	description "none";
+    	}
+    	description "none";
+    }
+    
+    grouping oam-job-ref {
+        leaf oam-job-uuid {
+            type leafref {
+                path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-job/tapi-oam:uuid';
+            }
+            description "none";
+        }
+        description "none";
+    }
+    
+    grouping pm-current-data-ref {
+    	uses oam-job-ref;
+    	leaf pm-current-data-local-id {
+	    	type leafref {
+	            path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-job/tapi-oam:pm-current-data/tapi-oam:local-id';
+	        }
+	    	description "none";
+    	}
+    	description "none";
+    }
+    
+    grouping pm-history-data-ref {
+    	uses pm-current-data-ref;
+    	leaf pm-history-data-local-id {
+	    	type leafref {
+	            path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-job/tapi-oam:pm-current-data/tapi-oam:pm-history-data/tapi-oam:local-id';
+	        }
+	    	description "none";
+    	}
+    	description "none";
+    }
+    
+    grouping oam-profile-ref {
+        leaf oam-profile-uuid {
+            type leafref {
+                path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-profile/tapi-oam:uuid';
+            }
+            description "none";
+        }
+        description "none";
+    }
+    
+    grouping pm-threshold-data-ref {
+    	uses oam-profile-ref;
+    	leaf pm-threshold-data-local-id {
+	    	type leafref {
+	            path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-profile/tapi-oam:pm-threshold-data/tapi-oam:local-id';
+	        }
+	    	description "none";
+    	}
+    	description "none";
+    }
+    
+    grouping pm-bin-data-ref {
+    	uses oam-profile-ref;
+    	leaf pm-bin-data-local-id {
+	    	type leafref {
+	            path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-profile/tapi-oam:pm-bin-data/tapi-oam:local-id';
+	        }
+	    	description "none";
+    	}
+    	description "none";
+    }
+    
+    /***********************
+    * package object-classes
+    **********************/ 
+        grouping mep {
+            leaf layer-protocol-name {
+                type tapi-common:layer-protocol-name;
+                config false;
+                description "none";
+            }
+            leaf direction {
+                type tapi-common:termination-direction;
+                config false;
+                description "none";
+            }
+            leaf mep-identifier {
+                type string;
+                config false;
+                description "none";
+            }
+            leaf-list peer-mep-identifier {
+                type string;
+                config false;
+                min-elements 1;
+                description "none";
+            }
+            uses tapi-common:local-class;
+            uses tapi-common:operational-state-pac;
+            description "none";
+        }
+        grouping oam-job {
+            list oam-service-end-point {
+            	uses oam-service-end-point-ref;
+            	key 'oam-service-uuid oam-service-end-point-local-id';
+            	min-elements 1;
+                description "none";
+            }
+            container oam-profile {
+                uses oam-profile-ref;
+                description "none";
+            }
+            list pm-current-data {
+                key 'local-id';
+                config false;
+                uses pm-current-data;
+                description "Granularity period of the CurrentData identifies the specific CurrentData instance in the scope of this OamJob.
+                    For example, typically at least
+                    one 15min and
+                    one 24hr;
+                    optionally one additional configurable (< 15min)";
+            }
+            leaf oam-job-type {
+                type oam-job-type;
+                description "none";
+            }
+            container schedule {
+                uses tapi-common:time-range;
+                description "none";
+            }
+            leaf creation-time {
+                type tapi-common:date-and-time;
+                config false;
+                description "none";
+            }
+            uses tapi-common:global-class;
+            uses tapi-common:admin-state-pac;
+            description "none";
+        }
+        grouping meg {
+            list mep {
+                key 'local-id';
+                config false;
+                uses mep;
+                description "1. ME may have 0 MEPs (case of transit domains where at least 1 MIP is present)
+                    2. ME may have 1 MEP (case of edge domaind, where the peer MEP is ouside the managed domain)
+                    3. ME may have 2 MEPs";
+            }
+            list mip {
+                key 'local-id';
+                config false;
+                uses mip;
+                description "ME may 0, 1, or more MIPs";
+            }
+            leaf layer-protocol-name {
+                type tapi-common:layer-protocol-name;
+                config false;
+                description "none";
+            }
+            leaf direction {
+                type tapi-common:forwarding-direction;
+                config false;
+                description "none";
+            }
+            leaf meg-level {
+                type uint64;
+                config false;
+                description "none";
+            }
+            leaf meg-identifier {
+                type string;
+                config false;
+                description "none";
+            }
+            uses tapi-common:resource-spec;
+            uses tapi-common:operational-state-pac;
+            description "none";
+        }
+        grouping mip {
+            leaf layer-protocol-name {
+                type tapi-common:layer-protocol-name;
+                config false;
+                description "none";
+            }
+            uses tapi-common:local-class;
+            description "none";
+        }
+        grouping oam-service {
+            list end-point {
+                key 'local-id';
+                min-elements 2;
+                uses oam-service-end-point;
+                description "none";
+            }
+            container meg {
+                uses meg-ref;
+                config false;
+                description "none";
+            }
+            container oam-profile {
+                uses oam-profile-ref;
+                description "none";
+            }
+            uses tapi-common:service-spec;
+            uses tapi-common:admin-state-pac;
+            uses oam-constraint;
+            description "none";
+        }
+        grouping oam-context {
+            list oam-service {
+                key 'uuid';
+                uses oam-service;
+                description "none";
+            }
+            list meg {
+                key 'uuid';
+                config false;
+                uses meg;
+                description "none";
+            }
+            list oam-job {
+                key 'uuid';
+                uses oam-job;
+                description "none";
+            }
+            list oam-profile {
+                key 'uuid';
+                uses oam-profile;
+                description "none";
+            }
+            description "none";
+        }
+        grouping oam-service-end-point {
+            container service-interface-point {
+                uses tapi-common:service-interface-point-ref;
+                description "none";
+            }
+            container connectivity-service-end-point {
+                uses tapi-connectivity:connectivity-service-end-point-ref;
+                description "none";
+            }
+            container mep {
+                uses mep-ref;
+                config false;
+                description "none";
+            }
+            container mip {
+                uses mip-ref;
+                config false;
+                description "none";
+            }
+            leaf layer-protocol-name {
+                type tapi-common:layer-protocol-name;
+                description "none";
+            }
+            leaf direction {
+                type tapi-common:port-direction;
+                description "none";
+            }
+            leaf mep-identifier {
+                type string;
+                description "This attribute contains the identifier of the MEP.
+                    This attribute is empty in case the OSEP relates to the provisioing of an MIP.
+                    ";
+            }
+            leaf-list peer-mep-identifier {
+                type string;
+                description "This attribute models the MI_PeerMEP_ID[i] defined in G.8021 and configured as specified in G.8051. It provides the identifiers of the MEPs which are peer to the subject MEP.
+                    This attribute is not specified in case the OSEP relates to the provisioing of an MIP.
+                    In case of P2P, there is only one peer";
+            }
+            uses tapi-common:local-class;
+            uses tapi-common:admin-state-pac;
+            description "none";
+        }
+        grouping mep-mip-list {
+            list mip {
+                uses mip-ref;
+                key 'meg-uuid mip-local-id';
+                description "none";
+            }
+            list mep {
+                uses mep-ref;
+                key 'meg-uuid mep-local-id';
+                description "none";
+            }
+            description "none";
+        }
+        grouping oam-constraint {
+            leaf layer-protocol-name {
+                type tapi-common:layer-protocol-name;
+                description "none";
+            }
+            leaf direction {
+                type tapi-common:forwarding-direction;
+                description "none";
+            }
+            leaf meg-level {
+                type uint64;
+                description "none";
+            }
+            description "none";
+        }
+        grouping pm-current-data {
+            list pm-history-data {
+                key 'local-id';
+                config false;
+                uses pm-history-data;
+                description "in case of 24hr Current Data, at least 1 History Data.
+                    In case of 15min Current Data, at least 16 History Data.
+                    In case of <15min, the number of History Data shall be able to cover a span of 4 hours.";
+            }
+            container granularity-period {
+                uses tapi-common:time-period;
+                description "none";
+            }
+            leaf timestamp {
+                type tapi-common:date-and-time;
+                config false;
+                description "This attribute indicates the start of the current monitoring interval.
+                    The value is bound to the quarter of an hour in case of a 15 minute interval and bound to the hour in case of a 24 hour interval.";
+            }
+            container elapsed-time {
+                uses tapi-common:time-interval;
+                description "none";
+            }
+            leaf suspect-interval-flag {
+                type boolean;
+                description "This attribute is used to indicate that the performance data for the current period may not be reliable. Some reasons for this to occur are:
+                    – Suspect data were detected by the actual resource doing data collection.
+                    – Transition of the administrativeState attribute to/from the 'lock' state.
+                    – Transition of the operationalState to/from the 'disabled' state.
+                    – Scheduler setting that inhibits the collection function.
+                    – The performance counters were reset during the interval.
+                    – The currentData (or subclass) object instance was created during the monitoring period.";
+            }
+            uses tapi-common:local-class;
+            description "none";
+        }
+        grouping pm-history-data {
+            container granularity-period {
+                uses tapi-common:time-period;
+                description "none";
+            }
+            leaf period-end-time {
+                type tapi-common:date-and-time;
+                description "none";
+            }
+            leaf suspect-interval-flag {
+                type boolean;
+                config false;
+                description "This attribute indicates that the performance data may not be reliable.";
+            }
+            uses tapi-common:local-class;
+            description "none";
+        }
+        grouping oam-profile {
+            list pm-threshold-data {
+                key 'local-id';
+                min-elements 1;
+                uses pm-threshold-data;
+                description "none";
+            }
+            list pm-bin-data {
+                key 'local-id';
+                min-elements 1;
+                uses pm-bin-data;
+                description "none";
+            }
+            uses tapi-common:global-class;
+            description "none";
+        }
+        grouping pm-threshold-data {
+            container granularity-period {
+                uses tapi-common:time-period;
+                description "none";
+            }
+            leaf is-transient {
+                type boolean;
+                description "none";
+            }
+            uses tapi-common:local-class;
+            description "none";
+        }
+        grouping pm-bin-data {
+            container granularity-period {
+                uses tapi-common:time-period;
+                description "none";
+            }
+            uses tapi-common:local-class;
+            description "none";
+        }
+
+    /***********************
+    * package type-definitions
+    **********************/ 
+        identity OAM_JOB_TYPE {
+            description "none";
+        }
+        typedef oam-job-type {
+            type identityref {
+                base OAM_JOB_TYPE;
+            }
+            description "none";
+        }
+
+    /***********************
+    * package interfaces
+    **********************/ 
+        rpc create-oam-service {
+            description "none";
+            input {
+                list end-point {
+                    min-elements 2;
+                    uses oam-service-end-point;
+                    description "none";
+                }
+                container oam-constraint {
+                    uses oam-constraint;
+                    description "none";
+                }
+                leaf state {
+                    type string;
+                    description "none";
+                }
+            }
+            output {
+                container service {
+                    uses oam-service;
+                    description "none";
+                }
+            }
+        }
+        rpc delete-oam-service {
+            description "none";
+            input {
+                leaf service-id {
+                    type string;
+                    description "none";
+                }
+            }
+        }
+        rpc get-oam-service {
+            description "none";
+            input {
+                leaf service-id {
+                    type string;
+                    description "none";
+                }
+            }
+            output {
+                container service {
+                    uses oam-service;
+                    description "none";
+                }
+            }
+        }
+        rpc create-oam-job {
+            description "none";
+            input {
+                leaf oam-job-type {
+                    type oam-job-type;
+                    description "none";
+                }
+                list oam-service-end-point {
+                    min-elements 2;
+                    uses oam-service-end-point;
+                    description "none";
+                }
+                container oam-profile {
+                    uses oam-profile;
+                    description "none";
+                }
+                leaf state {
+                    type string;
+                    description "none";
+                }
+                leaf schedule {
+                    type string;
+                    description "none";
+                }
+            }
+            output {
+                container oam-job {
+                    uses oam-job;
+                    description "none";
+                }
+            }
+        }
+        rpc get-oam-job {
+            description "none";
+            input {
+                leaf job-id {
+                    type string;
+                    description "none";
+                }
+            }
+            output {
+                container oam-job {
+                    uses oam-job;
+                    description "none";
+                }
+            }
+        }
+        rpc get-oam-service-list {
+            description "none";
+            output {
+                list service {
+                    uses oam-service;
+                    description "none";
+                }
+            }
+        }
+        rpc get-meg {
+            description "none";
+            input {
+                leaf service-id {
+                    type string;
+                    description "none";
+                }
+            }
+            output {
+                container meg {
+                    uses meg;
+                    description "none";
+                }
+            }
+        }
+        rpc update-oam-service {
+            description "none";
+            input {
+                leaf service-id {
+                    type string;
+                    description "none";
+                }
+                list end-point {
+                    uses oam-service-end-point;
+                    description "none";
+                }
+                container oam-constraint {
+                    uses oam-constraint;
+                    description "none";
+                }
+                leaf state {
+                    type string;
+                    description "none";
+                }
+            }
+            output {
+                container service {
+                    uses oam-service;
+                    description "none";
+                }
+            }
+        }
+        rpc delete-oam-job {
+            description "none";
+            input {
+                leaf job-id {
+                    type string;
+                    description "none";
+                }
+            }
+        }
+        rpc update-oam-job {
+            description "none";
+            input {
+                leaf job-id {
+                    type string;
+                    description "none";
+                }
+                container oam-profile {
+                    uses oam-profile;
+                    description "none";
+                }
+                leaf state {
+                    type string;
+                    description "none";
+                }
+                leaf schedule {
+                    type string;
+                    description "none";
+                }
+            }
+            output {
+                container oam-job {
+                    uses oam-job;
+                    description "none";
+                }
+            }
+        }
+        rpc create-oam-service-end-point {
+            description "none";
+            input {
+                leaf service-id {
+                    type string;
+                    description "none";
+                }
+                leaf sip-id {
+                    type string;
+                    description "none";
+                }
+                leaf c-sep-id {
+                    type string;
+                    description "none";
+                }
+                leaf layer {
+                    type string;
+                    description "none";
+                }
+                leaf direction {
+                    type string;
+                    description "none";
+                }
+                leaf state {
+                    type string;
+                    description "none";
+                }
+                leaf mep-identifier {
+                    type string;
+                    description "none";
+                }
+                leaf-list peer-mep-identifier {
+                    type string;
+                    description "none";
+                }
+            }
+            output {
+                container end-point {
+                    uses oam-service-end-point;
+                    description "none";
+                }
+            }
+        }
+        rpc delete-oam-service-end-point {
+            description "none";
+            input {
+                leaf service-id {
+                    type string;
+                    description "none";
+                }
+                leaf o-sep-id {
+                    type string;
+                    description "none";
+                }
+            }
+        }
+        rpc update-oam-service-end-point {
+            description "none";
+            input {
+                leaf service-id {
+                    type string;
+                    description "none";
+                }
+                leaf o-sep-id {
+                    type string;
+                    description "none";
+                }
+                leaf state {
+                    type string;
+                    description "none";
+                }
+            }
+            output {
+                container end-point {
+                    uses oam-service-end-point;
+                    description "none";
+                }
+            }
+        }
+        rpc get-oam-service-end-point {
+            description "none";
+            input {
+                leaf service-id {
+                    type string;
+                    description "none";
+                }
+                leaf o-sep-id {
+                    type string;
+                    description "none";
+                }
+            }
+            output {
+                container end-point {
+                    uses oam-service-end-point;
+                    description "none";
+                }
+            }
+        }
+
+}
diff --git a/models/tapi/src/main/yang/tapi-odu@2018-03-07.yang b/models/tapi/src/main/yang/tapi-odu@2018-10-16.yang
similarity index 87%
rename from models/tapi/src/main/yang/tapi-odu@2018-03-07.yang
rename to models/tapi/src/main/yang/tapi-odu@2018-10-16.yang
index dfde5d4..68d5dea 100644
--- a/models/tapi/src/main/yang/tapi-odu@2018-03-07.yang
+++ b/models/tapi/src/main/yang/tapi-odu@2018-10-16.yang
@@ -13,52 +13,84 @@
     import tapi-oam {
         prefix tapi-oam;
     }
+    import tapi-dsr {
+        prefix tapi-dsr;
+    }
     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>";
+    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 Odu Model definitions.
         Source: TapiOdu.uml
         Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.
         License: This module is distributed under the Apache License 2.0";
+    revision 2018-10-16 {
+        description "ONF Transport API version 2.1.0.
+          - The TAPI YANG models included in this TAPI release (v2.1.0) 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 are not backward compatible with previous TAPI releases.
+          - 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.
+        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
+        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.
+        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
+        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.
+        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
+        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/tapi-topology:node/tapi-topology:owned-node-edge-point" {
-        uses odu-node-edge-point-spec;
+    augment "/tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point" {
+        container odu-node-edge-point-spec {
+            uses odu-node-edge-point-spec;
+            description "Augments the base LayerProtocol information in NodeEdgePoint with ODU-specific information";
+        }
         description "Augments the base LayerProtocol information in NodeEdgePoint with ODU-specific information";
     }
-    augment "/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-connectivity:connection-end-point" {
-        uses odu-connection-end-point-spec;
+    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 odu-connection-end-point-spec {
+            uses odu-connection-end-point-spec;
+            description "none";
+        }
         description "none";
     }
-    augment "/tapi-common:context/tapi-oam:meg/tapi-oam:mep" {
-        uses odu-connection-end-point-spec;
+    augment "/tapi-common:context/tapi-oam:oam-context/tapi-oam:meg/tapi-oam:mep" {
+        container odu-connection-end-point-spec {
+            uses odu-connection-end-point-spec;
+            description "none";
+        }
         description "none";
     }
-    augment "/tapi-common:context/tapi-oam:meg/tapi-oam:mip" {
-        uses odu-mip-spec;
+    augment "/tapi-common:context/tapi-oam:oam-context/tapi-oam:meg/tapi-oam:mip" {
+        container odu-mip-spec {
+            uses odu-mip-spec;
+            description "none";
+        }
         description "none";
     }
     /***********************
@@ -76,7 +108,7 @@
                 description "This attribute is applicable when the ODU CTP object instance represents a lower order ODU CTP Source at the client layer of the ODUP/ODUj-21 adaptation function. The value of true of this attribute configures that the adaptation source function shall fall back to the payload type PT=20 if the conditions specified in 14.3.10.1/G.798 are satisfied. ";
             }
             leaf configured-client-type {
-                type string;
+                type tapi-dsr:digital-signal-type;
                 config false;
                 description "This attribute configures the type of the client CTP of the server ODU TTP.";
             }
@@ -421,32 +453,45 @@
     /***********************
     * package type-definitions
     **********************/ 
+        identity ODU_TYPE {
+        	base tapi-common:LAYER_PROTOCOL_QUALIFIER;
+            description "none";
+        }
+        identity ODU_TYPE_ODU0 {
+            base ODU_TYPE;
+            description "none";
+        }
+        identity ODU_TYPE_ODU1 {
+            base ODU_TYPE;
+            description "none";
+        }
+        identity ODU_TYPE_ODU2 {
+            base ODU_TYPE;
+            description "none";
+        }
+        identity ODU_TYPE_ODU2E {
+            base ODU_TYPE;
+            description "none";
+        }
+        identity ODU_TYPE_ODU3 {
+            base ODU_TYPE;
+            description "none";
+        }
+        identity ODU_TYPE_ODU4 {
+            base ODU_TYPE;
+            description "none";
+        }
+        identity ODU_TYPE_ODU_FLEX {
+            base ODU_TYPE;
+            description "none";
+        }
+        identity ODU_TYPE_ODU_CN {
+            base ODU_TYPE;
+            description "none";
+        }
         typedef odu-type {
-            type enumeration {
-                enum ODU0 {
-                    description "none";
-                }
-                enum ODU1 {
-                    description "none";
-                }
-                enum ODU2 {
-                    description "none";
-                }
-                enum ODU2E {
-                    description "none";
-                }
-                enum ODU3 {
-                    description "none";
-                }
-                enum ODU4 {
-                    description "none";
-                }
-                enum ODU_FLEX {
-                    description "none";
-                }
-                enum ODU_CN {
-                    description "none";
-                }
+            type identityref {
+                base ODU_TYPE;
             }
             description "none";
         }
diff --git a/models/tapi/src/main/yang/tapi-otsi@2018-03-07.yang b/models/tapi/src/main/yang/tapi-otsi@2018-03-07.yang
deleted file mode 100644
index a4b7355..0000000
--- a/models/tapi/src/main/yang/tapi-otsi@2018-03-07.yang
+++ /dev/null
@@ -1,278 +0,0 @@
-module tapi-otsi {
-    namespace "urn:onf:otcc:yang:tapi-otsi";
-    prefix tapi-otsi;
-    import tapi-common {
-        prefix tapi-common;
-    }
-    import tapi-connectivity {
-        prefix tapi-connectivity;
-    }
-    import tapi-topology {
-        prefix tapi-topology;
-    }
-    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 OTSi Model definitions.
-        Source: TapiOtsi.uml
-        Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.
-        License: This module is distributed under the Apache License 2.0";
-    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/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-connectivity:connection-end-point" {
-        uses otsi-connection-end-point-spec;
-        description "Augments the base LayerProtocol information in ConnectionEndPoint with OCH-specific information";
-    }
-    augment "/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point" {
-        uses otsi-node-edge-point-spec;
-        description "Augments the base LayerProtocol information in NodeEdgePoint with OCH-specific information";
-    }
-    /***********************
-    * package object-classes
-    **********************/ 
-        grouping otsi-client-adaptation-pac {
-            description "none";
-        }
-        grouping otsi-connection-end-point-spec {
-            container otsi-adapter {
-                config false;
-                uses otsi-client-adaptation-pac;
-                description "none";
-            }
-            container otsi-termination {
-                config false;
-                uses otsi-termination-pac;
-                description "none";
-            }
-            container otsi-ctp {
-                config false;
-                uses otsi-ctp-pac;
-                description "none";
-            }
-            description "none";
-        }
-        grouping otsi-termination-pac {
-            list selected-nominal-central-frequency {
-                config false;
-                uses nominal-central-frequency-or-wavelength;
-                description "This attribute indicates the nominal central frequency or wavelength of the optical channel associated with the OCh Trail Termination function. The value of this attribute is a pair {LinkType, Integer}, in which LinkType is DWDM, or CWDM, or NO_WDM. When LinkType is DWDM, the integer represents the nominal central frequency in unit of MHz. When LinkType is CWDM, the integer represents the nominal central wavelength in unit of pm (picometer). When LinkType is NO_WDM, the Integer field is null. For frequency and wavelength, the value shall be within the range of the maximum and minimum central frequencies or wavelengths specified for the corresponding application code used at the OCh Trail Termination.
-                    This attribute is required for the OCh Trial Termination Point Source at the transmitter.  For the OCh Trail Termination Point Sink at the receiver, this attribute may not be needed since the receiver is required to operate at any frequency/wavelength between the maximum and minimum range for the standard application code.
-                    ";
-            }
-            list supportable-lower-nominal-central-frequency {
-                config false;
-                uses nominal-central-frequency-or-wavelength;
-                description "none";
-            }
-            list supportable-upper-nominal-central-frequency {
-                config false;
-                uses nominal-central-frequency-or-wavelength;
-                description "none";
-            }
-            list selected-application-identifier {
-                config false;
-                uses application-identifier;
-                description "This attribute indicates the selected Application Identifier that is used by the OCh trail termination function. The syntax of ApplicationIdentifier is a pair {ApplicationIdentifierType, PrintableString}. The value of ApplicationIdentifierType is either STANDARD or PROPRIETARY. The value of PrintableString represents the standard application code as defined in the ITU-T Recommendations or a vendor-specific proprietary code. If the ApplicationIdentifierType is STANDARD the value of PrintableString represents a standard application code as defined in the ITU-T Recommendations. If the ApplicationIdentifierType is PROPRIETARY, the first six characters of the PrintableString must contain the Hexadecimal representation of an OUI assigned to the vendor whose implementation generated the Application Identifier; the remaining octets of the PrintableString are unspecified. The value of this attribute of an object instance has to be one of the values identified in the attribute SupportableApplicationIdentifierList of the same object instance. The values and value ranges of the optical interface parameters of a standard application code must be consistent with those values specified in the ITU-T Recommendation for that application code.";
-            }
-            list supportable-application-identifier {
-                config false;
-                uses application-identifier;
-                description "none";
-            }
-            description "none";
-        }
-        grouping otsi-pool-pac {
-            list available-frequency-slot {
-                config false;
-                uses frequency-slot;
-                description "none";
-            }
-            list occupied-frequency-slot {
-                config false;
-                uses frequency-slot;
-                description "none";
-            }
-            description "none";
-        }
-        grouping otsi-node-edge-point-spec {
-            container otsi-pool {
-                config false;
-                uses otsi-pool-pac;
-                description "none";
-            }
-            description "none";
-        }
-        grouping otsi-routing-spec {
-            leaf optical-routing-strategy {
-                type optical-routing-strategy;
-                description "none";
-            }
-            description "none";
-        }
-        grouping otsi-ctp-pac {
-            list selected-frequency-slot {
-                config false;
-                uses frequency-slot;
-                description "none";
-            }
-            description "none";
-        }
-
-    /***********************
-    * package type-definitions
-    **********************/ 
-        grouping application-identifier {
-            leaf application-identifier-type {
-                type application-identifier-type;
-                description "none";
-            }
-            leaf application-identifier-value {
-                type string;
-                description "none";
-            }
-            description "none";
-        }
-        grouping nominal-central-frequency-or-wavelength {
-            leaf grid-type {
-                type grid-type;
-                description "Specifies the frequency grid standard used to determine the nominal central frequency and frequency slot width";
-            }
-            leaf adjustment-granularity {
-                type adjustment-granularity;
-                description "Adjustment granularity in Gigahertz. As per ITU-T G.694.1, it is used to calculate nominal central frequency (in THz)";
-            }
-            leaf channel-number {
-                type uint64;
-                description "As per ITU-T G.694.1, this attribute is denoted as 'n' and is used to calculate the nominal central frequency (in THz) as follows:
-                    193.1 + <channelNumber> × <adjustmentGranularity> where channelNumber is a positive or negative integer including 0 and adjustment_granularity is the nominal central frequency granularity in THz";
-            }
-            description "This data-type holds the information to determine the nominal central frequency of a FIXED grid (DWDM or CWDM) and FLEX grid type systems.
-                As per ITU-T G.694.1, the nominal central frequency (in THz) is calculated as follows:
-                193.1 + <channelNumber> × <adjustmentGranularity> where channelNumber is a positive or negative integer including 0 and <adjustment_granularity> is the nominal central frequency granularity in THz
-                For FIXED grid types, the adjustmentGranularity is one of (0.1/0.05/0.025/0.0125) THz corresponding to channel spacing of one of (100/50/25/12.5) GHz
-                For FLEX grid type, the adjusmentGranularity is 0.00625 THz and the slot width is variable in increments of 12.5 GHz";
-        }
-        typedef optical-routing-strategy {
-            type enumeration {
-                enum OPTIMAL_OSNR {
-                    description "none";
-                }
-                enum NO_RELAY {
-                    description "none";
-                }
-                enum MIN_RELAY {
-                    description "none";
-                }
-                enum PREFERRED_NO_CHANGE_WAVELENGTH_AS_RESTORE {
-                    description "none";
-                }
-                enum PREFERRED_NO_SKIPPING_WAVELENGTH {
-                    description "none";
-                }
-            }
-            description "none";
-        }
-        typedef application-identifier-type {
-            type enumeration {
-                enum PROPRIETARY {
-                    description "none";
-                }
-                enum ITUT_G959_1 {
-                    description "none";
-                }
-                enum ITUT_G698_1 {
-                    description "none";
-                }
-                enum ITUT_G698_2 {
-                    description "none";
-                }
-                enum ITUT_G696_1 {
-                    description "none";
-                }
-                enum ITUT_G695 {
-                    description "none";
-                }
-            }
-            description "none";
-        }
-        typedef grid-type {
-            type enumeration {
-                enum DWDM {
-                    description "Fixed frequency grid in C & L bands as specified in ITU-T G.694.1
-                        ";
-                }
-                enum CWDM {
-                    description "Fixed frequency grid as specified in ITU-T G.694.2";
-                }
-                enum FLEX {
-                    description "Flexible frequency grid as specified in ITU-T G.694.1. In this case,
-                        - the allowed frequency slots have a nominal central frequency (in THz) defined by:
-                        193.1 + n × 0.00625 where n is a positive or negative integer including 0 and 0.00625 is the nominal central frequency granularity in THz
-                        - and a slot width defined by:
-                        12.5 × m where m is a positive integer and 12.5 is the slot width granularity in GHz.
-                        Any combination of frequency slots is allowed as long as no two frequency slots overlap.";
-                }
-                enum UNSPECIFIED {
-                    description "Unspecified/proprietary frequency grid";
-                }
-            }
-            description "The frequency grid standard that specify reference set of frequencies used to denote allowed nominal central frequencies that may be used for defining applications.";
-        }
-        typedef adjustment-granularity {
-            type enumeration {
-                enum G_100GHZ {
-                    description "0.1 THz";
-                }
-                enum G_50GHZ {
-                    description "0.05 THz";
-                }
-                enum G_25GHZ {
-                    description "0.025 THz";
-                }
-                enum G_12_5GHZ {
-                    description "0.0125 THz";
-                }
-                enum G_6_25GHZ {
-                    description "0.00625 THz";
-                }
-            }
-            description "Adjustment granularity in Gigahertz. As per ITU-T G.694.1, it is used to calculate nominal central frequency (in THz)";
-        }
-        grouping frequency-slot {
-            container nominal-central-frequency {
-                uses nominal-central-frequency-or-wavelength;
-                description "none";
-            }
-            leaf slot-width-number {
-                type uint64;
-                description "As per ITU-T G.694.1, this attribute is denoted as 'm' and is used to calculate the slot width (in GHz) as follows:
-                    12.5 × m where m is a positive integer and 12.5 is the slot width granularity in GHz.";
-            }
-            description "The frequency range allocated to a slot and unavailable to other slots within a flexible grid. A frequency slot is defined by its nominal central frequency. As per ITU-T G.694.1  the slot width is calculated as follows:
-                12.5 × <slotWidthNumber> where slotWidthNumber is a positive integer and 12.5 is the slot width granularity in GHz";
-        }
-
-}
diff --git a/models/tapi/src/main/yang/tapi-path-computation@2018-03-07.yang b/models/tapi/src/main/yang/tapi-path-computation@2018-10-16.yang
similarity index 61%
rename from models/tapi/src/main/yang/tapi-path-computation@2018-03-07.yang
rename to models/tapi/src/main/yang/tapi-path-computation@2018-10-16.yang
index ad933c5..d85aff5 100644
--- a/models/tapi/src/main/yang/tapi-path-computation@2018-03-07.yang
+++ b/models/tapi/src/main/yang/tapi-path-computation@2018-10-16.yang
@@ -8,39 +8,59 @@
         prefix tapi-common;
     }
     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>";
+    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 Path Computation Model definitions.
         Source: TapiPathComputation.uml
         Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.
         License: This module is distributed under the Apache License 2.0";
+    revision 2018-10-16 {
+        description "ONF Transport API version 2.1.0.
+          - The TAPI YANG models included in this TAPI release (v2.1.0) 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 are not backward compatible with previous TAPI releases.
+          - 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.
+        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
+        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.
+        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
+        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.
+        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
+        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" {
-        uses path-computation-context;
+        container path-computation-context {
+            uses path-computation-context;
+            description "Augments the base TAPI Context with PathComputationService information";
+        }
         description "Augments the base TAPI Context with PathComputationService information";
     }
 
@@ -48,9 +68,9 @@
     * definitions of refrences
     *************************/
     grouping path-ref {
-        leaf path-id {
+        leaf path-uuid {
             type leafref {
-                path '/tapi-common:context/tapi-path-computation:path/tapi-path-computation:uuid';
+                path '/tapi-common:context/tapi-path-computation:path-computation-context/tapi-path-computation:path/tapi-path-computation:uuid';
             }
             description "none";
         }
@@ -63,7 +83,7 @@
         grouping path {
             list link {
                 uses tapi-topology:link-ref;
-                key 'topology-id link-id';
+                key 'topology-uuid link-uuid';
                 config false;
                 min-elements 1;
                 description "none";
@@ -73,6 +93,15 @@
                 uses routing-constraint;
                 description "none";
             }
+            leaf direction {
+                type tapi-common:forwarding-direction;
+                description "none";
+            }
+            leaf layer-protocol-name {
+                type tapi-common:layer-protocol-name;
+                config false;
+                description "none";
+            }
             uses tapi-common:resource-spec;
             description "Path is described by an ordered list of TE Links. A TE Link is defined by a pair of Node/NodeEdgePoint IDs. A Connection is realized by concatenating link resources (associated with a Link) and the lower-level connections (cross-connections) in the different nodes";
         }
@@ -82,6 +111,19 @@
                 config false;
                 description "none";
             }
+            leaf layer-protocol-name {
+                type tapi-common:layer-protocol-name;
+                config false;
+                description "none";
+            }
+            leaf layer-protocol-qualifier {
+                type tapi-common:layer-protocol-qualifier;
+                description "none";
+            }
+            container capacity {
+                uses tapi-common:capacity;
+                description "none";
+            }
             leaf role {
                 type tapi-common:port-role;
                 config false;
@@ -92,11 +134,6 @@
                 config false;
                 description "The orientation of defined flow at the EndPoint.";
             }
-            leaf service-layer {
-                type tapi-common:layer-protocol-name;
-                config false;
-                description "none";
-            }
             uses tapi-common:local-class;
             description "The association of the FC to LTPs is made via EndPoints.
                 The EndPoint (EP) object class models the access to the FC function. 
@@ -109,7 +146,7 @@
         grouping path-computation-service {
             list path {
                 uses path-ref;
-                key 'path-id';
+                key 'path-uuid';
                 config false;
                 min-elements 1;
                 description "none";
@@ -125,6 +162,10 @@
                 uses routing-constraint;
                 description "none";
             }
+            container topology-constraint {
+                uses topology-constraint;
+                description "none";
+            }
             container objective-function {
                 uses path-objective-function;
                 description "none";
@@ -175,46 +216,38 @@
             description "none";
         }
         grouping routing-constraint {
-            container requested-capacity {
-                config false;
-                uses tapi-common:capacity;
-                description "none";
-            }
-            leaf service-level {
-                type string;
-                config false;
-                description "An abstract value the meaning of which is mutually agreed – typically represents metrics such as - Class of service, priority, resiliency, availability";
-            }
-            leaf-list path-layer {
-                type tapi-common:layer-protocol-name;
-                config false;
-                description "none";
-            }
             list cost-characteristic {
                 key 'cost-name';
-                config false;
                 uses tapi-topology:cost-characteristic;
                 description "The list of costs where each cost relates to some aspect of the TopologicalEntity.";
             }
             list latency-characteristic {
                 key 'traffic-property-name';
-                config false;
                 uses tapi-topology:latency-characteristic;
                 description "The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic.";
             }
-            list include-topology {
-                uses tapi-topology:topology-ref;
-                key 'topology-id';
-                config false;
+            list risk-diversity-characteristic {
+                key 'risk-characteristic-name';
+                uses tapi-topology:risk-characteristic;
                 description "none";
             }
-            list avoid-topology {
-                uses tapi-topology:topology-ref;
-                key 'topology-id';
-                config false;
+            leaf diversity-policy {
+                type diversity-policy;
                 description "none";
             }
-            uses tapi-common:local-class;
+            leaf route-objective-function {
+                type route-objective-function;
+                description "none";
+            }
+            leaf route-direction {
+                type tapi-common:forwarding-direction;
+                description "none";
+            }
+            leaf is-exclusive {
+                type boolean;
+                default "true";
+                description "To distinguish if the resources are to be exclusive to the service";
+            }
             description "none";
         }
         grouping path-computation-context {
@@ -231,6 +264,112 @@
             }
             description "none";
         }
+        grouping topology-constraint {
+            list include-topology {
+                uses tapi-topology:topology-ref;
+                key 'topology-uuid';
+                config false;
+                description "none";
+            }
+            list avoid-topology {
+                uses tapi-topology:topology-ref;
+                key 'topology-uuid';
+                config false;
+                description "none";
+            }
+            list include-path {
+                uses tapi-path-computation:path-ref;
+                key 'path-uuid';
+                config false;
+                description "none";
+            }
+            list exclude-path {
+                uses tapi-path-computation:path-ref;
+                key 'path-uuid';
+                config false;
+                description "none";
+            }
+            list include-link {
+                uses tapi-topology:link-ref;
+                key 'topology-uuid link-uuid';
+                config false;
+                description "This is a loose constraint - that is it is unordered and could be a partial list ";
+            }
+            list exclude-link {
+                uses tapi-topology:link-ref;
+                key 'topology-uuid link-uuid';
+                config false;
+                description "none";
+            }
+            list include-node {
+                uses tapi-topology:node-ref;
+                key 'topology-uuid node-uuid';
+                config false;
+                description "This is a loose constraint - that is it is unordered and could be a partial list";
+            }
+            list exclude-node {
+                uses tapi-topology:node-ref;
+                key 'topology-uuid node-uuid';
+                config false;
+                description "none";
+            }
+            leaf-list preferred-transport-layer {
+                type tapi-common:layer-protocol-name;
+                config false;
+                description "soft constraint requested by client to indicate the layer(s) of transport connection that it prefers to carry the service. This could be same as the service layer or one of the supported server layers";
+            }
+            description "none";
+        }
+
+    /***********************
+    * package type-definitions
+    **********************/ 
+        typedef route-objective-function {
+            type enumeration {
+                enum MIN_WORK_ROUTE_HOP {
+                    description "none";
+                }
+                enum MIN_WORK_ROUTE_COST {
+                    description "none";
+                }
+                enum MIN_WORK_ROUTE_LATENCY {
+                    description "none";
+                }
+                enum MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_HOP {
+                    description "none";
+                }
+                enum MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_COST {
+                    description "none";
+                }
+                enum MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_LATENCY {
+                    description "none";
+                }
+                enum LOAD_BALANCE_MAX_UNUSED_CAPACITY {
+                    description "none";
+                }
+            }
+            description "none";
+        }
+        typedef diversity-policy {
+            type enumeration {
+                enum SRLG {
+                    description "none";
+                }
+                enum SRNG {
+                    description "none";
+                }
+                enum SNG {
+                    description "none";
+                }
+                enum NODE {
+                    description "none";
+                }
+                enum LINK {
+                    description "none";
+                }
+            }
+            description "none";
+        }
 
     /***********************
     * package interfaces
@@ -248,6 +387,10 @@
                     uses routing-constraint;
                     description "none";
                 }
+                container topology-constraint {
+                    uses topology-constraint;
+                    description "none";
+                }
                 container objective-function {
                     uses path-objective-function;
                     description "none";
diff --git a/models/tapi/src/main/yang/tapi-photonic-media@2018-10-16.yang b/models/tapi/src/main/yang/tapi-photonic-media@2018-10-16.yang
new file mode 100644
index 0000000..3ac2932
--- /dev/null
+++ b/models/tapi/src/main/yang/tapi-photonic-media@2018-10-16.yang
@@ -0,0 +1,771 @@
+module tapi-photonic-media {
+    namespace "urn:onf:otcc:yang:tapi-photonic-media";
+    prefix tapi-photonic-media;
+    import tapi-common {
+        prefix tapi-common;
+    }
+    import tapi-connectivity {
+        prefix tapi-connectivity;
+    }
+    import tapi-topology {
+        prefix tapi-topology;
+    }
+    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 PhotonicMedia Model definitions.
+        Source: TapiPhotonicMedia.uml
+        Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.
+        License: This module is distributed under the Apache License 2.0";
+    revision 2018-10-16 {
+        description "ONF Transport API version 2.1.0.
+          - The TAPI YANG models included in this TAPI release (v2.1.0) 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 are not backward compatible with previous TAPI releases.
+          - 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 otsi-connection-end-point-spec {
+            uses otsi-connection-end-point-spec;
+            description "Augments the base LayerProtocol information in ConnectionEndPoint with OCH-specific information";
+        }
+        description "Augments the base LayerProtocol information in ConnectionEndPoint with OCH-specific information";
+    }
+    augment "/tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point" {
+        container media-channel-node-edge-point-spec {
+            uses media-channel-node-edge-point-spec;
+            description "Augments the base LayerProtocol information in NodeEdgePoint with OCH-specific information";
+        }
+        description "Augments the base LayerProtocol information in NodeEdgePoint with OCH-specific information";
+    }
+    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 otsi-assembly-connection-end-point-spec {
+            uses otsi-assembly-connection-end-point-spec;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:context/tapi-common:service-interface-point" {
+        container otsi-service-interface-point-spec {
+            uses otsi-service-interface-point-spec;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:context/tapi-connectivity:connectivity-context/tapi-connectivity:connectivity-service/tapi-connectivity:end-point" {
+        container otsi-connectivity-service-end-point-spec {
+            uses otsi-connectivity-service-end-point-spec;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:context/tapi-common:service-interface-point" {
+        container media-channel-service-interface-point-spec {
+            uses media-channel-service-interface-point-spec;
+            description "none";
+        }
+        description "none";
+    }
+    augment "/tapi-common:context/tapi-connectivity:connectivity-context/tapi-connectivity:connectivity-service/tapi-connectivity:end-point" {
+        container media-channel-service-interface-point-spec {
+            uses media-channel-service-interface-point-spec;
+            description "none";
+        }
+        description "none";
+    }
+    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 media-channel-connection-end-point-spec {
+            uses media-channel-connection-end-point-spec;
+            description "none";
+        }
+        description "none";
+    }
+    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 ots-connection-end-point-spec {
+            uses ots-connection-end-point-spec;
+            description "none";
+        }
+        description "none";
+    }
+    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 media-channel-assembly-spec {
+            uses media-channel-assembly-spec;
+            description "none";
+        }
+        description "none";
+    }
+    /***********************
+    * package object-classes
+    **********************/ 
+        grouping otsi-gserver-adaptation-pac {
+            leaf number-of-otsi {
+                type uint64;
+                config false;
+                description "none";
+            }
+            description "none";
+        }
+        grouping otsi-connection-end-point-spec {
+            container otsi-termination {
+                config false;
+                uses otsi-termination-pac;
+                description "none";
+            }
+            description "none";
+        }
+        grouping otsi-termination-pac {
+            container selected-central-frequency {
+                config false;
+                uses central-frequency;
+                description "none";
+            }
+            container selected-application-identifier {
+                config false;
+                uses application-identifier;
+                description "This attribute indicates the selected Application Identifier that is used by the OCh trail termination function. The syntax of ApplicationIdentifier is a pair {ApplicationIdentifierType, PrintableString}. The value of ApplicationIdentifierType is either STANDARD or PROPRIETARY. The value of PrintableString represents the standard application code as defined in the ITU-T Recommendations or a vendor-specific proprietary code. If the ApplicationIdentifierType is STANDARD the value of PrintableString represents a standard application code as defined in the ITU-T Recommendations. If the ApplicationIdentifierType is PROPRIETARY, the first six characters of the PrintableString must contain the Hexadecimal representation of an OUI assigned to the vendor whose implementation generated the Application Identifier; the remaining octets of the PrintableString are unspecified. The value of this attribute of an object instance has to be one of the values identified in the attribute SupportableApplicationIdentifierList of the same object instance. The values and value ranges of the optical interface parameters of a standard application code must be consistent with those values specified in the ITU-T Recommendation for that application code.";
+            }
+            leaf selected-modulation {
+                type modulation-technique;
+                default "UNDEFINED";
+                config false;
+                description "This parameter defines the modulation used at the source";
+            }
+            container selected-spectrum {
+                config false;
+                uses spectrum-band;
+                description "none";
+            }
+            container transmited-power {
+                config false;
+                uses power-properties-pac;
+                description "Measured power at the Transmitter.";
+            }
+            container received-power {
+                uses power-properties-pac;
+                description "none";
+            }
+            container laser-properties {
+                config false;
+                uses laser-properties-pac;
+                description "Laser properties.";
+            }
+            description "Provides status information only.";
+        }
+        grouping media-channel-pool-capability-pac {
+            list supportable-spectrum {
+                config false;
+                uses spectrum-band;
+                description "none";
+            }
+            list available-spectrum {
+                config false;
+                uses spectrum-band;
+                description "none";
+            }
+            list occupied-spectrum {
+                config false;
+                uses spectrum-band;
+                description "none";
+            }
+            description "none";
+        }
+        grouping media-channel-node-edge-point-spec {
+            container mc-pool {
+                config false;
+                uses media-channel-pool-capability-pac;
+                description "none";
+            }
+            description "none";
+        }
+        grouping otsi-routing-spec {
+            leaf optical-routing-strategy {
+                type optical-routing-strategy;
+                description "none";
+            }
+            description "none";
+        }
+        grouping media-channel-properties-pac {
+            container occupied-spectrum {
+                config false;
+                uses spectrum-band;
+                description "none";
+            }
+            container measured-power-ingress {
+                config false;
+                uses power-properties-pac;
+                description "none";
+            }
+            container measured-power-egress {
+                uses power-properties-pac;
+                description "none";
+            }
+            description "none";
+        }
+        grouping otsi-assembly-connection-end-point-spec {
+            container otsi-adapter {
+                config false;
+                uses otsi-gserver-adaptation-pac;
+                description "none";
+            }
+            container fec-parameters {
+                config false;
+                uses fec-properties-pac;
+                description "none";
+            }
+            description "none";
+        }
+        grouping otsi-capability-pac {
+            list supportable-lower-central-frequency {
+                config false;
+                uses central-frequency;
+                description "The lower frequency of the channel spectrum";
+            }
+            list supportable-upper-central-frequency {
+                config false;
+                uses central-frequency;
+                description "The Upper frequency of the channel spectrum";
+            }
+            list supportable-application-identifier {
+                config false;
+                uses application-identifier;
+                description "The list of supportable ApplicationIdentifiers.";
+            }
+            leaf-list supportable-modulation {
+                type modulation-technique;
+                config false;
+                description "This parameter defines the modulation used at the source";
+            }
+            container total-power-warn-threshold {
+                config false;
+                uses total-power-threshold-pac;
+                description "none";
+            }
+            description "Can read the status of the warning for the upper value that the power can reach.";
+        }
+        grouping otsi-service-interface-point-spec {
+            container otsi-capability {
+                config false;
+                uses otsi-capability-pac;
+                description "none";
+            }
+            description "none";
+        }
+        grouping otsi-connectivity-service-end-point-spec {
+            container otsi-config {
+                uses otsi-termination-config-pac;
+                description "none";
+            }
+            description "none";
+        }
+        grouping otsi-termination-config-pac {
+            container central-frequency {
+                uses central-frequency;
+                description "The central frequency of the laser. It is the oscillation frequency of the corresponding electromagnetic wave";
+            }
+            container spectrum {
+                uses spectrum-band;
+                description "none";
+            }
+            container application-identifier {
+                uses application-identifier;
+                description "This attribute indicates the selected Application Identifier.";
+            }
+            leaf modulation {
+                type modulation-technique;
+                description "The modulation techniqu selected at the source.";
+            }
+            leaf laser-control {
+                type laser-control-type;
+                description "Laser control can be FORCED-ON, FORCED-OFF or LASER-SHUTDOWN";
+            }
+            container transmit-power {
+                uses power-properties-pac;
+                description "Transmit power as requested.";
+            }
+            leaf total-power-warn-threshold-upper {
+                type decimal64 {
+                    fraction-digits 7;
+                }
+                description "Allows to configure the Upper power threshold which is expected to be different from Default, but within the Min and Max values specified as OTSi SIP capability.";
+            }
+            leaf total-power-warn-threshold-lower {
+                type decimal64 {
+                    fraction-digits 7;
+                }
+                description "Allows to configure the Lowerpower threshold which is expected to be different from Default, but within the Min and Max values specified as OTSi SIP capability.";
+            }
+            description "none";
+        }
+        grouping fec-properties-pac {
+            leaf pre-fec-ber {
+                type uint64;
+                config false;
+                description "counter: bit error rate before correction by FEC";
+            }
+            leaf post-fec-ber {
+                type uint64;
+                config false;
+                description "counter: bit error rate after correction by FEC";
+            }
+            leaf corrected-bytes {
+                type uint64;
+                config false;
+                description "Bytes corrected between those that were received corrupted";
+            }
+            leaf corrected-bits {
+                type uint64;
+                config false;
+                description "Bits corrected between those that were received corrupted";
+            }
+            leaf uncorrectable-bytes {
+                type uint64;
+                config false;
+                description "Bytes that could not be corrected by FEC";
+            }
+            leaf uncorrectable-bits {
+                type uint64;
+                config false;
+                description "Bits that could not be corrected by FEC";
+            }
+            description "none";
+        }
+        grouping media-channel-service-interface-point-spec {
+            container mc-pool {
+                config false;
+                uses media-channel-pool-capability-pac;
+                description "none";
+            }
+            description "none";
+        }
+        grouping media-channel-connectivity-service-end-point-spec {
+            container mc-config {
+                uses media-channel-config-pac;
+                description "none";
+            }
+            description "none";
+        }
+        grouping media-channel-config-pac {
+            container spectrum {
+                uses spectrum-band;
+                description "none";
+            }
+            description "none";
+        }
+        grouping media-channel-connection-end-point-spec {
+            container media-channel {
+                config false;
+                uses media-channel-properties-pac;
+                description "none";
+            }
+            description "none";
+        }
+        grouping ots-connection-end-point-spec {
+            container ots-media-channel {
+                config false;
+                uses media-channel-properties-pac;
+                description "none";
+            }
+            description "none";
+        }
+        grouping media-channel-assembly-spec {
+            description "none";
+        }
+        grouping laser-properties-pac {
+            leaf laser-status {
+                type laser-control-status-type;
+                config false;
+                description "none";
+            }
+            leaf laser-application-type {
+                type laser-type;
+                config false;
+                description "The type of laser, its operational wavelengths, and its applications. String size 255.";
+            }
+            leaf laser-bias-current {
+                type decimal64 {
+                    fraction-digits 7;
+                }
+                config false;
+                description "The Bias current of the laser that is the medium polarization current of the laser.";
+            }
+            leaf laser-temperature {
+                type decimal64 {
+                    fraction-digits 7;
+                }
+                config false;
+                description "The temperature of the laser";
+            }
+            description "none";
+        }
+        grouping power-properties-pac {
+            leaf total-power {
+                type decimal64 {
+                    fraction-digits 7;
+                }
+                description "The total power at any point in a channel specified in dBm.";
+            }
+            leaf power-spectral-density {
+                type decimal64 {
+                    fraction-digits 7;
+                }
+                config false;
+                description "This describes how power of a signal  is distributed over frequency specified in nW/MHz";
+            }
+            description "Indication with severity warning raised when a total power value measured is above the threshold.";
+        }
+        grouping total-power-threshold-pac {
+            leaf total-power-upper-warn-threshold-default {
+                type decimal64 {
+                    fraction-digits 7;
+                }
+                description "Can read the value of the default  threshold that was set";
+            }
+            leaf total-power-upper-warn-threshold-min {
+                type decimal64 {
+                    fraction-digits 7;
+                }
+                description "Can read the value of the lower threshold that was set";
+            }
+            leaf total-power-upper-warn-threshold-max {
+                type decimal64 {
+                    fraction-digits 7;
+                }
+                description "Can  read the value of the upper threshold that was set";
+            }
+            leaf total-power-lower-warn-threshold-default {
+                type decimal64 {
+                    fraction-digits 7;
+                }
+                description "Can read the value of the default  threshold that was set";
+            }
+            leaf total-power-lower-warn-threshold-max {
+                type decimal64 {
+                    fraction-digits 7;
+                }
+                description "Can  read the value of the upper threshold that was set";
+            }
+            leaf total-power-lower-warn-threshold-min {
+                type decimal64 {
+                    fraction-digits 7;
+                }
+                description "Can read the value of the lower threshold that was set";
+            }
+            description "none";
+        }
+
+    /***********************
+    * package type-definitions
+    **********************/ 
+        identity PHOTONIC_LAYER_QUALIFIER {
+        	base tapi-common:LAYER_PROTOCOL_QUALIFIER;
+            description "none";
+        }
+        identity PHOTONIC_LAYER_QUALIFIER_OTSi {
+            base PHOTONIC_LAYER_QUALIFIER;
+            description "none";
+        }
+        identity PHOTONIC_LAYER_QUALIFIER_OTSiA {
+            base PHOTONIC_LAYER_QUALIFIER;
+            description "none";
+        }
+        identity PHOTONIC_LAYER_QUALIFIER_OTSiG {
+            base PHOTONIC_LAYER_QUALIFIER;
+            description "none";
+        }
+        identity PHOTONIC_LAYER_QUALIFIER_NMC {
+            base PHOTONIC_LAYER_QUALIFIER;
+            description "none";
+        }
+        identity PHOTONIC_LAYER_QUALIFIER_NMCA {
+            base PHOTONIC_LAYER_QUALIFIER;
+            description "none";
+        }
+        identity PHOTONIC_LAYER_QUALIFIER_SMC {
+            base PHOTONIC_LAYER_QUALIFIER;
+            description "none";
+        }
+        identity PHOTONIC_LAYER_QUALIFIER_SMCA {
+            base PHOTONIC_LAYER_QUALIFIER;
+            description "none";
+        }
+        identity PHOTONIC_LAYER_QUALIFIER_OCH {
+            base PHOTONIC_LAYER_QUALIFIER;
+            description "none";
+        }
+        identity PHOTONIC_LAYER_QUALIFIER_OMS {
+            base PHOTONIC_LAYER_QUALIFIER;
+            description "none";
+        }
+        identity PHOTONIC_LAYER_QUALIFIER_OTS {
+            base PHOTONIC_LAYER_QUALIFIER;
+            description "none";
+        }
+        grouping application-identifier {
+            leaf application-identifier-type {
+                type application-identifier-type;
+                description "The ITU-T recommendation which defines the application code format.";
+            }
+            leaf application-code {
+                type string;
+                description "none";
+            }
+            description "The syntax of ApplicationIdentifier is a pair {ApplicationIdentifierType, PrintableString}. The value of ApplicationIdentifierType is either STANDARD or PROPRIETARY. The value of PrintableString represents the standard application code as defined in the ITU-T Recommendations or a vendor-specific proprietary code. If the ApplicationIdentifierType is STANDARD the value of PrintableString represents a standard application code as defined in the ITU-T Recommendations. If the ApplicationIdentifierType is PROPRIETARY, the first six characters of the PrintableString must contain the Hexadecimal representation of an OUI assigned to the vendor whose implementation generated the Application Identifier; the remaining octets of the PrintableString are unspecified. The value of this attribute of an object instance has to be one of the values identified in the attribute SupportableApplicationIdentifierList of the same object instance. The values and value ranges of the optical interface parameters of a standard application code must be consistent with those values specified in the ITU-T Recommendation for that application code.";
+        }
+        grouping central-frequency {
+            container frequency-constraint {
+                uses frequency-constraint;
+                description "none";
+            }
+            leaf central-frequency {
+                type uint64;
+                description "The central frequency of the laser specified in MHz. It is the oscillation frequency of the corresponding electromagnetic wave. ";
+            }
+            description "This data-type holds the central frequency information as well frequency constraints in terms of GridType ( FIXED grid (DWDM or CWDM) or FLEX grid) and AdjustmentGranularity.";
+        }
+        typedef optical-routing-strategy {
+            type enumeration {
+                enum OPTIMAL_OSNR {
+                    description "none";
+                }
+                enum NO_RELAY {
+                    description "none";
+                }
+                enum MIN_RELAY {
+                    description "none";
+                }
+                enum PREFERRED_NO_CHANGE_WAVELENGTH_AS_RESTORE {
+                    description "none";
+                }
+                enum PREFERRED_NO_SKIPPING_WAVELENGTH {
+                    description "none";
+                }
+            }
+            description "none";
+        }
+        typedef application-identifier-type {
+            type enumeration {
+                enum PROPRIETARY {
+                    description "none";
+                }
+                enum ITUT_G959_1 {
+                    description "none";
+                }
+                enum ITUT_G698_1 {
+                    description "none";
+                }
+                enum ITUT_G698_2 {
+                    description "none";
+                }
+                enum ITUT_G696_1 {
+                    description "none";
+                }
+                enum ITUT_G695 {
+                    description "none";
+                }
+            }
+            description "none";
+        }
+        typedef grid-type {
+            type enumeration {
+                enum DWDM {
+                    description "Fixed frequency grid in C & L bands as specified in ITU-T G.694.1
+                        ";
+                }
+                enum CWDM {
+                    description "Fixed frequency grid as specified in ITU-T G.694.2";
+                }
+                enum FLEX {
+                    description "Flexible frequency grid as specified in ITU-T G.694.1. In this case,
+                        - the allowed frequency slots have a nominal central frequency (in THz) defined by:
+                        193.1 + n × 0.00625 where n is a positive or negative integer including 0 and 0.00625 is the nominal central frequency granularity in THz
+                        - and a slot width defined by:
+                        12.5 × m where m is a positive integer and 12.5 is the slot width granularity in GHz.
+                        Any combination of frequency slots is allowed as long as no two frequency slots overlap.";
+                }
+                enum GRIDLESS {
+                    description "none";
+                }
+                enum UNSPECIFIED {
+                    description "Unspecified/proprietary frequency grid";
+                }
+            }
+            description "The frequency grid standard that specify reference set of frequencies used to denote allowed nominal central frequencies that may be used for defining applications.";
+        }
+        typedef adjustment-granularity {
+            type enumeration {
+                enum G_100GHZ {
+                    description "100000 MHz";
+                }
+                enum G_50GHZ {
+                    description "50000 MHz";
+                }
+                enum G_25GHZ {
+                    description "25000 MHz";
+                }
+                enum G_12_5GHZ {
+                    description "12500 MHz";
+                }
+                enum G_6_25GHZ {
+                    description "6250 MHz";
+                }
+                enum G_3_125GHZ {
+                    description "3125 MHz";
+                }
+                enum UNCONSTRAINED {
+                    description "none";
+                }
+            }
+            description "Adjustment granularity in Gigahertz. As per ITU-T G.694.1, it is used to calculate nominal central frequency";
+        }
+        grouping spectrum-band {
+            leaf upper-frequency {
+                type uint64;
+                description "The upper frequency bound of the media channel spectrum specified in MHz";
+            }
+            leaf lower-frequency {
+                type uint64;
+                description "The lower frequency bound of the media channel spectrum specified in MHz";
+            }
+            container frequency-constraint {
+                uses frequency-constraint;
+                description "none";
+            }
+            description "This data-type holds the spectrum information in termsof upper/lower frequency directly or optionally the information to determin this in terms of the nominal central frequency and spectral width for a FIXED grid (DWDM or CWDM) and FLEX grid type systems.";
+        }
+        typedef modulation-technique {
+            type enumeration {
+                enum RZ {
+                    description "none";
+                }
+                enum NRZ {
+                    description "none";
+                }
+                enum BPSK {
+                    description "none";
+                }
+                enum DPSK {
+                    description "none";
+                }
+                enum QPSK {
+                    description "none";
+                }
+                enum 8QAM {
+                    description "none";
+                }
+                enum 16QAM {
+                    description "none";
+                }
+                enum PAM4 {
+                    description "none";
+                }
+                enum PAM8 {
+                    description "none";
+                }
+                enum UNDEFINED {
+                    description "none";
+                }
+            }
+            description "none";
+        }
+        typedef laser-type {
+            type enumeration {
+                enum PUMP {
+                    description "none";
+                }
+                enum MODULATED {
+                    description "none";
+                }
+                enum PULSE {
+                    description "none";
+                }
+            }
+            description "none";
+        }
+        typedef photonic-layer-qualifier {
+            type identityref {
+                base PHOTONIC_LAYER_QUALIFIER;
+            }
+            description "none";
+        }
+        typedef laser-control-type {
+            type enumeration {
+                enum FORCED-ON {
+                    description "none";
+                }
+                enum FORCED-OFF {
+                    description "none";
+                }
+                enum AUTOMATIC-LASER-SHUTDOWN {
+                    description "none";
+                }
+                enum UNDEFINED {
+                    description "none";
+                }
+            }
+            description "none";
+        }
+        typedef laser-control-status-type {
+            type enumeration {
+                enum ON {
+                    description "none";
+                }
+                enum OFF {
+                    description "none";
+                }
+                enum PULSING {
+                    description "none";
+                }
+                enum UNDEFINED {
+                    description "none";
+                }
+            }
+            description "none";
+        }
+        grouping frequency-constraint {
+            leaf adjustment-granularity {
+                type adjustment-granularity;
+                description "Adjustment granularity in Gigahertz. As per ITU-T G.694.1, it is used to calculate nominal central frequency (in THz)";
+            }
+            leaf grid-type {
+                type grid-type;
+                description "Specifies the frequency grid standard used to determine the nominal central frequency and frequency slot width";
+            }
+            description "This data-type holds the frequency constraint information in terms of GridType ( FIXED grid (DWDM or CWDM) or FLEX grid) and AdjustmentGranularity.";
+        }
+
+}
diff --git a/models/tapi/src/main/yang/tapi-topology@2018-03-07.yang b/models/tapi/src/main/yang/tapi-topology@2018-10-16.yang
similarity index 89%
rename from models/tapi/src/main/yang/tapi-topology@2018-03-07.yang
rename to models/tapi/src/main/yang/tapi-topology@2018-10-16.yang
index 3a21d94..4b7c9f2 100644
--- a/models/tapi/src/main/yang/tapi-topology@2018-03-07.yang
+++ b/models/tapi/src/main/yang/tapi-topology@2018-10-16.yang
@@ -5,39 +5,59 @@
         prefix tapi-common;
     }
     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>";
+    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 Topology Model definitions.
         Source: TapiTopology.uml
         Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.
         License: This module is distributed under the Apache License 2.0";
+    revision 2018-10-16 {
+        description "ONF Transport API version 2.1.0.
+          - The TAPI YANG models included in this TAPI release (v2.1.0) 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 are not backward compatible with previous TAPI releases.
+          - 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.
+        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
+        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.
+        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
+        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.
+        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
+        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" {
-        uses topology-context;
+        container topology-context {
+            uses topology-context;
+            description "Augments the base TAPI Context with TopologyService information";
+        }
         description "Augments the base TAPI Context with TopologyService information";
     }
 
@@ -46,9 +66,9 @@
     *************************/
 
     grouping topology-ref {
-        leaf topology-id {
+        leaf topology-uuid {
             type leafref {
-                path '/tapi-common:context/tapi-topology:topology/tapi-topology:uuid';
+                path '/tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:uuid';
             }
             description "none";
         }
@@ -57,9 +77,9 @@
 
     grouping link-ref {
         uses topology-ref;
-        leaf link-id {
+        leaf link-uuid {
             type leafref {
-                path '/tapi-common:context/tapi-topology:topology/tapi-topology:link/tapi-topology:uuid';
+                path '/tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:link/tapi-topology:uuid';
             }
             description "none";
         }
@@ -68,20 +88,20 @@
 
     grouping node-ref {
         uses topology-ref;
-        leaf node-id {
+        leaf node-uuid {
             type leafref {
-                path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:uuid';
+                path '/tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:node/tapi-topology:uuid';
             }
             description "none";
         }
         description "none";
     }
 
-    grouping owned-node-edge-point-ref {
+    grouping node-edge-point-ref {
         uses node-ref;
-        leaf owned-node-edge-point-id {
+        leaf node-edge-point-uuid {
             type leafref {
-                path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-topology:uuid';
+                path '/tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-topology:uuid';
             }
             description "none";
         }
@@ -90,9 +110,9 @@
 
     grouping node-rule-group-ref {
         uses node-ref;
-        leaf node-rule-group-id {
+        leaf node-rule-group-uuid {
             type leafref {
-                path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:node-rule-group/tapi-topology:uuid';
+                path '/tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:node/tapi-topology:node-rule-group/tapi-topology:uuid';
             }
             description "none";
         }
@@ -104,8 +124,8 @@
     **********************/ 
         grouping link {
             list node-edge-point {
-                uses owned-node-edge-point-ref;
-                key 'topology-id node-id owned-node-edge-point-id';
+                uses node-edge-point-ref;
+                key 'topology-uuid node-uuid node-edge-point-uuid';
                 config false;
                 min-elements 2;
                 description "none";
@@ -146,8 +166,8 @@
                 description "none";
             }
             list aggregated-node-edge-point {
-            	uses owned-node-edge-point-ref;
-                key 'topology-id node-id owned-node-edge-point-id';
+            	uses node-edge-point-ref;
+                key 'topology-uuid node-uuid node-edge-point-uuid';
                 config false;
                 description "none";
             }
@@ -217,15 +237,20 @@
                 config false;
                 description "none";
             }
+            leaf-list supported-cep-layer-protocol-qualifier {
+                type tapi-common:layer-protocol-qualifier;
+                min-elements 1;
+                description "none";
+            }
             list aggregated-node-edge-point {
-            	uses owned-node-edge-point-ref;
-                key 'topology-id node-id owned-node-edge-point-id';
+            	uses node-edge-point-ref;
+                key 'topology-uuid node-uuid node-edge-point-uuid';
                 config false;
                 description "none";
             }
             list mapped-service-interface-point {
                 uses tapi-common:service-interface-point-ref;
-                key 'service-interface-point-id';
+                key 'service-interface-point-uuid';
                 config false;
                 description "NodeEdgePoint mapped to more than ServiceInterfacePoint (slicing/virtualizing) or a ServiceInterfacePoint mapped to more than one NodeEdgePoint (load balancing/Resilience) should be considered experimental";
             }
@@ -342,7 +367,7 @@
         grouping network-topology-service {
             list topology {
                 uses topology-ref;
-                key 'topology-id';
+                key 'topology-uuid';
                 config false;
                 description "none";
             }
@@ -372,7 +397,7 @@
             }
             list associated-node-rule-group {
                 uses node-rule-group-ref;
-                key 'topology-id node-id node-rule-group-id';
+                key 'topology-uuid node-uuid node-rule-group-uuid';
                 min-elements 2;
                 description "none";
             }
@@ -391,14 +416,14 @@
                 description "none";
             }
             list node-edge-point {
-            	uses owned-node-edge-point-ref;
-                key 'topology-id node-id owned-node-edge-point-id';
+            	uses node-edge-point-ref;
+                key 'topology-uuid node-uuid node-edge-point-uuid';
                 min-elements 1;
                 description "none";
             }
             list composed-rule-group {
                 uses node-rule-group-ref;
-                key 'topology-id node-id node-rule-group-id';
+                key 'topology-uuid node-uuid node-rule-group-uuid';
                 description "none";
             }
             list inter-rule-group {
diff --git a/models/tapi/src/main/yang/tapi-virtual-network@2018-03-07.yang b/models/tapi/src/main/yang/tapi-virtual-network@2018-10-16.yang
similarity index 81%
rename from models/tapi/src/main/yang/tapi-virtual-network@2018-03-07.yang
rename to models/tapi/src/main/yang/tapi-virtual-network@2018-10-16.yang
index 3bea4fb..25f33d8 100644
--- a/models/tapi/src/main/yang/tapi-virtual-network@2018-03-07.yang
+++ b/models/tapi/src/main/yang/tapi-virtual-network@2018-10-16.yang
@@ -8,48 +8,68 @@
         prefix tapi-common;
     }
     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>";
+    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 Virtual Network Model definitions.
         Source: TapiVirtualNetwork.uml
         Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.
         License: This module is distributed under the Apache License 2.0";
+    revision 2018-10-16 {
+        description "ONF Transport API version 2.1.0.
+          - The TAPI YANG models included in this TAPI release (v2.1.0) 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 are not backward compatible with previous TAPI releases.
+          - 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.
+        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
+        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.
+        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
+        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.
+        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
+        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" {
-        uses virtual-network-context;
+        container virtual-network-context {
+            uses virtual-network-context;
+            description "Augments the base TAPI Context with VirtualNetworkService information";
+        }
         description "Augments the base TAPI Context with VirtualNetworkService information";
     }
     /*************************
      * definitions of refrences
      *************************/
      grouping virtual-nw-service-ref {
-         leaf virtual-nw-service-id {
+         leaf virtual-nw-service-uuid {
              type leafref {
-                 path '/tapi-common:context/tapi-virtual-network:virtual-nw-service/tapi-virtual-network:uuid';
+                 path '/tapi-common:context/tapi-virtual-network:virtual-network-context/tapi-virtual-network:virtual-nw-service/tapi-virtual-network:uuid';
              }
              description "none";
          }
@@ -72,7 +92,7 @@
             }
             list diversity-exclusion {
                 uses virtual-nw-service-ref;
-                key 'virtual-nw-service-id';
+                key 'virtual-nw-service-uuid';
                 config false;
                 description "none";
             }
