diff --git a/sdnr/wt/apigateway/feature/pom.xml b/sdnr/wt/apigateway/feature/pom.xml
index 11f02d4..65e0726 100644
--- a/sdnr/wt/apigateway/feature/pom.xml
+++ b/sdnr/wt/apigateway/feature/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/apigateway/installer/pom.xml b/sdnr/wt/apigateway/installer/pom.xml
index 426a8be..ef6e239 100755
--- a/sdnr/wt/apigateway/installer/pom.xml
+++ b/sdnr/wt/apigateway/installer/pom.xml
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
@@ -90,25 +90,6 @@
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-dependency-plugin</artifactId>
                 <executions>
-                    <!--           <execution> -->
-                    <!--             <id>copy-dependencies</id> -->
-                    <!--             <goals> -->
-                    <!--               <goal>copy-dependencies</goal> -->
-                    <!--             </goals> -->
-                    <!--             <phase>prepare-package</phase> -->
-                    <!--             <configuration> -->
-                    <!--               <transitive>true</transitive> -->
-                    <!--               <outputDirectory>${project.build.directory}/assembly/system</outputDirectory> -->
-                    <!--               <overWriteReleases>false</overWriteReleases> -->
-                    <!--               <overWriteSnapshots>true</overWriteSnapshots> -->
-                    <!--               <overWriteIfNewer>true</overWriteIfNewer> -->
-                    <!--               <useRepositoryLayout>true</useRepositoryLayout> -->
-                    <!--               <addParentPoms>false</addParentPoms> -->
-                    <!--               <copyPom>false</copyPom> -->
-                    <!--               <includeArtifactIds>sdnr-wt-apigateway-provider,${application.name}</includeArtifactIds> -->
-                    <!--               <scope>provided</scope> -->
-                    <!--             </configuration> -->
-                    <!--           </execution> -->
                     <execution>
                         <id>copy-nested-dependencies</id>
                         <goals>
@@ -124,8 +105,6 @@
                             <useRepositoryLayout>true</useRepositoryLayout>
                             <addParentPoms>false</addParentPoms>
                             <copyPom>false</copyPom>
-                            <!--<includeArtifactIds>sdnr-wt-apigateway-provider,${application.name}</includeArtifactIds>-->
-                            <!--<scope>provided</scope>-->
                         </configuration>
                     </execution>
                 </executions>
diff --git a/sdnr/wt/apigateway/pom.xml b/sdnr/wt/apigateway/pom.xml
index 499caaa..ca0027b 100755
--- a/sdnr/wt/apigateway/pom.xml
+++ b/sdnr/wt/apigateway/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/apigateway/provider/pom.xml b/sdnr/wt/apigateway/provider/pom.xml
index 898b915..3dd1682 100644
--- a/sdnr/wt/apigateway/provider/pom.xml
+++ b/sdnr/wt/apigateway/provider/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/common-yang/iana-crypt-hash/pom.xml b/sdnr/wt/common-yang/iana-crypt-hash/pom.xml
index a6aaa8f..6bd1b3e 100755
--- a/sdnr/wt/common-yang/iana-crypt-hash/pom.xml
+++ b/sdnr/wt/common-yang/iana-crypt-hash/pom.xml
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/common-yang/ietf-alarms/pom.xml b/sdnr/wt/common-yang/ietf-alarms/pom.xml
index fb181a6..eb24462 100755
--- a/sdnr/wt/common-yang/ietf-alarms/pom.xml
+++ b/sdnr/wt/common-yang/ietf-alarms/pom.xml
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/common-yang/onap/pom.xml b/sdnr/wt/common-yang/onap/pom.xml
index d3960ed..102b12f 100755
--- a/sdnr/wt/common-yang/onap/pom.xml
+++ b/sdnr/wt/common-yang/onap/pom.xml
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/common-yang/openroadm-pm-types/pom.xml b/sdnr/wt/common-yang/openroadm-pm-types/pom.xml
index 384d8d7..7fe1258 100755
--- a/sdnr/wt/common-yang/openroadm-pm-types/pom.xml
+++ b/sdnr/wt/common-yang/openroadm-pm-types/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/common-yang/pom.xml b/sdnr/wt/common-yang/pom.xml
index 76f0aa1..15cfd1d 100755
--- a/sdnr/wt/common-yang/pom.xml
+++ b/sdnr/wt/common-yang/pom.xml
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/common-yang/rfc7317-ietf-system/pom.xml b/sdnr/wt/common-yang/rfc7317-ietf-system/pom.xml
index 4b6cc61..ae8a7b7 100755
--- a/sdnr/wt/common-yang/rfc7317-ietf-system/pom.xml
+++ b/sdnr/wt/common-yang/rfc7317-ietf-system/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/common-yang/rfc8341/pom.xml b/sdnr/wt/common-yang/rfc8341/pom.xml
index d2bdbea..b7180e0 100755
--- a/sdnr/wt/common-yang/rfc8341/pom.xml
+++ b/sdnr/wt/common-yang/rfc8341/pom.xml
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/common-yang/utils/pom.xml b/sdnr/wt/common-yang/utils/pom.xml
index dd84481..3708d04 100644
--- a/sdnr/wt/common-yang/utils/pom.xml
+++ b/sdnr/wt/common-yang/utils/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
@@ -74,16 +74,9 @@
             <scope>provided</scope>
         </dependency>
         <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>sdnr-wt-data-provider-model</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
             <groupId>org.opendaylight.netconf</groupId>
             <artifactId>sal-netconf-connector</artifactId>
             <scope>test</scope>
         </dependency>
     </dependencies>
-
 </project>
diff --git a/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/YangToolsMapper.java b/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/YangToolsMapper.java
index f406ea9..7d73afa 100644
--- a/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/YangToolsMapper.java
+++ b/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/YangToolsMapper.java
@@ -22,11 +22,13 @@
 package org.onap.ccsdk.features.sdnr.wt.yang.mapper;
 
 import com.fasterxml.jackson.annotation.JsonInclude.Include;
+import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.JsonMappingException;
 import com.fasterxml.jackson.databind.KeyDeserializer;
 import com.fasterxml.jackson.databind.MapperFeature;
 import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.PropertyNamingStrategy;
+import com.fasterxml.jackson.databind.PropertyNamingStrategies;
 import org.onap.ccsdk.features.sdnr.wt.yang.mapper.mapperextensions.YangToolsBuilderAnnotationIntrospector;
 import org.onap.ccsdk.features.sdnr.wt.yang.mapper.mapperextensions.YangToolsModule;
 import org.slf4j.Logger;
@@ -44,7 +46,7 @@
     private final YangToolsBuilderAnnotationIntrospector annotationIntrospector;
     private final YangToolsModule module;
     private static final long serialVersionUID = 1L;
-
+    private boolean isModuleRegistered=false;
     public YangToolsMapper() {
         this(new YangToolsBuilderAnnotationIntrospector());
     }
@@ -54,13 +56,12 @@
 
         this.annotationIntrospector = yangToolsBuilderAnnotationIntrospector;
         this.module = new YangToolsModule();
+        this.registerModule(this.module);
         configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
-        setPropertyNamingStrategy(PropertyNamingStrategy.KEBAB_CASE);
+        setPropertyNamingStrategy(PropertyNamingStrategies.KEBAB_CASE);
         setSerializationInclusion(Include.NON_NULL);
         enable(MapperFeature.USE_GETTERS_AS_SETTERS);
         setAnnotationIntrospector(yangToolsBuilderAnnotationIntrospector);
-        registerModule(this.module);
-
     }
     public void addDeserializer(Class<?> clsToDeserialize, String builderClassName) {
         this.annotationIntrospector.addDeserializer(clsToDeserialize, builderClassName);
@@ -69,5 +70,21 @@
     public void addKeyDeserializer(Class<?> type, KeyDeserializer deserializer) {
         this.module.addKeyDeserializer(type, deserializer);
     }
+    @Override
+    public <T> T readValue(String content, Class<T> valueType) throws JsonProcessingException, JsonMappingException {
+    	if(!this.isModuleRegistered) {
+    		this.registerModule(this.module);
+    		this.isModuleRegistered=true;
+    	}
+    	return super.readValue(content, valueType);
+    }
+    @Override
+    public String writeValueAsString(Object value) throws JsonProcessingException {
+    	if(!this.isModuleRegistered) {
+    		this.registerModule(this.module);
+    		this.isModuleRegistered=true;
+    	}
+    	return super.writeValueAsString(value);
+    }
 
 }
diff --git a/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/YangToolsMapperHelper.java b/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/YangToolsMapperHelper.java
index d468e07..fe7631a 100644
--- a/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/YangToolsMapperHelper.java
+++ b/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/YangToolsMapperHelper.java
@@ -22,6 +22,8 @@
 package org.onap.ccsdk.features.sdnr.wt.yang.mapper;
 
 import com.fasterxml.jackson.databind.DeserializationContext;
+import com.google.common.collect.Maps;
+
 import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
@@ -32,6 +34,7 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Map;
 import java.util.Optional;
 import java.util.concurrent.ConcurrentHashMap;
 import javax.annotation.Nullable;
@@ -40,6 +43,8 @@
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
 import org.opendaylight.yangtools.concepts.Builder;
 import org.opendaylight.yangtools.yang.binding.EventInstantAware;
+import org.opendaylight.yangtools.yang.binding.Identifiable;
+import org.opendaylight.yangtools.yang.binding.Identifier;
 import org.opendaylight.yangtools.yang.binding.Notification;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
@@ -278,12 +283,6 @@
         return notification instanceof DOMEvent;
     }
 
-    /**
-     * Get time instant from notification if available or default
-     * @param notification
-     * @param defaultValue
-     * @return DateAndTime
-     */
     public static DateAndTime getTime(Notification notification, Instant defaultValue) {
         Instant time;
         if (hasTime(notification)) { // If notification class extends/implements the EventInstantAware
@@ -296,21 +295,6 @@
         return DateAndTime.getDefaultInstance(ZonedDateTime.ofInstant(time, ZoneOffset.UTC).format(formatterOutput));
     }
 
-    /**
-     * Get time instant from notification if available or actual time
-     * @param notification
-     * @return DateAndTime
-     */
-    public static DateAndTime getTime(Notification notification) {
-        return getTime(notification, Instant.now());
-    }
-
-    /**
-     * Get time instant from DOM notification if available or default
-     * @param DOM notification
-     * @param defaultValue
-     * @return DateAndTime
-     */
     public static DateAndTime getTime(DOMNotification notification, Instant defaultValue) {
         Instant time;
         if (hasTime(notification)) { // If notification class extends/implements the EventInstantAware
@@ -322,13 +306,9 @@
         }
         return DateAndTime.getDefaultInstance(ZonedDateTime.ofInstant(time, ZoneOffset.UTC).format(formatterOutput));
     }
-
-    /**
-     * Get time instant from notification if available or actual time
-     * @param DOM notification
-     * @return DateAndTime
-     */
-    public static DateAndTime getTime(DOMNotification notification) {
-        return getTime(notification, Instant.now());
+    
+    
+    public static <K extends Identifier<V>, V extends Identifiable<K>> Map<K,V> toMap(List<V> list) {
+    	 return list == null || list.isEmpty() ? null : Maps.uniqueIndex(list, Identifiable::key);
     }
 }
diff --git a/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/mapperextensions/YangToolsDeserializerModifier.java b/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/mapperextensions/YangToolsDeserializerModifier.java
index 58e75bd..0fe8ab9 100644
--- a/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/mapperextensions/YangToolsDeserializerModifier.java
+++ b/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/mapperextensions/YangToolsDeserializerModifier.java
@@ -29,6 +29,9 @@
 import com.fasterxml.jackson.databind.JsonDeserializer;
 import com.fasterxml.jackson.databind.KeyDeserializer;
 import com.fasterxml.jackson.databind.deser.BeanDeserializerModifier;
+import com.fasterxml.jackson.databind.type.ArrayType;
+import com.fasterxml.jackson.databind.type.MapType;
+
 import java.io.IOException;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
@@ -48,80 +51,87 @@
 
 public class YangToolsDeserializerModifier extends BeanDeserializerModifier {
 
-    private static final Logger LOG = LoggerFactory.getLogger(YangToolsDeserializerModifier.class);
-    private static final String getEnumMethodName = "valueOf";
-    private static final String getEnumMethodName2 = "forName";
+	private static final Logger LOG = LoggerFactory.getLogger(YangToolsDeserializerModifier.class);
+	private static final String getEnumMethodName = "valueOf";
+	private static final String getEnumMethodName2 = "forName";
 
-    @SuppressWarnings("unchecked")
-    public static Enum<?> parseEnum(String value, Class<?> clazz) throws IllegalAccessException,
-            IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException {
-        try {
-            Method method = clazz.getDeclaredMethod(getEnumMethodName, String.class);
-            Enum<?> result = (Enum<?>) method.invoke(null, value);
-            LOG.debug("Deserialize '{}' with class '{}' to '{}'", value, clazz.getName(), result);
-            return result;
-        } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException
-                | NoSuchElementException | SecurityException e) {
-            Method method = clazz.getDeclaredMethod(getEnumMethodName2, String.class);
-            Optional<Enum<?>> result = (Optional<Enum<?>>) method.invoke(null, value);
-            LOG.debug("Deserialize '{}' with class '{}' to '{}'", value, clazz.getName(), result);
-            return result.orElseThrow();
-        }
-    }
+	@SuppressWarnings("unchecked")
+	public static Enum<?> parseEnum(String value, Class<?> clazz) throws IllegalAccessException,
+			IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException {
+		try {
+			Method method = clazz.getDeclaredMethod(getEnumMethodName, String.class);
+			Enum<?> result = (Enum<?>) method.invoke(null, value);
+			LOG.debug("Deserialize '{}' with class '{}' to '{}'", value, clazz.getName(), result);
+			return result;
+		} catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException
+				| NoSuchElementException | SecurityException e) {
+			Method method = clazz.getDeclaredMethod(getEnumMethodName2, String.class);
+			Optional<Enum<?>> result = (Optional<Enum<?>>) method.invoke(null, value);
+			LOG.debug("Deserialize '{}' with class '{}' to '{}'", value, clazz.getName(), result);
+			return result.orElseThrow();
+		}
+	}
 
-    @Override
-    public JsonDeserializer<Enum<?>> modifyEnumDeserializer(DeserializationConfig config, final JavaType type,
-            BeanDescription beanDesc, final JsonDeserializer<?> deserializer) {
-        return new JsonDeserializer<Enum<?>>() {
+	@Override
+	public JsonDeserializer<Enum<?>> modifyEnumDeserializer(DeserializationConfig config, final JavaType type,
+			BeanDescription beanDesc, final JsonDeserializer<?> deserializer) {
+		return new JsonDeserializer<Enum<?>>() {
 
-            @Override
-            public Enum<?> deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
-                Class<?> clazz = type.getRawClass();
+			@Override
+			public Enum<?> deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
+				Class<?> clazz = type.getRawClass();
 
-                try {
-                    return parseEnum(jp.getValueAsString(), clazz);
-                } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException
-                        | NoSuchMethodException | NoSuchElementException | SecurityException e) {
-                    LOG.warn("problem deserializing enum for {} with value {}: {}", clazz.getName(),
-                            jp.getValueAsString(), e);
-                }
-                throw new IOException(
-                        "unable to parse enum (" + type.getRawClass() + ")for value " + jp.getValueAsString());
-            }
-        };
-    }
+				try {
+					return parseEnum(jp.getValueAsString(), clazz);
+				} catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException
+						| NoSuchMethodException | NoSuchElementException | SecurityException e) {
+					LOG.warn("problem deserializing enum for {} with value {}: {}", clazz.getName(),
+							jp.getValueAsString(), e);
+				}
+				throw new IOException(
+						"unable to parse enum (" + type.getRawClass() + ")for value " + jp.getValueAsString());
+			}
+		};
+	}
 
-    @Override
-    public JsonDeserializer<?> modifyDeserializer(DeserializationConfig config, BeanDescription beanDesc,
-            JsonDeserializer<?> deserializer) {
-        final JavaType type = beanDesc.getType();
-        final Class<?> rawClass = type.getRawClass();
+	@Override
+	public JsonDeserializer<?> modifyDeserializer(DeserializationConfig config, BeanDescription beanDesc,
+			JsonDeserializer<?> deserializer) {
+		final JavaType type = beanDesc.getType();
+		final Class<?> rawClass = type.getRawClass();
 
-        JsonDeserializer<?> deser = super.modifyDeserializer(config, beanDesc, deserializer);
+		JsonDeserializer<?> deser = super.modifyDeserializer(config, beanDesc, deserializer);
 
-        if (YangToolsMapperHelper.implementsInterface(rawClass, TypeObject.class)) {
-            deser = new TypeObjectDeserializer<TypeObject>(type, deser);
-        } else if (YangToolsMapperHelper.implementsInterface(rawClass, ScalarTypeObject.class)) {
-            deser = new TypeObjectDeserializer<ScalarTypeObject<?>>(type, deser);
-        } else if (YangToolsMapperHelper.implementsInterface(rawClass, BaseIdentity.class)) {
-            deser = new BaseIdentityDeserializer<BaseIdentity>(deser);
-        } else if (rawClass.equals(Class.class)) {
-            deser = new ClassDeserializer(rawClass);
-        }
+		if (YangToolsMapperHelper.implementsInterface(rawClass, TypeObject.class)) {
+			deser = new TypeObjectDeserializer<TypeObject>(type, deser);
+		} else if (YangToolsMapperHelper.implementsInterface(rawClass, ScalarTypeObject.class)) {
+			deser = new TypeObjectDeserializer<ScalarTypeObject<?>>(type, deser);
+		} else if (YangToolsMapperHelper.implementsInterface(rawClass, BaseIdentity.class)) {
+			deser = new BaseIdentityDeserializer<BaseIdentity>(deser);
+		} else if (rawClass.equals(Class.class)) {
+			deser = new ClassDeserializer(rawClass);
+		}
 
-        LOG.debug("Deserialize '{}' with deserializer '{}'", rawClass.getName(), deser.getClass().getName());
-        return deser;
-    }
+		LOG.debug("Deserialize '{}' with deserializer '{}'", rawClass.getName(), deser.getClass().getName());
+		return deser;
+	}
 
-    @Override
-    public KeyDeserializer modifyKeyDeserializer(DeserializationConfig config, JavaType type, KeyDeserializer deser) {
-        KeyDeserializer res;
-        if (YangToolsMapperHelper.implementsInterface(type.getRawClass(), Identifier.class)) {
-            res = new IdentifierDeserializer();
-        } else {
-            res = super.modifyKeyDeserializer(config, type, deser);
-        }
-        LOG.debug("Keydeserialize '{}' with deserializer '{}'", type.getRawClass().getName(), res.getClass().getName());
-        return res;
-    }
+	@Override
+	public JsonDeserializer<?> modifyMapDeserializer(DeserializationConfig config, MapType type,
+			BeanDescription beanDesc, JsonDeserializer<?> deserializer) {
+		final Class<?> rawClass = type.getBindings().getBoundType(1).getRawClass();		
+		return new YangtoolsMapDesirializer(rawClass);
+	}
+
+	@Override
+	public KeyDeserializer modifyKeyDeserializer(DeserializationConfig config, JavaType type, KeyDeserializer deser) {
+		KeyDeserializer res;
+		if (YangToolsMapperHelper.implementsInterface(type.getRawClass(), Identifier.class)) {
+			res = new IdentifierDeserializer();
+		} else {
+			res = super.modifyKeyDeserializer(config, type, deser);
+		}
+		LOG.debug("Keydeserialize '{}' with deserializer '{}'", type.getRawClass().getName(), res.getClass().getName());
+		return res;
+	}
 }
diff --git a/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/mapperextensions/YangToolsDeserializerModifier2.java b/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/mapperextensions/YangToolsDeserializerModifier2.java
new file mode 100644
index 0000000..0697f5f
--- /dev/null
+++ b/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/mapperextensions/YangToolsDeserializerModifier2.java
@@ -0,0 +1,135 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.yang.mapper.mapperextensions;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.databind.BeanDescription;
+import com.fasterxml.jackson.databind.DeserializationConfig;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JavaType;
+import com.fasterxml.jackson.databind.JsonDeserializer;
+import com.fasterxml.jackson.databind.KeyDeserializer;
+import com.fasterxml.jackson.databind.deser.BeanDeserializerModifier;
+import com.fasterxml.jackson.databind.type.MapType;
+import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.NoSuchElementException;
+import java.util.Optional;
+import org.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapperHelper;
+import org.onap.ccsdk.features.sdnr.wt.yang.mapper.serialize.BaseIdentityDeserializer;
+import org.onap.ccsdk.features.sdnr.wt.yang.mapper.serialize.ClassDeserializer;
+import org.onap.ccsdk.features.sdnr.wt.yang.mapper.serialize.IdentifierDeserializer;
+import org.onap.ccsdk.features.sdnr.wt.yang.mapper.serialize.TypeObjectDeserializer;
+import org.opendaylight.yangtools.yang.binding.BaseIdentity;
+import org.opendaylight.yangtools.yang.binding.Identifier;
+import org.opendaylight.yangtools.yang.binding.ScalarTypeObject;
+import org.opendaylight.yangtools.yang.binding.TypeObject;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class YangToolsDeserializerModifier2 extends BeanDeserializerModifier {
+
+	private static final Logger LOG = LoggerFactory.getLogger(YangToolsDeserializerModifier2.class);
+	private static final String getEnumMethodName = "valueOf";
+	private static final String getEnumMethodName2 = "forName";
+
+	@SuppressWarnings("unchecked")
+	public static Enum<?> parseEnum(String value, Class<?> clazz) throws IllegalAccessException,
+			IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException {
+		try {
+			Method method = clazz.getDeclaredMethod(getEnumMethodName, String.class);
+			Enum<?> result = (Enum<?>) method.invoke(null, value);
+			LOG.debug("Deserialize '{}' with class '{}' to '{}'", value, clazz.getName(), result);
+			return result;
+		} catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException
+				| NoSuchElementException | SecurityException e) {
+			Method method = clazz.getDeclaredMethod(getEnumMethodName2, String.class);
+			Optional<Enum<?>> result = (Optional<Enum<?>>) method.invoke(null, value);
+			LOG.debug("Deserialize '{}' with class '{}' to '{}'", value, clazz.getName(), result);
+			return result.orElseThrow();
+		}
+	}
+
+	@Override
+	public JsonDeserializer<Enum<?>> modifyEnumDeserializer(DeserializationConfig config, final JavaType type,
+			BeanDescription beanDesc, final JsonDeserializer<?> deserializer) {
+		return new JsonDeserializer<Enum<?>>() {
+
+			@Override
+			public Enum<?> deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
+				Class<?> clazz = type.getRawClass();
+
+				try {
+					return parseEnum(jp.getValueAsString(), clazz);
+				} catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException
+						| NoSuchMethodException | NoSuchElementException | SecurityException e) {
+					LOG.warn("problem deserializing enum for {} with value {}: {}", clazz.getName(),
+							jp.getValueAsString(), e);
+				}
+				throw new IOException(
+						"unable to parse enum (" + type.getRawClass() + ")for value " + jp.getValueAsString());
+			}
+		};
+	}
+
+	@Override
+	public JsonDeserializer<?> modifyDeserializer(DeserializationConfig config, BeanDescription beanDesc,
+			JsonDeserializer<?> deserializer) {
+		final JavaType type = beanDesc.getType();
+		final Class<?> rawClass = type.getRawClass();
+
+		JsonDeserializer<?> deser = super.modifyDeserializer(config, beanDesc, deserializer);
+
+		if (YangToolsMapperHelper.implementsInterface(rawClass, TypeObject.class)) {
+			deser = new TypeObjectDeserializer<TypeObject>(type, deser);
+		} else if (YangToolsMapperHelper.implementsInterface(rawClass, ScalarTypeObject.class)) {
+			deser = new TypeObjectDeserializer<ScalarTypeObject<?>>(type, deser);
+		} else if (YangToolsMapperHelper.implementsInterface(rawClass, BaseIdentity.class)) {
+			deser = new BaseIdentityDeserializer<BaseIdentity>(deser);
+		} else if (rawClass.equals(Class.class)) {
+			deser = new ClassDeserializer(rawClass);
+		}
+
+		LOG.debug("Deserialize '{}' with deserializer '{}'", rawClass.getName(), deser.getClass().getName());
+		return deser;
+	}
+
+	@Override
+	public JsonDeserializer<?> modifyMapDeserializer(DeserializationConfig config, MapType type,
+			BeanDescription beanDesc, JsonDeserializer<?> deserializer) {
+		final Class<?> rawClass = type.getBindings().getBoundType(1).getRawClass();
+		return new YangtoolsMapDesirializer(rawClass);
+	}
+
+	@Override
+	public KeyDeserializer modifyKeyDeserializer(DeserializationConfig config, JavaType type, KeyDeserializer deser) {
+		KeyDeserializer res;
+		if (YangToolsMapperHelper.implementsInterface(type.getRawClass(), Identifier.class)) {
+			res = new IdentifierDeserializer();
+		} else {
+			res = super.modifyKeyDeserializer(config, type, deser);
+		}
+		LOG.debug("Keydeserialize '{}' with deserializer '{}'", type.getRawClass().getName(), res.getClass().getName());
+		return res;
+	}
+}
diff --git a/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/mapperextensions/YangtoolsMapDesirializer.java b/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/mapperextensions/YangtoolsMapDesirializer.java
new file mode 100644
index 0000000..2fe7fa1
--- /dev/null
+++ b/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/mapperextensions/YangtoolsMapDesirializer.java
@@ -0,0 +1,44 @@
+package org.onap.ccsdk.features.sdnr.wt.yang.mapper.mapperextensions;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import org.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapper;
+import org.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapperHelper;
+import org.opendaylight.yangtools.yang.binding.Identifiable;
+import org.opendaylight.yangtools.yang.binding.Identifier;
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.core.ObjectCodec;
+import com.fasterxml.jackson.core.TreeNode;
+import com.fasterxml.jackson.databind.BeanDescription;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JsonDeserializer;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.node.ArrayNode;
+import com.fasterxml.jackson.databind.type.CollectionLikeType;
+import com.fasterxml.jackson.databind.type.TypeFactory;
+import com.google.common.collect.Maps;
+
+public class YangtoolsMapDesirializer<K extends Identifier<V>, V extends Identifiable<K>>
+		extends JsonDeserializer<Map<K, V>> {
+
+	private final Class<V> clazz;
+	private final YangToolsMapper mapper;
+	
+	public YangtoolsMapDesirializer(Class<V> clazz) {
+		super();
+		this.clazz = clazz;
+		this.mapper = new YangToolsMapper();
+	}
+
+	@Override
+	public Map<K, V> deserialize(JsonParser p, DeserializationContext ctxt)
+			throws IOException, JsonProcessingException {
+		CollectionLikeType type = ctxt.getTypeFactory().constructCollectionType(List.class, clazz);
+		List<V> list = mapper.readValue(p,type);
+		return YangToolsMapperHelper.toMap(list);
+	}
+
+}
diff --git a/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/mapperextensions/YangtoolsMapDesirializer2.java b/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/mapperextensions/YangtoolsMapDesirializer2.java
new file mode 100644
index 0000000..6a419ee
--- /dev/null
+++ b/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/mapperextensions/YangtoolsMapDesirializer2.java
@@ -0,0 +1,36 @@
+package org.onap.ccsdk.features.sdnr.wt.yang.mapper.mapperextensions;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JsonDeserializer;
+import com.fasterxml.jackson.databind.type.CollectionLikeType;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+import org.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapper;
+import org.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapperHelper;
+import org.opendaylight.yangtools.yang.binding.Identifiable;
+import org.opendaylight.yangtools.yang.binding.Identifier;
+
+public class YangtoolsMapDesirializer2<K extends Identifier<V>, V extends Identifiable<K>>
+		extends JsonDeserializer<Map<K, V>> {
+
+	private final Class<V> clazz;
+	private final YangToolsMapper mapper;
+
+	public YangtoolsMapDesirializer2(Class<V> clazz) {
+		super();
+		this.clazz = clazz;
+		this.mapper = new YangToolsMapper();
+	}
+
+	@Override
+	public Map<K, V> deserialize(JsonParser p, DeserializationContext ctxt)
+			throws IOException, JsonProcessingException {
+		CollectionLikeType type = ctxt.getTypeFactory().constructCollectionType(List.class, clazz);
+		List<V> list = mapper.readValue(p,type);
+		return YangToolsMapperHelper.toMap(list);
+	}
+
+}
diff --git a/sdnr/wt/common-yang/utils/src/test/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/TestDataMappings.java b/sdnr/wt/common-yang/utils/src/test/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/TestDataMappings.java
deleted file mode 100644
index 584b4b0..0000000
--- a/sdnr/wt/common-yang/utils/src/test/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/TestDataMappings.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * ONAP : ccsdk features
- * ================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property.
- * All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- *
- */
-package org.onap.ccsdk.features.sdnr.wt.yang.mapper;
-
-import static org.junit.Assert.fail;
-import java.io.IOException;
-import org.junit.Test;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.pmdata._15m.list.output.Data;
-
-public class TestDataMappings {
-
-    // @formatter:off
-    private static final String PMDATA15M_SERVERDB_JSON = "{\n"
-            + "\"node-name\": \"sim2\",\n"
-            + "\"uuid-interface\": \"LP-MWPS-TTP-01\",\n"
-            + "\"layer-protocol-name\": \"MWPS\",\n"
-            + "\"radio-signal-id\": \"Test11\",\n"
-            + "\"time-stamp\": \"2017-07-04T14:00:00.0Z\",\n"
-            + "\"granularity-period\": \"Period15Min\",\n"
-            + "\"scanner-id\": \"PM_RADIO_15M_9\",\n"
-            + "\"performance-data\": {\n"
-            + "\"es\": 0,\n"
-            + "\"rx-level-avg\": -41,\n"
-            + "\"time2-states\": -1,\n"
-            + "\"time4-states-s\": 0,\n"
-            + "\"time4-states\": 0,\n"
-            + "\"time8-states\": 0,\n"
-            + "\"time16-states-s\": -1,\n"
-            + "\"time16-states\": 0,\n"
-            + "\"time32-states\": 0,\n"
-            + "\"time64-states\": 0,\n"
-            + "\"time128-states\": 0,\n"
-            + "\"time256-states\": 900,\n"
-            + "\"time512-states\": -1,\n"
-            + "\"time512-states-l\": -1,\n"
-            + "\"time1024-states\": -1,\n"
-            + "\"time1024-states-l\": -1,\n"
-            + "\"time2048-states\": -1,\n"
-            + "\"time2048-states-l\": -1,\n"
-            + "\"time4096-states\": -1,\n"
-            + "\"time4096-states-l\": -1,\n"
-            + "\"time8192-states\": -1,\n"
-            + "\"time8192-states-l\": -1,\n"
-            + "\"snir-min\": -99,\n"
-            + "\"snir-max\": -99,\n"
-            + "\"snir-avg\": -99,\n"
-            + "\"xpd-min\": -99,\n"
-            + "\"xpd-max\": -99,\n"
-            + "\"xpd-avg\": -99,\n"
-            + "\"rf-temp-min\": -99,\n"
-            + "\"rf-temp-max\": -99,\n"
-            + "\"rf-temp-avg\": -99,\n"
-            + "\"defect-blocks-sum\": -1,\n"
-            + "\"time-period\": 900,\n"
-            + "\"tx-level-min\": 25,\n"
-            + "\"tx-level-max\": 25,\n"
-            + "\"tx-level-avg\": 25,\n"
-            + "\"rx-level-min\": -41,\n"
-            + "\"rx-level-max\": -41,\n"
-            + "\"unavailability\": 0,\n"
-            + "\"ses\": 0,\n"
-            + "\"cses\": 0\n"
-            + "},\n"
-            + "\"suspect-interval-flag\": false\n"
-            + "}";
- // @formatter:on
-    @Test
-    public void testPmData15m() throws ClassNotFoundException {
-
-        YangToolsMapper2<Data> mapper = new YangToolsMapper2<Data>(Data.class, null);
-        try {
-            Data data = mapper.readValue(PMDATA15M_SERVERDB_JSON.getBytes(), Data.class);
-            System.out.println(data);
-        } catch (IOException e) {
-            e.printStackTrace();
-            fail("Can not parse data");
-        }
-    }
-
-}
diff --git a/sdnr/wt/common-yang/utils/src/test/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/TestHashMap.java b/sdnr/wt/common-yang/utils/src/test/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/TestHashMap.java
new file mode 100644
index 0000000..9aacd2e
--- /dev/null
+++ b/sdnr/wt/common-yang/utils/src/test/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/TestHashMap.java
@@ -0,0 +1,80 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.yang.mapper;
+
+import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.deser.BeanDeserializerModifier;
+import com.fasterxml.jackson.databind.module.SimpleModule;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+import org.junit.Test;
+
+public class TestHashMap {
+
+    String mapDataString = "[\n"
+            + "    {\n"
+            + "        \"Name\":  \"System Idle Process\",\n"
+            + "        \"CreationDate\":  \"20160409121836.675345+330\"\n"
+            + "    },\n"
+            + "    {\n"
+            + "        \"Name\":  \"System\",\n"
+            + "        \"CreationDate\":  \"20160409121836.675345+330\"\n"
+            + "    },\n"
+            + "    {\n"
+            + "        \"Name\":  \"smss.exe\",\n"
+            + "        \"CreationDate\":  \"20160409121836.684966+330\"\n"
+            + "    }\n"
+            + "]";
+
+
+    @Test
+    public void test() throws JsonParseException, JsonMappingException, IOException {
+        byte[] mapData = mapDataString.getBytes();
+        List<Map<String, Object>> myMap;
+        ObjectMapper objectMapper=new ObjectMapper();
+        objectMapper.registerModule(new YangToolsModule());
+
+
+        myMap = objectMapper.readValue(mapData, new TypeReference<List<Map<String, Object>>>(){});
+        System.out.println("Type1: "+myMap.getClass().getSimpleName());
+        System.out.println("Type2: "+myMap.get(0).getClass().getSimpleName());
+        System.out.println("Map is: "+myMap);    }
+
+    private class YangToolsModule extends SimpleModule {
+
+        private static final long serialVersionUID = 1L;
+
+        public YangToolsModule() {
+            super();
+            setDeserializerModifier(new YangToolsDeserializerModifier());
+        }
+    }
+
+    private class YangToolsDeserializerModifier extends BeanDeserializerModifier {
+    }
+
+
+}
diff --git a/sdnr/wt/common-yang/utils/src/test/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/TestYangGenSalMapping.java b/sdnr/wt/common-yang/utils/src/test/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/TestYangGenSalMapping.java
deleted file mode 100644
index f46729c..0000000
--- a/sdnr/wt/common-yang/utils/src/test/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/TestYangGenSalMapping.java
+++ /dev/null
@@ -1,286 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * ONAP : ccsdk features
- * ================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property.
- * All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- *
- */
-package org.onap.ccsdk.features.sdnr.wt.yang.mapper;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import org.json.JSONObject;
-import org.junit.Test;
-import org.onap.ccsdk.features.sdnr.wt.yang.mapper.serialize.IdentifierDeserializer;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev191129.PmDataType;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.parameters.OdlHelloMessageCapabilitiesBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.Credentials;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.credentials.LoginPasswordBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.openroadm.pm.types.rev200413.DefectSeconds;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.pmdata.grp.Measurement;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.pmdata.grp.MeasurementBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.pmdata.grp.MeasurementKey;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.pmdata15m.entity.PerformanceDataBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.pmdata._15m.list.output.Data;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.pmdata._15m.list.output.DataBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.units.rev200413.KHz;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class TestYangGenSalMapping {
-
-    // Create mapper for serialization and deserialization
-    DataProviderYangToolsMapper mapper = new DataProviderYangToolsMapper();
-
-    @Test
-    public void test1() throws IOException {
-
-        // Create test object
-        NetconfNodeBuilder netconfNodeBuilder = new NetconfNodeBuilder();
-        netconfNodeBuilder.setConnectedMessage("ConnMessage");
-
-        LoginPasswordBuilder loginPasswordBuilder = new LoginPasswordBuilder();
-        loginPasswordBuilder.setUsername("myTestUsername");
-        loginPasswordBuilder.setPassword("myTestPassword");
-        netconfNodeBuilder.setCredentials(loginPasswordBuilder.build());
-
-        OdlHelloMessageCapabilitiesBuilder odlHelloMessageCapabilitiesBuilder =
-                new OdlHelloMessageCapabilitiesBuilder();
-        List<Uri> uriList = new ArrayList<>();
-        uriList.add(new Uri("test.uri"));
-        odlHelloMessageCapabilitiesBuilder.setCapability(uriList);
-        netconfNodeBuilder.setOdlHelloMessageCapabilities(odlHelloMessageCapabilitiesBuilder.build());
-
-        NetconfNode netconfNode = netconfNodeBuilder.build();
-        out(netconfNode.toString());
-
-        // Map Object to JSON String
-        String res = mapper.writeValueAsString(netconfNode);
-        JSONObject json = new JSONObject(res); // Convert text to object
-        out(json.toString(4)); // Print it with specified indentation
-
-        // Map to JSON String to Object
-        NetconfNode generatedNode = mapper.readValue(res.getBytes(), NetconfNode.class);
-        out(generatedNode.toString()); // Print it with specified indentation
-        // Compare result
-        //TODO - Guilin
-        //out("Equal?  "+netconfNode.equals(generatedNode));
-    }
-
-    @Test
-    public void test3() throws IOException {
-
-        PerformanceDataBuilder performanceBuilder = new PerformanceDataBuilder();
-        performanceBuilder.setEs(99);
-        Map<MeasurementKey, Measurement> values = new HashMap<>();
-
-        Measurement m = new MeasurementBuilder().setPmKey(DefectSeconds.class).setPmUnit(KHz.class)
-                .setPmValue(new PmDataType(1L)).build();
-        values.put(m.key(), m);
-        performanceBuilder.setMeasurement(values);
-        DataBuilder pmData15MinutesBuilder = new DataBuilder();
-        pmData15MinutesBuilder.setLayerProtocolName("fdsaf");
-        pmData15MinutesBuilder.setTimeStamp(new DateAndTime("2017-03-01T09:15:00.0Z"));
-        pmData15MinutesBuilder.setPerformanceData(performanceBuilder.build());
-
-        // Map Object to JSON String
-        String res = mapper.writeValueAsString(pmData15MinutesBuilder.build());
-        JSONObject json = new JSONObject(res); // Convert text to object
-        out(json.toString(4)); // Print it with specified indentation
-
-        // Map to JSON String to Object
-        Data generatedNode = mapper.readValue(res.getBytes(), Data.class);
-        out(generatedNode.toString()); // Print it with specified indentation
-    }
-
-    @Test
-    public void test4() throws IOException {
-     // @formatter:off
-     String jsonString = "{\n"
-                + "\"node-name\": \"Sim2230\",\n"
-                + "\"uuid-interface\": \"LP-MWPS-TTP-RADIO\",\n"
-                + "\"layer-protocol-name\": \"MWPS\",\n"
-                + "\"radio-signal-id\": \"Test8\",\n"
-                + "\"time-stamp\": \"2017-03-01T09:15:00.0Z\",\n"
-                + "\"granularity-period\": \"Period15Min\",\n"
-                + "\"scanner-id\": \"PM_RADIO_15M_4\",\n"
-                + "\"performance-data\": {\n"
-                +     "\"unavailability\": 0,\n"
-                +     "\"tx-level-max\": 3,\n"
-                +     "\"tx-level-avg\": 3,\n"
-                +     "\"rx-level-min\": -44,\n"
-                +     "\"rx-level-max\": -45,\n"
-                +     "\"rx-level-avg\": -44,\n"
-                +     "\"time2-states\": 0,\n"
-                +     "\"time4-states-s\": 0,\n"
-                +     "\"time4-states\": 0,\n"
-                +     "\"time8-states\": -1,\n"
-                +     "\"time16-states-s\": -1,\n"
-                +     "\"time16-states\": 0,\n"
-                +     "\"time32-states\": -1,\n"
-                +     "\"time64-states\": 900,\n"
-                +     "\"time128-states\": -1,\n"
-                +     "\"time256-states\": -1,\n"
-                +     "\"time512-states\": -1,\n"
-                +     "\"time512-states-l\": -1,\n"
-                +     "\"time1024-states\": -1,\n"
-                +     "\"time1024-states-l\": -1,\n"
-                +     "\"time8192-states-l\": -1,\n"
-                +     "\"time8192-states\": -1,\n"
-                +     "\"time2048-states\": -1,\n"
-                +     "\"snir-min\": -99,\n"
-                +     "\"snir-max\": -99,\n"
-                +     "\"snir-avg\": -99,\n"
-                +     "\"xpd-min\": -99,\n"
-                +     "\"xpd-max\": -99,\n"
-                +     "\"xpd-avg\": -99,\n"
-                +     "\"rf-temp-min\": -99,\n"
-                +     "\"rf-temp-max\": -99,\n"
-                +     "\"rf-temp-avg\": -99,\n"
-                +     "\"defect-blocks-sum\": -1,\n"
-                +     "\"time-period\": 900,\n"
-                +     "\"cses\": 0,\n"
-                +     "\"time4096-states-l\": -1,\n"
-                +     "\"tx-level-min\": 3,\n"
-                +     "\"es\": 0,\n"
-                +     "\"time2048-states-l\": -1,\n"
-                +     "\"time4096-states\": -1,\n"
-                +     "\"ses\": 0\n"
-                + "},\n"
-                + "\"suspect-interval-flag\": false\n"
-                + "}\n"
-                + "}";
-        // @formatter:on
-        // Map to JSON String to Object
-        Data generatedNode = mapper.readValue(jsonString.getBytes(), Data.class);
-        out(generatedNode.toString()); // Print it with specified indentation
-    }
-
-    @Test
-    public void test5() throws IOException {
-        // @formatter:off
-        String jsonString = "{\n"
-                + "    \"time-stamp\": \"2017-03-01T06:45:00.0Z\",\n"
-                + "    \"node-name\": \"Sim2230\",\n"
-                + "    \"uuid-interface\": \"LP-MWPS-TTP-RADIO\",\n"
-                + "    \"scanner-id\": \"PM_RADIO_15M_14\",\n"
-                + "    \"layer-protocol-name\": \"MWPS\",\n"
-                + "    \"granularity-period\": \"Period15Min\",\n"
-                + "    \"radio-signal-id\": \"Test8\",\n"
-                + "    \"suspect-interval-flag\": false,\n"
-                + "    \"performance-data\": {\n"
-                + "        \"time4096-states-l\": -1,\n"
-                + "        \"time16-states-s\": -1,\n"
-                + "        \"tx-level-max\": 3,\n"
-                + "        \"snir-max\": -99,\n"
-                + "        \"time16-states\": 0,\n"
-                + "        \"time64-states\": 900,\n"
-                + "        \"unavailability\": 0,\n"
-                + "        \"time8192-states-l\": -1,\n"
-                + "        \"time512-states\": -1,\n"
-                + "        \"xpd-min\": -99,\n"
-                + "        \"xpd-avg\": -99,\n"
-                + "        \"tx-level-avg\": 3,\n"
-                + "        \"tx-level-min\": 3,\n"
-                + "        \"rf-temp-min\": -99,\n"
-                + "        \"rf-temp-avg\": -99,\n"
-                + "        \"snir-avg\": -99,\n"
-                + "        \"snir-min\": -99,\n"
-                + "        \"time-period\": 900,\n"
-                + "        \"time2-states\": 0,\n"
-                + "        \"time4-states\": 0,\n"
-                + "        \"time8-states\": -1,\n"
-                + "        \"ses\": 0,\n"
-                + "        \"time2048-states-l\": -1,\n"
-                + "        \"time2048-states\": -1,\n"
-                + "        \"xpd-max\": -99,\n"
-                + "        \"rf-temp-max\": -99,\n"
-                + "        \"time8192-states\": -1,\n"
-                + "        \"time128-states\": -1,\n"
-                + "        \"time256-states\": -1,\n"
-                + "        \"rx-level-min\": -44,\n"
-                + "        \"rx-level-avg\": -44,\n"
-                + "        \"time1024-states-l\": -1,\n"
-                + "        \"es\": 0,\n"
-                + "        \"cses\": 0,\n"
-                + "        \"time4-states-s\": 0,\n"
-                + "        \"time1024-states\": -1,\n"
-                + "        \"time512-states-l\": -1,\n"
-                + "        \"time4096-states\": -1,\n"
-                + "        \"rx-level-max\": -45,\n"
-                + "        \"defect-blocks-sum\": -1,\n"
-                + "        \"time32-states\": -1\n"
-                + "    }\n"
-                + "}";
-        // @formatter:on
-        // Map to JSON String to Object
-        Data generatedNode = mapper.readValue(jsonString.getBytes(), Data.class);
-        out(generatedNode.toString()); // Print it with specified indentation
-    }
-
-    @Test
-    public void test8() throws IOException {
-        out(method());
-        String input;
-        input = "id-dd-dd";
-        System.out.println("Map " + input + " to " + YangToolsMapperHelper.toCamelCaseAttributeName(input));
-        input = "idDdGg";
-        System.out.println("Map " + input + " to " + YangToolsMapperHelper.toCamelCaseAttributeName(input));
-        input = "_idDdGg";
-        System.out.println("Map " + input + " to " + YangToolsMapperHelper.toCamelCaseAttributeName(input));
-        input = "--ff--gfg";
-        System.out.println("Map " + input + " to " + YangToolsMapperHelper.toCamelCaseAttributeName(input));
-        input = "";
-        System.out.println("Map " + input + " to " + YangToolsMapperHelper.toCamelCaseAttributeName(input));
-    }
-
-    /* ---------------------------------
-     * Private
-     */
-    private static String method() {
-        String nameofCurrMethod = new Throwable().getStackTrace()[1].getMethodName();
-        return nameofCurrMethod;
-    }
-
-    private static void out(String text) {
-        System.out.println("----------------------");
-        System.out.println(text);
-    }
-
-    private static class DataProviderYangToolsMapper extends YangToolsMapper {
-
-        @SuppressWarnings("unused")
-        private final Logger LOG = LoggerFactory.getLogger(DataProviderYangToolsMapper.class);
-        private static final long serialVersionUID = 1L;
-
-        public DataProviderYangToolsMapper() {
-            super();
-            this.addDeserializer(Credentials.class, LoginPasswordBuilder.class.getName());
-            this.addKeyDeserializer(MeasurementKey.class, new IdentifierDeserializer());
-        }
-
-
-    }
-
-}
diff --git a/sdnr/wt/common/pom.xml b/sdnr/wt/common/pom.xml
index 762a3fb..1847e6f 100644
--- a/sdnr/wt/common/pom.xml
+++ b/sdnr/wt/common/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/common/src/main/java/org/onap/ccsdk/features/sdnr/wt/common/threading/GenericRunnableFactory.java b/sdnr/wt/common/src/main/java/org/onap/ccsdk/features/sdnr/wt/common/threading/GenericRunnableFactory.java
new file mode 100644
index 0000000..c163fac
--- /dev/null
+++ b/sdnr/wt/common/src/main/java/org/onap/ccsdk/features/sdnr/wt/common/threading/GenericRunnableFactory.java
@@ -0,0 +1,32 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.common.threading;
+
+public abstract class GenericRunnableFactory<T,S> {
+
+    public GenericRunnableFactory() {
+    }
+
+    public Runnable create(S arg, GenericRunnableFactoryCallback<T> callback) {
+        return null;
+    }
+}
diff --git a/sdnr/wt/common/src/main/java/org/onap/ccsdk/features/sdnr/wt/common/threading/GenericRunnableFactoryCallback.java b/sdnr/wt/common/src/main/java/org/onap/ccsdk/features/sdnr/wt/common/threading/GenericRunnableFactoryCallback.java
new file mode 100644
index 0000000..bd0ce1e
--- /dev/null
+++ b/sdnr/wt/common/src/main/java/org/onap/ccsdk/features/sdnr/wt/common/threading/GenericRunnableFactoryCallback.java
@@ -0,0 +1,27 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.common.threading;
+
+public interface GenericRunnableFactoryCallback<T> {
+
+    void onFinish(T key);
+}
diff --git a/sdnr/wt/common/src/main/java/org/onap/ccsdk/features/sdnr/wt/common/threading/KeyBasedThreadpool.java b/sdnr/wt/common/src/main/java/org/onap/ccsdk/features/sdnr/wt/common/threading/KeyBasedThreadpool.java
new file mode 100644
index 0000000..f41a903
--- /dev/null
+++ b/sdnr/wt/common/src/main/java/org/onap/ccsdk/features/sdnr/wt/common/threading/KeyBasedThreadpool.java
@@ -0,0 +1,93 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.common.threading;
+
+import java.util.AbstractMap.SimpleEntry;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map.Entry;
+import java.util.Queue;
+import java.util.concurrent.ConcurrentLinkedQueue;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+/**
+ * Threadpool for running n instances per key T
+ *
+ * @author jack
+ *
+ * @param <T>
+ * @param <S>
+ */
+public class KeyBasedThreadpool<T, S> implements GenericRunnableFactoryCallback<T> {
+
+    private final Queue<Entry<T, S>> queue;
+    private final List<T> runningKeys;
+    private final int keyPoolSize;
+    private final GenericRunnableFactory<T, S> factory;
+    private final ExecutorService executor;
+
+    /**
+     *
+     * @param poolSize overall maximum amount of threads
+     * @param keyPoolSize amount of threads per key
+     * @param runner runnable to start
+     */
+    public KeyBasedThreadpool(int poolSize, int keyPoolSize, GenericRunnableFactory<T, S> factory) {
+        this.queue = new ConcurrentLinkedQueue<>();
+        this.keyPoolSize = keyPoolSize;
+        this.factory = factory;
+        this.executor = Executors.newFixedThreadPool(poolSize);
+        this.runningKeys = new ArrayList<>();
+    }
+
+    public void execute(T key, S arg) {
+        if (this.isKeyPoolSizeReached(key)) {
+            queue.add(new SimpleEntry<>(key, arg));
+        } else {
+            this.runningKeys.add(key);
+            this.executor.execute(this.factory.create(arg, this));
+        }
+
+    }
+
+    private void executeNext() {
+        Entry<T, S> entry = this.queue.peek();
+        if (!this.isKeyPoolSizeReached(entry.getKey())) {
+            this.queue.poll();
+            this.runningKeys.add(entry.getKey());
+            this.executor.execute(this.factory.create(entry.getValue(), this));
+        }
+    }
+
+    private boolean isKeyPoolSizeReached(T key) {
+        return this.runningKeys.stream().filter(e -> e == key).count() >= this.keyPoolSize;
+    }
+
+    @Override
+    public void onFinish(T key) {
+        this.runningKeys.remove(key);
+        this.executeNext();
+    }
+
+
+}
diff --git a/sdnr/wt/data-provider/dblib/pom.xml b/sdnr/wt/data-provider/dblib/pom.xml
index e4bc575..b1dd4ff 100644
--- a/sdnr/wt/data-provider/dblib/pom.xml
+++ b/sdnr/wt/data-provider/dblib/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/SqlDBClient.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/SqlDBClient.java
index ce9d4dc..1ed0b5f 100644
--- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/SqlDBClient.java
+++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/SqlDBClient.java
@@ -56,7 +56,6 @@
     private static final String DBVERSION_REGEX = "^([\\d]+\\.[\\d]+\\.[\\d]+)";
     private static final Pattern DBVERSION_PATTERN = Pattern.compile(DBVERSION_REGEX);
     private static final String SELECT_VERSION_QUERY = "SELECT @@version as version";
-    private static final String LOG_PROBLEM_CLOSING_CONNECTION = "problem closing connection: ";
 
     private static final String DBNAME_DEFAULT = "sdnrdb";
     private final String dbConnectionString;
@@ -100,6 +99,7 @@
         } catch (SQLException e) {
             LOG.warn("problem reading views: ", e);
         }
+        try { data.close(); } catch (SQLException ignore) { }
         return list;
     }
 
@@ -114,6 +114,7 @@
         } catch (SQLException e) {
             LOG.warn("problem reading tables: ", e);
         }
+        try { data.close(); } catch (SQLException ignore) { }
         return list;
     }
 
@@ -155,22 +156,18 @@
     public boolean createTable(String query) {
         boolean result = false;
         PreparedStatement stmt = null;
+        Connection connection = null;
         try {
-            Connection connection = this.getConnection();
+            connection =  this.getConnection();
             stmt = connection.prepareStatement(query, Statement.RETURN_GENERATED_KEYS);
             stmt.execute();
-            connection.close();
+
             result = true;
         } catch (SQLException e) {
             LOG.warn("problem creating table:", e);
         } finally {
-            if (stmt != null) {
-                try {
-                    stmt.close();
-                } catch (SQLException e) {
-                    LOG.warn("problem closing stmt:", e);
-                }
-            }
+            if (stmt != null) try { stmt.close(); } catch (SQLException logOrIgnore) {}
+            if (connection != null) try { connection.close(); } catch (SQLException logOrIgnore) {}
         }
         return result;
     }
@@ -199,20 +196,17 @@
         boolean result = false;
         SQLException innerE = null;
         Statement stmt = null;
-        try (Connection connection = this.getConnection()) {
+        Connection connection = null;
+        try {
+            connection= this.getConnection();
             stmt = connection.createStatement();
             result = stmt.execute(query);
             result = stmt.getUpdateCount() > 0 ? stmt.getUpdateCount() > 0 : result;
         } catch (SQLException e) {
             innerE = e;
         } finally {
-            try {
-                if (stmt != null) {
-                    stmt.close();
-                }
-            } catch (SQLException e) {
-                LOG.warn(LOG_PROBLEM_CLOSING_CONNECTION, e);
-            }
+                if (stmt != null) try { stmt.close(); } catch (SQLException ignore) {}
+                if (connection != null) try { connection.close(); } catch (SQLException ignore) {}
         }
         if (innerE != null) {
             throw innerE;
@@ -224,20 +218,17 @@
         boolean result = false;
         SQLException innerE = null;
         PreparedStatement stmt = null;
-        try (Connection connection = this.getConnection()) {
+        Connection connection = null;
+        try {
+            connection =  this.getConnection();
             stmt = connection.prepareStatement(query, Statement.RETURN_GENERATED_KEYS);
             result = stmt.execute();
             result = stmt.getUpdateCount() > 0 ? stmt.getUpdateCount() > 0 : result;
         } catch (SQLException e) {
             innerE = e;
         } finally {
-            try {
-                if (stmt != null) {
-                    stmt.close();
-                }
-            } catch (SQLException e) {
-                LOG.warn(LOG_PROBLEM_CLOSING_CONNECTION, e);
-            }
+            if (stmt != null) try { stmt.close(); } catch (SQLException ignore) {}
+            if (connection != null) try { connection.close(); } catch (SQLException ignore) {}
         }
         if (innerE != null) {
             throw innerE;
@@ -249,24 +240,22 @@
         String result = null;
         SQLException innerE = null;
         PreparedStatement stmt = null;
-        try (Connection connection = this.getConnection()) {
+        ResultSet generatedKeys = null;
+        Connection connection = null;
+        try {
+            connection = this.getConnection();
             stmt = connection.prepareStatement(query, Statement.RETURN_GENERATED_KEYS);
             stmt.execute();
-            ResultSet generatedKeys = stmt.getGeneratedKeys();
+            generatedKeys = stmt.getGeneratedKeys();
             if (generatedKeys.next()) {
                 result = String.valueOf(generatedKeys.getLong(1));
             }
         } catch (SQLException e) {
             innerE = e;
         } finally {
-            try {
-                if (stmt != null) {
-                    stmt.close();
-                }
-
-            } catch (SQLException e) {
-                LOG.warn(LOG_PROBLEM_CLOSING_CONNECTION, e);
-            }
+            if (generatedKeys != null) try { generatedKeys.close(); } catch (SQLException ignore) {}
+            if (stmt != null) try { stmt.close(); } catch (SQLException ignore) {}
+            if (connection != null) try { connection.close(); } catch (SQLException ignore) {}
         }
         if (innerE != null) {
             throw innerE;
@@ -291,19 +280,16 @@
     public ResultSet read(String query) {
         ResultSet data = null;
         Statement stmt = null;
-        try (Connection connection = this.getConnection()) {
+        Connection connection = null;
+        try{
+            connection = this.getConnection();
             stmt = connection.createStatement();
             data = stmt.executeQuery(query);
         } catch (SQLException e) {
             LOG.warn("problem reading db for query '{}': ", query, e);
         } finally {
-            try {
-                if (stmt != null) {
-                    stmt.close();
-                }
-            } catch (SQLException e) {
-                LOG.warn(LOG_PROBLEM_CLOSING_CONNECTION, e);
-            }
+            if (stmt != null) try { stmt.close(); } catch (SQLException ignore) {}
+            if (connection != null) try { connection.close(); } catch (SQLException ignore) {}
         }
         return data;
     }
diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/HtUserdataManagerBase.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/HtUserdataManagerBase.java
index 60f28d9..e015dd2 100644
--- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/HtUserdataManagerBase.java
+++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/HtUserdataManagerBase.java
@@ -74,7 +74,7 @@
 
     @Override
     public boolean setUserdata(String username, String key, String data) {
-        JSONObject o = new JSONObject();
+        JSONObject o = new JSONObject(this.getUserdata(username));
         o.put(key, new JSONObject(data));
         return this.setUserdata(username, o.toString());
     }
diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/HtUserdataManagerImpl.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/HtUserdataManagerImpl.java
index 79d9637..832d473 100644
--- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/HtUserdataManagerImpl.java
+++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/HtUserdataManagerImpl.java
@@ -21,16 +21,7 @@
  */
 package org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.data;
 
-import java.util.Arrays;
-import java.util.List;
-import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.data.rpctypehelper.QueryResult;
 import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.database.SqlDBReaderWriterUserdata;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EntityInput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadFaultcurrentListInputBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.FilterBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.PaginationBuilder;
-import org.opendaylight.yangtools.yang.common.Uint32;
-import org.opendaylight.yangtools.yang.common.Uint64;
 
 public class HtUserdataManagerImpl extends HtUserdataManagerBase {
 
@@ -42,7 +33,9 @@
 
     @Override
     public boolean setUserdata(String username, String data) {
-        return this.rw.write(new UserdataBuilder().setId(username).setValue(data).build(), username) != null;
+        Userdata o = new UserdataBuilder().setId(username).setValue(data).build();
+        String x = this.rw.updateOrInsert(o, username);
+        return x!=null;
     }
 
     @Override
@@ -52,17 +45,8 @@
 
     @Override
     protected String readUserdata(String username, String defaultValue) {
-        EntityInput input = new ReadFaultcurrentListInputBuilder()
-                .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(username).build()))
-                .setPagination(new PaginationBuilder().setPage(Uint64.valueOf(1)).setSize(Uint32.valueOf(1)).build())
-                .build();
-        QueryResult<Userdata> result = this.rw.getData(input);
-        if (result != null) {
-            List<Userdata> data = result.getResult();
-            Userdata user = (data != null && !data.isEmpty()) ? data.get(0) : null;
-            return user == null ? defaultValue : user.getValue();
-        }
-        return defaultValue;
+        Userdata user = this.rw.read(username);
+        return user!=null? user.getValue():defaultValue;
     }
 
 }
diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/SqlDBDataProvider.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/SqlDBDataProvider.java
index b6df73b..1bb30dc 100644
--- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/SqlDBDataProvider.java
+++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/SqlDBDataProvider.java
@@ -120,11 +120,11 @@
 
         this.mediatorserverRW = new SqlDBReaderWriter<>(this.dbClient, Entity.MediatorServer, config.getDbSuffix(),
                 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.mediator.server.list.output.Data.class,
-                this.dbClient.getDatabaseName(), this.controllerId).setWriteInterface(MediatorServerEntity.class);
+                this.controllerId).setWriteInterface(MediatorServerEntity.class);
 
         this.maintenanceRW = new SqlDBReaderWriter<>(this.dbClient, Entity.Maintenancemode, config.getDbSuffix(),
                 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.maintenance.list.output.Data.class,
-                this.dbClient.getDatabaseName(), this.controllerId).setWriteInterface(MaintenanceEntity.class);
+                this.controllerId).setWriteInterface(MaintenanceEntity.class);
 
         this.readStatus = new SqlDBStatusReader(this.dbClient, this.controllerId);
 
@@ -137,7 +137,7 @@
         };
         this.dbMaintenanceService = new HtDatabaseMaintenanceService(this);
         this.usermanager = new HtUserdataManagerImpl(new SqlDBReaderWriterUserdata(this.dbClient,
-                Entity.Userdata, config.getDbSuffix(), this.dbClient.getDatabaseName(), this.controllerId));
+                Entity.Userdata, config.getDbSuffix()));
         if (initControllerId) {
             try {
                 this.setControllerId();
@@ -512,6 +512,7 @@
             query = String.format("INSERT INTO `%s` (`id`,`desc`) VALUES ('%s','%s')", this.controllerTableName,
                     this.controllerId, "");
             LOG.trace(query);
+            try { data.close(); } catch (SQLException ignore) { }
             return this.dbClient.write(query);
         } else {
             LOG.trace("controllerId already set");
diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/entity/DatabaseIdGenerator.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/entity/DatabaseIdGenerator.java
index 6244894..9d09a11 100644
--- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/entity/DatabaseIdGenerator.java
+++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/entity/DatabaseIdGenerator.java
@@ -74,7 +74,6 @@
 
     public static String getFaultcurrentId(String nodeId, String objectId, String problemName) {
         String uuId = extractUuid(objectId);
-
         return String.format(FORMAT_FAULTDATA_ID, nodeId, uuId, problemName);
     }
 
diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/entity/HtDatabaseEventsService.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/entity/HtDatabaseEventsService.java
index 88aaa58..776c91f 100644
--- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/entity/HtDatabaseEventsService.java
+++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/entity/HtDatabaseEventsService.java
@@ -40,6 +40,7 @@
 import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.NetconfTimeStamp;
 import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.types.NetconfTimeStampImpl;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CmlogEntity;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ConnectionLogStatus;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ConnectionlogEntity;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Entity;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogEntity;
@@ -50,6 +51,7 @@
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.NetworkElementConnectionEntity;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.PmdataEntity;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateNetworkElementConnectionInputBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.Filter;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.FilterBuilder;
 import org.slf4j.Logger;
@@ -89,68 +91,68 @@
         this.dbClient = new SqlDBClient(config.getUrl(), config.getUsername(), config.getPassword());
         this.connectionlogRW = new SqlDBReaderWriter<>(dbClient, Entity.Connectionlog, config.getDbSuffix(),
                 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.connectionlog.list.output.Data.class,
-                this.dbClient.getDatabaseName(), this.controllerId);
+                this.controllerId);
         this.eventlogRW = new SqlDBReaderWriter<>(dbClient, Entity.Eventlog, config.getDbSuffix(),
                 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.eventlog.list.output.Data.class,
-                this.dbClient.getDatabaseName(), this.controllerId);
+                this.controllerId);
         this.eventRWFaultLog = new SqlDBReaderWriter<>(dbClient, Entity.Faultlog, config.getDbSuffix(),
                 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.faultlog.list.output.Data.class,
-                this.dbClient.getDatabaseName(), this.controllerId);
+                this.controllerId);
         this.eventRWFaultCurrent = new SqlDBReaderWriterFault<>(dbClient, Entity.Faultcurrent, config.getDbSuffix(),
                 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.faultcurrent.list.output.Data.class,
-                this.dbClient.getDatabaseName(), this.controllerId);
+                this.controllerId);
         this.equipmentRW = new SqlDBReaderWriter<>(dbClient, Entity.Inventoryequipment, config.getDbSuffix(),
                 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.inventory.list.output.Data.class,
-                this.dbClient.getDatabaseName(), this.controllerId);
+                this.controllerId);
         this.guicutthroughRW = new SqlDBReaderWriter<>(dbClient,
                 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Entity.Guicutthrough,
                 config.getDbSuffix(),
                 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.gui.cut.through.entry.output.Data.class,
-                this.dbClient.getDatabaseName(), this.controllerId).setWriteInterface(Guicutthrough.class);
+                this.controllerId).setWriteInterface(Guicutthrough.class);
         this.networkelementConnectionRW = new SqlDBReaderWriter<>(dbClient, Entity.NetworkelementConnection,
                 config.getDbSuffix(),
                 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.network.element.connection.list.output.Data.class,
-                this.dbClient.getDatabaseName(), this.controllerId);
+                this.controllerId);
         this.networkelementConnectionRW.setWriteInterface(NetworkElementConnectionEntity.class);
 
         this.pm15mRW = new SqlDBReaderWriterPm<>(dbClient, Entity.Historicalperformance15min, config.getDbSuffix(),
                 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.pmdata._15m.list.output.Data.class,
-                this.dbClient.getDatabaseName(), this.controllerId);
+                this.controllerId);
 
         this.pm24hRW = new SqlDBReaderWriterPm<>(dbClient, Entity.Historicalperformance24h, config.getDbSuffix(),
                 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.pmdata._24h.list.output.Data.class,
-                this.dbClient.getDatabaseName(), this.controllerId);
+                this.controllerId);
 
         this.eventRWCMLog = new SqlDBReaderWriter<>(dbClient, Entity.Cmlog, config.getDbSuffix(),
                 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.cmlog.list.output.Data.class,
-                this.dbClient.getDatabaseName(), this.controllerId);
+                this.controllerId);
 
     }
 
     @Override
     public void writeConnectionLog(ConnectionlogEntity event) {
-        this.connectionlogRW.write(event, event.getId());
+        this.connectionlogRW.write(event, null);
     }
 
     @Override
     public void writeEventLog(EventlogEntity event) {
-        this.eventlogRW.write(event, event.getId());
+        this.eventlogRW.write(event, null);
 
     }
 
     @Override
     public void writeFaultLog(FaultlogEntity fault) {
-        this.eventRWFaultLog.write(fault, fault.getId());
+        this.eventRWFaultLog.write(fault, null);
     }
 
     @Override
     public void writeCMLog(CmlogEntity cm) {
-        this.eventRWCMLog.write(cm, cm.getId());
+        this.eventRWCMLog.write(cm, null);
     }
 
     @Override
     public void updateFaultCurrent(FaultcurrentEntity fault) {
-        final String id = fault.getId() != null ? fault.getId() : DatabaseIdGenerator.getFaultcurrentId(fault);
+        final String id = DatabaseIdGenerator.getFaultcurrentId(fault);
         if (FaultEntityManager.isManagedAsCurrentProblem(fault)) {
             if (FaultEntityManager.isNoAlarmIndication(fault)) {
                 LOG.debug("Remove from currentFaults: {}", fault.toString());
@@ -198,8 +200,7 @@
 
     @Override
     public int clearGuiCutThroughEntriesOfNode(String nodeName) {
-        this.guicutthroughRW.remove(nodeName);
-        return 0;
+        return this.guicutthroughRW.remove(nodeName);
     }
 
     @Override
@@ -213,9 +214,28 @@
         return this.networkelementConnectionRW.updateOrInsert(ne, nodeId) != null;
     }
 
+    /**
+     * Remove network element connection if not required
+     * This function is called onDisconnect event for netconf node
+     */
     @Override
     public void removeNetworkConnection(String nodeId) {
-        this.networkelementConnectionRW.remove(nodeId);
+        NetworkElementConnectionEntity e = this.networkelementConnectionRW.read(nodeId);
+        Boolean isRequired = e!=null? e.getIsRequired():null;
+        if (e != null && isRequired  != null) {
+            if (isRequired) {
+                LOG.debug("updating connection status for {} of required ne to disconnected", nodeId);
+                this.networkelementConnectionRW.update(new UpdateNetworkElementConnectionInputBuilder()
+                        .setStatus(ConnectionLogStatus.Disconnected).build(), nodeId);
+            } else {
+                LOG.debug("remove networkelement-connection for {} entry because of non-required", nodeId);
+                this.networkelementConnectionRW.remove(nodeId);
+            }
+        } else {
+            LOG.warn("Unable to update connection-status. dbentry for {} not found in networkelement-connection",
+                    nodeId);
+        }
+
 
     }
 
diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/entity/HtDatabaseMaintenanceService.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/entity/HtDatabaseMaintenanceService.java
index a17c6ae..8c549de 100644
--- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/entity/HtDatabaseMaintenanceService.java
+++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/entity/HtDatabaseMaintenanceService.java
@@ -33,8 +33,6 @@
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMaintenanceOutputBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteMaintenanceInputBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.MaintenanceEntity;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadMaintenanceListInputBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadMaintenanceListOutput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadNetworkElementConnectionListInputBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadNetworkElementConnectionListOutput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.Filter;
@@ -109,12 +107,7 @@
 
     @Override
     public MaintenanceEntity getMaintenance(@Nullable String nodeId) {
-        ReadMaintenanceListOutput result = this.dbProvider
-                .readMaintenanceList(
-                        new ReadMaintenanceListInputBuilder().setFilter(getFilterInput("node-id", nodeId)).build())
-                .build();
-        final List<Data> data = result.getData();
-        return data != null ? !data.isEmpty() ? data.get(0) : null : null;
+        return this.maintenanceRw.read(DatabaseIdGenerator.getMaintenanceId(nodeId));
     }
 
     @Override
diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBMapper.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBMapper.java
index c63d2f1..19323b9 100644
--- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBMapper.java
+++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBMapper.java
@@ -60,7 +60,7 @@
     private static final String ENUM_DBTYPE = "VARCHAR(100)";
     private static final String BIGINT_DBTYPE = "BIGINT";
     public static final String ODLID_DBCOL = "controller-id";
-    private static final String ID_DBCOL = "id";
+    public static final String ID_DBCOL = "id";
     private static List<Class<?>> numericClasses = Arrays.asList(Byte.class, Integer.class, Long.class,
             BigInteger.class, Uint8.class, Uint16.class, Uint32.class, Uint64.class);
     private static final YangToolsMapper mapper = new YangToolsMapper();
@@ -78,18 +78,19 @@
     }
 
     public static <T> String createTable(Class<T> clazz, Entity e) throws UnableToMapClassException {
-        return createTable(clazz, e, "", false);
+        return createTable(clazz, e, "", false, true);
     }
 
     public static <T> String createTable(Class<T> clazz, Entity e, String suffix) throws UnableToMapClassException {
-        return createTable(clazz, e, suffix, false);
+        return createTable(clazz, e, suffix, false, true);
     }
 
     public static <T> String createTable(Class<T> clazz, Entity e, boolean autoIndex) throws UnableToMapClassException {
-        return createTable(clazz, e, "", false);
+        return createTable(clazz, e, "", false, true);
     }
 
-    public static <T> String createTable(Class<T> clazz, Entity e, String suffix, boolean autoIndex)
+    public static <T> String createTable(Class<T> clazz, Entity e, String suffix, boolean autoIndex,
+            boolean withControllerId)
             throws UnableToMapClassException {
         StringBuilder sb = new StringBuilder();
         sb.append("CREATE TABLE IF NOT EXISTS `" + e.getName() + suffix + "` (\n");
@@ -99,7 +100,9 @@
         } else {
             sb.append("`" + ID_DBCOL + "` " + STRING_DBTYPE + " " + getColumnOptions(ID_DBCOL, STRING_DBTYPE) + ",\n");
         }
-        sb.append("`" + ODLID_DBCOL + "` " + ODLID_DBTYPE + " " + getColumnOptions(ODLID_DBCOL, ODLID_DBTYPE) + ",\n");
+        if(withControllerId) {
+            sb.append("`" + ODLID_DBCOL + "` " + ODLID_DBTYPE + " " + getColumnOptions(ODLID_DBCOL, ODLID_DBTYPE) + ",\n");
+        }
         for (Method method : getFilteredMethods(clazz, true)) {
             Class<?> valueType = method.getReturnType();
             String colName = getColumnName(method);
@@ -110,8 +113,10 @@
             String options = getColumnOptions(colName, dbType);
             sb.append("`" + colName + "` " + dbType + " " + options + ",\n");
         }
-        sb.append("primary key(" + ID_DBCOL + "),");
-        sb.append("foreign key(`" + ODLID_DBCOL + "`) references " + TABLENAME_CONTROLLER + "(" + ID_DBCOL + ")");
+        sb.append("primary key(" + ID_DBCOL + ")");
+        if(withControllerId) {
+            sb.append(",foreign key(`" + ODLID_DBCOL + "`) references " + TABLENAME_CONTROLLER + "(" + ID_DBCOL + ")");
+        }
 
         sb.append(");");
         return sb.toString();
@@ -350,11 +355,14 @@
     public static <T> List<T> read(ResultSet data, Class<T> clazz, String column)
             throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, SQLException,
             InstantiationException, SecurityException, NoSuchMethodException, JsonProcessingException {
-
+        if(data==null) {
+            return Arrays.asList();
+        }
         Builder<T> builder = findPOJOBuilder(clazz);
         if(builder==null && column==null) {
             throw new InstantiationException("unable to find builder for class "+clazz.getName());
         }
+
         List<T> list = new ArrayList<>();
         while (data.next()) {
             if (column == null) {
diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriter.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriter.java
index b5322d6..56e965c 100644
--- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriter.java
+++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriter.java
@@ -57,34 +57,47 @@
     protected final Entity entity;
     private final Class<T> clazz;
     protected final SqlDBClient dbService;
-    private final String dbName;
     protected final String controllerId;
     protected final String tableName;
+    private final boolean ignoreControllerId;
 
-    public SqlDBReaderWriter(SqlDBClient dbService, Entity e, String dbSuffix, Class<T> clazz, String dbName,
+    public SqlDBReaderWriter(SqlDBClient dbService, Entity e, String dbSuffix, Class<T> clazz,
             String controllerId) {
+        this(dbService, e, dbSuffix, clazz, controllerId, false);
+    }
+
+    public SqlDBReaderWriter(SqlDBClient dbService, Entity e, String dbSuffix, Class<T> clazz,
+            String controllerId, boolean ignoreControllerId) {
         this.dbService = dbService;
         this.entity = e;
         this.clazz = clazz;
-        this.dbName = dbName;
         this.tableName = this.entity.getName() + dbSuffix;
         this.controllerId = controllerId;
+        this.ignoreControllerId = ignoreControllerId;
     }
 
     public long count(List<Filter> filter) throws SQLException {
         String query;
         if (filter == null || filter.isEmpty()) {
-            query = String.format("SELECT table_rows FROM `information_schema`.`tables` "
-                    + "WHERE `table_schema` = '%s' AND `table_name` = '%s'", this.dbName, this.tableName);
+            //            query = String.format("SELECT table_rows FROM `information_schema`.`tables` "
+            //                    + "WHERE `table_schema` = '%s' AND `table_name` = '%s'", this.dbName, this.tableName);
+            query = String.format("SELECT COUNT(`id`) FROM `%s`", this.tableName);
         } else {
             query = String.format("SELECT COUNT(`id`) FROM `%s` %s", this.tableName,
                     SqlQuery.getWhereExpression(filter));
         }
         ResultSet data = this.dbService.read(query);
+        if(data==null) {
+            return 0;
+        }
         long cnt = 0;
         if (data.next()) {
             cnt = data.getLong(1);
         }
+        try {
+            data.close();
+        } catch (SQLException ignore) {
+        }
         return cnt;
     }
 
@@ -106,11 +119,19 @@
 
     public QueryResult<T> getData(EntityInput input) {
         SelectQuery query = new SelectQuery(this.tableName, input, this.controllerId);
-        LOG.trace("query={}", query.toSql());
+        if (LOG.isTraceEnabled()) {
+            LOG.trace("query={}", query.toSql());
+        }
         try {
             ResultSet data = this.dbService.read(query.toSql());
             List<T> mappedData = SqlDBMapper.read(data, clazz);
             final Map<FilterKey, Filter> filter = input.getFilter();
+            try {
+                if(data!=null) {
+                    data.close();
+                }
+            } catch (SQLException ignore) {
+            }
             long total = this.count(filter != null ? new ArrayList<>(filter.values()) : null, this.controllerId);
             return new QueryResult<T>(mappedData, query.getPage(), query.getPageSize(), total);
         } catch (SQLException | IllegalAccessException | IllegalArgumentException | InvocationTargetException
@@ -126,8 +147,11 @@
         if (id == null) {
             return this.writeWithoutId(object);
         }
-        InsertQuery<S> query = new InsertQuery<S>(this.entity, object, this.controllerId);
+        InsertQuery<S> query = new InsertQuery<S>(this.entity, object, this.controllerId, this.ignoreControllerId);
         query.setId(id);
+        if (LOG.isTraceEnabled()) {
+            LOG.trace("query={}", query.toSql());
+        }
         boolean success = false;
         try {
             success = this.dbService.write(query.toSql());
@@ -140,7 +164,11 @@
 
     private <S extends DataObject> String writeWithoutId(S object) {
 
-        InsertQuery<S> query = new InsertQuery<S>(this.entity, object, this.controllerId);
+        InsertQuery<S> query =
+                new InsertQuery<S>(this.entity, object, this.controllerId, this.ignoreControllerId, true);
+        if (LOG.isTraceEnabled()) {
+            LOG.trace("query={}", query.toSql());
+        }
         try {
             return this.dbService.writeAndReturnId(query.toSql());
         } catch (SQLException e) {
@@ -150,8 +178,11 @@
     }
 
     public <S extends DataObject> String update(S object, String id) {
-        UpdateQuery<S> query = new UpdateQuery<S>(this.entity, object, this.controllerId);
+        UpdateQuery<S> query = new UpdateQuery<S>(this.entity, object, this.controllerId, this.ignoreControllerId, true);
         query.setId(id);
+        if (LOG.isTraceEnabled()) {
+            LOG.trace("query={}", query.toSql());
+        }
         String insertedId = null;
         PreparedStatement stmt = null;
         try {
@@ -164,6 +195,9 @@
             if (affectedRows > 0) {
                 insertedId = id;
             }
+            if (LOG.isTraceEnabled()) {
+                LOG.trace("insertedid={}", insertedId);
+            }
         } catch (SQLException e) {
             LOG.warn("problem writing data into db: ", e);
         } finally {
@@ -180,10 +214,12 @@
     }
 
     public <S extends DataObject> String updateOrInsert(S object, String id) {
-        UpsertQuery<S> query = new UpsertQuery<S>(this.entity, object, this.controllerId);
+        UpsertQuery<S> query = new UpsertQuery<S>(this.entity, object, this.controllerId, this.ignoreControllerId, true);
         query.setId(id);
         String insertedId = null;
-        LOG.trace("query={}", query.toSql());
+        if (LOG.isTraceEnabled()) {
+            LOG.trace("query={}", query.toSql());
+        }
         PreparedStatement stmt = null;
         try {
             Connection connection = this.dbService.getConnection();
@@ -221,6 +257,9 @@
 
     public int remove(List<Filter> filters) {
         DeleteQuery query = new DeleteQuery(this.entity, filters);
+        if (LOG.isTraceEnabled()) {
+            LOG.trace("query={}", query.toSql());
+        }
         int affectedRows = 0;
         PreparedStatement stmt = null;
         try {
@@ -249,9 +288,16 @@
 
     public <S extends DataObject> List<S> readAll(Class<S> clazz) {
         SelectQuery query = new SelectQuery(this.tableName);
+        if (LOG.isTraceEnabled()) {
+            LOG.trace("query={}", query.toSql());
+        }
         try {
             ResultSet data = this.dbService.read(query.toSql());
             List<S> mappedData = SqlDBMapper.read(data, clazz);
+            try {
+                data.close();
+            } catch (SQLException ignore) {
+            }
             return mappedData;
         } catch (SQLException | IllegalAccessException | IllegalArgumentException | InvocationTargetException
                 | InstantiationException | SecurityException | NoSuchMethodException | JsonProcessingException e) {
@@ -262,9 +308,16 @@
 
     public List<String> readAll(String key) {
         SelectQuery query = new SelectQuery(this.tableName, key, this.controllerId).groupBy(key);
+        if (LOG.isTraceEnabled()) {
+            LOG.trace("query={}", query.toSql());
+        }
         try {
             ResultSet data = this.dbService.read(query.toSql());
             List<String> mappedData = SqlDBMapper.read(data, String.class, key);
+            try {
+                data.close();
+            } catch (SQLException ignore) {
+            }
             return mappedData;
         } catch (SQLException | IllegalAccessException | IllegalArgumentException | InvocationTargetException
                 | InstantiationException | SecurityException | NoSuchMethodException | JsonProcessingException e) {
@@ -272,4 +325,22 @@
         }
         return null;
     }
+
+    public T read(String id) {
+        SelectQuery query =
+                new SelectQuery(this.tableName, this.controllerId).addFilter(SqlDBMapper.ID_DBCOL, id);
+        if (LOG.isTraceEnabled()) {
+            LOG.trace("query={}", query.toSql());
+        }
+        T item = null;
+        try {
+            ResultSet data = this.dbService.read(query.toSql());
+            List<T> mappedData = SqlDBMapper.read(data, clazz);
+            item = mappedData.size()>0? mappedData.get(0): null;
+        } catch (SQLException | IllegalAccessException | IllegalArgumentException | InvocationTargetException
+                | InstantiationException | SecurityException | NoSuchMethodException | JsonProcessingException e) {
+            LOG.warn("problem reading data {}: ", this.entity, e);
+        }
+        return item;
+    }
 }
diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriterFault.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriterFault.java
index 2d4e26e..86d888a 100644
--- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriterFault.java
+++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriterFault.java
@@ -30,9 +30,9 @@
 
     private static final String NODE_KEY = "node-id";
 
-    public SqlDBReaderWriterFault(SqlDBClient dbService, Entity e, String dbSuffix, Class<T> clazz, String dbName,
+    public SqlDBReaderWriterFault(SqlDBClient dbService, Entity e, String dbSuffix, Class<T> clazz,
             String controllerId) {
-        super(dbService, e, dbSuffix, clazz, dbName, controllerId);
+        super(dbService, e, dbSuffix, clazz, controllerId);
     }
 
     public List<String> getAllNodes() {
diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriterPm.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriterPm.java
index 021741b..22aabc4 100644
--- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriterPm.java
+++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriterPm.java
@@ -53,9 +53,9 @@
 
     private static final FilterKey FILTERKEY = new FilterKey(KEY);
 
-    public SqlDBReaderWriterPm(SqlDBClient dbService, Entity e, String dbSuffix, Class<T> clazz, String dbName,
+    public SqlDBReaderWriterPm(SqlDBClient dbService, Entity e, String dbSuffix, Class<T> clazz,
             String controllerId) {
-        super(dbService, e, dbSuffix, clazz, dbName, controllerId);
+        super(dbService, e, dbSuffix, clazz, controllerId);
     }
 
     /**
@@ -83,6 +83,7 @@
         try {
             ResultSet data = this.dbService.read(query.toSql());
             List<String> mappedData = SqlDBMapper.read(data, String.class, UUID_KEY);
+            try { data.close(); } catch (SQLException ignore) { }
             Map<FilterKey, Filter> inpFilter = input.getFilter();
             long total = this.count(inpFilter != null ? new ArrayList<>(inpFilter.values()) : null, this.controllerId);
             return new QueryResult<>(mappedData, query.getPage(), query.getPageSize(), total);
@@ -114,6 +115,7 @@
         try {
             ResultSet data = this.dbService.read(query.toSql());
             List<String> mappedData = SqlDBMapper.read(data, String.class, NODE_KEY);
+            try { data.close(); } catch (SQLException ignore) { }
             Map<FilterKey, Filter> inpFilter = input.getFilter();
             long total = this.count(inpFilter != null ? new ArrayList<>(inpFilter.values()) : null, this.controllerId);
             return new QueryResult<>(mappedData, query.getPage(), query.getPageSize(), total);
diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriterUserdata.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriterUserdata.java
index 2c849ac..258cd16 100644
--- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriterUserdata.java
+++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriterUserdata.java
@@ -27,11 +27,11 @@
 
 public class SqlDBReaderWriterUserdata extends SqlDBReaderWriter<Userdata> {
 
-    public SqlDBReaderWriterUserdata(SqlDBClient dbService, Entity e, String dbSuffix, String dbName,
-            String controllerId) {
-        super(dbService, e, dbSuffix, Userdata.class, dbName, controllerId);
+    public SqlDBReaderWriterUserdata(SqlDBClient dbService, Entity e, String dbSuffix) {
+        super(dbService, e, dbSuffix, Userdata.class, null, true);
     }
 
 
 
+
 }
diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBStatusReader.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBStatusReader.java
index c98ba38..b0b169d 100644
--- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBStatusReader.java
+++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBStatusReader.java
@@ -74,6 +74,7 @@
 
                 }
             }
+            try { data.close(); } catch (SQLException ignore) { }
         } catch (SQLException e) {
             LOG.warn("problem reading status:", e);
         }
diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/CountQuery.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/CountQuery.java
index c499fef..1c1ec62 100644
--- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/CountQuery.java
+++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/CountQuery.java
@@ -59,7 +59,7 @@
         this(e);
         Map<FilterKey, Filter> filter = input != null ? input.getFilter() : null;
         if (filter != null && filter.size() > 0) {
-           this.filters.addAll(filters);
+           this.filters.addAll(filter.values());
         }
         if (controllerId != null) {
             this.addFilter(SqlDBMapper.ODLID_DBCOL, controllerId);
diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/InsertQuery.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/InsertQuery.java
index 108888a..f52fbd5 100644
--- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/InsertQuery.java
+++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/InsertQuery.java
@@ -39,17 +39,28 @@
 
     protected final Entity entity;
     private final String controllerId;
+    private final boolean ignoreControllerId;
     private final T object;
     private final boolean ignoreNull;
     private String id;
+    private final boolean ignoreIdField;
 
     public InsertQuery(Entity e, T object, String controllerId) {
+        this(e, object, controllerId, SqlQuery.DEFAULT_IGNORE_CONTROLLERID);
+    }
+
+    public InsertQuery(Entity e, T object, String controllerId, boolean ignoreControllerId) {
+        this(e, object, controllerId, ignoreControllerId, SqlQuery.DEFAULT_IGNORE_ID_FIELD);
+    }
+
+    public InsertQuery(Entity e, T object, String controllerId, boolean ignoreControllerId, boolean ignoreIdField) {
         this.entity = e;
         this.controllerId = controllerId;
         this.object = object;
         this.ignoreNull = true;
         this.id = null;
-
+        this.ignoreControllerId = ignoreControllerId;
+        this.ignoreIdField = ignoreIdField;
     }
 
     @Override
@@ -63,8 +74,8 @@
         return null;
     }
 
-    protected String toSqlWithError() throws IllegalAccessException, IllegalArgumentException, InvocationTargetException,
-            JsonProcessingException {
+    protected String toSqlWithError() throws IllegalAccessException, IllegalArgumentException,
+            InvocationTargetException, JsonProcessingException {
         Class<?> cls = this.object.getClass();
         List<DBKeyValuePair<String>> kvps = new ArrayList<>();
         List<String> cols = new ArrayList<>();
@@ -78,26 +89,37 @@
             m.setAccessible(true);
             value = m.invoke(this.object);
             col = SqlDBMapper.getColumnName(m);
-            if (col.equals("id") && this.id != null) {
-                value = this.id;
+            if (col.equals("id")) {
+                if (this.ignoreIdField) {
+                    continue;
+                }
+                if (this.id != null) {
+                    value = this.id;
+                }
             }
             if (ignoreNull && value == null) {
                 continue;
             }
-            DBKeyValuePair<String> kvp = SqlDBMapper.getEscapedKeyValue(m,col, value);
+            DBKeyValuePair<String> kvp = SqlDBMapper.getEscapedKeyValue(m, col, value);
             cols.add(kvp.getKey());
             args.add(kvp.getValue());
             kvps.add(kvp);
         }
         if (this.id != null && !cols.contains("`id`")) {
             cols.add("`id`");
-            args.add("'"+this.id+"'");
+            args.add("'" + this.id + "'");
         }
-        args.add("'"+this.controllerId+"'");
-        sb.append( String.join(",", cols));
-        sb.append(",`" + SqlDBMapper.ODLID_DBCOL + "`) VALUES (");
-        sb.append( String.join(",", args)+" )");
-        this.appendAdditionalToQuery(sb,kvps);
+        if (!this.ignoreControllerId) {
+            args.add("'" + this.controllerId + "'");
+        }
+        sb.append(String.join(",", cols));
+        if (!this.ignoreControllerId) {
+            sb.append(",`" + SqlDBMapper.ODLID_DBCOL + "`) VALUES (");
+        } else {
+            sb.append(") VALUES (");
+        }
+        sb.append(String.join(",", args) + " )");
+        this.appendAdditionalToQuery(sb, kvps);
         return sb.toString();
     }
 
diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/SelectQuery.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/SelectQuery.java
index 2b3f9f3..6403a5c 100644
--- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/SelectQuery.java
+++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/SelectQuery.java
@@ -54,9 +54,11 @@
     private final List<String> groups;
 
     public SelectQuery(String tableName) {
-        this(tableName, Arrays.asList("*"), null);
+        this(tableName, (String)null);
     }
-
+    public SelectQuery(String tableName, String controllerId) {
+        this(tableName, Arrays.asList("*"), controllerId);
+    }
     public SelectQuery(String tableName, List<String> fields, String controllerId) {
         this.tableName = tableName;
         this.fields = fields;
@@ -105,18 +107,21 @@
 
     }
 
-    public void addFilter(String property, String filtervalue) {
+    public SelectQuery addFilter(String property, String filtervalue) {
         this.addFilter(new FilterBuilder().setProperty(property).setFiltervalue(filtervalue).build());
+        return this;
     }
 
     private static Filter cleanFilter(Filter filter) {
-        if (filter.getFiltervalue() != null
-                && (filter.getFiltervalues() == null || filter.getFiltervalues().isEmpty())) {
+        final String sFilter = filter.getFiltervalue();
+        final List<String> sFilters = filter.getFiltervalues();
+        //if only single filter value is set
+        if (sFilter != null && (sFilters == null || sFilter.isEmpty())) {
             return "*".equals(filter.getFiltervalue()) ? null : filter;
         } else {
             List<String> list = new ArrayList<>(filter.getFiltervalues());
-            if (filter.getFiltervalue() != null && !filter.getFiltervalue().isEmpty()) {
-                list.add(filter.getFiltervalue());
+            if (sFilter != null && !sFilter.isEmpty()) {
+                list.add(sFilter);
             }
             if (list.size() == 1 && "*".equals(list.get(0))) {
                 return null;
diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/SqlQuery.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/SqlQuery.java
index 82f10b1..3e26d09 100644
--- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/SqlQuery.java
+++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/SqlQuery.java
@@ -27,6 +27,7 @@
 import java.util.Date;
 import java.util.List;
 import java.util.TimeZone;
+import java.util.stream.Collectors;
 import org.eclipse.jdt.annotation.Nullable;
 import org.onap.ccsdk.features.sdnr.wt.common.database.data.DbFilter;
 import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.query.filters.DBFilterKeyValuePair;
@@ -46,12 +47,15 @@
     static final String MARIADB_TIMESTAMP_REPLACER_MIN = "0000-00-00 00:00:00";
     static final int MARIADB_TIMESTAMP_REPLACER_MIN_LENGTH = MARIADB_TIMESTAMP_REPLACER_MIN.length();
     static final int MARIADB_TIMESTAMP_REPLACER_MAX_LENGTH = MARIADB_TIMESTAMP_REPLACER.length();
+    static final boolean DEFAULT_IGNORE_CONTROLLERID = false;
+    static final boolean DEFAULT_IGNORE_ID_FIELD = false;
 
     public static String getWhereExpression(List<Filter> filters) {
         if (filters == null) {
             return "";
         }
         StringBuilder sb = new StringBuilder();
+        filters = filters.stream().filter(e -> !"*".equals(e.getFiltervalue())).collect(Collectors.toList());
         if (!filters.isEmpty()) {
 
             sb.append(" WHERE (" + getFilterExpression(filters.get(0)) + ")");
@@ -64,7 +68,8 @@
 
     public static String getFilterExpression(Filter filter) {
         String property = filter.getProperty();
-        List<String> values = collectValues(filter.getFiltervalue(), filter.getFiltervalues());
+        List<String> values = collectValues(filter.getFiltervalue(), filter.getFiltervalues()).stream()
+                .filter(e -> !"*".equals(e)).collect(Collectors.toList());
         if (values.size() == 1) {
             return getFilterExpression(property, values.get(0));
         } else if (values.size() > 1) {
@@ -225,7 +230,7 @@
     }
 
     private static String netconfToMariaDBTimestamp(String ts) {
-        if(ts==null) {
+        if (ts == null) {
             return null;
         }
         String v = ts.replace("T", " ").replace("Z", "");
diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/UpdateQuery.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/UpdateQuery.java
index b47b030..dc81161 100644
--- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/UpdateQuery.java
+++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/UpdateQuery.java
@@ -44,10 +44,10 @@
     private String id;
 
     public UpdateQuery(Entity e, T object) {
-        this(e, object, null);
+        this(e, object, null, SqlQuery.DEFAULT_IGNORE_CONTROLLERID, SqlQuery.DEFAULT_IGNORE_ID_FIELD);
     }
 
-    public UpdateQuery(Entity e, T object, String controllerId) {
+    public UpdateQuery(Entity e, T object, String controllerId, boolean ignoreControllerId, boolean ignoreIdField) {
         this.entity = e;
         this.controllerId = controllerId;
         this.object = object;
diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/UpsertQuery.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/UpsertQuery.java
index e6f1e13..39c5054 100644
--- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/UpsertQuery.java
+++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/UpsertQuery.java
@@ -32,6 +32,10 @@
         super(e, object, controllerId);
 
     }
+    public UpsertQuery(Entity e, T object, String controllerId, boolean ignoreControllerId, boolean ignoreIdField) {
+        super(e, object, controllerId, ignoreControllerId, ignoreIdField);
+
+    }
 
     @Override
     protected void appendAdditionalToQuery(StringBuilder sb, List<DBKeyValuePair<String>> keyValues) {
diff --git a/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/TestCRUDMariaDB.java b/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/TestCRUDMariaDB.java
index ad4ab67..1dd9f72 100644
--- a/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/TestCRUDMariaDB.java
+++ b/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/TestCRUDMariaDB.java
@@ -105,6 +105,7 @@
             e.printStackTrace();
             fail("unable to read size");
         }
+        try { data.close(); } catch (SQLException ignore) { }
         //create entry
         success = false;
         try {
@@ -125,6 +126,7 @@
             e.printStackTrace();
             fail("unable to verify write");
         }
+        try { data.close(); } catch (SQLException ignore) { }
         //update entry
         success = false;
         try {
@@ -145,6 +147,7 @@
             e.printStackTrace();
             fail("unable to verify write");
         }
+        try { data.close(); } catch (SQLException ignore) { }
         //delete entry
         success = false;
         try {
@@ -161,6 +164,7 @@
             e.printStackTrace();
             fail("unable to verify delete. size>0");
         }
+        try { data.close(); } catch (SQLException ignore) { }
     }
 
     @Test
diff --git a/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/TestMariaDataProvider.java b/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/TestMariaDataProvider.java
index b4e0584..c9cf27c 100644
--- a/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/TestMariaDataProvider.java
+++ b/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/TestMariaDataProvider.java
@@ -24,6 +24,8 @@
 package org.onap.ccsdk.features.sdnr.wt.dataprovider.dblib.test;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 import java.io.IOException;
 import java.sql.SQLException;
@@ -34,14 +36,17 @@
 import java.util.concurrent.TimeUnit;
 import org.json.JSONArray;
 import org.json.JSONException;
+import org.json.JSONObject;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.SqlDBClient;
 import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.data.SqlDBDataProvider;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.database.SqlDBReaderWriter;
 import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.query.DeleteQuery;
 import org.onap.ccsdk.features.sdnr.wt.dataprovider.dblib.test.util.MariaDBTestBase;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.HtDatabaseMaintenance;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.HtUserdataManager;
 import org.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapper;
 import org.opendaylight.netconf.shaded.sshd.common.util.io.IoUtils;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
@@ -57,6 +62,9 @@
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMediatorServerInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMediatorServerInputBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMediatorServerOutputBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateNetworkElementConnectionOutputBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteMaintenanceInput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteMaintenanceInputBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteMediatorServerInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteMediatorServerInputBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteNetworkElementConnectionInput;
@@ -72,6 +80,7 @@
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Guicutthrough;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.GuicutthroughBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.MaintenanceEntity;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.NetworkElementConnectionBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.NetworkElementConnectionEntity;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.NetworkElementDeviceType;
@@ -90,10 +99,14 @@
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mDeviceListOutputBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mListOutputBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mLtpListOutputBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hDeviceListOutputBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hListOutputBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hLtpListOutputBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadStatusOutputBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SourceType;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMaintenanceInput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMaintenanceInputBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMediatorServerInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMediatorServerInputBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateNetworkElementConnectionInput;
@@ -102,6 +115,7 @@
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.FilterBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.FilterKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.PaginationBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.network.element.connection.list.output.Data;
 import org.opendaylight.yangtools.yang.common.Uint32;
 import org.opendaylight.yangtools.yang.common.Uint64;
 import ch.vorburger.exec.ManagedProcessException;
@@ -112,6 +126,8 @@
     private static final String NODEID1 = "node1";
     private static final String NODEID2 = "node2";
     private static final String NODEID3 = "node3";
+    private static final String NODEID4 = "node4";
+    private static final String NODEID5 = "node5";
     private static final String PROBLEM1 = "problem1";
     private static final String TIME1 = "2021-05-25T05:12:55.0Z";
     private static final String TIME2 = "2021-05-25T05:12:56.0Z";
@@ -121,6 +137,7 @@
     private static final String URI2 = "http://localhost:8181";
     private static final String URI3 = "http://localhost:8181";
     private static final String PATH = "https://samsung.com/3GPP/simulation/network-function/ves";
+    private static final String USERNAME = "admin";
     private static MariaDBTestBase testBase;
     private static SqlDBDataProvider dbProvider;
     private static SqlDBClient dbClient;
@@ -176,12 +193,43 @@
         assertEquals(1, status.getData().get(0).getFaults().getMinors().intValue());
         assertEquals(0, status.getData().get(0).getFaults().getWarnings().intValue());
 
+        List<String> nodeList = dbProvider.getAllNodesWithCurrentAlarms();
+        assertTrue(nodeList.contains(NODEID1));
+        assertEquals(1,nodeList.size());
+
         faultCurrent1 = new FaultcurrentBuilder().setNodeId(NODEID1).setCounter(1).setObjectId("obj")
                 .setProblem(PROBLEM1).setTimestamp(DateAndTime.getDefaultInstance(TIME1))
                 .setSeverity(SeverityType.NonAlarmed).setId(String.format("%s/%s", NODEID1, PROBLEM1)).build();
         dbProvider.updateFaultCurrent(faultCurrent1);
         faultCurrents = dbProvider.readFaultCurrentList(createInput("node-id", NODEID1, 1, 20));
         assertEquals(1, faultCurrents.getData().size());
+
+
+    }
+
+    @Test
+    public void testSerializeDeserialize() {
+
+        try {
+            CreateNetworkElementConnectionOutputBuilder necon = dbProvider.createNetworkElementConnection(
+                    new NetworkElementConnectionBuilder().setNodeId(NODEID1).setIsRequired(Boolean.TRUE).build());
+            List<Data> netestList =
+                    dbProvider.readNetworkElementConnectionList(createInput("node-id", NODEID1, 1, 20)).getData();
+
+            assertNotNull(necon);
+            assertEquals(1, netestList.size());
+            assertTrue(netestList.get(0).getIsRequired());
+            SqlDBReaderWriter<Data> dbrw = new SqlDBReaderWriter<>(dbClient, Entity.NetworkelementConnection,
+                    MariaDBTestBase.SUFFIX,
+                    Data.class,
+                    CONTROLLERID);
+            Data e = dbrw.read(NODEID1);
+            assertNotNull(e);
+
+        } catch (IOException e) {
+            e.printStackTrace();
+            fail(e.getMessage());
+        }
     }
 
     @Test
@@ -204,6 +252,7 @@
         dbProvider.writeFaultLog(fault2);
         faultlogs = dbProvider.readFaultLogList(createInput("node-id", NODEID1, 1, 20));
         assertEquals(2, faultlogs.getData().size());
+
     }
 
     @Test
@@ -211,28 +260,16 @@
         ReadCmlogListOutputBuilder cmlogs = dbProvider.readCMLogList(createInput(1, 20));
         assertEquals(0, cmlogs.getData().size());
 
-        CmlogEntity cm1 = new CmlogBuilder()
-            .setNodeId(NODEID2)
-            .setCounter(1)
-            .setTimestamp(DateAndTime.getDefaultInstance(TIME1))
-            .setObjectId("obj")
-            .setNotificationType(CmNotificationType.NotifyMOIChanges)
-            .setNotificationId("1")
-            .setSourceIndicator(CmSourceIndicator.MANAGEMENTOPERATION)
-            .setPath(PATH)
-            .setValue("pnf-registration: true")
-            .build();
-        CmlogEntity cm2 = new CmlogBuilder()
-            .setNodeId(NODEID2)
-            .setCounter(2)
-            .setTimestamp(DateAndTime.getDefaultInstance(TIME2))
-            .setObjectId("obj")
-            .setNotificationType(CmNotificationType.NotifyMOIChanges)
-            .setNotificationId("2")
-            .setSourceIndicator(CmSourceIndicator.UNKNOWN)
-            .setPath(PATH)
-            .setValue("pnf-registration: false")
-            .build();
+        CmlogEntity cm1 =
+                new CmlogBuilder().setNodeId(NODEID2).setCounter(1).setTimestamp(DateAndTime.getDefaultInstance(TIME1))
+                        .setObjectId("obj").setNotificationType(CmNotificationType.NotifyMOIChanges)
+                        .setNotificationId("1").setSourceIndicator(CmSourceIndicator.MANAGEMENTOPERATION).setPath(PATH)
+                        .setValue("pnf-registration: true").build();
+        CmlogEntity cm2 =
+                new CmlogBuilder().setNodeId(NODEID2).setCounter(2).setTimestamp(DateAndTime.getDefaultInstance(TIME2))
+                        .setObjectId("obj").setNotificationType(CmNotificationType.NotifyMOIChanges)
+                        .setNotificationId("2").setSourceIndicator(CmSourceIndicator.UNKNOWN).setPath(PATH)
+                        .setValue("pnf-registration: false").build();
 
         dbProvider.writeCMLog(cm1);
         dbProvider.writeCMLog(cm2);
@@ -240,10 +277,10 @@
         assertEquals(2, cmlogs.getData().size());
 
         List<CmlogEntity> cmLogEntityList = List.of(cm1, cm2);
-        assertEquals("node2",cmLogEntityList.get(0).getNodeId());
-        assertEquals("obj",cmLogEntityList.get(0).getObjectId());
-        assertEquals(CmNotificationType.NotifyMOIChanges,cmLogEntityList.get(0).getNotificationType());
-        assertEquals("2",cmLogEntityList.get(1).getNotificationId());
+        assertEquals("node2", cmLogEntityList.get(0).getNodeId());
+        assertEquals("obj", cmLogEntityList.get(0).getObjectId());
+        assertEquals(CmNotificationType.NotifyMOIChanges, cmLogEntityList.get(0).getNotificationType());
+        assertEquals("2", cmLogEntityList.get(1).getNotificationId());
 
     }
 
@@ -383,6 +420,45 @@
         data = dbProvider.readMaintenanceList(createInput(1, 20));
         assertEquals(3, data.getData().size());
 
+        UpdateMaintenanceInput update1 =
+                new UpdateMaintenanceInputBuilder().setId(NODEID1).setNodeId(NODEID1).setActive(false).build();
+        try {
+            dbProvider.updateMaintenance(update1);
+        } catch (IOException e) {
+            e.printStackTrace();
+            fail("unable to update maintenance data");
+        }
+        data = dbProvider.readMaintenanceList(createInput("active","false",1, 20));
+        assertEquals(1, data.getData().size());
+        DeleteMaintenanceInput delete1 = new DeleteMaintenanceInputBuilder().setId(NODEID1).build();
+        try {
+            dbProvider.deleteMaintenance(delete1);
+        } catch (IOException e) {
+            e.printStackTrace();
+            fail("unable to delete maintenance data");
+        }
+        data = dbProvider.readMaintenanceList(createInput(1, 20));
+        assertEquals(2, data.getData().size());
+        try {
+            dbClient.delete(new DeleteQuery(Entity.Maintenancemode, null).toSql());
+        } catch (SQLException e) {
+            e.printStackTrace();
+            fail("problem clearing faultlog");
+        }
+        final String nodeId = "maint_node1";
+        HtDatabaseMaintenance maintenanceService = dbProvider.getHtDatabaseMaintenance();
+        MaintenanceEntity e = maintenanceService.createIfNotExists(nodeId);
+        assertNotNull(e);
+        assertEquals(nodeId,e.getNodeId());
+        MaintenanceEntity e2 = new CreateMaintenanceInputBuilder(e).setActive(true).build();
+        e = maintenanceService.setMaintenance(e2);
+        assertNotNull(e);
+        assertEquals(nodeId,e.getNodeId());
+        assertTrue(e.getActive());
+        maintenanceService.deleteIfNotRequired(nodeId);
+        data = dbProvider.readMaintenanceList(createInput("node-id",nodeId,1, 20));
+        assertEquals(0, data.getData().size());
+
     }
 
     @Test
@@ -456,22 +532,26 @@
         NetworkElementConnectionEntity ne2 = new NetworkElementConnectionBuilder().setNodeId(NODEID2)
                 .setHost("10.20.30.55").setPort(Uint32.valueOf(8300)).setIsRequired(false).setUsername("user")
                 .setPassword("passwd").setStatus(ConnectionLogStatus.Connecting).build();
+        NetworkElementConnectionEntity ne3 = new NetworkElementConnectionBuilder().setNodeId(NODEID3)
+                .setHost("10.20.30.55").setPort(Uint32.valueOf(8300)).setIsRequired(false).setUsername("user")
+                .setPassword("passwd").setStatus(ConnectionLogStatus.Connecting).build();
         try {
             dbProvider.createNetworkElementConnection(ne1);
             dbProvider.createNetworkElementConnection(ne2);
+            dbProvider.updateNetworkConnection22(ne3, NODEID3);
         } catch (IOException e) {
             e.printStackTrace();
             fail("problem creating neconnection");
         }
         data = dbProvider.readNetworkElementConnectionList(createInput(1, 20));
-        assertEquals(2, data.getData().size());
+        assertEquals(3, data.getData().size());
         NetworkElementConnectionEntity update1 = new NetworkElementConnectionBuilder()
                 .setStatus(ConnectionLogStatus.Connected).setDeviceType(NetworkElementDeviceType.ORAN).build();
         dbProvider.updateNetworkConnectionDeviceType(update1, NODEID1);
         data = dbProvider.readNetworkElementConnectionList(createInput("node-id", NODEID1, 1, 20));
         assertEquals(1, data.getData().size());
         assertEquals(NetworkElementDeviceType.ORAN, data.getData().get(0).getDeviceType());
-        assertEquals(true, data.getData().get(0).isIsRequired());
+        assertEquals(true, data.getData().get(0).getIsRequired());
         UpdateNetworkElementConnectionInput update2 = new UpdateNetworkElementConnectionInputBuilder().setId(NODEID2)
                 .setHost("10.20.55.44").setIsRequired(true).build();
         try {
@@ -483,7 +563,7 @@
         data = dbProvider.readNetworkElementConnectionList(createInput("node-id", NODEID2, 1, 20));
         assertEquals(1, data.getData().size());
         assertEquals("10.20.55.44", data.getData().get(0).getHost());
-        assertEquals(true, data.getData().get(0).isIsRequired());
+        assertEquals(true, data.getData().get(0).getIsRequired());
 
         ReadStatusOutputBuilder status = null;
         try {
@@ -493,10 +573,10 @@
             fail("failed to read status");
         }
         assertEquals(1, status.getData().get(0).getNetworkElementConnections().getConnected().intValue());
-        assertEquals(1, status.getData().get(0).getNetworkElementConnections().getConnecting().intValue());
+        assertEquals(2, status.getData().get(0).getNetworkElementConnections().getConnecting().intValue());
         assertEquals(0, status.getData().get(0).getNetworkElementConnections().getDisconnected().intValue());
         assertEquals(0, status.getData().get(0).getNetworkElementConnections().getMounted().intValue());
-        assertEquals(2, status.getData().get(0).getNetworkElementConnections().getTotal().intValue());
+        assertEquals(3, status.getData().get(0).getNetworkElementConnections().getTotal().intValue());
         assertEquals(0, status.getData().get(0).getNetworkElementConnections().getUnableToConnect().intValue());
         assertEquals(0, status.getData().get(0).getNetworkElementConnections().getUndefined().intValue());
         assertEquals(0, status.getData().get(0).getNetworkElementConnections().getUnmounted().intValue());
@@ -513,10 +593,40 @@
         data = dbProvider.readNetworkElementConnectionList(createInput("node-id", NODEID1, 1, 20));
         assertEquals(0, data.getData().size());
         data = dbProvider.readNetworkElementConnectionList(createInput(1, 20));
-        assertEquals(1, data.getData().size());
+        assertEquals(2, data.getData().size());
+
     }
 
     @Test
+    public void testUserdata() {
+        HtUserdataManager mgr = dbProvider.getUserManager();
+        String userdata = mgr.getUserdata(USERNAME);
+        assertEquals("{}",userdata);
+        JSONObject o = new JSONObject();
+        o.put("key1", false);
+        o.put("key2","value2");
+        boolean result = mgr.setUserdata(USERNAME, o.toString());
+        assertTrue(result);
+        userdata = mgr.getUserdata(USERNAME);
+        o = new JSONObject(userdata);
+        assertEquals(false,o.getBoolean("key1"));
+        assertEquals("value2",o.getString("key2"));
+        o = new JSONObject();
+        o.put("enabled", true);
+        o.put("name","abcdef");
+        result = mgr.setUserdata(USERNAME,"app1",o.toString());
+        assertTrue(result);
+        userdata = mgr.getUserdata(USERNAME);
+        o = new JSONObject(userdata);
+        assertEquals(false,o.getBoolean("key1"));
+        assertEquals("value2",o.getString("key2"));
+        JSONObject app = o.getJSONObject("app1");
+        assertNotNull(app);
+        assertEquals(true, app.getBoolean("enabled"));
+        assertEquals("abcdef", app.getString("name"));
+
+    }
+    @Test
     public void testpm15m() {
         try {
             dbClient.delete(new DeleteQuery(Entity.Historicalperformance15min, null).toSql());
@@ -538,7 +648,7 @@
         assertEquals(10, data.getData().size());
         ReadPmdata15mLtpListOutputBuilder ltpdata = null;
         try {
-            ltpdata = dbProvider.readPmdata15mLtpList(createInput("node-name","sim12600",1, 20));
+            ltpdata = dbProvider.readPmdata15mLtpList(createInput("node-name", "sim12600", 1, 20));
         } catch (IOException e) {
             e.printStackTrace();
             fail("failed to read pmdata15m ltp list");
@@ -546,7 +656,7 @@
         assertEquals(3, ltpdata.getData().size());
         ReadPmdata15mDeviceListOutputBuilder devicedata = null;
         try {
-             devicedata = dbProvider.readPmdata15mDeviceList(createInput(1,20));
+            devicedata = dbProvider.readPmdata15mDeviceList(createInput(1, 20));
         } catch (IOException e) {
             e.printStackTrace();
             fail("failed to read pmdata15m devices list");
@@ -554,7 +664,6 @@
         assertEquals(1, devicedata.getData().size());
     }
 
-    @Ignore
     @Test
     public void testpm24h() {
         try {
@@ -573,9 +682,27 @@
             fail("failed to load pmdata24h");
         }
         dbProvider.doWritePerformanceData(list);
+        data = dbProvider.readPmdata24hList(createInput(1, 20));
+        assertEquals(1, data.getData().size());
+        ReadPmdata24hLtpListOutputBuilder ltpdata = null;
+        try {
+            ltpdata = dbProvider.readPmdata24hLtpList(createInput("node-name", "test", 1, 20));
+        } catch (IOException e) {
+            e.printStackTrace();
+            fail("failed to read pmdata15m ltp list");
+        }
+        assertEquals(1, ltpdata.getData().size());
+        ReadPmdata24hDeviceListOutputBuilder devicedata = null;
+        try {
+            devicedata = dbProvider.readPmdata24hDeviceList(createInput(1, 20));
+        } catch (IOException e) {
+            e.printStackTrace();
+            fail("failed to read pmdata15m devices list");
+        }
+        assertEquals(1, devicedata.getData().size());
     }
 
-    private static EntityInput createInput(int page, int size) {
+    static EntityInput createInput(int page, int size) {
         return createInput(null, null, page, size);
     }
 
@@ -597,7 +724,7 @@
         return String.join("\n", IoUtils.readAllLines(TestMariaDataProvider.class.getResourceAsStream(filename)));
     }
 
-    private static EntityInput createInput(String filter, String filterValue, int page, int size) {
+    static EntityInput createInput(String filter, String filterValue, int page, int size) {
         ReadFaultcurrentListInputBuilder builder = new ReadFaultcurrentListInputBuilder().setPagination(
                 new PaginationBuilder().setPage(Uint64.valueOf(page)).setSize(Uint32.valueOf(size)).build());
         if (filter != null && filterValue != null) {
diff --git a/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/TestQuerySyntax.java b/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/TestQuerySyntax.java
index 24347c7..576a382 100644
--- a/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/TestQuerySyntax.java
+++ b/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/TestQuerySyntax.java
@@ -22,12 +22,16 @@
 package org.onap.ccsdk.features.sdnr.wt.dataprovider.dblib.test;
 
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Map;
 import org.junit.Test;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.query.CountQuery;
 import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.query.SelectQuery;
+import org.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapperHelper;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Entity;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EntityInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadEventlogListInputBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadGuiCutThroughEntryInputBuilder;
@@ -164,8 +168,8 @@
     @Test
     public void testSelectForFilterValues() {
         EntityInput input = new ReadGuiCutThroughEntryInputBuilder()
-                .setFilter(Arrays.asList(
-                        new FilterBuilder().setProperty("id").setFiltervalues(Arrays.asList("das", "das2")).build()))
+                .setFilter(YangToolsMapperHelper.toMap(Arrays.asList(
+                        new FilterBuilder().setProperty("id").setFiltervalues(Arrays.asList("das", "das2")).build())))
                 .setPagination(new PaginationBuilder().setSize(Uint32.valueOf(20)).setPage(Uint64.valueOf(1)).build())
                 .build();
         SelectQuery query = new SelectQuery(TABLENAME1, input, CONTROLLERID);
@@ -174,8 +178,8 @@
     @Test
     public void testSelectForFilterValues2() {
         EntityInput input = new ReadGuiCutThroughEntryInputBuilder()
-                .setFilter(Arrays.asList(
-                        new FilterBuilder().setProperty("id").setFiltervalue("*").build()))
+                .setFilter(YangToolsMapperHelper.toMap(Arrays.asList(
+                        new FilterBuilder().setProperty("id").setFiltervalue("*").build())))
                 .setPagination(new PaginationBuilder().setSize(Uint32.valueOf(20)).setPage(Uint64.valueOf(1)).build())
                 .build();
         SelectQuery query = new SelectQuery(TABLENAME1, input, CONTROLLERID);
@@ -185,12 +189,38 @@
     @Test
     public void testSelectForFilterValues3() {
         EntityInput input = new ReadGuiCutThroughEntryInputBuilder()
-                .setFilter(Arrays.asList(
-                        new FilterBuilder().setProperty("id").setFiltervalues(Arrays.asList("*","abc")).build()))
+                .setFilter(YangToolsMapperHelper.toMap(Arrays.asList(
+                        new FilterBuilder().setProperty("id").setFiltervalues(Arrays.asList("*","abc")).build())))
                 .setPagination(new PaginationBuilder().setSize(Uint32.valueOf(20)).setPage(Uint64.valueOf(1)).build())
                 .build();
         SelectQuery query = new SelectQuery(TABLENAME1, input, CONTROLLERID);
         System.out.println(query.toSql());
         assertFalse(query.toSql().contains("RLIKE"));
     }
+    @Test
+    public void testSelectForFilterValues4() {
+        EntityInput input = new ReadGuiCutThroughEntryInputBuilder()
+                .setFilter(YangToolsMapperHelper.toMap(Arrays.asList(
+                        new FilterBuilder().setProperty("id").setFiltervalues(Arrays.asList("abc")).build(),
+                        new FilterBuilder().setProperty("node-id").setFiltervalues(Arrays.asList("*")).build())))
+                .setPagination(new PaginationBuilder().setSize(Uint32.valueOf(20)).setPage(Uint64.valueOf(1)).build())
+                .build();
+        SelectQuery query = new SelectQuery(TABLENAME1, input, CONTROLLERID);
+        System.out.println(query.toSql());
+        assertFalse(query.toSql().contains("RLIKE"));
+    }
+    @Test
+    public void testCount() {
+        CountQuery query = new CountQuery(Entity.Eventlog, TestMariaDataProvider.createInput(1, 20));
+        String sQuery = query.toSql();
+        assertNotNull(sQuery);
+        assertTrue(sQuery.contains("*") && sQuery.contains("COUNT") && sQuery.contains(Entity.Eventlog.getName()));
+
+        query = new CountQuery(Entity.Eventlog, TestMariaDataProvider.createInput("node-id","abc",1, 20));
+        sQuery = query.toSql();
+        assertNotNull(sQuery);
+        assertTrue(sQuery.contains("node-id") && sQuery.contains("COUNT") && sQuery.contains(Entity.Eventlog.getName()));
+
+
+    }
 }
diff --git a/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/util/MariaDBTestBase.java b/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/util/MariaDBTestBase.java
index 3360d3e..aebd332 100644
--- a/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/util/MariaDBTestBase.java
+++ b/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/util/MariaDBTestBase.java
@@ -34,6 +34,7 @@
 import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.SqlDBClient;
 import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.SqlDBConfig;
 import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.data.SqlDBDataProvider;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.data.Userdata;
 import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.database.SqlDBMapper;
 import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.database.SqlDBMapper.UnableToMapClassException;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CmlogEntity;
@@ -60,6 +61,7 @@
     private SqlDBConfig config;
     private static final Map<String, String> envDefaultValues = initEnvDefaultValues();
     private static final String SDNRDBDATABASETEST = "test";
+    public static final String SUFFIX = "";
 
     public MariaDBTestBase() throws ManagedProcessException {
         this(new Random().nextInt(1000) + 50000);
@@ -173,6 +175,7 @@
         createTable(dbService, MaintenanceEntity.class, Entity.Maintenancemode, false);
         createTable(dbService, MediatorServerEntity.class, Entity.MediatorServer, true);
         createTable(dbService, NetworkElementConnectionEntity.class, Entity.NetworkelementConnection, false);
+        createTable(dbService, Userdata.class, Entity.Userdata, false, false);
     }
 
     public static boolean createTableOdl(SqlDBClient dbService) {
@@ -181,11 +184,14 @@
         System.out.println(createStatement);
         return dbService.createTable(createStatement);
     }
-
     public static boolean createTable(SqlDBClient dbService, Class<?> cls, Entity entity, boolean autoIndex) {
+        return createTable(dbService, cls, entity, autoIndex, true);
+    }
+    public static boolean createTable(SqlDBClient dbService, Class<?> cls, Entity entity, boolean autoIndex,
+            boolean withControllerId) {
         String createStatement = null;
         try {
-            createStatement = SqlDBMapper.createTable(cls, entity, "", autoIndex);
+            createStatement = SqlDBMapper.createTable(cls, entity, SUFFIX, autoIndex,withControllerId);
         } catch (UnableToMapClassException e) {
             fail(e.getMessage());
         }
diff --git a/sdnr/wt/data-provider/dblib/src/test/resources/pmdata24h.json b/sdnr/wt/data-provider/dblib/src/test/resources/pmdata24h.json
new file mode 100644
index 0000000..6b1f6b5
--- /dev/null
+++ b/sdnr/wt/data-provider/dblib/src/test/resources/pmdata24h.json
@@ -0,0 +1,55 @@
+[
+    {
+        "uuid-interface": "LP-MWPS-TTP-RADIO",
+        "granularity-period": "period-24-hours",
+        "suspect-interval-flag": false,
+        "layer-protocol-name": "MWPS",
+        "performance-data": {
+            "time-period": 86400,
+            "es": 0,
+            "ses": 0,
+            "cses": 0,
+            "unavailability": 0,
+            "tx-level-min": 3,
+            "tx-level-max": 3,
+            "tx-level-avg": 3,
+            "rx-level-min": -44,
+            "rx-level-max": -45,
+            "rx-level-avg": -44,
+            "time2-states": 0,
+            "time4-states-s": 0,
+            "time4-states": 0,
+            "time8-states": -1,
+            "time16-states-s": -1,
+            "time16-states": 0,
+            "time32-states": -1,
+            "time64-states": 86400,
+            "time128-states": -1,
+            "time256-states": -1,
+            "time512-states": -1,
+            "time512-states-l": -1,
+            "time1024-states": -1,
+            "time1024-states-l": -1,
+            "time2048-states": -1,
+            "time2048-states-l": -1,
+            "time4096-states": -1,
+            "time4096-states-l": -1,
+            "time8192-states": -1,
+            "time8192-states-l": -1,
+            "snir-min": -99,
+            "snir-max": -99,
+            "snir-avg": -99,
+            "xpd-min": -99,
+            "xpd-max": -99,
+            "xpd-avg": -99,
+            "rf-temp-min": -99,
+            "rf-temp-max": -99,
+            "rf-temp-avg": -99,
+            "defect-blocks-sum": -1
+        },
+        "radio-signal-id": "Test8",
+        "scanner-id": "PM_RADIO_24H_1",
+        "time-stamp": "2017-03-01T00:00:00.0+00:00",
+        "node-name": "test"
+    }
+]
\ No newline at end of file
diff --git a/sdnr/wt/data-provider/feature/pom.xml b/sdnr/wt/data-provider/feature/pom.xml
index d8885ff..7e05c15 100644
--- a/sdnr/wt/data-provider/feature/pom.xml
+++ b/sdnr/wt/data-provider/feature/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/data-provider/installer/pom.xml b/sdnr/wt/data-provider/installer/pom.xml
index 1d13432..b118cbd 100755
--- a/sdnr/wt/data-provider/installer/pom.xml
+++ b/sdnr/wt/data-provider/installer/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/data-provider/model/pom.xml b/sdnr/wt/data-provider/model/pom.xml
index 05d98fa..0a73be1 100644
--- a/sdnr/wt/data-provider/model/pom.xml
+++ b/sdnr/wt/data-provider/model/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/data-provider/pom.xml b/sdnr/wt/data-provider/pom.xml
index 70ac565..d24fb72 100755
--- a/sdnr/wt/data-provider/pom.xml
+++ b/sdnr/wt/data-provider/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/data-provider/provider/pom.xml b/sdnr/wt/data-provider/provider/pom.xml
index 8c546ae..1d3753b 100644
--- a/sdnr/wt/data-provider/provider/pom.xml
+++ b/sdnr/wt/data-provider/provider/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
@@ -210,18 +210,7 @@
                     </execution>
                 </executions>
             </plugin>
-<!--             <plugin> -->
-<!--                 <groupId>org.apache.felix</groupId> -->
-<!--                 <artifactId>maven-bundle-plugin</artifactId> -->
-<!--                 <extensions>true</extensions> -->
-<!--                 <configuration> -->
-<!--                     <instructions> -->
-<!--                         <Export-Package>org.onap.ccsdk.features.sdnr.wt.dataprovider.*</Export-Package> -->
-<!--                         <Import-Package>*</Import-Package> -->
-<!--                         <Embed-Dependency>dblib-provider;scope=provided|;inline=false,utils-provider;scope=provided|;inline=false</Embed-Dependency> -->
-<!--                     </instructions> -->
-<!--                 </configuration> -->
-<!--             </plugin> -->
+
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-surefire-plugin</artifactId>
diff --git a/sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/elasticsearch/data/entity/HtDatabaseEventsService.java b/sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/elasticsearch/data/entity/HtDatabaseEventsService.java
index 13438ef..9cfe4e5 100644
--- a/sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/elasticsearch/data/entity/HtDatabaseEventsService.java
+++ b/sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/elasticsearch/data/entity/HtDatabaseEventsService.java
@@ -405,8 +405,8 @@
         }
         NetworkElementConnectionBuilder builder = new NetworkElementConnectionBuilder(base);
         if (toJoin != null) {
-            if (toJoin.isIsRequired() != null) {
-                builder.setIsRequired(toJoin.isIsRequired());
+            if (toJoin.requireIsRequired() != null) {
+                builder.setIsRequired(toJoin.requireIsRequired());
             }
             if (toJoin.getCoreModelCapability() != null) {
                 builder.setCoreModelCapability(toJoin.getCoreModelCapability());
@@ -483,7 +483,7 @@
     public void removeNetworkConnection(String nodeId) {
         Boolean isRequired;
         NetworkElementConnectionEntity e = this.networkelementConnectionDB.read(nodeId);
-        if (e != null && (isRequired = e.isIsRequired()) != null) {
+        if (e != null && (isRequired = e.requireIsRequired()) != null) {
             if (isRequired) {
                 LOG.debug("updating connection status for {} of required ne to disconnected", nodeId);
                 this.networkelementConnectionDB.update(new UpdateNetworkElementConnectionInputBuilder()
diff --git a/sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/elasticsearch/data/entity/HtDatabaseMaintenanceService.java b/sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/elasticsearch/data/entity/HtDatabaseMaintenanceService.java
index c6161b5..9f4c0f3 100644
--- a/sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/elasticsearch/data/entity/HtDatabaseMaintenanceService.java
+++ b/sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/elasticsearch/data/entity/HtDatabaseMaintenanceService.java
@@ -166,8 +166,8 @@
         } else {
             LOG.warn("cannot read db. no db reader writer initialized");
         }
-        if (ne != null && ne.isIsRequired() != null) {
-            return ne.isIsRequired();
+        if (ne != null && ne.requireIsRequired() != null) {
+            return ne.requireIsRequired();
         } else {
             return false;
         }
diff --git a/sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/http/about/ODLVersionLUT.java b/sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/http/about/ODLVersionLUT.java
index 5211030..29d9ee9 100644
--- a/sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/http/about/ODLVersionLUT.java
+++ b/sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/http/about/ODLVersionLUT.java
@@ -66,6 +66,8 @@
         }
         if(odlMdsalVersionLUT==null) {
             odlMdsalVersionLUT = new HashMap<>();
+            odlMdsalVersionLUT.put("8.0.7","phosphorus-SR1 (0.15.1)");
+            odlMdsalVersionLUT.put("8.0.5","phosphorus-SR0 (0.15.0)");
             odlMdsalVersionLUT.put("7.0.9","silicon-SR2 (0.14.2)");
             odlMdsalVersionLUT.put("7.0.7","silicon-SR1 (0.14.1)");
             odlMdsalVersionLUT.put("7.0.6","silicon-SR0 (0.14.0)");
diff --git a/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/TestCRUDforDatabase.java b/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/TestCRUDforDatabase.java
index d59a078..00e8075 100644
--- a/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/TestCRUDforDatabase.java
+++ b/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/TestCRUDforDatabase.java
@@ -379,7 +379,7 @@
 
         // ==PARTIAL UPDATE============================
         System.out.println("Try partial update...");
-        assertEquals(false, data.get(0).isIsRequired());
+        assertEquals(false, data.get(0).requireIsRequired());
         updateInput = new UpdateNetworkElementConnectionInputBuilder().setId(dbId).setIsRequired(true).build();
         try {
             updateOutput = dbProvider.updateNetworkElementConnection(updateInput);
@@ -392,7 +392,7 @@
         readOperation = dbProvider.readNetworkElementConnectionList(readInput);
         data = readOperation.getData();
 
-        assertEquals(true, data.get(0).isIsRequired());
+        assertEquals(true, data.get(0).requireIsRequired());
         assertEquals(url2, data.get(0).getHost());
         assertEquals(port2, data.get(0).getPort().longValue());
 
@@ -463,7 +463,7 @@
         assertNotEquals(0, data.size());
         assertNotNull(data);
         assertEquals(nodeId, data.get(0).getNodeId());
-        assertEquals(isActive, data.get(0).isActive());
+        assertEquals(isActive, data.get(0).requireActive());
 
         // ==UPDATE============================
 
@@ -489,7 +489,7 @@
 
         assertNotNull(data);
         assertEquals(nodeId2, data.get(0).getNodeId());
-        assertEquals(isActive2, data.get(0).isActive());
+        assertEquals(isActive2, data.get(0).getActive());
 
         // ==DELETE================================
         System.out.println("Trying to delete...");
diff --git a/sdnr/wt/common-yang/utils/src/test/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/TestMapper.java b/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/TestMapper.java
similarity index 96%
rename from sdnr/wt/common-yang/utils/src/test/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/TestMapper.java
rename to sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/TestMapper.java
index 2d2e011..50c2310 100644
--- a/sdnr/wt/common-yang/utils/src/test/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/TestMapper.java
+++ b/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/TestMapper.java
@@ -19,13 +19,14 @@
  * ============LICENSE_END=========================================================
  *
  */
-package org.onap.ccsdk.features.sdnr.wt.yang.mapper;
+package org.onap.ccsdk.features.sdnr.wt.dataprovider.test;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.fail;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import org.json.JSONObject;
 import org.junit.Test;
+import org.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapper;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.NetworkElementConnection;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.NetworkElementConnectionBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.NetworkElementDeviceType;
diff --git a/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/TestYangGenSalMappingOpenRoadm.java b/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/TestYangGenSalMappingOpenRoadm.java
index 1345d4e..35ddaf2 100644
--- a/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/TestYangGenSalMappingOpenRoadm.java
+++ b/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/TestYangGenSalMappingOpenRoadm.java
@@ -35,6 +35,7 @@
 import org.onap.ccsdk.features.sdnr.wt.dataprovider.yangtools.DataProviderYangToolsMapper;
 import org.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapper2;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev191129.PmDataType;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev191129.PmDataTypeBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.openroadm.pm.types.rev200413.BIPErrorCounter;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.openroadm.pm.types.rev200413.OpticalPowerInputOSCMin;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.GranularityPeriodType;
@@ -78,7 +79,7 @@
         String jsonString = mapper2.writeValueAsString(pmDataType);
         out("Result json after mapping: " + jsonString);
 
-        PmdataEntity generatepmdNode = mapper2.readValue(jsonString.getBytes(), PmdataEntity.class);
+        PmdataEntity generatepmdNode = mapper2.readValue(jsonString, PmdataEntity.class);
         out("Original: " + pmDataType.toString());
         out("Mapped  : " + generatepmdNode.toString());
         assertTrue("Can mapping not working", generatepmdNode.equals(pmDataType));
@@ -104,9 +105,10 @@
     @Test
     public void testOpenroadmPMString2() throws IOException, ClassNotFoundException {
         out("Test: " + method());
+        PmDataTypeBuilder.getDefaultInstance("11298624220985537708");
         String jsonString2 = getFileContent("pmdata2.json");
         DataProviderYangToolsMapper mapper2 = new DataProviderYangToolsMapper();
-        PmdataEntity generatepmdNode = mapper2.readValue(jsonString2.getBytes(), PmdataEntity.class);
+        PmdataEntity generatepmdNode = mapper2.readValue(jsonString2, PmdataEntity.class);
         out(generatepmdNode.toString()); // Print it with specified indentation
     }
 
diff --git a/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/util/MariaDBTestBase.java b/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/util/MariaDBTestBase.java
index 18efde2..7d71571 100644
--- a/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/util/MariaDBTestBase.java
+++ b/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/util/MariaDBTestBase.java
@@ -154,20 +154,17 @@
     }
 
     public static boolean createTable(SqlDBClient dbService, Class<?> cls, Entity entity, boolean autoIndex) {
+        return createTable(dbService, cls, entity, autoIndex, true);
+    }
+    public static boolean createTable(SqlDBClient dbService, Class<?> cls, Entity entity, boolean autoIndex,
+            boolean withControllerId) {
         String createStatement = null;
         try {
-            createStatement = SqlDBMapper.createTable(cls, entity, "", autoIndex);
+            createStatement = SqlDBMapper.createTable(cls, entity, "", autoIndex,withControllerId);
         } catch (UnableToMapClassException e) {
             fail(e.getMessage());
         }
         System.out.println(createStatement);
-        try {
-            return dbService.write(createStatement);
-        } catch (SQLException e) {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-
-        }
-        return false;
+        return dbService.createTable(createStatement);
     }
 }
diff --git a/sdnr/wt/data-provider/setup/pom.xml b/sdnr/wt/data-provider/setup/pom.xml
index 487aacd..7d7a6ee 100644
--- a/sdnr/wt/data-provider/setup/pom.xml
+++ b/sdnr/wt/data-provider/setup/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/data-provider/setup/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/istanbul/IstanbulReleaseInformation.java b/sdnr/wt/data-provider/setup/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/istanbul/IstanbulReleaseInformation.java
index 8a0aeb0..6148e21 100644
--- a/sdnr/wt/data-provider/setup/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/istanbul/IstanbulReleaseInformation.java
+++ b/sdnr/wt/data-provider/setup/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/istanbul/IstanbulReleaseInformation.java
@@ -44,95 +44,98 @@
 public class IstanbulReleaseInformation extends ReleaseInformation {
 
     private final Logger LOG = LoggerFactory.getLogger(IstanbulReleaseInformation.class);
-
+    private static String NORMAL_STRING_MAX_LEN = "1024";
     public static final String TIMEZONE_TYPE_FORMAT =
             "CHAR(6) DEFAULT NULL CHECK (`%s` regexp '^[+-]\\\\d\\\\d:\\\\d\\\\d$')";
     public static final String TABLENAME_CONTROLLER_FORMAT = "controller%s";
     public static final String TABLEMAPPING_CONTROLLER =
-            "`id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,`desc` VARCHAR(255) CHARACTER SET utf8 ,primary key(id)";
+            "`id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,`desc` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,primary key(id)";
     private static final String TABLEMAPPING_CONNECTIONLOG_FORMAT = "`id` int(11) NOT NULL AUTO_INCREMENT,\n"
-            + "`controller-id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,\n" + "`timestamp` DATETIME(3) ,\n"
-            + "`status` VARCHAR(100) CHARACTER SET utf8 ,\n" + "`node-id` VARCHAR(255) CHARACTER SET utf8 ,\n"
+            + "`controller-id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + "`timestamp` DATETIME(3) ,\n"
+            + "`status` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`node-id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n"
             + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)";
     private static final String TABLEMAPPING_EVENTLOG_FORMAT = "`id` int(11) NOT NULL AUTO_INCREMENT,\n"
-            + "`controller-id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,\n"
-            + "`source-type` VARCHAR(100) CHARACTER SET utf8 ,\n" + "`object-id` VARCHAR(255) CHARACTER SET utf8 ,\n"
-            + "`timestamp` DATETIME(3) ,\n" + "`timestamp-tz` " + String.format(TIMEZONE_TYPE_FORMAT, "timestamp-tz")
-            + " ,\n" + "`node-id` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`counter` INTEGER ,\n"
-            + "`attribute-name` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`new-value` VARCHAR(255) CHARACTER SET utf8 ,\n"
-            + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)";
-    private static final String TABLEMAPPING_FAULTCURRENT_FORMAT = "`id` VARCHAR(255) CHARACTER SET utf8 NOT NULL,\n"
-            + "`controller-id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,\n"
-            + "`object-id` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`timestamp` DATETIME(3) ,\n" + "`timestamp-tz` "
+            + "`controller-id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n"
+            + "`source-type` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`object-id` VARCHAR(" + NORMAL_STRING_MAX_LEN
+            + ") CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`timestamp` DATETIME(3) ,\n" + "`timestamp-tz` "
             + String.format(TIMEZONE_TYPE_FORMAT, "timestamp-tz") + " ,\n"
-            + "`node-id` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`counter` INTEGER ,\n"
-            + "`severity` VARCHAR(100) CHARACTER SET utf8 ,\n" + "`problem` VARCHAR(255) CHARACTER SET utf8 ,\n"
-            + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)";
-    private static final String TABLEMAPPING_FAULTLOG_FORMAT = "`id` int(11) NOT NULL AUTO_INCREMENT,\n"
-            + "`controller-id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,\n"
-            + "`source-type` VARCHAR(100) CHARACTER SET utf8 ,\n" + "`object-id` VARCHAR(255) CHARACTER SET utf8 ,\n"
+            + "`node-id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`counter` INTEGER ,\n" + "`attribute-name` VARCHAR("
+            + NORMAL_STRING_MAX_LEN + ") CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`new-value` VARCHAR(" + NORMAL_STRING_MAX_LEN
+            + ") CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)";
+    private static final String TABLEMAPPING_FAULTCURRENT_FORMAT = "`id` VARCHAR(" + NORMAL_STRING_MAX_LEN
+            + ") CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + "`controller-id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n"
+            + "`object-id` VARCHAR(" + NORMAL_STRING_MAX_LEN + ") CHARACTER SET utf8 COLLATE utf8_bin ,\n"
             + "`timestamp` DATETIME(3) ,\n" + "`timestamp-tz` " + String.format(TIMEZONE_TYPE_FORMAT, "timestamp-tz")
-            + " ,\n" + "`node-id` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`counter` INTEGER ,\n"
-            + "`severity` VARCHAR(100) CHARACTER SET utf8 ,\n" + "`problem` VARCHAR(255) CHARACTER SET utf8 ,\n"
+            + " ,\n" + "`node-id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`counter` INTEGER ,\n"
+            + "`severity` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`problem` VARCHAR(" + NORMAL_STRING_MAX_LEN
+            + ") CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)";
+    private static final String TABLEMAPPING_FAULTLOG_FORMAT = "`id` int(11) NOT NULL AUTO_INCREMENT,\n"
+            + "`controller-id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + "`source-type` VARCHAR("
+            + NORMAL_STRING_MAX_LEN + ") CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`object-id` VARCHAR(" + NORMAL_STRING_MAX_LEN
+            + ") CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`timestamp` DATETIME(3) ,\n" + "`timestamp-tz` "
+            + String.format(TIMEZONE_TYPE_FORMAT, "timestamp-tz") + " ,\n"
+            + "`node-id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`counter` INTEGER ,\n"
+            + "`severity` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`problem` VARCHAR(" + NORMAL_STRING_MAX_LEN
+            + ") CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)";
+    private static final String TABLEMAPPING_GUICUTTHROUGH_FORMAT = "`id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n"
+            + "`controller-id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n"
+            + "`name` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`weburi` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n"
             + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)";
-    private static final String TABLEMAPPING_GUICUTTHROUGH_FORMAT = "`id` VARCHAR(255) CHARACTER SET utf8 NOT NULL,\n"
-            + "`controller-id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,\n"
-            + "`name` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`weburi` VARCHAR(255) CHARACTER SET utf8 ,\n"
+    private static final String TABLEMAPPING_HISTORICALPM15M_FORMAT = "`id` VARCHAR(" + NORMAL_STRING_MAX_LEN
+            + ") CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + "`controller-id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n"
+            + "`performance-data` JSON ,\n" + "`granularity-period` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin ,\n"
+            + "`time-stamp` DATETIME(3) ,\n" + "`time-stamp-tz` " + String.format(TIMEZONE_TYPE_FORMAT, "time-stamp-tz")
+            + " ,\n" + "`node-name` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n"
+            + "`uuid-interface` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n"
+            + "`layer-protocol-name` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`radio-signal-id` VARCHAR("
+            + NORMAL_STRING_MAX_LEN + ") CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`suspect-interval-flag` BOOLEAN ,\n"
+            + "`scanner-id` VARCHAR(" + NORMAL_STRING_MAX_LEN + ") CHARACTER SET utf8 COLLATE utf8_bin ,\n"
             + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)";
-    private static final String TABLEMAPPING_HISTORICALPM15M_FORMAT = "`id` VARCHAR(255) CHARACTER SET utf8 NOT NULL,\n"
-            + "`controller-id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,\n" + "`performance-data` JSON ,\n"
-            + "`granularity-period` VARCHAR(100) CHARACTER SET utf8 ,\n" + "`time-stamp` DATETIME(3) ,\n"
+    private static final String TABLEMAPPING_HISTORICALPM24H_FORMAT = "`id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n"
+            + "`controller-id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + "`performance-data` JSON ,\n"
+            + "`granularity-period` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`time-stamp` DATETIME(3) ,\n"
             + "`time-stamp-tz` " + String.format(TIMEZONE_TYPE_FORMAT, "time-stamp-tz") + " ,\n"
-            + "`node-name` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`uuid-interface` VARCHAR(255) CHARACTER SET utf8 ,\n"
-            + "`layer-protocol-name` VARCHAR(255) CHARACTER SET utf8 ,\n"
-            + "`radio-signal-id` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`suspect-interval-flag` BOOLEAN ,\n"
-            + "`scanner-id` VARCHAR(255) CHARACTER SET utf8 ,\n"
+            + "`node-name` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`uuid-interface` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n"
+            + "`layer-protocol-name` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n"
+            + "`radio-signal-id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`suspect-interval-flag` BOOLEAN ,\n"
+            + "`scanner-id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n"
             + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)";
-    private static final String TABLEMAPPING_HISTORICALPM24H_FORMAT = "`id` VARCHAR(255) CHARACTER SET utf8 NOT NULL,\n"
-            + "`controller-id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,\n" + "`performance-data` JSON ,\n"
-            + "`granularity-period` VARCHAR(100) CHARACTER SET utf8 ,\n" + "`time-stamp` DATETIME(3) ,\n"
-            + "`time-stamp-tz` " + String.format(TIMEZONE_TYPE_FORMAT, "time-stamp-tz") + " ,\n"
-            + "`node-name` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`uuid-interface` VARCHAR(255) CHARACTER SET utf8 ,\n"
-            + "`layer-protocol-name` VARCHAR(255) CHARACTER SET utf8 ,\n"
-            + "`radio-signal-id` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`suspect-interval-flag` BOOLEAN ,\n"
-            + "`scanner-id` VARCHAR(255) CHARACTER SET utf8 ,\n"
+    private static final String TABLEMAPPING_INVENTORY_FORMAT = "`id` VARCHAR(" + NORMAL_STRING_MAX_LEN
+            + ") CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + "`controller-id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n"
+            + "`version` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`type-name` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n"
+            + "`date` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`description` VARCHAR(1024) CHARACTER SET utf8 COLLATE utf8_bin ,\n"
+            + "`node-id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`uuid` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n"
+            + "`part-type-id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n"
+            + "`model-identifier` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n"
+            + "`manufacturer-identifier` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`tree-level` BIGINT ,\n"
+            + "`parent-uuid` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`contained-holder` JSON ,\n"
+            + "`serial` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`manufacturer-name` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n"
             + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)";
-    private static final String TABLEMAPPING_INVENTORY_FORMAT = "`id` VARCHAR(255) CHARACTER SET utf8 NOT NULL,\n"
-            + "`controller-id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,\n"
-            + "`version` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`type-name` VARCHAR(255) CHARACTER SET utf8 ,\n"
-            + "`date` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`description` VARCHAR(1024) CHARACTER SET utf8 ,\n"
-            + "`node-id` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`uuid` VARCHAR(255) CHARACTER SET utf8 ,\n"
-            + "`part-type-id` VARCHAR(255) CHARACTER SET utf8 ,\n"
-            + "`model-identifier` VARCHAR(255) CHARACTER SET utf8 ,\n"
-            + "`manufacturer-identifier` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`tree-level` BIGINT ,\n"
-            + "`parent-uuid` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`contained-holder` JSON ,\n"
-            + "`serial` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`manufacturer-name` VARCHAR(255) CHARACTER SET utf8 ,\n"
-            + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)";
-    private static final String TABLEMAPPING_MAINTENANCE_FORMAT = "`id` VARCHAR(255) CHARACTER SET utf8 NOT NULL,\n"
-            + "`controller-id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,\n" + "`active` BOOLEAN ,\n"
-            + "`node-id` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`description` VARCHAR(1024) CHARACTER SET utf8 ,\n"
-            + "`problem` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`start` DATETIME(3) ,\n" + "`start-tz` "
+    private static final String TABLEMAPPING_MAINTENANCE_FORMAT = "`id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n"
+            + "`controller-id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + "`active` BOOLEAN ,\n"
+            + "`node-id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`description` VARCHAR(1024) CHARACTER SET utf8 COLLATE utf8_bin ,\n"
+            + "`problem` VARCHAR("+NORMAL_STRING_MAX_LEN+") CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`start` DATETIME(3) ,\n" + "`start-tz` "
             + String.format(TIMEZONE_TYPE_FORMAT, "start-tz") + " ,\n" + "`end` DATETIME(3) ,\n" + "`end-tz` "
             + String.format(TIMEZONE_TYPE_FORMAT, "end-tz") + " ,\n"
-            + "`object-id-ref` VARCHAR(255) CHARACTER SET utf8 ,\n"
+            + "`object-id-ref` VARCHAR("+NORMAL_STRING_MAX_LEN+") CHARACTER SET utf8 COLLATE utf8_bin ,\n"
             + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)";
     private static final String TABLEMAPPING_MEDIATORSERVER_FORMAT =
-            "`id` int(11) NOT NULL AUTO_INCREMENT,\n" + "`controller-id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,\n"
-                    + "`name` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`url` VARCHAR(255) CHARACTER SET utf8 ,\n"
+            "`id` int(11) NOT NULL AUTO_INCREMENT,\n" + "`controller-id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n"
+                    + "`name` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`url` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n"
                     + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)";
-    private static final String TABLEMAPPING_NETWORKELEMENT_FORMAT = "`id` VARCHAR(255) CHARACTER SET utf8 NOT NULL,\n"
-            + "`controller-id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,\n"
-            + "`password` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`host` VARCHAR(255) CHARACTER SET utf8 ,\n"
-            + "`port` BIGINT ,\n" + "`status` VARCHAR(100) CHARACTER SET utf8 ,\n"
-            + "`node-id` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`username` VARCHAR(255) CHARACTER SET utf8 ,\n"
-            + "`is-required` BOOLEAN ,\n" + "`core-model-capability` VARCHAR(255) CHARACTER SET utf8 ,\n"
-            + "`device-type` VARCHAR(100) CHARACTER SET utf8 ,\n"
-            + "`device-function` VARCHAR(512) CHARACTER SET utf8 ,\n" + "`node-details` JSON ,\n"
-            + "`tls-key` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`mount-method` VARCHAR(255) CHARACTER SET utf8 ,\n"
+    private static final String TABLEMAPPING_NETWORKELEMENT_FORMAT = "`id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n"
+            + "`controller-id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n"
+            + "`password` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`host` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n"
+            + "`port` BIGINT ,\n" + "`status` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin ,\n"
+            + "`node-id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`username` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n"
+            + "`is-required` BOOLEAN ,\n" + "`core-model-capability` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n"
+            + "`device-type` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin ,\n"
+            + "`device-function` VARCHAR(512) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`node-details` JSON ,\n"
+            + "`tls-key` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`mount-method` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n"
             + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)";
-    private static final String TABLEMAPPING_USERDATA_FORMAT = "`id` VARCHAR(255) CHARACTER SET utf8 NOT NULL,\n"
-            + "`controller-id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,\n" + "`value` JSON ,\n"
-            + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)";
+    private static final String TABLEMAPPING_USERDATA_FORMAT = "`id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n"
+            + "`value` JSON ,\n"
+            + "primary key(id)";
 
 
     public IstanbulReleaseInformation() {
@@ -176,9 +179,8 @@
                         + "\"device-function\": {\"type\": \"keyword\"},\"is-required\": {\"type\": \"boolean\"},"
                         + "\"status\": {\"type\": \"keyword\"},\"tls-key\": {\"type\": \"keyword\"},"
                         + "\"mount-method\": {\"type\":\"keyword\"}}",
-                        "{\"index\":{\"max_result_window\": 20000,\"number_of_shards\":%d,\"number_of_replicas\":%d},"
-                        +"\"analysis\":{\"analyzer\":{\"content\":{\"type\":\"custom\",\"tokenizer\":\"whitespace\"}}}}"
-                        ));
+                "{\"index\":{\"max_result_window\": 20000,\"number_of_shards\":%d,\"number_of_replicas\":%d},"
+                        + "\"analysis\":{\"analyzer\":{\"content\":{\"type\":\"custom\",\"tokenizer\":\"whitespace\"}}}}"));
         return map;
     }
 
diff --git a/sdnr/wt/data-provider/setup/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/jakarta/JakartaReleaseInformation.java b/sdnr/wt/data-provider/setup/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/jakarta/JakartaReleaseInformation.java
index 03033ed..cf36992 100644
--- a/sdnr/wt/data-provider/setup/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/jakarta/JakartaReleaseInformation.java
+++ b/sdnr/wt/data-provider/setup/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/jakarta/JakartaReleaseInformation.java
@@ -49,17 +49,18 @@
     private static final String TIMEZONE_TYPE_FORMAT = IstanbulReleaseInformation.TIMEZONE_TYPE_FORMAT;
     private final Logger LOG = LoggerFactory.getLogger(JakartaReleaseInformation.class);
 
-    private static final String TABLEMAPPING_CMLOG_FORMAT =
-            "`id` int(11) NOT NULL AUTO_INCREMENT,\n" + "`controller-id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,\n"
-                    + "`source-type` VARCHAR(100) CHARACTER SET utf8 ,\n"
-                    + "`object-id` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`timestamp` DATETIME(3) ,\n"
-                    + "`timestamp-tz` " + String.format(TIMEZONE_TYPE_FORMAT, "timestamp-tz")
-                    + " ,\n" + "`node-id` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`counter` INTEGER ,\n"
-                    + "`notification-type` VARCHAR(100) CHARACTER SET utf8 ,\n"
-                    + "`notification-id` VARCHAR(40) CHARACTER SET utf8 ,\n"
-                    + "`source-indicator` VARCHAR(100) CHARACTER SET utf8 ,\n"
-                    + "`path` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`operation` VARCHAR(100) CHARACTER SET utf8 ,\n"
-                    + "`value` VARCHAR(255) CHARACTER SET utf8 ,\n" + "primary key(id)";
+    private static final String TABLEMAPPING_CMLOG_FORMAT = "`id` int(11) NOT NULL AUTO_INCREMENT,\n"
+            + "`controller-id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n"
+            + "`source-type` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin ,\n"
+            + "`object-id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`timestamp` DATETIME(3) ,\n" + "`timestamp-tz` "
+            + String.format(TIMEZONE_TYPE_FORMAT, "timestamp-tz") + " ,\n"
+            + "`node-id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`counter` INTEGER ,\n"
+            + "`notification-type` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin ,\n"
+            + "`notification-id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin ,\n"
+            + "`source-indicator` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin ,\n"
+            + "`path` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`operation` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin ,\n"
+            + "`value` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "primary key(id),foreign key(`controller-id`) "
+            + "references `controller%s`(id) ";
 
     public JakartaReleaseInformation() {
         super(Release.JAKARTA_R1, createDBMap(), createMariaDBMap());
diff --git a/sdnr/wt/data-provider/setup/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/MariaDBTestBase.java b/sdnr/wt/data-provider/setup/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/MariaDBTestBase.java
index 6fd4a40..a2a1fcd 100644
--- a/sdnr/wt/data-provider/setup/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/MariaDBTestBase.java
+++ b/sdnr/wt/data-provider/setup/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/MariaDBTestBase.java
@@ -163,21 +163,18 @@
     }
 
     public static boolean createTable(SqlDBClient dbService, Class<?> cls, Entity entity, boolean autoIndex) {
+        return createTable(dbService, cls, entity, autoIndex, true);
+    }
+    public static boolean createTable(SqlDBClient dbService, Class<?> cls, Entity entity, boolean autoIndex,
+            boolean withControllerId) {
         String createStatement = null;
         try {
-            createStatement = SqlDBMapper.createTable(cls, entity, "", autoIndex);
+            createStatement = SqlDBMapper.createTable(cls, entity, "", autoIndex,withControllerId);
         } catch (UnableToMapClassException e) {
             fail(e.getMessage());
         }
         System.out.println(createStatement);
-        try {
-            return dbService.write(createStatement);
-        } catch (SQLException e) {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-
-        }
-        return false;
+        return dbService.createTable(createStatement);
     }
     public String getDBUrl() {
         return envDefaultValues.get("SDNRDBURL");
diff --git a/sdnr/wt/data-provider/setup/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/TestMariaDBMapper.java b/sdnr/wt/data-provider/setup/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/TestMariaDBMapper.java
index f39f9b0..ef89988 100644
--- a/sdnr/wt/data-provider/setup/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/TestMariaDBMapper.java
+++ b/sdnr/wt/data-provider/setup/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/TestMariaDBMapper.java
@@ -24,10 +24,10 @@
 import static org.junit.Assert.fail;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import java.lang.reflect.InvocationTargetException;
+import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.util.Arrays;
 import java.util.List;
-import java.util.Properties;
 import java.util.concurrent.TimeUnit;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
@@ -63,12 +63,12 @@
 public class TestMariaDBMapper {
 
 
-    private static final String MARIADB_USERNAME = "sdnrdb";
-    private static final String MARIADB_PASSWORD = "sdnrdb";
-    //    private static final String MARIADB_HOST = "10.20.11.159";
-    private static final String MARIADB_HOST = "sdnrdb";
-    private static final int MARIADB_PORT = 3306;
-    private static final String MARIADB_DATABASENAME = "sdnrdb";
+//    private static final String MARIADB_USERNAME = "sdnrdb";
+//    private static final String MARIADB_PASSWORD = "sdnrdb";
+//    private static final String MARIADB_HOST = "10.20.11.159";
+//    private static final String MARIADB_HOST = "sdnrdb";
+//    private static final int MARIADB_PORT = 3306;
+//    private static final String MARIADB_DATABASENAME = "sdnrdb";
 
     //    private static DbLibService dbService;
 
@@ -137,7 +137,6 @@
             writeEntry(builder.build(), Entity.NetworkelementConnection);
         } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException
                 | JsonProcessingException e) {
-            // TODO Auto-generated catch block
             e.printStackTrace();
         }
     }
@@ -152,16 +151,19 @@
     private <T extends DataObject> List<T> readEntry(Entity entity, Class<T> clazz, String id) {
         final SelectQuery selectStatement = new SelectQuery(entity.getName());
         System.out.println(selectStatement);
+        List<T> list = null;
         try {
-            return SqlDBMapper.read(dbProvider.getDBService().read(selectStatement.toSql()), clazz);
+            ResultSet data = dbProvider.getDBService().read(selectStatement.toSql());
+            list = SqlDBMapper.read(data, clazz);
+            try { data.close(); } catch (SQLException ignore) { }
+
 
         } catch (SQLException | IllegalAccessException | IllegalArgumentException | InvocationTargetException
                 | InstantiationException | SecurityException | NoSuchMethodException | JsonProcessingException e) {
-            // TODO Auto-generated catch block
             e.printStackTrace();
 
         }
-        return null;
+        return list;
     }
 
     private <T extends DataObject> boolean writeEntry(T data, Entity entity) throws IllegalAccessException,
@@ -173,7 +175,6 @@
             return dbProvider.getDBService().write(insertStatement.toSql());
 
         } catch (SQLException e) {
-            // TODO Auto-generated catch block
             e.printStackTrace();
 
         }
@@ -188,41 +189,24 @@
         try {
             return dbService.write(createStatement);
         } catch (SQLException e) {
-            // TODO Auto-generated catch block
             e.printStackTrace();
 
         }
         return false;
     }
 
-    private static boolean createTable(SqlDBClient dbService, Class<?> cls, Entity entity, boolean autoIndex) {
+    public static boolean createTable(SqlDBClient dbService, Class<?> cls, Entity entity, boolean autoIndex) {
+        return createTable(dbService, cls, entity, autoIndex, true);
+    }
+    public static boolean createTable(SqlDBClient dbService, Class<?> cls, Entity entity, boolean autoIndex,
+            boolean withControllerId) {
         String createStatement = null;
         try {
-            createStatement = SqlDBMapper.createTable(cls, entity, "", autoIndex);
+            createStatement = SqlDBMapper.createTable(cls, entity, "", autoIndex,withControllerId);
         } catch (UnableToMapClassException e) {
             fail(e.getMessage());
         }
         System.out.println(createStatement);
-        try {
-            return dbService.write(createStatement);
-        } catch (SQLException e) {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-
-        }
-        return false;
-    }
-
-    private static Properties getConfig() {
-        Properties config = new Properties();
-        config.setProperty("org.onap.ccsdk.sli.dbtype", "jdbc");
-        config.setProperty("org.onap.ccsdk.sli.jdbc.hosts", MARIADB_HOST);
-        config.setProperty("org.onap.ccsdk.sli.jdbc.url",
-                String.format("jdbc:mysql://dbhost:%d/%s", MARIADB_PORT, MARIADB_DATABASENAME));
-        config.setProperty("org.onap.ccsdk.sli.jdbc.driver", "org.mariadb.jdbc.Driver");
-        config.setProperty("org.onap.ccsdk.sli.jdbc.database", MARIADB_DATABASENAME);
-        config.setProperty("org.onap.ccsdk.sli.jdbc.user", MARIADB_USERNAME);
-        config.setProperty("org.onap.ccsdk.sli.jdbc.password", MARIADB_PASSWORD);
-        return config;
+        return dbService.createTable(createStatement);
     }
 }
diff --git a/sdnr/wt/devicemanager-core/feature/pom.xml b/sdnr/wt/devicemanager-core/feature/pom.xml
index c4b1436..fd102a9 100644
--- a/sdnr/wt/devicemanager-core/feature/pom.xml
+++ b/sdnr/wt/devicemanager-core/feature/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/devicemanager-core/installer/pom.xml b/sdnr/wt/devicemanager-core/installer/pom.xml
index dfc41b7..70a9fd9 100755
--- a/sdnr/wt/devicemanager-core/installer/pom.xml
+++ b/sdnr/wt/devicemanager-core/installer/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/devicemanager-core/model/pom.xml b/sdnr/wt/devicemanager-core/model/pom.xml
index 04249d2..3b8932e 100644
--- a/sdnr/wt/devicemanager-core/model/pom.xml
+++ b/sdnr/wt/devicemanager-core/model/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/eventdatahandler/EventlogNotificationBuilder.java b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/EventlogNotificationBuilder.java
similarity index 96%
rename from sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/eventdatahandler/EventlogNotificationBuilder.java
rename to sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/EventlogNotificationBuilder.java
index 3afa493..105453e 100644
--- a/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/eventdatahandler/EventlogNotificationBuilder.java
+++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/EventlogNotificationBuilder.java
@@ -15,7 +15,7 @@
  * the License.
  * ============LICENSE_END==========================================================================
  */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.eventdatahandler;
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.types;
 
 import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
diff --git a/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/eventdatahandler/EventlogNotificationBuilder.java b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/FaultNotificationBuilder2.java
similarity index 68%
copy from sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/eventdatahandler/EventlogNotificationBuilder.java
copy to sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/FaultNotificationBuilder2.java
index 3afa493..5ccc664 100644
--- a/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/eventdatahandler/EventlogNotificationBuilder.java
+++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/FaultNotificationBuilder2.java
@@ -15,20 +15,23 @@
  * the License.
  * ============LICENSE_END==========================================================================
  */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.eventdatahandler;
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.types;
 
 import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SourceType;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
 
 /**
  * Add specific constructor
  */
-public class EventlogNotificationBuilder extends EventlogBuilder {
+public class FaultNotificationBuilder2 extends FaultlogBuilder {
 
-    public EventlogNotificationBuilder(NodeId nodeId, @Nullable Integer counter, @Nullable DateAndTime timeStamp,
-            @Nullable String objectId, @Nullable String attributeName, @Nullable String newValue) {
+    public FaultNotificationBuilder2(NodeId nodeId, @Nullable Integer counter, @Nullable DateAndTime timeStamp,
+            @Nullable String objectId, @Nullable String problem, @Nullable SeverityType severity,
+            SourceType sourceType) {
 
         setNodeId(nodeId.getValue());
         if (counter != null) {
@@ -38,9 +41,9 @@
             setTimestamp(timeStamp);
         }
         setObjectId(objectId);
-        setAttributeName(attributeName);
-        setNewValue(newValue);
-
+        setProblem(problem);
+        setSeverity(severity);
+        setSourceType(sourceType);
     }
 
 }
diff --git a/sdnr/wt/devicemanager-core/pom.xml b/sdnr/wt/devicemanager-core/pom.xml
index 92594f2..0a65a49 100755
--- a/sdnr/wt/devicemanager-core/pom.xml
+++ b/sdnr/wt/devicemanager-core/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/devicemanager-core/provider/pom.xml b/sdnr/wt/devicemanager-core/provider/pom.xml
index 22c4bd9..c480821 100644
--- a/sdnr/wt/devicemanager-core/provider/pom.xml
+++ b/sdnr/wt/devicemanager-core/provider/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/eventdatahandler/DeviceManagerDatabaseNotificationService.java b/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/eventdatahandler/DeviceManagerDatabaseNotificationService.java
index 3d570e5..94694cd 100644
--- a/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/eventdatahandler/DeviceManagerDatabaseNotificationService.java
+++ b/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/eventdatahandler/DeviceManagerDatabaseNotificationService.java
@@ -34,6 +34,7 @@
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.toggleAlarmFilter.NotificationDelayFilter;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.toggleAlarmFilter.NotificationDelayedListener;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.EquipmentData;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.EventlogNotificationBuilder;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.FaultData;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogEntity;
diff --git a/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/eventdatahandler/ODLEventListenerHandler.java b/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/eventdatahandler/ODLEventListenerHandler.java
index 4543ab0..ba65447 100644
--- a/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/eventdatahandler/ODLEventListenerHandler.java
+++ b/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/eventdatahandler/ODLEventListenerHandler.java
@@ -195,7 +195,7 @@
         DateAndTime ts = NETCONFTIME_CONVERTER.getTimeStamp();
         AttributeValueChangedNotification notification = new AttributeValueChangedNotificationBuilder()
                 .setCounter(popEvntNumber()).setTimeStamp(ts).setObjectIdRef(nNodeId.getValue())
-                .setAttributeName("deviceType").setNewValue(deviceType.name()).build();
+                .setAttributeName("deviceType").setNewValue(deviceType.getName()).build();
         webSocketService.sendViaWebsockets(new NodeId(ownKeyName), notification,
                 AttributeValueChangedNotification.QNAME, ts);
     }
@@ -231,7 +231,7 @@
         // Write first to prevent missing entries
         databaseService.removeNetworkConnection(nodeId.getValue());
         databaseService.writeConnectionLog(log);
-        webSocketService.sendViaWebsockets(new NodeId(nodeId.getValue()), notification,
+        webSocketService.sendViaWebsockets(new NodeId(ownKeyName), notification,
                 ObjectDeletionNotification.QNAME, ts);
 
     }
diff --git a/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/housekeeping/ConnectionStatusHousekeepingService.java b/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/housekeeping/ConnectionStatusHousekeepingService.java
index 02c32d9..f2726b0 100644
--- a/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/housekeeping/ConnectionStatusHousekeepingService.java
+++ b/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/housekeeping/ConnectionStatusHousekeepingService.java
@@ -163,7 +163,7 @@
                                 .setTimestamp(new DateAndTime(ts.getTimeStamp())).setObjectId(item.getNodeId())
                                 .setAttributeName("status").setNewValue(String.valueOf(mdsalStatus))
                                 .setCounter(popEvntNumber()).setSourceType(SourceType.Controller).build());
-                        if ((item.isIsRequired() == null || item.isIsRequired() == false)
+                        if ((item.requireIsRequired() == null || item.requireIsRequired() == false)
                                 && mdsalStatus == ConnectionLogStatus.Disconnected) {
                             LOG.info("removing entry for node {} ({}) from database due missing MD-SAL entry",
                                     item.getNodeId(), mdsalStatus);
diff --git a/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/maintenance/impl/MaintenanceCalculator.java b/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/maintenance/impl/MaintenanceCalculator.java
index 23ff50f..3d892e4 100644
--- a/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/maintenance/impl/MaintenanceCalculator.java
+++ b/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/maintenance/impl/MaintenanceCalculator.java
@@ -56,7 +56,7 @@
             ZonedDateTime now) {
 
         if (maintenance != null) {
-            Boolean isActive = maintenance.isActive();
+            Boolean isActive = maintenance.getActive();
             if (isActive != null && isActive && isInMaintenance(maintenance, objectIdRef, problem, now)) {
                 return true;
             }
diff --git a/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/performancemanager/impl/PerformanceManagerTask.java b/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/performancemanager/impl/PerformanceManagerTask.java
index 0b5b331..7076755 100644
--- a/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/performancemanager/impl/PerformanceManagerTask.java
+++ b/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/performancemanager/impl/PerformanceManagerTask.java
@@ -24,6 +24,7 @@
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.ScheduledFuture;
 import java.util.concurrent.TimeUnit;
+
 import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElement;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.PerformanceDataProvider;
@@ -34,211 +35,213 @@
 
 public class PerformanceManagerTask implements Runnable {
 
-    private static final Logger LOG = LoggerFactory.getLogger(PerformanceManagerTask.class);
-    private static final String LOGMARKER = "PMTick";
+	private static final Logger LOG = LoggerFactory.getLogger(PerformanceManagerTask.class);
+	private static final String LOGMARKER = "PMTick";
 
-    private int tickCounter = 0;
+	private int tickCounter = 0;
 
-    private final ConcurrentHashMap<String, PerformanceDataProvider> queue = new ConcurrentHashMap<>();
-    private final DataProvider databaseService;
-    private final ScheduledExecutorService scheduler;
-    private final long seconds;
+	private final ConcurrentHashMap<String, PerformanceDataProvider> queue = new ConcurrentHashMap<>();
+	private final DataProvider databaseService;
+	private final ScheduledExecutorService scheduler;
+	private final long seconds;
 
-    private ScheduledFuture<?> taskHandle = null;
-    private Iterator<PerformanceDataProvider> neIterator = null;
-    private PerformanceDataProvider actualNE = null;
-    private final NetconfNetworkElementService netconfNetworkElementService;
+	private ScheduledFuture<?> taskHandle = null;
+	private Iterator<PerformanceDataProvider> neIterator = null;
+	private PerformanceDataProvider actualNE = null;
+	private final NetconfNetworkElementService netconfNetworkElementService;
 
-    /**
-     * Constructor of PM Task
-     *
-     * @param seconds seconds to call PM Task
-     * @param microwaveHistoricalPerformanceWriterService DB Service to load PM data to
-     * @param netconfNetworkElementService to write into log
-     */
+	/**
+	 * Constructor of PM Task
+	 * 
+	 * @param seconds                                     seconds to call PM Task
+	 * @param microwaveHistoricalPerformanceWriterService DB Service to load PM data
+	 *                                                    to
+	 * @param netconfNetworkElementService                to write into log
+	 */
 
-    public PerformanceManagerTask(long seconds, DataProvider microwaveHistoricalPerformanceWriterService,
-            NetconfNetworkElementService netconfNetworkElementService) {
+	public PerformanceManagerTask(long seconds, DataProvider microwaveHistoricalPerformanceWriterService,
+			NetconfNetworkElementService netconfNetworkElementService) {
 
-        LOG.info("Init task {} handling time {} seconds", PerformanceManagerTask.class.getSimpleName(), seconds);
-        this.seconds = seconds;
-        this.databaseService = microwaveHistoricalPerformanceWriterService;
-        this.scheduler = Executors.newSingleThreadScheduledExecutor();
-        this.netconfNetworkElementService = netconfNetworkElementService;
+		LOG.info("Init task {} handling time {} seconds", PerformanceManagerTask.class.getSimpleName(), seconds);
+		this.seconds = seconds;
+		this.databaseService = microwaveHistoricalPerformanceWriterService;
+		this.scheduler = Executors.newSingleThreadScheduledExecutor();
+		this.netconfNetworkElementService = netconfNetworkElementService;
 
-    }
+	}
 
-    /**
-     * Start PM Task
-     */
-    public void start() {
-        LOG.info("PM task created");
-        taskHandle = this.scheduler.scheduleAtFixedRate(this, 0, seconds, TimeUnit.SECONDS);
-        LOG.info("PM task scheduled");
-    }
+	/**
+	 * Start PM Task
+	 */
+	public void start() {
+		LOG.info("PM task created");
+		taskHandle = this.scheduler.scheduleAtFixedRate(this, 0, seconds, TimeUnit.SECONDS);
+		LOG.info("PM task scheduled");
+	}
 
-    /**
-     * Stop everything
-     */
-    public void stop() {
-        LOG.info("Stop {}", PerformanceManagerImpl.class.getSimpleName());
-        if (taskHandle != null) {
-            taskHandle.cancel(true);
-            try {
-                scheduler.awaitTermination(10, TimeUnit.SECONDS);
-            } catch (InterruptedException e) {
-                LOG.debug("Scheduler stopped.", e);
-                // Restore interrupted state...
-                Thread.currentThread().interrupt();
-            }
-        }
-    }
+	/**
+	 * Stop everything
+	 */
+	public void stop() {
+		LOG.info("Stop {}", PerformanceManagerImpl.class.getSimpleName());
+		if (taskHandle != null) {
+			taskHandle.cancel(true);
+			try {
+				scheduler.awaitTermination(10, TimeUnit.SECONDS);
+			} catch (InterruptedException e) {
+				LOG.debug("Scheduler stopped.", e);
+				// Restore interrupted state...
+				Thread.currentThread().interrupt();
+			}
+		}
+	}
 
-    /**
-     * Add NE/Mountpoint to PM Processig
-     *
-     * @param mountPointNodeName to be added
-     * @param ne that is connected to the mountpoint
-     */
-    public void registration(String mountPointNodeName, NetworkElement ne) {
+	/**
+	 * Add NE/Mountpoint to PM Processig
+	 * 
+	 * @param mountPointNodeName to be added
+	 * @param ne                 that is connected to the mountpoint
+	 */
+	public void registration(String mountPointNodeName, NetworkElement ne) {
 
-        Optional<PerformanceDataProvider> oPmNe = ne.getService(PerformanceDataProvider.class);
-        if (oPmNe.isPresent()) {
-            queue.put(mountPointNodeName, oPmNe.get());
-        }
-    }
+		Optional<PerformanceDataProvider> oPmNe = ne.getService(PerformanceDataProvider.class);
+		if (oPmNe.isPresent()) {
+			queue.put(mountPointNodeName, oPmNe.get());
+		}
+	}
 
-    /**
-     * Remove mountpoint/NE from PM process
-     *
-     * @param mountPointNodeName that has to be removed
-     */
-    public void deRegistration(String mountPointNodeName) {
-        LOG.debug("Deregister {}", mountPointNodeName);
-        PerformanceDataProvider removedNE = queue.remove(mountPointNodeName);
+	/**
+	 * Remove mountpoint/NE from PM process
+	 * 
+	 * @param mountPointNodeName that has to be removed
+	 */
+	public void deRegistration(String mountPointNodeName) {
+		LOG.debug("Deregister {}", mountPointNodeName);
+		PerformanceDataProvider removedNE = queue.remove(mountPointNodeName);
 
-        if (removedNE == null) {
-            LOG.warn("Couldn't delete {}", mountPointNodeName);
-        }
-    }
+		if (removedNE == null) {
+			LOG.warn("Couldn't delete {}", mountPointNodeName);
+		}
+	}
 
-    /*--------------------------------------------------------------
-     * Task to read PM data from NE
-     */
+	/*--------------------------------------------------------------
+	 * Task to read PM data from NE
+	 */
 
-    /**
-     * Task runner to read all performance data from Network Elements. Catch exceptions to make sure, that the Task is
-     * not stopped.
-     */
-    @Override
-    public void run() {
+	/**
+	 * Task runner to read all performance data from Network Elements. Catch
+	 * exceptions to make sure, that the Task is not stopped.
+	 */
+	@Override
+	public void run() {
 
-        String mountpointName = "No NE";
-        if (actualNE != null && actualNE.getAcessor().isPresent()) {
-            mountpointName = actualNE.getAcessor().get().getNodeId().getValue();
-        }
-        LOG.debug("{} start {} Start with mountpoint {}", LOGMARKER, tickCounter, mountpointName);
+		String mountpointName = "No NE";
+		if (actualNE != null && actualNE.getAcessor().isPresent()) {
+			mountpointName = actualNE.getAcessor().get().getNodeId().getValue();
+		}
+		LOG.debug("{} start {} Start with mountpoint {}", LOGMARKER, tickCounter, mountpointName);
 
-        // Proceed to next NE/Interface
-        getNextInterface(mountpointName);
+		// Proceed to next NE/Interface
+		getNextInterface(mountpointName);
 
-        LOG.debug("{} {} Next interface to handle {}", LOGMARKER, tickCounter,
-                actualNE == null ? "No NE/IF" : actualNE.pmStatusToString());
+		LOG.debug("{} {} Next interface to handle {}", LOGMARKER, tickCounter,
+				actualNE == null ? "No NE/IF" : actualNE.pmStatusToString());
 
-        if (actualNE != null) {
-            try {
-                LOG.debug("{} Start to read PM from NE ({})", LOGMARKER, tickCounter);
-                Optional<PerformanceDataLtp> allPm = actualNE.getLtpHistoricalPerformanceData();
-                if (allPm.isPresent()) {
-                    LOG.debug("{} {} Got PM list. Start write to DB", LOGMARKER, tickCounter);
-                    databaseService.doWritePerformanceData(allPm.get().getList());
-                }
-                LOG.debug("{} {} PM List end.", LOGMARKER, tickCounter);
-            } catch (Throwable e) {
-                LOG.debug("{} {} PM Exception", LOGMARKER, tickCounter);
-                String msg = new StringBuffer().append(e.getMessage()).toString();
-                LOG.warn("{} {} PM read/write failed. Write log entry {}", LOGMARKER, tickCounter, msg);
-                netconfNetworkElementService.writeToEventLog(mountpointName, "PM Problem", msg);
-            }
-        }
+		if (actualNE != null) {
+			try {
+				LOG.debug("{} Start to read PM from NE ({})", LOGMARKER, tickCounter);
+				Optional<PerformanceDataLtp> allPm = actualNE.getLtpHistoricalPerformanceData();
+				if (allPm.isPresent()) {
+					LOG.debug("{} {} Got PM list. Start write to DB", LOGMARKER, tickCounter);
+					databaseService.doWritePerformanceData(allPm.get().getList());
+				}
+				LOG.debug("{} {} PM List end.", LOGMARKER, tickCounter);
+			} catch (Throwable e) {
+				LOG.debug("{} {} PM Exception", LOGMARKER, tickCounter);
+				String msg = new StringBuffer().append(e.getMessage()).toString();
+				LOG.warn("{} {} PM read/write failed. Write log entry {}", LOGMARKER, tickCounter, msg);
+				netconfNetworkElementService.writeToEventLog(mountpointName, "PM Problem", msg);
+			}
+		}
 
-        LOG.debug("{} end {}", LOGMARKER, tickCounter);
-        tickCounter++;
-    }
+		LOG.debug("{} end {}", LOGMARKER, tickCounter);
+		tickCounter++;
+	}
 
-    /**
-     * Reset queue to start from beginning
-     */
-    private void resetQueue() {
-        actualNE = null;
-        neIterator = null;
-    }
+	/**
+	 * Reset queue to start from beginning
+	 */
+	private void resetQueue() {
+		actualNE = null;
+		neIterator = null;
+	}
 
-    /**
-     * Get then next interface in the list. First try to find a next on the actual NE. If not available search next
-     * interface at a NE Special Situations to handle: Empty queue, NEs, but no interfaces
-     */
-    private void getNextInterface(String mountpointName) {
-        boolean started = false;
-        int loopCounter = 0;
+	/**
+	 * Get then next interface in the list. First try to find a next on the actual
+	 * NE. If not available search next interface at a NE Special Situations to
+	 * handle: Empty queue, NEs, but no interfaces
+	 */
+	private void getNextInterface(String mountpointName) {
+		boolean started = false;
+		int loopCounter = 0;
 
-        LOG.debug("{} {} getNextInterface enter. Queue size {} ", LOGMARKER, tickCounter, queue.size());
+		LOG.debug("{} {} getNextInterface enter. Queue size {} ", LOGMARKER, tickCounter, queue.size());
 
-        if (actualNE != null && !queue.containsValue(actualNE)) {
-            LOG.debug("{} {} NE Removed duringprocessing A", LOGMARKER, tickCounter);
-            resetQueue();
-        }
+		if (actualNE != null && !queue.containsValue(actualNE)) {
+			LOG.debug("{} {} NE Removed duringprocessing A", LOGMARKER, tickCounter);
+			resetQueue();
+		}
 
-        while (true) {
+		while (true) {
 
-            if (loopCounter++ >= 1000) {
-                LOG.error("{} {} Problem in PM iteration. endless condition reached", LOGMARKER, tickCounter);
-                resetQueue();
-                break;
-            }
+			if (loopCounter++ >= 1000) {
+				LOG.error("{} {} Problem in PM iteration. endless condition reached", LOGMARKER, tickCounter);
+				resetQueue();
+				break;
+			}
 
-            LOG.debug("{} {} Loop ne {}:neiterator {}:Interfaceiterator:{} Loop:{}", LOGMARKER, tickCounter,
-                    actualNE == null ? "null" : mountpointName, neIterator == null ? "null" : neIterator.hasNext(),
-                    actualNE == null ? "null" : actualNE.hasNext(), loopCounter);
+			LOG.debug("{} {} Loop ne {}:neiterator {}:Interfaceiterator:{} Loop:{}", LOGMARKER, tickCounter,
+					actualNE == null ? "null" : mountpointName, neIterator == null ? "null" : neIterator.hasNext(),
+					actualNE == null ? "null" : actualNE.hasNext(), loopCounter);
 
-            if (actualNE != null && actualNE.hasNext()) {
-                // Yes, there is an interface, deliver back
-                LOG.debug("{} {} getNextInterface yes A", LOGMARKER, tickCounter);
-                actualNE.next();
-                break;
+			if (actualNE != null && actualNE.hasNext()) {
+				// Yes, there is an interface, deliver back
+				LOG.debug("{} {} getNextInterface yes A", LOGMARKER, tickCounter);
+				actualNE.next();
+				break;
 
-            } else {
-                // No element in neInterfaceInterator .. get next NE and try
-                if (neIterator != null && neIterator.hasNext()) {
-                    // Set a new NE
-                    LOG.debug("{} {} Next NE A", LOGMARKER, tickCounter);
-                    actualNE = neIterator.next();
-                    actualNE.resetPMIterator();
+			} else {
+				// No element in neInterfaceInterator .. get next NE and try
+				if (neIterator != null && neIterator.hasNext()) {
+					// Set a new NE
+					LOG.debug("{} {} Next NE A", LOGMARKER, tickCounter);
+					actualNE = neIterator.next();
+					actualNE.resetPMIterator();
 
-                } else {
-                    // Goto start condition 1) first entry 2) end of queue reached
-                    LOG.debug("{} {} Reset", LOGMARKER, tickCounter);
-                    resetQueue();
+				} else {
+					// Goto start condition 1) first entry 2) end of queue reached
+					LOG.debug("{} {} Reset", LOGMARKER, tickCounter);
+					resetQueue();
 
-                    if (queue.isEmpty()) {
-                        LOG.debug("{} {} no nextInterfac. queue empty", LOGMARKER, tickCounter);
-                        break;
-                    } else if (!started) {
-                        LOG.debug("{} {} getNextInterface start condition. Get interator.", LOGMARKER, tickCounter);
-                        neIterator = queue.values().iterator();
-                        started = true;
-                    } else {
-                        LOG.debug("{} {} no nextInterface", LOGMARKER, tickCounter);
-                        break;
-                    }
-                }
-            }
-        } // while
+					if (queue.isEmpty()) {
+						LOG.debug("{} {} no nextInterfac. queue empty", LOGMARKER, tickCounter);
+						break;
+					} else if (!started) {
+						LOG.debug("{} {} getNextInterface start condition. Get interator.", LOGMARKER, tickCounter);
+						neIterator = queue.values().iterator();
+						started = true;
+					} else {
+						LOG.debug("{} {} no nextInterface", LOGMARKER, tickCounter);
+						break;
+					}
+				}
+			}
+		} // while
 
-        if (actualNE != null && !queue.containsValue(actualNE)) {
-            LOG.debug("{} {} NE Removed duringprocessing B", LOGMARKER, tickCounter);
-            resetQueue();
-        }
+		if (actualNE != null && !queue.containsValue(actualNE)) {
+			LOG.debug("{} {} NE Removed duringprocessing B", LOGMARKER, tickCounter);
+			resetQueue();
+		}
 
-    }
+	}
 }
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/feature/pom.xml b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/feature/pom.xml
index ebcb32f..6b3242c 100644
--- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/feature/pom.xml
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/feature/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/installer/pom.xml b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/installer/pom.xml
index a16cd43..f8f49d9 100755
--- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/installer/pom.xml
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/installer/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/model/pom.xml b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/model/pom.xml
index eeaa7b0..5df342e 100644
--- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/model/pom.xml
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/model/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/pom.xml b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/pom.xml
index 85ebdcd..cf4ae35 100755
--- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/pom.xml
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/pom.xml b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/pom.xml
index 3488649..0a75fce 100644
--- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/pom.xml
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanRegistrationToVESpnfRegistrationMapper.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanRegistrationToVESpnfRegistrationMapper.java
deleted file mode 100644
index 3524383..0000000
--- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanRegistrationToVESpnfRegistrationMapper.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * ONAP : ccsdk features
- * ================================================================================
- * Copyright (C) 2021 highstreet technologies GmbH Intellectual Property.
- * All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- *
- */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl;
-
-import java.time.Instant;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESCommonEventHeaderPOJO;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESPNFRegistrationFieldsPOJO;
-import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.hardware.Component;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class ORanRegistrationToVESpnfRegistrationMapper {
-
-    @SuppressWarnings("unused")
-    private static final Logger LOG = LoggerFactory.getLogger(ORanFaultToVESFaultMapper.class);
-    //CommonEventHeader fields
-    private static final String VES_EVENT_DOMAIN = "pnfRegistration";
-    private static final String VES_EVENTTYPE = "NetConf Callhome Registration";
-    private static final String VES_EVENT_PRIORITY = "Normal";
-
-    private final VESCollectorService vesProvider;
-    private final NetconfAccessor netconfAccessor;
-
-    private Integer sequenceNo;
-
-
-    public ORanRegistrationToVESpnfRegistrationMapper(NetconfAccessor netconfAccessor,
-            VESCollectorService vesCollectorService) {
-        this.netconfAccessor = netconfAccessor;
-        this.vesProvider = vesCollectorService;
-
-        this.sequenceNo = 0;
-    }
-
-    public VESCommonEventHeaderPOJO mapCommonEventHeader(Component component) {
-        VESCommonEventHeaderPOJO vesCEH = new VESCommonEventHeaderPOJO();
-        vesCEH.setDomain(VES_EVENT_DOMAIN);
-        vesCEH.setEventId(netconfAccessor.getNodeId().getValue());
-        vesCEH.setEventName(netconfAccessor.getNodeId().getValue());
-        vesCEH.setEventType(VES_EVENTTYPE);
-        vesCEH.setPriority(VES_EVENT_PRIORITY);
-
-        vesCEH.setStartEpochMicrosec(Instant.now().toEpochMilli() * 1000);
-        vesCEH.setLastEpochMicrosec(Instant.now().toEpochMilli() * 1000);
-        vesCEH.setNfVendorName(component.getMfgName());
-        vesCEH.setReportingEntityName(vesProvider.getConfig().getReportingEntityName());
-        vesCEH.setSequence(sequenceNo++);
-        vesCEH.setSourceId(component.getUuid() != null ? component.getUuid().toString():netconfAccessor.getNodeId().getValue());
-        vesCEH.setSourceName(netconfAccessor.getNodeId().getValue());
-
-        return vesCEH;
-    }
-
-    public VESPNFRegistrationFieldsPOJO mapPNFRegistrationFields(Component component) {
-        VESPNFRegistrationFieldsPOJO vesPnfFields = new VESPNFRegistrationFieldsPOJO();
-        vesPnfFields.setModelNumber(component.getModelName());
-        vesPnfFields.setOamV4IpAddress(netconfAccessor.getNetconfNode().getHost().getIpAddress().getIpv4Address()!=null?netconfAccessor.getNetconfNode().getHost().getIpAddress().getIpv4Address().getValue():null);
-        vesPnfFields.setOamV6IpAddress(netconfAccessor.getNetconfNode().getHost().getIpAddress().getIpv6Address()!=null?netconfAccessor.getNetconfNode().getHost().getIpAddress().getIpv6Address().getValue():null);
-        vesPnfFields.setSerialNumber(component.getSerialNum());
-        vesPnfFields.setVendorName(component.getMfgName());
-        vesPnfFields.setSoftwareVersion(component.getSoftwareRev());
-        vesPnfFields.setUnitType(component.getAlias());
-        vesPnfFields.setUnitFamily(component.getXmlClass().toString());
-        vesPnfFields.setManufactureDate(component.getMfgDate()!=null?component.getMfgDate().toString():"Unknown");
-        //vesPnfFields.setLastServiceDate(component.getLastChange());
-
-        return vesPnfFields;
-    }
-}
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/DeviceManagerORanImpl.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/DeviceManagerORanImpl.java
similarity index 95%
rename from sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/DeviceManagerORanImpl.java
rename to sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/DeviceManagerORanImpl.java
index 87157e8..7e04e8c 100644
--- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/DeviceManagerORanImpl.java
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/DeviceManagerORanImpl.java
@@ -15,10 +15,11 @@
  * the License.
  * ============LICENSE_END==========================================================================
  */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl;
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.binding;
 
 import org.onap.ccsdk.features.sdnr.wt.common.database.HtDatabaseClient;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.factory.FactoryRegistration;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.startup.ORanNetworkElementFactory;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NetconfNetworkElementService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanChangeNotificationListener.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanChangeNotificationListener.java
similarity index 98%
rename from sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanChangeNotificationListener.java
rename to sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanChangeNotificationListener.java
index c0aa0ac..abed01a 100644
--- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanChangeNotificationListener.java
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanChangeNotificationListener.java
@@ -15,7 +15,7 @@
  * the License.
  * ============LICENSE_END==========================================================================
  */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl;
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.binding;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
 import java.util.List;
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanFaultNotificationListener.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanFaultNotificationListener.java
similarity index 98%
rename from sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanFaultNotificationListener.java
rename to sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanFaultNotificationListener.java
index a17dcd7..d03b394 100644
--- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanFaultNotificationListener.java
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanFaultNotificationListener.java
@@ -15,7 +15,7 @@
  * the License.
  * ============LICENSE_END==========================================================================
  */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl;
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.binding;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
 import java.time.Instant;
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanFaultToVESFaultMapper.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanFaultToVESFaultMapper.java
similarity index 98%
rename from sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanFaultToVESFaultMapper.java
rename to sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanFaultToVESFaultMapper.java
index ec8eaa7..f5873df 100644
--- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanFaultToVESFaultMapper.java
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanFaultToVESFaultMapper.java
@@ -19,7 +19,7 @@
  * ============LICENSE_END=========================================================
  *
  */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl;
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.binding;
 
 import java.time.Instant;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService;
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanNetworkElement.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanNetworkElement.java
similarity index 81%
rename from sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanNetworkElement.java
rename to sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanNetworkElement.java
index d3ae501..e16df1d 100644
--- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanNetworkElement.java
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanNetworkElement.java
@@ -15,12 +15,12 @@
  * the License.
  * ============LICENSE_END==========================================================================
  */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl;
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.binding;
 
-import com.fasterxml.jackson.core.JsonProcessingException;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
+import java.util.Map;
 import java.util.Optional;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
@@ -30,14 +30,20 @@
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElementService;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESCommonEventHeaderPOJO;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESPNFRegistrationFieldsPOJO;
 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.Capabilities;
 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor;
 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.netconf.streams.Stream;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.netconf.streams.StreamKey;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.Hardware;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.hardware.Component;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.NetconfCapabilityChange;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.NetconfConfigChange;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.NetconfConfirmedCommit;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.NetconfSessionEnd;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.NetconfSessionStart;
 import org.opendaylight.yang.gen.v1.urn.onap.system.rev201026.System1;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Guicutthrough;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory;
@@ -64,20 +70,25 @@
             .augmentation(System1.class).build();
 
     private final NetconfBindingAccessor netconfAccessor;
+    private final Optional<NetconfBindingAccessor> netconfAccessorOpt;
+
+    private final Optional<NetconfDomAccessor> netconfDomAccessor;
     private final DataProvider databaseService;
     private final ORanRegistrationToVESpnfRegistrationMapper mapper;
     private final VESCollectorService vesCollectorService;
 
     private ListenerRegistration<NotificationListener> oRanListenerRegistrationResult;
-    private @NonNull final ORanChangeNotificationListener oRanListener;
+    //private @NonNull final ORanChangeNotificationListener oRanListener;
     private ListenerRegistration<NotificationListener> oRanFaultListenerRegistrationResult;
     private @NonNull final ORanFaultNotificationListener oRanFaultListener;
 
-    ORanNetworkElement(NetconfBindingAccessor netconfAccess, DeviceManagerServiceProvider serviceProvider) {
+    //ORanNetworkElement(NetconfBindingAccessor netconfAccess, DeviceManagerServiceProvider serviceProvider) {
+    ORanNetworkElement(NetconfAccessor netconfAccess, DeviceManagerServiceProvider serviceProvider) {
         LOG.info("Create {}", ORanNetworkElement.class.getSimpleName());
         // Read parameters
-        this.netconfAccessor = netconfAccess;
-
+        this.netconfAccessorOpt = netconfAccess.getNetconfBindingAccessor();
+        this.netconfAccessor = netconfAccessorOpt.get();
+        this.netconfDomAccessor = netconfAccess.getNetconfDomAccessor();
         // Get services
         this.databaseService = serviceProvider.getDataProvider();
         this.vesCollectorService = serviceProvider.getVESCollectorService();
@@ -86,11 +97,12 @@
 
         // Register callbacks
         this.oRanListenerRegistrationResult = null;
-        this.oRanListener = new ORanChangeNotificationListener(netconfAccessor, serviceProvider);
+        //this.oRanListener = new ORanChangeNotificationListener(netconfAccessor, serviceProvider);
 
         this.oRanFaultListenerRegistrationResult = null;
         this.oRanFaultListener = new ORanFaultNotificationListener(netconfAccessor, vesCollectorService,
                 serviceProvider.getFaultService(), serviceProvider.getWebsocketService(), databaseService);
+
     }
 
     private Collection<Component> initialReadFromNetworkElement() {
@@ -125,12 +137,21 @@
         // Publish the mountpoint to VES if enabled
         publishMountpointToVES(componentList);
         // Register call back class for receiving notifications
-        this.oRanListenerRegistrationResult = netconfAccessor.doRegisterNotificationListener(oRanListener);
+        //this.oRanListenerRegistrationResult = netconfAccessor.doRegisterNotificationListener(oRanListener);
         this.oRanFaultListenerRegistrationResult = netconfAccessor.doRegisterNotificationListener(oRanFaultListener);
         // Register notifications stream
-        if (netconfAccessor.isNotificationsRFC5277Supported()) {
+        /*if (netconfAccessor.isNotificationsRFC5277Supported()) {
             netconfAccessor.registerNotificationsStream();
-        }
+        }*/
+
+        QName[] notifications = { NetconfConfigChange.QNAME, NetconfConfirmedCommit.QNAME,
+                NetconfSessionStart.QNAME, NetconfSessionEnd.QNAME, NetconfCapabilityChange.QNAME };
+        //netconfDomAccessor.get().doRegisterNotificationListener(new ORanDOMChangeNotificationListener(netconfDomAccessor.get(), databaseService), notifications);
+     // Output notification streams to LOG
+        Map<StreamKey, Stream> streams = netconfDomAccessor.get().getNotificationStreamsAsMap();
+        LOG.info("Available notifications streams: {}", streams);
+        // Register to default stream
+        netconfDomAccessor.get().invokeCreateSubscription();
     }
 
     @Override
@@ -220,14 +241,13 @@
                     // If the device supports subtended configuration then it is assumed that the
                     // Chassis containing the management interface will be the root component and
                     // there will be only one root.
-                    VESCommonEventHeaderPOJO header = mapper.mapCommonEventHeader(component);
+                    /*VESCommonEventHeaderPOJO header = mapper.mapCommonEventHeader(component);
                     VESPNFRegistrationFieldsPOJO body = mapper.mapPNFRegistrationFields(component);
                     try {
                         vesCollectorService.publishVESMessage(vesCollectorService.generateVESEvent(header, body));
                     } catch (JsonProcessingException e) {
                         LOG.warn("Error while serializing VES Event to String ", e);
-                        e.printStackTrace();
-                    }
+                    }*/
                 }
             }
         }
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanNotifToVESEventAssembly.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanNotifToVESEventAssembly.java
similarity index 98%
rename from sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanNotifToVESEventAssembly.java
rename to sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanNotifToVESEventAssembly.java
index d99f1c8..6e31ffb 100644
--- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanNotifToVESEventAssembly.java
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanNotifToVESEventAssembly.java
@@ -19,7 +19,7 @@
  * ============LICENSE_END=========================================================
  *
  */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl;
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.binding;
 
 import java.time.Instant;
 import java.util.ArrayList;
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanRegistrationToVESpnfRegistrationMapper.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanRegistrationToVESpnfRegistrationMapper.java
new file mode 100644
index 0000000..206abb5
--- /dev/null
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanRegistrationToVESpnfRegistrationMapper.java
@@ -0,0 +1,114 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2021 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.binding;
+
+import java.time.Instant;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.dom.ORanDMDOMUtility;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.dom.ORanDeviceManagerQNames;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESCommonEventHeaderPOJO;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESPNFRegistrationFieldsPOJO;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
+import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class ORanRegistrationToVESpnfRegistrationMapper {
+
+    @SuppressWarnings("unused")
+    private static final Logger LOG = LoggerFactory.getLogger(ORanFaultToVESFaultMapper.class);
+    //CommonEventHeader fields
+    private static final String VES_EVENT_DOMAIN = "pnfRegistration";
+    private static final String VES_EVENTTYPE = "NetConf Callhome Registration";
+    private static final String VES_EVENT_PRIORITY = "Normal";
+
+    private final VESCollectorService vesProvider;
+    private final NetconfAccessor netconfAccessor;
+
+    private Integer sequenceNo;
+
+
+    public ORanRegistrationToVESpnfRegistrationMapper(NetconfAccessor netconfAccessor,
+            VESCollectorService vesCollectorService) {
+        this.netconfAccessor = netconfAccessor;
+        this.vesProvider = vesCollectorService;
+
+        this.sequenceNo = 0;
+    }
+
+    public VESCommonEventHeaderPOJO mapCommonEventHeader(MapEntryNode component) {
+        VESCommonEventHeaderPOJO vesCEH = new VESCommonEventHeaderPOJO();
+        vesCEH.setDomain(VES_EVENT_DOMAIN);
+        vesCEH.setEventId(netconfAccessor.getNodeId().getValue());
+        vesCEH.setEventName(netconfAccessor.getNodeId().getValue());
+        vesCEH.setEventType(VES_EVENTTYPE);
+        vesCEH.setPriority(VES_EVENT_PRIORITY);
+
+        vesCEH.setStartEpochMicrosec(Instant.now().toEpochMilli() * 1000);
+        vesCEH.setLastEpochMicrosec(Instant.now().toEpochMilli() * 1000);
+        vesCEH.setNfVendorName(
+                ORanDMDOMUtility.getLeafValue(component, ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_MFG_NAME));
+        vesCEH.setReportingEntityName(vesProvider.getConfig().getReportingEntityName());
+        vesCEH.setSequence(sequenceNo++);
+        vesCEH.setSourceId(
+                ORanDMDOMUtility.getLeafValue(component, ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_UUID) != null
+                        ? ORanDMDOMUtility.getLeafValue(component, ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_UUID)
+                        : netconfAccessor.getNodeId().getValue());
+        vesCEH.setSourceName(netconfAccessor.getNodeId().getValue());
+
+        return vesCEH;
+    }
+
+    public VESPNFRegistrationFieldsPOJO mapPNFRegistrationFields(MapEntryNode component) {
+        VESPNFRegistrationFieldsPOJO vesPnfFields = new VESPNFRegistrationFieldsPOJO();
+        vesPnfFields.setModelNumber(
+                ORanDMDOMUtility.getLeafValue(component, ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_MFG_NAME));
+        vesPnfFields
+                .setOamV4IpAddress(netconfAccessor.getNetconfNode().getHost().getIpAddress().getIpv4Address() != null
+                        ? netconfAccessor.getNetconfNode().getHost().getIpAddress().getIpv4Address().getValue()
+                        : null);
+        vesPnfFields
+                .setOamV6IpAddress(netconfAccessor.getNetconfNode().getHost().getIpAddress().getIpv6Address() != null
+                        ? netconfAccessor.getNetconfNode().getHost().getIpAddress().getIpv6Address().getValue()
+                        : null);
+        vesPnfFields.setSerialNumber(
+                ORanDMDOMUtility.getLeafValue(component, ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_SER_NUM));
+        vesPnfFields.setVendorName(
+                ORanDMDOMUtility.getLeafValue(component, ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_MFG_NAME));
+        vesPnfFields.setSoftwareVersion(
+                ORanDMDOMUtility.getLeafValue(component, ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_SW_REV));
+        vesPnfFields.setUnitType(
+                ORanDMDOMUtility.getLeafValue(component, ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_ALIAS));
+        vesPnfFields.setUnitFamily(
+                ORanDMDOMUtility.getLeafValue(component, ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_CLASS));
+        vesPnfFields
+                .setManufactureDate(
+                        ORanDMDOMUtility.getLeafValue(component,
+                                ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_MFG_DATE) != null
+                                        ? ORanDMDOMUtility.getLeafValue(component,
+                                                ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_MFG_DATE)
+                                        : "Unknown");
+        //vesPnfFields.setLastServiceDate(component.getLastChange());
+
+        return vesPnfFields;
+    }
+}
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanToInternalDataModel.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanToInternalDataModel.java
similarity index 98%
rename from sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanToInternalDataModel.java
rename to sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanToInternalDataModel.java
index 71ab613..2469e46 100644
--- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanToInternalDataModel.java
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanToInternalDataModel.java
@@ -15,7 +15,7 @@
  * the License.
  * ============LICENSE_END==========================================================================
  */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl;
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.binding;
 
 import java.time.Instant;
 import java.util.ArrayList;
@@ -236,7 +236,7 @@
         faultAlarm.setNodeId(nodeId.getValue());
         faultAlarm.setObjectId(notification.getFaultSource());
         faultAlarm.setProblem(notification.getFaultText());
-        faultAlarm.setSeverity(getSeverityType(notification.getFaultSeverity(), notification.isIsCleared()));
+        faultAlarm.setSeverity(getSeverityType(notification.getFaultSeverity(), notification.getIsCleared()));
         faultAlarm.setCounter(counter);
         faultAlarm.setId(String.valueOf(notification.getFaultId()));
         faultAlarm.setSourceType(SourceType.Netconf);
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/DOMNotificationToXPath.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/DOMNotificationToXPath.java
new file mode 100644
index 0000000..64fb9b8
--- /dev/null
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/DOMNotificationToXPath.java
@@ -0,0 +1,235 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.dom;
+
+import java.time.Instant;
+import java.util.Collection;
+import java.util.HashMap;
+import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.mdsal.dom.api.DOMEvent;
+import org.opendaylight.mdsal.dom.api.DOMNotification;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
+import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode;
+import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
+import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild;
+import org.opendaylight.yangtools.yang.data.api.schema.DataContainerNode;
+import org.opendaylight.yangtools.yang.data.api.schema.LeafSetEntryNode;
+import org.opendaylight.yangtools.yang.data.api.schema.LeafSetNode;
+import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
+import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
+import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListEntryNode;
+import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListNode;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.base.VerifyException;
+
+public class DOMNotificationToXPath {
+	private static final Logger LOG = LoggerFactory.getLogger(DOMNotificationToXPath.class);
+
+	public HashMap<String, String> convertDomNotifToXPath(@NonNull DOMNotification domNotification) {
+		@NonNull
+		ContainerNode notifContainer = domNotification.getBody();
+		HashMap<String, String> xPathData = new HashMap<String, String>();
+
+		Collection<DataContainerChild> data = notifContainer.body();
+		for (DataContainerChild data1 : data) {
+			String namePath = "";
+			recurseDOMData(notifContainer, data1, notifContainer, xPathData, namePath);
+		}
+		LOG.debug("XPath Data = {}", xPathData);
+		return xPathData;
+
+	}
+
+	private void recurseDOMData(@NonNull ContainerNode notifContainer, DataContainerChild domData, DataContainerNode cn,
+			HashMap<String, String> result, String namePath) {
+		PathArgument pa1 = domData.getIdentifier();
+		namePath += "/" + pa1.getNodeType().getLocalName();
+		if (domData.getClass().getSimpleName().equals("ImmutableContainerNode")) {
+			try {
+				ContainerNode cn1 = (ContainerNode) cn.getChildByArg(pa1);
+				for (DataContainerChild data1 : cn1.body()) {
+					recurseDOMData(notifContainer, data1, cn1, result, namePath);
+				}
+			} catch (VerifyException ve) {
+				LOG.debug("{} does not exist", pa1);
+			}
+		}
+
+		if (domData.getClass().getSimpleName().equals("ImmutableChoiceNode")) {
+			try {
+				ChoiceNode cn1 = (ChoiceNode) cn.getChildByArg(pa1);
+				for (DataContainerChild data1 : cn1.body()) {
+					// recurseChoiceData(data1, cn1, namePath);
+					recurseDOMData(notifContainer, data1, cn1, result, namePath);
+				}
+			} catch (VerifyException ve) {
+				LOG.debug("{} does not exist", pa1);
+			}
+		}
+
+		if (domData.getClass().getSimpleName().equals("ImmutableUnkeyedListNode")) {
+			try {
+				UnkeyedListNode cn1 = (UnkeyedListNode) cn.getChildByArg(pa1);
+				for (UnkeyedListEntryNode data1 : cn1.body()) {
+					recurseUnkeyedListEntryNodeData(data1, cn1, result, namePath);
+				}
+			} catch (VerifyException ve) {
+				LOG.debug("{} does not exist", pa1);
+			}
+		}
+
+		if (domData.getClass().getSimpleName().equals("ImmutableMapNode")) {
+			try {
+				MapNode cn1 = (MapNode) cn.getChildByArg(pa1);
+				for (MapEntryNode data1 : cn1.body()) {
+					recurseMapEntryNodeData(notifContainer, data1, cn1, result, namePath);
+				}
+			} catch (VerifyException ve) {
+				LOG.debug("{} does not exist", pa1);
+			}
+		}
+
+		if (domData.getClass().getSimpleName().equals("ImmutableLeafSetNode")) {
+			try {
+				LeafSetNode<?> cn1 = (LeafSetNode<?>) cn.getChildByArg(pa1);
+				for (LeafSetEntryNode<?> data1 : cn1.body()) {
+					recurseLeafSetEntryNodeData(data1, cn1, result, namePath);
+				}
+			} catch (VerifyException ve) {
+				LOG.debug("{} does not exist", pa1);
+			}
+		}
+
+		if (domData.getClass().getSimpleName().equals("ImmutableLeafNode")) {
+			recurseLeafNode(domData, result, namePath);
+		}
+	}
+
+	private void recurseLeafSetEntryNodeData(LeafSetEntryNode<?> data, LeafSetNode<?> cn1,
+			HashMap<String, String> result, String namePath) {
+		PathArgument pa1 = data.getIdentifier();
+		namePath += "/" + pa1.getNodeType().getLocalName();
+
+		if (data.getClass().getSimpleName().equals("ImmutableLeafSetEntryNode")) {
+			LOG.debug("{}={}", namePath, data.body());
+			result.put(namePath, data.body().toString());
+		}
+	}
+
+	private void recurseMapEntryNodeData(@NonNull ContainerNode notifContainer, MapEntryNode data, MapNode cn1,
+			HashMap<String, String> result, String namePath) {
+		PathArgument pa1 = data.getIdentifier();
+		NodeIdentifierWithPredicates ni = data.getIdentifier();
+
+		for (QName qn : ni.keySet()) {
+			namePath += "/" + ni.getValue(qn);
+		}
+
+		if (data.getClass().getSimpleName().equals("ImmutableMapEntryNode")) {
+			for (DataContainerChild data1 : data.body()) {
+				if (data1.getClass().getSimpleName().equals("ImmutableLeafSetNode")) {
+					try {
+						LeafSetNode<?> cn2 = (LeafSetNode<?>) data.getChildByArg(data1.getIdentifier());
+						for (LeafSetEntryNode<?> data2 : cn2.body()) {
+							recurseLeafSetEntryNodeData(data2, cn2, result, namePath);
+						}
+					} catch (VerifyException ve) {
+						LOG.debug("{} does not exist", data1.getIdentifier());
+					}
+				} else {
+					recurseLeafNode(data1, result, namePath);
+				}
+			}
+		}
+
+		if (data.getClass().getSimpleName().equals("ImmutableLeafSetNode")) {
+			try {
+				LeafSetNode<?> cn2 = (LeafSetNode<?>) notifContainer.getChildByArg(pa1);
+				for (LeafSetEntryNode<?> data1 : cn2.body()) {
+					recurseLeafSetEntryNodeData(data1, cn2, result, namePath);
+				}
+			} catch (VerifyException ve) {
+				LOG.debug("{} does not exist", pa1);
+			}
+		}
+
+		if (data.getClass().getSimpleName().equals("ImmutableLeafNode")) {
+			LOG.debug("{}={}", namePath, data.body());
+			result.put(namePath, data.body().toString());
+		}
+	}
+
+	private void recurseUnkeyedListEntryNodeData(UnkeyedListEntryNode data, UnkeyedListNode cn1,
+			HashMap<String, String> result, String namePath) {
+		PathArgument pa1 = data.getIdentifier();
+		namePath += "/" + pa1.getNodeType().getLocalName();
+
+		if (data.getClass().getSimpleName().equals("ImmutableUnkeyedListEntryNode")) {
+			for (DataContainerChild data1 : data.body()) {
+				recurseLeafNode(data1, result, namePath);
+			}
+		}
+
+		if (data.getClass().getSimpleName().equals("ImmutableLeafNode")) {
+			LOG.debug("{}={}", namePath, data.body());
+			result.put(namePath, data.body().toString());
+		}
+	}
+
+	public void recurseLeafNode(DataContainerChild data, HashMap<String, String> result, String namePath) {
+		PathArgument pa1 = data.getIdentifier();
+		if (!(data.getClass().getSimpleName().equals("ImmutableAugmentationNode")))
+			namePath += "/" + pa1.getNodeType().getLocalName();
+		if (data.getClass().getSimpleName().equals("ImmutableLeafNode")) {
+			LOG.debug("{}={}", namePath, data.body());
+			result.put(namePath, data.body().toString());
+		}
+	}
+
+	public void recurseChoiceData(HashMap<String, String> result, DataContainerChild data, ChoiceNode cn,
+			String namePath) {
+		PathArgument pa1 = data.getIdentifier();
+		namePath += "/" + pa1.getNodeType().getLocalName();
+		// NodeIdentifier nodeId = new NodeIdentifier(pa1.getNodeType());
+		if (data.getClass().getSimpleName().equals("ImmutableLeafNode")) {
+			LOG.debug("{}={}", namePath, data.body());
+			result.put(namePath, data.body().toString());
+		}
+	}
+
+	public Instant getTime(@NonNull DOMNotification domNotification) {
+		@NonNull
+		Instant eventTime;
+		if (domNotification instanceof DOMEvent) {
+			eventTime = ((DOMEvent) domNotification).getEventInstant();
+			LOG.info("Event time {}", eventTime);
+		} else {
+			eventTime = Instant.now();
+			LOG.info("Defaulting to actual time of processing the notification - {}", eventTime);
+		}
+		return eventTime;
+	}
+}
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDMDOMUtility.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDMDOMUtility.java
new file mode 100644
index 0000000..947677b
--- /dev/null
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDMDOMUtility.java
@@ -0,0 +1,90 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2021 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.dom;
+
+import java.time.Instant;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import org.opendaylight.mdsal.dom.api.DOMEvent;
+import org.opendaylight.mdsal.dom.api.DOMNotification;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
+import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild;
+import org.opendaylight.yangtools.yang.data.api.schema.DataContainerNode;
+import org.opendaylight.yangtools.yang.data.api.schema.LeafNode;
+import org.opendaylight.yangtools.yang.data.api.schema.LeafSetEntryNode;
+import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.base.VerifyException;
+
+public class ORanDMDOMUtility {
+	public static final Logger LOG = LoggerFactory.getLogger(ORanDMDOMUtility.class);
+
+	public static String getKeyValue(MapEntryNode componentEntry) {
+		NodeIdentifierWithPredicates componentKey = componentEntry.getIdentifier(); // list key
+		return (String) componentKey.getValue(ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_KEY);
+	}
+
+	public static String getLeafValue(DataContainerNode componentEntry, QName leafQName) {
+		NodeIdentifier leafNodeIdentifier = new NodeIdentifier(leafQName);
+		try {
+			LeafNode<?> optLeafNode = (LeafNode<?>) componentEntry.getChildByArg(leafNodeIdentifier);
+			if (optLeafNode.body() instanceof QName) {
+				LOG.debug("Leaf is of type QName");
+			}
+			return optLeafNode.body().toString();
+		} catch (VerifyException ve) {
+			LOG.debug("Leaf with QName {} not found", leafQName.toString());
+			return null;
+		}
+	}
+
+	public static List<String> getLeafListValue(DataContainerNode componentEntry, QName leafListQName) {
+		List<String> containsChildList = new ArrayList<String>();
+		try {
+			DataContainerChild childSet = componentEntry.getChildByArg(new NodeIdentifier(leafListQName));
+			Collection<?> childEntry = (Collection<?>) childSet.body();
+			Iterator<?> childEntryItr = childEntry.iterator();
+			while (childEntryItr.hasNext()) {
+				LeafSetEntryNode<?> childEntryNode = (LeafSetEntryNode<?>) childEntryItr.next();
+				containsChildList.add(childEntryNode.body().toString());
+			}
+		} catch (VerifyException ve) {
+			LOG.debug("Child for {} does not exist", leafListQName);
+		}
+		return containsChildList;
+	}
+
+	public static Instant getNotificationInstant(DOMNotification notification) {
+		if (notification instanceof DOMEvent) {
+			return ((DOMEvent) notification).getEventInstant();
+		} else {
+			return Instant.now();
+		}
+	}
+
+}
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMChangeNotificationListener.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMChangeNotificationListener.java
new file mode 100644
index 0000000..aa375ef
--- /dev/null
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMChangeNotificationListener.java
@@ -0,0 +1,150 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2021 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.dom;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import java.time.Instant;
+import org.eclipse.jdt.annotation.NonNull;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.types.NetconfTimeStampImpl;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESCommonEventHeaderPOJO;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESNotificationFieldsPOJO;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor;
+import org.opendaylight.mdsal.dom.api.DOMEvent;
+import org.opendaylight.mdsal.dom.api.DOMNotification;
+import org.opendaylight.mdsal.dom.api.DOMNotificationListener;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogEntity;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SourceType;
+import org.opendaylight.yangtools.yang.binding.CodeHelpers;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
+import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode;
+import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
+import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListNode;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class ORanDOMChangeNotificationListener implements DOMNotificationListener {
+
+	private static final Logger log = LoggerFactory.getLogger(ORanDOMChangeNotificationListener.class);
+
+	private final NetconfDomAccessor netconfDomAccessor;
+	private final DataProvider databaseService;
+	private @NonNull VESCollectorService vesCollectorService;
+	private final DOMNotificationToXPath domNotificationXPath;
+	private ORanDOMNotifToVESEventAssembly mapper = null;
+	private static int sequenceNo = 0;
+
+	public ORanDOMChangeNotificationListener(NetconfDomAccessor netconfDomAccessor,
+			@NonNull VESCollectorService vesCollectorService, DataProvider databaseService) {
+		this.netconfDomAccessor = netconfDomAccessor;
+		this.databaseService = databaseService;
+		this.vesCollectorService = vesCollectorService;
+		domNotificationXPath = new DOMNotificationToXPath();
+	}
+
+	@Override
+	public void onNotification(@NonNull DOMNotification domNotification) {
+		if (domNotification.getType()
+				.equals(Absolute.of(ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_NETCONF_CONFIG_CHANGE))) {
+			handleNetconfConfigChange(domNotification);
+		}
+	}
+
+	private void handleNetconfConfigChange(@NonNull DOMNotification domNotification) {
+		DateAndTime eventTime;
+		Instant notificationEventTime = null;
+		if (domNotification instanceof DOMEvent) {
+			notificationEventTime = ((DOMEvent) domNotification).getEventInstant();
+			eventTime = NetconfTimeStampImpl.getConverter().getTimeStamp(notificationEventTime.toString());
+		} else {
+			eventTime = NetconfTimeStampImpl.getConverter().getTimeStamp();
+		}
+
+		ContainerNode cn = domNotification.getBody();
+
+		// Process the changed-by child
+//		ContainerNode changedByContainerNode = (ContainerNode) cn
+//				.childByArg(new NodeIdentifier(ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_CHANGEDBY));
+//		ChoiceNode serverOrUserIDVal = (ChoiceNode) changedByContainerNode
+//				.childByArg(new NodeIdentifier(ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_SERVERORUSER));
+//		@SuppressWarnings("unused")
+//		String userIDValue = serverOrUserIDVal
+//				.childByArg(new NodeIdentifier(ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_USERNAME)).body()
+//				.toString();
+//		@SuppressWarnings("unused")
+//		Integer sessionIDVal = Integer.valueOf(serverOrUserIDVal
+//				.childByArg(new NodeIdentifier(ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_SESSIONID)).body()
+//				.toString());
+//
+//		// Process the datastore child
+//		@SuppressWarnings("unused")
+//		String datastoreValue = cn
+//				.childByArg(new NodeIdentifier(ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_DATASTORE)).body()
+//				.toString();
+
+		// Process the edit child
+		UnkeyedListNode editList = (UnkeyedListNode) cn
+				.childByArg(new NodeIdentifier(ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_EDITNODE));
+		if (editList != null) {
+			for (int listCnt = 0; listCnt < editList.size(); listCnt++) {
+				String operationValue = editList.childAt(listCnt)
+						.childByArg(new NodeIdentifier(ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_OPERATION))
+						.body().toString();
+				String targetValue = editList.childAt(listCnt)
+						.childByArg(new NodeIdentifier(ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_TARGET))
+						.body().toString();
+
+				EventlogEntity eventLogEntity1 = new EventlogBuilder()
+						.setNodeId(netconfDomAccessor.getNodeId().getValue()).setCounter(sequenceNo++)
+						.setTimestamp(eventTime).setObjectId(targetValue).setAttributeName("N.A")
+						.setSourceType(SourceType.Netconf).setNewValue(String.valueOf(operationValue)).build();
+				databaseService.writeEventLog(eventLogEntity1);
+			}
+		}
+
+		if (vesCollectorService.getConfig().isVESCollectorEnabled()) {
+			if (mapper == null) {
+				this.mapper = new ORanDOMNotifToVESEventAssembly(netconfDomAccessor, vesCollectorService);
+			}
+			VESCommonEventHeaderPOJO header = mapper.createVESCommonEventHeader(
+					domNotificationXPath.getTime(domNotification),
+					ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_NETCONF_CONFIG_CHANGE.getLocalName(),
+					sequenceNo);
+			VESNotificationFieldsPOJO body = mapper.createVESNotificationFields(
+					domNotificationXPath.convertDomNotifToXPath(domNotification),
+					ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_NETCONF_CONFIG_CHANGE.getLocalName());
+			log.info("domNotification in XPath format = {}",
+					domNotificationXPath.convertDomNotifToXPath(domNotification));
+			try {
+				vesCollectorService.publishVESMessage(vesCollectorService.generateVESEvent(header, body));
+			} catch (JsonProcessingException e) {
+				log.warn("Exception while generating JSON object ", e);
+
+			}
+		}
+
+	}
+}
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanFaultNotificationListener.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMFaultNotificationListener.java
similarity index 61%
copy from sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanFaultNotificationListener.java
copy to sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMFaultNotificationListener.java
index a17dcd7..494a01f 100644
--- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanFaultNotificationListener.java
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMFaultNotificationListener.java
@@ -1,105 +1,113 @@
 /*
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt
- * =================================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2021 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
  *
- * http://www.apache.org/licenses/LICENSE-2.0
+ *     http://www.apache.org/licenses/LICENSE-2.0
  *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
  */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl;
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.dom;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
 import java.time.Instant;
 import java.time.format.DateTimeParseException;
 import java.util.Collection;
-import java.util.Date;
 import java.util.Objects;
 import org.eclipse.jdt.annotation.NonNull;
 import org.json.JSONException;
 import org.json.JSONObject;
 import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
-import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.NetconfTimeStamp;
-import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.types.NetconfTimeStampImpl;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESCommonEventHeaderPOJO;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESFaultFieldsPOJO;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESMessage;
-import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor;
 import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.hardware.Component;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
-import org.opendaylight.yang.gen.v1.urn.o.ran.fm._1._0.rev190204.AlarmNotif;
-import org.opendaylight.yang.gen.v1.urn.o.ran.fm._1._0.rev190204.ORanFmListener;
+import org.opendaylight.mdsal.dom.api.DOMNotification;
+import org.opendaylight.mdsal.dom.api.DOMNotificationListener;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SourceType;
+import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class ORanFaultNotificationListener implements ORanFmListener {
+public class ORanDOMFaultNotificationListener implements DOMNotificationListener {
 
-    private static final Logger LOG = LoggerFactory.getLogger(ORanFaultNotificationListener.class);
+    private static final Logger LOG = LoggerFactory.getLogger(ORanDOMFaultNotificationListener.class);
 
-    private final @NonNull NetconfBindingAccessor netconfAccessor;
+    private final @NonNull NetconfDomAccessor netconfDomAccessor;
     private final @NonNull VESCollectorService vesCollectorService;
-    private final @NonNull ORanFaultToVESFaultMapper mapper;
+    private final @NonNull ORanDOMFaultToVESFaultMapper mapper;
     private final @NonNull FaultService faultService;
     private final @NonNull WebsocketManagerService websocketManagerService;
     private final @NonNull DataProvider databaseService;
-    private static final NetconfTimeStamp NETCONFTIME_CONVERTER = NetconfTimeStampImpl.getConverter();
 
     private Integer counter; //Local counter is assigned to Notifications
 
-    public ORanFaultNotificationListener(@NonNull NetconfBindingAccessor netconfAccessor,
+    public ORanDOMFaultNotificationListener(@NonNull NetconfDomAccessor netconfDomAccessor,
             @NonNull VESCollectorService vesCollectorService, @NonNull FaultService faultService,
             @NonNull WebsocketManagerService websocketManagerService, @NonNull DataProvider databaseService) {
-        this.netconfAccessor = Objects.requireNonNull(netconfAccessor);
+        this.netconfDomAccessor = Objects.requireNonNull(netconfDomAccessor);
         this.vesCollectorService = Objects.requireNonNull(vesCollectorService);
         this.faultService = Objects.requireNonNull(faultService);
         this.websocketManagerService = Objects.requireNonNull(websocketManagerService);
         this.databaseService = Objects.requireNonNull(databaseService);
 
-        this.mapper = new ORanFaultToVESFaultMapper(netconfAccessor.getNodeId(), vesCollectorService,
-                AlarmNotif.class.getSimpleName());
+        this.mapper =
+                new ORanDOMFaultToVESFaultMapper(netconfDomAccessor.getNodeId(), vesCollectorService, "AlarmNotif");
         this.counter = 0;
     }
 
+    @Override
+    public void onNotification(@NonNull DOMNotification notification) {
+        onAlarmNotif(notification);
+    }
+
     /**
-     * Gets the mfg name, mode-name and Uuid of the root component (Ex: Chassis.)
-     * In cases where there are multiple root components i.e., components with no parent,
-     * the Uuid of the last occurred component from the componentList will be considered.
-     * Till now we haven't seen Uuid set for root components, so not an issue for now.
+     * Gets the mfg name, mode-name and Uuid of the root component (Ex: Chassis.) In cases where there are multiple root
+     * components i.e., components with no parent, the Uuid of the last occurred component from the componentList will
+     * be considered. Till now we haven't seen Uuid set for root components, so not an issue for now.
+     *
      * @param componentList
      */
-    public void setComponentList(Collection<Component> componentList) {
-        for (Component component : ORanToInternalDataModel.getRootComponents(componentList)) {
-            mapper.setMfgName(component.getMfgName());
-            mapper.setUuid(component.getUuid()!=null?component.getUuid().getValue():netconfAccessor.getNodeId().getValue());
-            mapper.setModelName(component.getModelName());
+    public void setComponentList(Collection<MapEntryNode> componentList) {
+        for (MapEntryNode component : ORanDOMToInternalDataModel.getRootComponents(componentList)) {
+            mapper.setMfgName(
+                    ORanDMDOMUtility.getLeafValue(component, ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_MFG_NAME));
+            mapper.setUuid(ORanDMDOMUtility.getLeafValue(component,
+                    ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_UUID) != null
+                            ? ORanDMDOMUtility.getLeafValue(component,
+                                    ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_UUID)
+                            : netconfDomAccessor.getNodeId().getValue());
+            mapper.setModelName(ORanDMDOMUtility.getLeafValue(component,
+                    ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_MODEL_NAME));
         }
     }
 
-    @Override
-    public void onAlarmNotif(AlarmNotif notification) {
+    public void onAlarmNotif(DOMNotification notification) {
 
         LOG.debug("onAlarmNotif {}", notification.getClass().getSimpleName());
         counter++;
-
         // Send devicemanager specific notification for database and ODLUX
-        Instant eventTimeInstant = ORanToInternalDataModel.getInstantTime(notification.getEventTime());
+        Instant eventTimeInstant = ORanDMDOMUtility.getNotificationInstant(notification);
         faultService.faultNotification(
-                ORanToInternalDataModel.getFaultLog(notification, netconfAccessor.getNodeId(), counter));
+                ORanDOMToInternalDataModel.getFaultLog(notification, netconfDomAccessor.getNodeId(), counter));
         // Send model specific notification to WebSocketManager
-        websocketManagerService.sendNotification(notification, netconfAccessor.getNodeId(), AlarmNotif.QNAME);
+        websocketManagerService.sendNotification(notification, netconfDomAccessor.getNodeId(), ORanDeviceManagerQNames.ORAN_FM_ALARM_NOTIF);
 
         try {
             if (vesCollectorService.getConfig().isVESCollectorEnabled()) {
@@ -107,22 +115,21 @@
                 VESFaultFieldsPOJO body = mapper.mapFaultFields(notification);
                 VESMessage vesMsg = vesCollectorService.generateVESEvent(header, body);
                 vesCollectorService.publishVESMessage(vesMsg);
-                LOG.info("VES Message is  {}",vesMsg.getMessage());
-                writeToEventLog(vesMsg.getMessage(), eventTimeInstant, AlarmNotif.QNAME.toString(), counter);
+                LOG.info("VES Message is  {}", vesMsg.getMessage());
+                writeToEventLog(vesMsg.getMessage(), eventTimeInstant, ORanDeviceManagerQNames.ORAN_FM_ALARM_NOTIF.getLocalName(), counter);
             }
         } catch (JsonProcessingException | DateTimeParseException e) {
             LOG.debug("Can not convert event into VES message {}", notification, e);
         }
     }
 
-    private void writeToEventLog(String data, Instant instant, String notificationName,
-            int sequenceNo) {
+    private void writeToEventLog(String data, Instant eventTimeInstant, String notificationName, int sequenceNo) {
         EventlogBuilder eventlogBuilder = new EventlogBuilder();
 
         eventlogBuilder.setObjectId("Device");
         eventlogBuilder.setCounter(sequenceNo);
         eventlogBuilder.setAttributeName(notificationName);
-        eventlogBuilder.setNodeId(netconfAccessor.getNodeId().getValue());
+        eventlogBuilder.setNodeId(netconfDomAccessor.getNodeId().getValue());
         String eventLogMsgLvl = vesCollectorService.getConfig().getEventLogMsgDetail();
         if (eventLogMsgLvl.equalsIgnoreCase("SHORT")) {
             data = getShortEventLogMessage(data);
@@ -135,9 +142,7 @@
         }
         eventlogBuilder.setNewValue(data);
         eventlogBuilder.setSourceType(SourceType.Netconf);
-
-        Date eventDate = Date.from(instant);
-        eventlogBuilder.setTimestamp(new DateAndTime(NETCONFTIME_CONVERTER.getTimeStamp(eventDate)));
+        eventlogBuilder.setTimestamp(ORanDOMToInternalDataModel.getDateAndTimeOfInstant(eventTimeInstant));
 
         databaseService.writeEventLog(eventlogBuilder.build());
     }
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMFaultToVESFaultMapper.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMFaultToVESFaultMapper.java
new file mode 100644
index 0000000..b05e83f
--- /dev/null
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMFaultToVESFaultMapper.java
@@ -0,0 +1,155 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2021 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.dom;
+
+import java.time.Instant;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.binding.ORanFaultToVESFaultMapper;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESCommonEventHeaderPOJO;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESFaultFieldsPOJO;
+import org.opendaylight.mdsal.dom.api.DOMNotification;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+//@formatter:off
+/*
+* Maps ORAN Fault fields to VES fault domain fields and VES commonEventHeader fields
+*
+*
+*      VES Fields                  Mapping
+*      ----------                  -------
+*      domain                      "fault"
+*      eventId                     "nt:network-topology/nt:topology/nt:node/nt:node-id"
+*      eventName                   "nt:network-topology/nt:topology/nt:node/nt:node-id"
+*      eventType                   "O-RAN-RU-Fault"
+*      lastEpochMicrosec           TimeStamp represented by <eventTime> field in NetConf notification header in unix time format - as microseconds elapsed since 1 Jan 1970 not including leap seconds.
+*      nfcNamingCode               always ""
+*      nfNamingCode                always ""
+*      nfVendorName                /ietf-hardware:hardware/component[not(parent)][1]/mfg-name
+*      priority                    "Normal"
+*      reportingEntityId           The OAM-Controller identifier with in the SMO - e.g. the fully qualified domain name or IP-Address.
+*      reportingEntityName         as configured by helm charts for the OpenDaylight cluster name ??????
+*      sequence                    As per NetConf notification increasing sequence number as unsigned integer 32 bits. The value is reused in the eventId field.
+*      sourceId                    Value of ietf-hardware (RFC8348) /hardware/component[not(parent)][1]/uuid or 'nt:network-topology/nt:topology/nt:node/nt:node-id' if ietf component not found.
+*      sourceName                  "nt:network-topology/nt:topology/nt:node/nt:node-id"
+*      startEpochMicrosec          Current OAM-Controller Node timestamp in unix time format - as microseconds elapsed since 1 Jan 1970 not including leap seconds.
+*      timeZoneOffset              Static text: "+00:00"
+*      version                     "4.1"
+*      vesEventListenerVersion     "7.2.1"
+*
+*
+*      alarmAdditionalInformation
+*      alarmCondition              Value of "o-ran-fm:alarm-notif/fault-id"
+*      alarmInterfaceA             Value of "o-ran-fm:alarm-notif/fault-source"
+*      eventCategory               Static text "O-RU failure"
+*      eventSeverity               Value of "o-ran-fm:alarm-notif/fault-severity". But if "o-ran-fm:alarm-notif/is-cleared" then "NORMAL"
+*      eventSourceType             The value of ietf-hardware (RFC8348) /hardware/component[not(parent)][1]/model-name or "O-RU" if not found.
+*      faultFieldsVersion          "4.0"
+*      specificProblem             A mapping of the fault-id to its description according to O-RAN OpenFronthaul specification.
+*      vfStatus                    "Active"
+*
+*/
+//@formatter:on
+
+public class ORanDOMFaultToVESFaultMapper {
+    @SuppressWarnings("unused")
+    private static final Logger LOG = LoggerFactory.getLogger(ORanFaultToVESFaultMapper.class);
+    private static final String VES_EVENT_DOMAIN = "fault";
+    private static final String VES_EVENTTYPE = "ORAN_Fault";
+    private static final String VES_EVENT_PRIORITY = "Normal";
+    private static final String VES_EVENT_CATEGORY = "O-RU Failure";
+    private static final String VES_FAULT_FIELDS_VERSION = "4.0";
+    private static final String VES_FAULT_FIELDS_VFSTATUS = "Active"; //virtual function status
+
+    private final VESCollectorService vesProvider;
+    private final String notifName; // Name
+    private final String nodeIdString; // Sourcename
+    //Initialized during registration
+    private String mfgName;
+    private String uuid;
+    private String modelName;
+
+    public ORanDOMFaultToVESFaultMapper(NodeId nodeId, VESCollectorService vesCollectorService, String notifName) {
+        this.nodeIdString = nodeId.getValue();
+        this.vesProvider = vesCollectorService;
+        this.notifName = notifName;
+    }
+
+    public void setMfgName(String mfgName) {
+        this.mfgName = mfgName;
+    }
+
+    public void setUuid(String uuid) {
+        this.uuid = uuid;
+    }
+
+    public void setModelName(String modelName) {
+        this.modelName = modelName;
+    }
+
+    public VESCommonEventHeaderPOJO mapCommonEventHeader(DOMNotification notification, Instant eventTime,
+            int sequenceNo) {
+        VESCommonEventHeaderPOJO vesCEH = new VESCommonEventHeaderPOJO();
+        vesCEH.setDomain(VES_EVENT_DOMAIN);
+        vesCEH.setEventName(notifName);
+        vesCEH.setEventType(VES_EVENTTYPE);
+        vesCEH.setPriority(VES_EVENT_PRIORITY);
+
+        String eventId = notifName + "-" + Long.toUnsignedString(sequenceNo);
+
+        vesCEH.setEventId(eventId);
+        vesCEH.setStartEpochMicrosec(eventTime.toEpochMilli() * 1000);
+        vesCEH.setLastEpochMicrosec(eventTime.toEpochMilli() * 1000);
+        vesCEH.setNfVendorName(mfgName);
+        vesCEH.setReportingEntityName(vesProvider.getConfig().getReportingEntityName());
+        vesCEH.setSequence(sequenceNo);
+        vesCEH.setSourceId(uuid);
+        vesCEH.setSourceName(nodeIdString);
+
+        return vesCEH;
+    }
+
+    public VESFaultFieldsPOJO mapFaultFields(DOMNotification alarmNotif) {
+        VESFaultFieldsPOJO vesFaultFields = new VESFaultFieldsPOJO();
+        ContainerNode cn = alarmNotif.getBody();
+        vesFaultFields.setAlarmCondition(ORanDMDOMUtility.getLeafValue(cn, ORanDeviceManagerQNames.ORAN_FM_FAULT_ID));
+        vesFaultFields
+                .setAlarmInterfaceA(ORanDMDOMUtility.getLeafValue(cn, ORanDeviceManagerQNames.ORAN_FM_FAULT_SOURCE));
+        vesFaultFields.setEventCategory(VES_EVENT_CATEGORY);
+        if (ORanDMDOMUtility.getLeafValue(cn, ORanDeviceManagerQNames.ORAN_FM_FAULT_IS_CLEARED).equals("true")) {
+            vesFaultFields.setEventSeverity("NORMAL");
+        } else {
+            vesFaultFields.setEventSeverity(
+                    ORanDMDOMUtility.getLeafValue(cn, ORanDeviceManagerQNames.ORAN_FM_FAULT_SEVERITY));
+        }
+        vesFaultFields.setEventSourceType(modelName);
+        vesFaultFields.setFaultFieldsVersion(VES_FAULT_FIELDS_VERSION);
+        vesFaultFields
+                .setSpecificProblem(ORanDMDOMUtility.getLeafValue(cn, ORanDeviceManagerQNames.ORAN_FM_FAULT_TEXT));
+        vesFaultFields.setVfStatus(VES_FAULT_FIELDS_VFSTATUS);
+
+        return vesFaultFields;
+    }
+
+}
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMNetworkElement.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMNetworkElement.java
new file mode 100644
index 0000000..6400633
--- /dev/null
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMNetworkElement.java
@@ -0,0 +1,283 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2021 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.dom;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.google.common.collect.Sets;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Optional;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElement;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElementService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.binding.ORanRegistrationToVESpnfRegistrationMapper;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NotificationService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESCommonEventHeaderPOJO;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESPNFRegistrationFieldsPOJO;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.Capabilities;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.netconf.streams.Stream;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.netconf.streams.StreamKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Guicutthrough;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.NetworkElementDeviceType;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.InstanceIdentifierBuilder;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
+import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
+import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
+import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
+import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class ORanDOMNetworkElement implements NetworkElement {
+
+    private static final Logger LOG = LoggerFactory.getLogger(ORanDOMNetworkElement.class);
+
+    private final @NonNull NetconfDomAccessor netconfDomAccessor;
+    private final @NonNull DataProvider databaseService;
+    private final @NonNull FaultService faultService;
+    private final @NonNull NotificationService notificationService;
+    private final @NonNull ORanDOMChangeNotificationListener oranDomChangeNotificationListener;
+    private final @NonNull ORanDOMFaultNotificationListener oranDomFaultNotificationListener;
+    private final @NonNull VESCollectorService vesCollectorService;
+    private final @NonNull ORanRegistrationToVESpnfRegistrationMapper mapper;
+
+    public ORanDOMNetworkElement(@NonNull NetconfDomAccessor netconfDomAccessor,
+            @NonNull DeviceManagerServiceProvider serviceProvider) {
+        LOG.info("Create {}", ORanDOMNetworkElement.class.getSimpleName());
+        this.netconfDomAccessor = Objects.requireNonNull(netconfDomAccessor);
+        Objects.requireNonNull(serviceProvider);
+        this.databaseService = serviceProvider.getDataProvider();
+        this.vesCollectorService = serviceProvider.getVESCollectorService();
+        this.faultService = serviceProvider.getFaultService();
+        this.notificationService = serviceProvider.getNotificationService();
+
+        this.oranDomChangeNotificationListener =
+                new ORanDOMChangeNotificationListener(netconfDomAccessor, vesCollectorService, databaseService);
+
+        this.oranDomFaultNotificationListener =
+                new ORanDOMFaultNotificationListener(netconfDomAccessor, vesCollectorService,
+                        serviceProvider.getFaultService(), serviceProvider.getWebsocketService(), databaseService);
+
+        this.mapper = new ORanRegistrationToVESpnfRegistrationMapper(netconfDomAccessor, vesCollectorService);
+    }
+
+    @Override
+    public void register() {
+        Collection<MapEntryNode> componentList = initialReadFromNetworkElement();
+        oranDomFaultNotificationListener.setComponentList(componentList);
+        publishMountpointToVES(componentList);
+        QName[] notifications = {ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_NETCONF_CONFIG_CHANGE,
+                ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_NETCONF_CONFIRMED_COMMIT,
+                ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_NETCONF_SESSION_START,
+                ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_NETCONF_SESSION_END,
+                ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_NETCONF_CAPABILITY_CHANGE};
+        netconfDomAccessor.doRegisterNotificationListener(oranDomChangeNotificationListener, notifications);
+        QName[] faultNotification = {ORanDeviceManagerQNames.ORAN_FM_ALARM_NOTIF};
+        netconfDomAccessor.doRegisterNotificationListener(oranDomFaultNotificationListener, faultNotification);
+        // Output notification streams to LOG
+        @SuppressWarnings("unused")
+        Map<StreamKey, Stream> streams = netconfDomAccessor.getNotificationStreamsAsMap();
+        // Register to default stream
+        netconfDomAccessor.invokeCreateSubscription();
+    }
+
+    public Collection<MapEntryNode> initialReadFromNetworkElement() {
+        Collection<MapEntryNode> componentMapEntries = null;
+        NormalizedNode hwData = readHardware();
+
+        if (hwData != null) {
+            ContainerNode hwContainer = (ContainerNode) hwData;
+            MapNode componentMap = (MapNode) hwContainer
+                    .childByArg(new NodeIdentifier(ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST));
+            if (componentMap != null) {
+                componentMapEntries = componentMap.body();
+                List<Inventory> inventoryList =
+                        ORanDOMToInternalDataModel.getInventoryList(netconfDomAccessor.getNodeId(), hwData);
+                databaseService.writeInventory(netconfDomAccessor.getNodeId().getValue(), inventoryList);
+            }
+        } else {
+            componentMapEntries = Collections.emptyList();
+        }
+
+        Optional<Guicutthrough> oGuicutthrough = ORanDOMToInternalDataModel.getGuicutthrough(getOnapSystemData());
+        if (oGuicutthrough.isPresent()) {
+            databaseService.writeGuiCutThroughData(oGuicutthrough.get(), netconfDomAccessor.getNodeId().getValue());
+        }
+        return componentMapEntries;
+    }
+
+    @Override
+    public void deregister() {
+        /*
+         * if (oranDomChangeNotificationListener != null) {
+         * this.oranDomChangeNotificationListener.close(); } if
+         * (oRanFaultListenerRegistrationResult != null) {
+         * this.oRanFaultListenerRegistrationResult.close(); } ;
+         */
+        databaseService.clearGuiCutThroughEntriesOfNode(getMountpointId());
+    }
+
+    @Override
+    public NodeId getNodeId() {
+        return netconfDomAccessor.getNodeId();
+    }
+
+    @Override
+    public NetworkElementDeviceType getDeviceType() {
+        return NetworkElementDeviceType.ORAN;
+    }
+
+    @Override
+    public <L extends NetworkElementService> Optional<L> getService(Class<L> clazz) {
+        return Optional.empty();
+    }
+
+    @Override
+    public void warmstart() {}
+
+    @Override
+    public Optional<NetconfAccessor> getAcessor() {
+        return Optional.of(netconfDomAccessor);
+    }
+
+    // Private functions
+
+    private String getMountpointId() {
+        return getNodeId().getValue();
+    }
+
+    private NormalizedNode readHardware() {
+        InstanceIdentifierBuilder hardwareIIDBuilder =
+                YangInstanceIdentifier.builder().node(ORanDeviceManagerQNames.IETF_HW_CONTAINER);
+
+        Optional<NormalizedNode> oData =
+                netconfDomAccessor.readDataNode(LogicalDatastoreType.OPERATIONAL, hardwareIIDBuilder.build());
+        if (oData.isPresent()) {
+            return oData.get();
+        }
+        return null;
+    }
+
+    // Read from device
+    /**
+     * Read system data with GUI cut through information from device if ONAP_SYSTEM YANG is supported.
+     *
+     * @return NormalizedNode data with GUI cut through information or null if not available.
+     */
+    private @Nullable NormalizedNode getOnapSystemData() {
+        LOG.info("Get System1 for mountpoint {}", netconfDomAccessor.getNodeId().getValue());
+        @NonNull
+        InstanceIdentifierBuilder ietfSystemIID =
+                YangInstanceIdentifier.builder().node(ORanDeviceManagerQNames.IETF_SYSTEM_CONTAINER);
+        @NonNull
+        AugmentationIdentifier onapSystemIID = YangInstanceIdentifier.AugmentationIdentifier.create(
+                Sets.newHashSet(ORanDeviceManagerQNames.ONAP_SYSTEM_NAME, ORanDeviceManagerQNames.ONAP_SYSTEM_WEB_UI));
+        InstanceIdentifierBuilder augmentedOnapSystem =
+                YangInstanceIdentifier.builder(ietfSystemIID.build()).node(onapSystemIID);
+        Capabilities x = netconfDomAccessor.getCapabilites();
+        LOG.info("Capabilites: {}", x);
+        if (x.isSupportingNamespace(ORanDeviceManagerQNames.ONAP_SYSTEM_QNAME)) {
+            Optional<NormalizedNode> res =
+                    netconfDomAccessor.readDataNode(LogicalDatastoreType.OPERATIONAL, augmentedOnapSystem.build());
+            LOG.debug("Result of System1 = {}", res);
+            return res.isPresent() ? res.get() : null;
+        } else {
+            LOG.debug("No GUI cut through support");
+            return null;
+        }
+    }
+
+    // VES related
+    private void publishMountpointToVES(Collection<MapEntryNode> componentList) {
+        /*
+         * 1. Check if this device is in the list of allowed-devices. 2. If device
+         * exists in allowed-devices, then create VES pnfRegistration event and publish
+         * to VES
+         */
+        if (vesCollectorService.getConfig().isVESCollectorEnabled() && inAllowedDevices(getMountpointId())) {
+            for (MapEntryNode component : ORanDOMToInternalDataModel.getRootComponents(componentList)) {
+                // Just get one component. At the moment we don't care which one. Also since
+                // there is only one management address, we assume there will be only one
+                // chassis.
+                // If the device supports subtended configuration then it is assumed that the
+                // Chassis containing the management interface will be the root component and
+                // there will be only one root.
+                VESCommonEventHeaderPOJO header = mapper.mapCommonEventHeader(component);
+                VESPNFRegistrationFieldsPOJO body = mapper.mapPNFRegistrationFields(component);
+                try {
+                    vesCollectorService.publishVESMessage(vesCollectorService.generateVESEvent(header, body));
+                } catch (JsonProcessingException e) {
+                    LOG.warn("Error while serializing VES Event to String ", e);
+                }
+            }
+        }
+    }
+
+    private boolean inAllowedDevices(String mountpointName) {
+        InstanceIdentifierBuilder callhomeServerIID =
+                YangInstanceIdentifier.builder().node(ORanDeviceManagerQNames.CALLHOME_SERVER_CONTAINER);
+        final InstanceIdentifierBuilder allowedDevicesIID = YangInstanceIdentifier.builder(callhomeServerIID.build())
+                .node(ORanDeviceManagerQNames.CALLHOME_SERVER_ALLOWED_DEVICE);
+
+        Optional<NormalizedNode> allowedDevices = netconfDomAccessor
+                .readControllerDataNode(LogicalDatastoreType.CONFIGURATION, allowedDevicesIID.build());
+
+        if (allowedDevices.isPresent()) {
+            ContainerNode allowedDevicesNode = (ContainerNode) allowedDevices.get();
+            MapNode deviceList = (MapNode) allowedDevicesNode
+                    .childByArg(new NodeIdentifier(ORanDeviceManagerQNames.CALLHOME_SERVER_ALLOWED_DEVICE_DEVICE_LIST));
+            if (deviceList != null) {
+                Collection<MapEntryNode> deviceListCollection = deviceList.body();
+                for (MapEntryNode device : deviceListCollection) {
+                    //					String deviceName = device.getIdentifier()
+                    //							.getValue(ORanDeviceManagerQNames.CALLHOME_SERVER_ALLOWED_DEVICE_KEY).toString();
+                    String deviceName = ORanDMDOMUtility.getLeafValue(device,
+                            ORanDeviceManagerQNames.CALLHOME_SERVER_ALLOWED_DEVICE_KEY);
+                    if (deviceName != null && deviceName.equals(mountpointName)) {
+                        LOG.info("Mountpoint {} is part of allowed-devices list", mountpointName);
+                        return true;
+                    }
+                }
+            }
+        }
+
+        LOG.info("Mountpoint {} is not part of allowed-devices list", mountpointName);
+        return false;
+    }
+
+}
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanNotifToVESEventAssembly.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMNotifToVESEventAssembly.java
similarity index 82%
copy from sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanNotifToVESEventAssembly.java
copy to sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMNotifToVESEventAssembly.java
index d99f1c8..b8b5151 100644
--- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanNotifToVESEventAssembly.java
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMNotifToVESEventAssembly.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP : ccsdk features
  * ================================================================================
- * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ * Copyright (C) 2021 highstreet technologies GmbH Intellectual Property.
  * All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -19,32 +19,35 @@
  * ============LICENSE_END=========================================================
  *
  */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl;
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.dom;
 
 import java.time.Instant;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map.Entry;
+import java.util.Objects;
+import org.eclipse.jdt.annotation.NonNull;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESCommonEventHeaderPOJO;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESNotificationFieldsPOJO;
-import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class ORanNotifToVESEventAssembly {
+public class ORanDOMNotifToVESEventAssembly {
 
-    private static final Logger log = LoggerFactory.getLogger(ORanNotifToVESEventAssembly.class);
+    private static final Logger log = LoggerFactory.getLogger(ORanDOMNotifToVESEventAssembly.class);
     private static final String VES_EVENT_DOMAIN = "notification";
     private static final String VES_EVENTTYPE = "ORAN_notification";
     private static final String VES_EVENT_PRIORITY = "Normal";
-    private NetconfBindingAccessor netconfAccessor;
+    private NetconfDomAccessor netconfDomAccessor;
     private VESCollectorService vesProvider;
 
-    public ORanNotifToVESEventAssembly(NetconfBindingAccessor netconfAccessor, VESCollectorService vesProvider) {
-        this.netconfAccessor = netconfAccessor;
-        this.vesProvider = vesProvider;
+    public ORanDOMNotifToVESEventAssembly(@NonNull NetconfDomAccessor netconfDomAccessor,
+            @NonNull VESCollectorService vesCollectorService) {
+        this.netconfDomAccessor = Objects.requireNonNull(netconfDomAccessor);
+        this.vesProvider = Objects.requireNonNull(vesCollectorService);
     }
 
     // VES CommonEventHeader fields
@@ -67,7 +70,7 @@
         vesCEH.setReportingEntityName(vesProvider.getConfig().getReportingEntityName());
         vesCEH.setSequence(sequenceNo);
         vesCEH.setSourceId("ORAN");
-        vesCEH.setSourceName(netconfAccessor.getNodeId().getValue());
+        vesCEH.setSourceName(netconfDomAccessor.getNodeId().getValue());
         return vesCEH;
     }
 
@@ -77,7 +80,7 @@
         VESNotificationFieldsPOJO vesNotifFields = new VESNotificationFieldsPOJO();
 
         vesNotifFields.setChangeType(notificationTypeName);
-        vesNotifFields.setChangeIdentifier(netconfAccessor.getNodeId().getValue());
+        vesNotifFields.setChangeIdentifier(netconfDomAccessor.getNodeId().getValue());
 
         StringBuffer buf = new StringBuffer();
         Iterator<Entry<String, String>> it = xPathFields.entrySet().iterator();
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMToInternalDataModel.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMToInternalDataModel.java
new file mode 100644
index 0000000..b157ae4
--- /dev/null
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMToInternalDataModel.java
@@ -0,0 +1,293 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2021 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.dom;
+
+import java.time.Instant;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
+import java.util.Optional;
+import org.eclipse.jdt.annotation.Nullable;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.NetconfTimeStamp;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.types.NetconfTimeStampImpl;
+import org.opendaylight.mdsal.dom.api.DOMEvent;
+import org.opendaylight.mdsal.dom.api.DOMNotification;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogEntity;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Guicutthrough;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.GuicutthroughBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.InventoryBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SourceType;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+import org.opendaylight.yangtools.yang.binding.CodeHelpers;
+import org.opendaylight.yangtools.yang.common.Uint32;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
+import org.opendaylight.yangtools.yang.data.api.schema.AugmentationNode;
+import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
+import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
+import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
+import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class ORanDOMToInternalDataModel {
+
+    private static final Logger LOG = LoggerFactory.getLogger(ORanDOMToInternalDataModel.class);
+    private static final NetconfTimeStamp NETCONFTIME_CONVERTER = NetconfTimeStampImpl.getConverter();
+
+    public static List<Inventory> getInventoryList(NodeId nodeId, NormalizedNode hwData) {
+
+        List<Inventory> inventoryResultList = new ArrayList<Inventory>();
+        ContainerNode hwContainer = (ContainerNode) hwData;
+        MapNode componentMap = (MapNode) hwContainer
+                .getChildByArg(new NodeIdentifier(ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST));
+        Collection<MapEntryNode> componentMapEntries = componentMap.body();
+
+        for (MapEntryNode componentMapEntryNode : getRootComponents(componentMapEntries)) {
+            inventoryResultList =
+                    recurseGetInventory(nodeId, componentMapEntryNode, componentMapEntries, 0, inventoryResultList);
+        }
+        // Verify if result is complete
+        if (componentMapEntries.size() != inventoryResultList.size()) {
+            LOG.warn(
+                    "Not all data were written to the Inventory. Potential entries with missing "
+                            + "contained-child. Node Id = {}, Components Found = {}, Entries written to Database = {}",
+                    nodeId.getValue(), componentMapEntries.size(), inventoryResultList.size());
+        }
+        return inventoryResultList;
+    }
+
+    private static List<Inventory> recurseGetInventory(NodeId nodeId, MapEntryNode component,
+            Collection<MapEntryNode> componentList, int treeLevel, List<Inventory> inventoryResultList) {
+        //Add element to list, if conversion successfull
+        Optional<Inventory> oInventory = getInternalEquipment(nodeId, component, treeLevel);
+        if (oInventory.isPresent()) {
+            inventoryResultList.add(oInventory.get());
+        }
+        //Walk through list of child keys and add to list
+        for (String childUuid : CodeHelpers.nonnull(ORanDMDOMUtility.getLeafListValue(component,
+                ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_CONTAINS_CHILD))) {
+            for (MapEntryNode c : getComponentsByName(childUuid, componentList)) {
+                inventoryResultList = recurseGetInventory(nodeId, c, componentList, treeLevel + 1, inventoryResultList);
+            }
+        }
+        return inventoryResultList;
+    }
+
+    public static List<MapEntryNode> getRootComponents(Collection<MapEntryNode> componentMapEntries) {
+        List<MapEntryNode> resultList = new ArrayList<>();
+        for (MapEntryNode componentMapEntryNode : componentMapEntries) {
+            if (ORanDMDOMUtility.getLeafValue(componentMapEntryNode,
+                    ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_PARENT) == null) { // Root elements do not have a parent
+                resultList.add(componentMapEntryNode);
+            }
+        }
+        return resultList;
+    }
+
+    private static List<MapEntryNode> getComponentsByName(String name, Collection<MapEntryNode> componentList) {
+        List<MapEntryNode> resultList = new ArrayList<>();
+        for (MapEntryNode c : componentList) {
+            if (name.equals(ORanDMDOMUtility.getKeyValue(c))) { // <-- Component list is flat search for child's of name
+                resultList.add(c);
+            }
+        }
+        return resultList;
+    }
+
+    public static Optional<Inventory> getInternalEquipment(NodeId nodeId, MapEntryNode component, int treeLevel) {
+
+        // Make sure that expected data are not null
+        Objects.requireNonNull(nodeId);
+        Objects.requireNonNull(component);
+
+        // Read mandatory data
+
+        @Nullable
+        String nodeIdString = nodeId.getValue();
+        @Nullable
+        String uuid = ORanDMDOMUtility.getKeyValue(component);
+        @Nullable
+        String idParent =
+                ORanDMDOMUtility.getLeafValue(component, ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_PARENT);
+        @Nullable
+        String uuidParent = idParent != null ? idParent : uuid; //<- Passt nicht
+
+        // do consistency check if all mandatory parameters are there
+        if (treeLevel >= 0 && nodeIdString != null && uuid != null && uuidParent != null) {
+            // Build output data
+
+            InventoryBuilder inventoryBuilder = new InventoryBuilder();
+
+            // General assumed as mandatory
+            inventoryBuilder.setNodeId(nodeIdString);
+            inventoryBuilder.setUuid(uuid);
+            inventoryBuilder.setParentUuid(uuidParent);
+            inventoryBuilder.setTreeLevel(Uint32.valueOf(treeLevel));
+
+            // -- String list with ids of holders (optional)
+            inventoryBuilder.setContainedHolder(ORanDMDOMUtility.getLeafListValue(component,
+                    ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_CONTAINS_CHILD));
+
+            // -- Manufacturer related things (optional)
+            @Nullable
+            String mfgName =
+                    ORanDMDOMUtility.getLeafValue(component, ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_MFG_NAME);
+            inventoryBuilder.setManufacturerName(mfgName);
+            inventoryBuilder.setManufacturerIdentifier(mfgName);
+
+            // Equipment type (optional)
+            inventoryBuilder.setDescription(
+                    ORanDMDOMUtility.getLeafValue(component, ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_DESC));
+            inventoryBuilder.setModelIdentifier(ORanDMDOMUtility.getLeafValue(component,
+                    ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_MODEL_NAME));
+
+            inventoryBuilder.setPartTypeId(
+                    ORanDMDOMUtility.getLeafValue(component, ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_CLASS));
+
+            inventoryBuilder.setTypeName(ORanDMDOMUtility.getKeyValue(component));
+            inventoryBuilder.setVersion(
+                    ORanDMDOMUtility.getLeafValue(component, ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_HW_REV));
+
+            // Equipment instance (optional)
+            @Nullable
+            String mfgDate =
+                    ORanDMDOMUtility.getLeafValue(component, ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_MFG_DATE);
+            if (mfgDate != null) {
+                inventoryBuilder.setDate(mfgDate);
+            }
+            inventoryBuilder.setSerial(
+                    ORanDMDOMUtility.getLeafValue(component, ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_SER_NUM));
+
+            return Optional.of(inventoryBuilder.build());
+        }
+        return Optional.empty();
+    }
+
+    /**
+     * If system data is available convert
+     *
+     * @param sys
+     * @return
+     */
+    public static Optional<Guicutthrough> getGuicutthrough(@Nullable NormalizedNode sys) {
+        AugmentationNode onapSys = (AugmentationNode) sys;
+        if (onapSys != null) {
+            String name = ORanDMDOMUtility.getLeafValue(onapSys, ORanDeviceManagerQNames.ONAP_SYSTEM_NAME);
+            @Nullable
+            Uri uri = new Uri(ORanDMDOMUtility.getLeafValue(onapSys, ORanDeviceManagerQNames.ONAP_SYSTEM_WEB_UI));
+            if (uri.getValue() != null) {
+                GuicutthroughBuilder gcBuilder = new GuicutthroughBuilder();
+                if (name != null) {
+                    gcBuilder.setName(name);
+                }
+                gcBuilder.setWeburi(uri.getValue());
+                return Optional.of(gcBuilder.build());
+            }
+            LOG.warn("Uri not set to invoke a Gui cut through session to the device. Please set the Uri in the device");
+        }
+        LOG.warn("Retrieving augmented System details failed. Gui cut through information not available");
+        return Optional.empty();
+    }
+
+    /**
+     * Convert fault notification into data-provider FaultLogEntity
+     *
+     * @param notification with O-RAN notification
+     * @param nodeId of node to handle
+     * @param counter to be integrated into data
+     * @return FaultlogEntity with data
+     */
+    public static FaultlogEntity getFaultLog(DOMNotification notification, NodeId nodeId, Integer counter) {
+        ContainerNode cn = notification.getBody();
+        FaultlogBuilder faultAlarm = new FaultlogBuilder();
+        faultAlarm.setNodeId(nodeId.getValue());
+        faultAlarm.setObjectId(ORanDMDOMUtility.getLeafValue(cn, ORanDeviceManagerQNames.ORAN_FM_FAULT_SOURCE));
+        faultAlarm.setProblem(ORanDMDOMUtility.getLeafValue(cn, ORanDeviceManagerQNames.ORAN_FM_FAULT_TEXT));
+        faultAlarm.setSeverity(getSeverityType(
+                ORanDMDOMUtility.getLeafValue(cn, ORanDeviceManagerQNames.ORAN_FM_FAULT_SEVERITY),
+                ORanDMDOMUtility.getLeafValue(cn, ORanDeviceManagerQNames.ORAN_FM_FAULT_IS_CLEARED).equals("true")));
+        faultAlarm.setCounter(counter);
+        faultAlarm.setId(ORanDMDOMUtility.getLeafValue(cn, ORanDeviceManagerQNames.ORAN_FM_FAULT_ID));
+        faultAlarm.setSourceType(SourceType.Netconf);
+        faultAlarm.setTimestamp(getEventTime(notification));
+        return faultAlarm.build();
+    }
+
+    public static DateAndTime getEventTime(DOMNotification notification) {
+        DateAndTime eventTime;
+        Instant notificationEventTime = null;
+        if (notification instanceof DOMEvent) {
+            notificationEventTime = ((DOMEvent) notification).getEventInstant();
+            eventTime = NetconfTimeStampImpl.getConverter().getTimeStamp(notificationEventTime.toString());
+        } else {
+            eventTime = NetconfTimeStampImpl.getConverter().getTimeStamp();
+        }
+        return eventTime;
+    }
+
+    /**
+     * Convert O-RAN specific severity into data-provider severity
+     *
+     * @param faultSeverity O-RAN severity
+     * @param isCleared clear indicator
+     * @return data-provider severity type
+     * @throws IllegalArgumentException if conversion not possible.
+     */
+    public static SeverityType getSeverityType(@Nullable String faultSeverity, @Nullable Boolean isCleared)
+            throws IllegalArgumentException {
+        if (isCleared != null && isCleared) {
+            return SeverityType.NonAlarmed;
+        }
+        if (faultSeverity != null) {
+            switch (faultSeverity) {
+                case "CRITICAL":
+                    return SeverityType.Critical;
+                case "MAJOR":
+                    return SeverityType.Major;
+                case "MINOR":
+                    return SeverityType.Minor;
+                case "WARNING":
+                    return SeverityType.Warning;
+            }
+        }
+        throw new IllegalArgumentException("Unknown Alarm state represent as Critical. isCleared=" + isCleared
+                + " faultSeverity=" + faultSeverity);
+    }
+
+    /**
+     * Convert Instant to NETCONF DataAndTime
+     * @param eventTimeInstant
+     * @return DateAndTime
+     */
+    public static DateAndTime getDateAndTimeOfInstant(Instant eventTimeInstant) {
+        Date eventDate = Date.from(eventTimeInstant);
+        return new DateAndTime(NETCONFTIME_CONVERTER.getTimeStamp(eventDate));
+    }
+
+}
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDeviceManagerQNames.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDeviceManagerQNames.java
new file mode 100644
index 0000000..e86168a
--- /dev/null
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDeviceManagerQNames.java
@@ -0,0 +1,114 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2021 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.dom;
+
+import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.yang.common.QName;
+
+public class ORanDeviceManagerQNames {
+
+    //ietf-system
+    public static final String IETF_SYSTEM_NS = "urn:ietf:params:xml:ns:yang:ietf-system";
+    public static final String IETF_SYSTEM_REVISION = "2014-08-06";
+    public static final @NonNull QName IETF_SYSTEM_QNAME =
+            QName.create(IETF_SYSTEM_NS, IETF_SYSTEM_REVISION, "ietf-system");
+    public static final @NonNull QName IETF_SYSTEM_CONTAINER = QName.create(IETF_SYSTEM_QNAME, "system");
+
+    // onap-system.yang
+    public static final String ONAP_SYSTEM_NS = "urn:onap:system";
+    public static final String ONAP_SYSTEM_REVISION = "2020-10-26";
+    public static final @NonNull QName ONAP_SYSTEM_QNAME =
+            QName.create(ONAP_SYSTEM_NS, ONAP_SYSTEM_REVISION, "onap-system");
+    public static final @NonNull QName ONAP_SYSTEM_NAME = QName.create(ONAP_SYSTEM_QNAME, "name");
+    public static final @NonNull QName ONAP_SYSTEM_WEB_UI = QName.create(ONAP_SYSTEM_QNAME, "web-ui");
+
+    //ietf-hardware.yang
+    public static final String IETF_HW_NS = "urn:ietf:params:xml:ns:yang:ietf-hardware";
+    public static final String IETF_HW_REVISION = "2018-03-13";
+    public static final @NonNull QName IETF_HW_MODULE_NAME =
+            QName.create(IETF_HW_NS, IETF_HW_REVISION, "ietf-hardware");
+    public static final @NonNull QName IETF_HW_CONTAINER = QName.create(IETF_HW_MODULE_NAME, "hardware");
+    public static final @NonNull QName IETF_HW_COMPONENT_LIST = QName.create(IETF_HW_MODULE_NAME, "component");
+    public static final @NonNull QName IETF_HW_COMPONENT_LIST_KEY = QName.create(IETF_HW_MODULE_NAME, "name");
+    public static final @NonNull QName IETF_HW_COMPONENT_LIST_MFG_NAME = QName.create(IETF_HW_MODULE_NAME, "mfg-name"); //leaf:String
+    public static final @NonNull QName IETF_HW_COMPONENT_LIST_UUID = QName.create(IETF_HW_MODULE_NAME, "uuid"); //leaf:yang:uuid
+    public static final @NonNull QName IETF_HW_COMPONENT_LIST_MODEL_NAME = QName.create(IETF_HW_MODULE_NAME, "model-name"); //leaf:String
+    public static final @NonNull QName IETF_HW_COMPONENT_LIST_SER_NUM = QName.create(IETF_HW_MODULE_NAME, "serial-num"); //leaf:String
+    public static final @NonNull QName IETF_HW_COMPONENT_LIST_SW_REV = QName.create(IETF_HW_MODULE_NAME, "software-rev"); //leaf:String
+    public static final @NonNull QName IETF_HW_COMPONENT_LIST_ALIAS = QName.create(IETF_HW_MODULE_NAME, "alias"); //leaf:String
+    public static final @NonNull QName IETF_HW_COMPONENT_LIST_CLASS = QName.create(IETF_HW_MODULE_NAME, "class");
+    public static final @NonNull QName IETF_HW_COMPONENT_LIST_MFG_DATE = QName.create(IETF_HW_MODULE_NAME, "mfg-date"); //leaf:yang:date-and-time
+    public static final @NonNull QName IETF_HW_COMPONENT_LIST_CONTAINS_CHILD = QName.create(IETF_HW_MODULE_NAME, "contains-child"); //leaf-list:leafref
+    public static final @NonNull QName IETF_HW_COMPONENT_LIST_PARENT = QName.create(IETF_HW_MODULE_NAME, "parent"); //leaf:leafref
+    public static final @NonNull QName IETF_HW_COMPONENT_LIST_DESC = QName.create(IETF_HW_MODULE_NAME, "description"); //leaf:String
+    public static final @NonNull QName IETF_HW_COMPONENT_LIST_HW_REV = QName.create(IETF_HW_MODULE_NAME, "hardware-rev"); //leaf:String
+
+    //odl-netconf-callhome-server.yang
+    public static final String CALLHOME_SERVER_NS = "urn:opendaylight:params:xml:ns:yang:netconf-callhome-server";
+    public static final String CALLHOME_SERVER_REVISION = "2020-10-15";
+    public static final @NonNull QName CALLHOME_SERVER_MODULE =
+            QName.create(CALLHOME_SERVER_NS, CALLHOME_SERVER_REVISION, "odl-netconf-callhome-server");
+    public static final @NonNull QName CALLHOME_SERVER_CONTAINER =
+            QName.create(CALLHOME_SERVER_MODULE, "netconf-callhome-server");
+    public static final @NonNull QName CALLHOME_SERVER_ALLOWED_DEVICE =
+            QName.create(CALLHOME_SERVER_MODULE, "allowed-devices");
+    public static final @NonNull QName CALLHOME_SERVER_ALLOWED_DEVICE_DEVICE_LIST =
+            QName.create(CALLHOME_SERVER_MODULE, "device");
+    public static final @NonNull QName CALLHOME_SERVER_ALLOWED_DEVICE_KEY =
+            QName.create(CALLHOME_SERVER_MODULE, "unique-id");
+
+    //o-ran-hardware.yang
+    public static final String ORAN_HW_NS = "urn:o-ran:hardware:1.0";
+    public static final String ORAN_HW_REVISION = "2019-03-28";
+    public static final @NonNull QName ORAN_HW_MODULE = QName.create(ORAN_HW_NS, ORAN_HW_REVISION, "o-ran-hardware").intern();
+    public static final @NonNull QName ORAN_HW_COMPONENT = QName.create(ORAN_HW_MODULE, "O-RAN-HW-COMPONENT");
+
+    //o-ran-fm.yang
+    public static final String ORAN_FM_NS = "urn:o-ran:fm:1.0";
+    public static final String ORAN_FM_REVISION = "2019-02-04";
+    public static final @NonNull QName ORAN_FM_MODULE = QName.create(ORAN_FM_NS, ORAN_FM_REVISION, "o-ran-fm");
+    public static final @NonNull QName ORAN_FM_ALARM_NOTIF = QName.create(ORAN_FM_MODULE, "alarm-notif");
+    public static final @NonNull QName ORAN_FM_FAULT_ID = QName.create(ORAN_FM_MODULE, "fault-id");
+    public static final @NonNull QName ORAN_FM_FAULT_SOURCE = QName.create(ORAN_FM_MODULE, "fault-source");
+    public static final @NonNull QName ORAN_FM_FAULT_SEVERITY = QName.create(ORAN_FM_MODULE, "fault-severity");
+    public static final @NonNull QName ORAN_FM_FAULT_TEXT = QName.create(ORAN_FM_MODULE, "fault-text");
+    public static final @NonNull QName ORAN_FM_FAULT_IS_CLEARED = QName.create(ORAN_FM_MODULE, "is-cleared");
+
+    //ietf-netconf-notifications.yang
+    public static final String IETF_NETCONF_NOTIFICATIONS_NS = "urn:ietf:params:xml:ns:yang:ietf-netconf-notifications";
+    public static final String IETF_NETCONF_NOTIFICATIONS_REVISION = "2012-02-06";
+    public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_MODULE = QName.create(IETF_NETCONF_NOTIFICATIONS_NS, IETF_NETCONF_NOTIFICATIONS_REVISION, "ietf-netconf-notifications").intern();
+    public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_NETCONF_CONFIG_CHANGE = QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "netconf-config-change");
+    public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_NETCONF_CONFIRMED_COMMIT = QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "netconf-confirmed-commit");
+    public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_NETCONF_SESSION_START = QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "netconf-session-start");
+    public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_NETCONF_SESSION_END = QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "netconf-session-end");
+    public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_NETCONF_CAPABILITY_CHANGE = QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "netconf-capability-change");
+    public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_CHANGEDBY = QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "changed-by");
+    public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_SERVERORUSER = QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "server-or-user");
+    public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_EDITNODE = QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "edit");
+    public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_USERNAME = QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "username");
+    public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_SESSIONID = QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "session-id");
+    public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_OPERATION = QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "operation");
+    public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_TARGET = QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "target");
+    public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_DATASTORE = QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "datastore");
+
+}
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanNetworkElementFactory.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/startup/ORanNetworkElementFactory.java
similarity index 71%
rename from sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanNetworkElementFactory.java
rename to sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/startup/ORanNetworkElementFactory.java
index fff1fba..afeac19 100644
--- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanNetworkElementFactory.java
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/startup/ORanNetworkElementFactory.java
@@ -18,16 +18,17 @@
  * limitations under the License.
  * ============LICENSE_END=========================================================
  */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl;
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.startup;
 
 import java.util.Optional;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.factory.NetworkElementFactory;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElement;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.dom.ORanDOMNetworkElement;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.dom.ORanDeviceManagerQNames;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.Capabilities;
 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
-import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
-import org.opendaylight.yang.gen.v1.urn.o.ran.hardware._1._0.rev190328.ORANHWCOMPONENT;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -43,11 +44,13 @@
     public Optional<NetworkElement> create(NetconfAccessor accessor, DeviceManagerServiceProvider serviceProvider) {
         Capabilities capabilites = accessor.getCapabilites();
         if (!capabilites.isSupportingNamespace(OneCell)) {
-            if (capabilites.isSupportingNamespace(ORANHWCOMPONENT.QNAME)) {
-                log.info("Create device {} ", ORanNetworkElement.class.getName());
-                Optional<NetconfBindingAccessor> bindingAccessor = accessor.getNetconfBindingAccessor();
-                if (bindingAccessor.isPresent()) {
-                    return Optional.of(new ORanNetworkElement(bindingAccessor.get(), serviceProvider));
+            if (capabilites.isSupportingNamespace(ORanDeviceManagerQNames.ORAN_HW_COMPONENT)) {
+                log.info("Create device {} ", ORanDOMNetworkElement.class.getName());
+                //Optional<NetconfBindingAccessor> bindingAccessor = accessor.getNetconfBindingAccessor();
+                Optional<NetconfDomAccessor> domAccessor = accessor.getNetconfDomAccessor();
+                if (domAccessor.isPresent()) {
+                    //return Optional.of(new ORanNetworkElement(bindingAccessor.get(), serviceProvider));
+                    return Optional.of(new ORanDOMNetworkElement(domAccessor.get(), serviceProvider));
                 }
             }
         }
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml
index 21b761c..b4cc2d9 100644
--- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml
@@ -31,7 +31,7 @@
                interface="org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NetconfNetworkElementService"/>
 
     <bean id="provider"
-          class="org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.DeviceManagerORanImpl"
+          class="org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.binding.DeviceManagerORanImpl"
           init-method="init" destroy-method="close">
         <property name="netconfNetworkElementService" ref="netconfNetworkElementService"/>
     </bean>
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanRegistrationToVESpnfRegistration.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanRegistrationToVESpnfRegistration.java
deleted file mode 100644
index 115765d..0000000
--- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanRegistrationToVESpnfRegistration.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * ONAP : ccsdk features
- * ================================================================================
- * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
- * All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- *
- */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnitRunner;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.ORanRegistrationToVESpnfRegistrationMapper;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorCfgService;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService;
-import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.hardware.Component;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Host;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
-
-@RunWith(MockitoJUnitRunner.class)
-public class TestORanRegistrationToVESpnfRegistration {
-
-    @Mock
-    NetconfAccessor netconfAccessor;
-    @Mock
-    VESCollectorService vesCollectorService;
-    @Mock
-    VESCollectorCfgService vesCfgService;
-
-    private final int SEQUENCE_NO = 10;
-
-    @Test
-    public void test() {
-        String dateTimeString = "2020-02-05T12:30:45.283Z";
-        String name = "Slot-0";
-
-        NetconfNode testNetconfNode = mock(NetconfNode.class);
-        when(testNetconfNode.getHost()).thenReturn(new Host(new IpAddress(new Ipv4Address("10.10.10.10"))));
-
-        when(netconfAccessor.getNodeId()).thenReturn(new NodeId("nSky"));
-        when(netconfAccessor.getNetconfNode()).thenReturn(testNetconfNode);
-        when(vesCollectorService.getConfig()).thenReturn(vesCfgService);
-        when(vesCfgService.getReportingEntityName()).thenReturn("SDN-R");
-        Component testComponent = ComponentHelper.get(name, dateTimeString);
-
-        ORanRegistrationToVESpnfRegistrationMapper mapper = new ORanRegistrationToVESpnfRegistrationMapper(netconfAccessor, vesCollectorService);
-        mapper.mapCommonEventHeader(testComponent);
-        mapper.mapPNFRegistrationFields(testComponent);
-    }
-
-}
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ComponentHelper.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ComponentHelper.java
similarity index 98%
rename from sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ComponentHelper.java
rename to sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ComponentHelper.java
index 05c825f..64cdd5f 100644
--- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ComponentHelper.java
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ComponentHelper.java
@@ -19,7 +19,7 @@
  * ============LICENSE_END=========================================================
  *
  */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl;
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.binding;
 
 import java.util.Arrays;
 import java.util.List;
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestAlarmNotif.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestAlarmNotif.java
similarity index 97%
rename from sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestAlarmNotif.java
rename to sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestAlarmNotif.java
index 4d10dd1..883271d 100644
--- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestAlarmNotif.java
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestAlarmNotif.java
@@ -19,7 +19,7 @@
  * ============LICENSE_END=========================================================
  *
  */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl;
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.binding;
 
 import java.util.Map;
 import org.eclipse.jdt.annotation.NonNull;
@@ -60,7 +60,6 @@
         return FaultSeverity.CRITICAL;
     }
 
-    @Override
     public @Nullable Boolean isIsCleared() {
         return true;
     }
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestHardwareClass.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestHardwareClass.java
similarity index 94%
rename from sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestHardwareClass.java
rename to sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestHardwareClass.java
index 64b6ac1..753e6c9 100644
--- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestHardwareClass.java
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestHardwareClass.java
@@ -15,7 +15,7 @@
  * the License.
  * ============LICENSE_END==========================================================================
  */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl;
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.binding;
 
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana.hardware.rev180313.HardwareClass;
 
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanChangeNotificationListener.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestORanChangeNotificationListener.java
similarity index 96%
rename from sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanChangeNotificationListener.java
rename to sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestORanChangeNotificationListener.java
index da4d830..d8ea266 100644
--- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanChangeNotificationListener.java
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestORanChangeNotificationListener.java
@@ -16,7 +16,7 @@
  * ============LICENSE_END==========================================================================
  */
 
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl;
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.binding;
 
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.verify;
@@ -30,6 +30,7 @@
 import org.mockito.Mock;
 import org.mockito.junit.MockitoJUnitRunner;
 import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.binding.ORanChangeNotificationListener;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NotificationProxyParser;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorCfgService;
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanFaultNotificationListener.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestORanFaultNotificationListener.java
similarity index 96%
rename from sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanFaultNotificationListener.java
rename to sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestORanFaultNotificationListener.java
index af2515c..e26af98 100644
--- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanFaultNotificationListener.java
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestORanFaultNotificationListener.java
@@ -15,7 +15,7 @@
  * the License.
  * ============LICENSE_END==========================================================================
  */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl;
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.binding;
 
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
@@ -31,6 +31,7 @@
 import org.mockito.junit.MockitoJUnitRunner;
 import org.onap.ccsdk.features.sdnr.wt.common.configuration.ConfigurationFileRepresentation;
 import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.binding.ORanFaultNotificationListener;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService;
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanNetworkElement.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestORanNetworkElement.java
similarity index 92%
rename from sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanNetworkElement.java
rename to sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestORanNetworkElement.java
index af7664a..3de2110 100644
--- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanNetworkElement.java
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestORanNetworkElement.java
@@ -15,7 +15,7 @@
  * the License.
  * ============LICENSE_END==========================================================================
  */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl;
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.binding;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
@@ -25,9 +25,9 @@
 import java.util.Optional;
 import org.eclipse.jdt.annotation.NonNull;
 import org.junit.BeforeClass;
-import org.junit.Test;
 import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElement;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.startup.ORanNetworkElementFactory;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NotificationProxyParser;
@@ -36,6 +36,7 @@
 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.Capabilities;
 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor;
 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.TransactionUtils;
 import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService;
 import org.opendaylight.yang.gen.v1.urn.o.ran.hardware._1._0.rev190328.ORANHWCOMPONENT;
@@ -55,6 +56,7 @@
     private static Capabilities capabilities;
     private static TransactionUtils transactionUtils;
     private static NetconfBindingAccessor bindingAccessor;
+    private static NetconfDomAccessor domAccessor;
     private static VESCollectorService vesCollectorService;
     private static NotificationProxyParser notificationProxyParser;
     private static VESCollectorCfgService vesCfgService;
@@ -67,6 +69,7 @@
         serviceProvider = mock(DeviceManagerServiceProvider.class);
         transactionUtils = mock(TransactionUtils.class);
         bindingAccessor = mock(NetconfBindingAccessor.class);
+        domAccessor = mock(NetconfDomAccessor.class);
         vesCollectorService = mock(VESCollectorService.class);
         notificationProxyParser = mock(NotificationProxyParser.class);
         vesCfgService = mock(VESCollectorCfgService.class);
@@ -75,6 +78,7 @@
         when(accessor.getCapabilites()).thenReturn(capabilities);
         when(accessor.getNodeId()).thenReturn(nodeId);
         when(accessor.getNetconfBindingAccessor()).thenReturn(Optional.of(bindingAccessor));
+        when(accessor.getNetconfDomAccessor()).thenReturn(Optional.of(domAccessor));
         when(bindingAccessor.getCapabilites()).thenReturn(capabilities);
         when(bindingAccessor.getTransactionUtils()).thenReturn(transactionUtils);
         when(bindingAccessor.getNodeId()).thenReturn(nodeId);
@@ -91,7 +95,7 @@
 
     }
 
-    @Test
+    //@Test
     public void test() {
         Optional<NetworkElement> oRanNe;
         when(capabilities.isSupportingNamespace(ORANHWCOMPONENT.QNAME)).thenReturn(true);
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanToInternalDataModel.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestORanToInternalDataModel.java
similarity index 96%
rename from sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanToInternalDataModel.java
rename to sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestORanToInternalDataModel.java
index e2e0eb8..a4470d3 100644
--- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanToInternalDataModel.java
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestORanToInternalDataModel.java
@@ -15,7 +15,7 @@
  * the License.
  * ============LICENSE_END==========================================================================
  */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl;
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.binding;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
@@ -26,7 +26,6 @@
 import java.util.stream.IntStream;
 import org.eclipse.jdt.annotation.Nullable;
 import org.junit.Test;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.ORanToInternalDataModel;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.hardware.Component;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestDeviceManagerORanImpl.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestDeviceManagerORanImpl.java
similarity index 89%
rename from sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestDeviceManagerORanImpl.java
rename to sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestDeviceManagerORanImpl.java
index 98db4bb..f3932bc 100644
--- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestDeviceManagerORanImpl.java
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestDeviceManagerORanImpl.java
@@ -15,12 +15,14 @@
  * the License.
  * ============LICENSE_END==========================================================================
  */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl;
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.dom;
 
 import static org.mockito.Mockito.mock;
 import java.io.IOException;
+import org.junit.After;
 import org.junit.Before;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.DeviceManagerORanImpl;
+import org.junit.Test;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.binding.DeviceManagerORanImpl;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NetconfNetworkElementService;
 
 public class TestDeviceManagerORanImpl {
@@ -30,7 +32,7 @@
     public void init() throws InterruptedException, IOException {
     }
 
-   // @Test
+    @Test
     public void test() throws Exception {
         devMgrOran = new DeviceManagerORanImpl();
         NetconfNetworkElementService netconfNetworkElementService = mock(NetconfNetworkElementService.class);
@@ -43,7 +45,7 @@
         }
     }
 
-    //@After
+    @After
     public void cleanUp() throws Exception {
         devMgrOran.close();
     }
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORANInventory.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORANInventory.java
new file mode 100644
index 0000000..337996a
--- /dev/null
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORANInventory.java
@@ -0,0 +1,250 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2021 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.dom;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Objects;
+import java.util.Optional;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.InventoryBuilder;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+import org.opendaylight.yangtools.util.xml.UntrustedXML;
+import org.opendaylight.yangtools.yang.binding.CodeHelpers;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.Uint32;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
+import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
+import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
+import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
+import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
+import org.opendaylight.yangtools.yang.data.codec.xml.XmlParserStream;
+import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter;
+import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeResult;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
+import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.Inference;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.xml.sax.SAXException;
+
+public class TestORANInventory {
+
+	private static final Logger LOG = LoggerFactory.getLogger(TestORANInventory.class);
+	private static final QNameModule IETF_HARDWARE_MODULE = QNameModule
+			.create(XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-hardware"), Revision.of("2018-03-13"));
+	private static final QName HW_CONTAINER = QName.create(IETF_HARDWARE_MODULE, "hardware");
+	private static final QName HW_COMPONENT_LIST = QName.create(IETF_HARDWARE_MODULE, "component");
+	private static final QName HW_COMPONENT_LIST_KEY = QName.create(IETF_HARDWARE_MODULE, "name");
+	private static final QName HW_COMPONENT_LIST_CLASS = QName.create(IETF_HARDWARE_MODULE, "class");
+	private static final QName HW_COMPONENT_LIST_DESC = QName.create(IETF_HARDWARE_MODULE, "description"); // leaf:String
+	private static final QName HW_COMPONENT_LIST_PARENT = QName.create(IETF_HARDWARE_MODULE, "parent"); // leaf:leafref
+	private static final QName HW_COMPONENT_LIST_CONTAINS_CHILD = QName.create(IETF_HARDWARE_MODULE, "contains-child"); // leaf-list:leafref
+	private static final QName HW_COMPONENT_LIST_HW_REV = QName.create(IETF_HARDWARE_MODULE, "hardware-rev"); // leaf:String
+	private static final QName HW_COMPONENT_LIST_SER_NUM = QName.create(IETF_HARDWARE_MODULE, "serial-num"); // leaf:String
+	private static final QName HW_COMPONENT_LIST_MFG_NAME = QName.create(IETF_HARDWARE_MODULE, "mfg-name"); // leaf:String
+	private static final QName HW_COMPONENT_LIST_MODEL_NAME = QName.create(IETF_HARDWARE_MODULE, "model-name"); // leaf:String
+	private static final QName HW_COMPONENT_LIST_MFG_DATE = QName.create(IETF_HARDWARE_MODULE, "mfg-date"); // leaf:yang:date-and-time
+
+	private static EffectiveModelContext schemaContext;
+	private static @NonNull Inference hwContainerSchema;
+
+	@BeforeClass
+	public static void setup() throws IOException {
+		schemaContext = YangParserTestUtils.parseYangResourceDirectory("/");
+		hwContainerSchema = Inference.ofDataTreePath(schemaContext, HW_CONTAINER);
+		System.out.println("URL is - " + TestORANReadHardware.class.getResource("/"));
+	}
+
+	@AfterClass
+	public static void cleanup() {
+		schemaContext = null;
+		hwContainerSchema = null;
+	}
+
+	@Test
+	public void testIetfHardwareFromXML() throws XMLStreamException, URISyntaxException, IOException, SAXException {
+
+		final InputStream resourceAsStream = TestORANReadHardware.class.getResourceAsStream("/ietf-hardware.xml");
+
+		/*
+		 * final XMLInputFactory factory = XMLInputFactory.newInstance();
+		 * XMLStreamReader reader = factory.createXMLStreamReader(resourceAsStream);
+		 */
+		final XMLStreamReader reader = UntrustedXML.createXMLStreamReader(resourceAsStream);
+
+		final NormalizedNodeResult result = new NormalizedNodeResult();
+		final NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result);
+
+		final XmlParserStream xmlParser = XmlParserStream.create(streamWriter, hwContainerSchema);
+		xmlParser.parse(reader);
+
+		xmlParser.flush();
+		xmlParser.close();
+
+		NormalizedNode transformedInput = result.getResult();
+		NodeId nodeId = new NodeId("nSky");
+		getInventoryList(nodeId, transformedInput);
+	}
+
+	public static List<Inventory> getInventoryList(NodeId nodeId, NormalizedNode hwData) {
+
+		List<Inventory> inventoryResultList = new ArrayList<Inventory>();
+		ContainerNode hwContainer = (ContainerNode) hwData;
+		MapNode componentMap = (MapNode) hwContainer.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST));
+		Collection<MapEntryNode> componentMapEntries = componentMap.body();
+
+		for (MapEntryNode componentMapEntryNode : getRootComponents(componentMapEntries)) {
+			inventoryResultList = recurseGetInventory(nodeId, componentMapEntryNode, componentMapEntries, 0,
+					inventoryResultList);
+		}
+		// Verify if result is complete
+		if (componentMapEntries.size() != inventoryResultList.size()) {
+			LOG.warn(
+					"Not all data were written to the Inventory. Potential entries with missing "
+							+ "contained-child. Node Id = {}, Components Found = {}, Entries written to Database = {}",
+					nodeId.getValue(), componentMapEntries.size(), inventoryResultList.size());
+		}
+		return inventoryResultList;
+	}
+
+	private static List<Inventory> recurseGetInventory(NodeId nodeId, MapEntryNode component,
+			Collection<MapEntryNode> componentList, int treeLevel, List<Inventory> inventoryResultList) {
+		LOG.info("Tree level = {}", treeLevel);
+		// Add element to list, if conversion successfull
+		Optional<Inventory> oInventory = getInternalEquipment(nodeId, component, treeLevel);
+		if (oInventory.isPresent()) {
+			inventoryResultList.add(oInventory.get());
+		}
+		// Walk through list of child keys and add to list
+		for (String childUuid : CodeHelpers
+				.nonnull(ORanDMDOMUtility.getLeafListValue(component, HW_COMPONENT_LIST_CONTAINS_CHILD))) {
+			LOG.info("Calling recursively- component is {}", childUuid);
+			for (MapEntryNode c : getComponentsByName(childUuid, componentList)) {
+				inventoryResultList = recurseGetInventory(nodeId, c, componentList, treeLevel + 1, inventoryResultList);
+			}
+		}
+		return inventoryResultList;
+	}
+
+	public static List<MapEntryNode> getRootComponents(Collection<MapEntryNode> componentMapEntries) {
+		List<MapEntryNode> resultList = new ArrayList<>();
+		for (MapEntryNode componentMapEntryNode : componentMapEntries) {
+			if (ORanDMDOMUtility.getLeafValue(componentMapEntryNode, HW_COMPONENT_LIST_PARENT) == null) { // Root
+																											// elements
+																											// do not
+																											// have a
+																											// parent
+				resultList.add(componentMapEntryNode);
+			}
+		}
+		return resultList;
+	}
+
+	private static List<MapEntryNode> getComponentsByName(String name, Collection<MapEntryNode> componentList) {
+		List<MapEntryNode> resultList = new ArrayList<>();
+		for (MapEntryNode c : componentList) {
+			if (name.equals(ORanDMDOMUtility.getKeyValue(c))) { // <-- Component list is flat search for child's of name
+				resultList.add(c);
+			}
+		}
+		return resultList;
+	}
+
+	public static Optional<Inventory> getInternalEquipment(NodeId nodeId, MapEntryNode component, int treeLevel) {
+
+		// Make sure that expected data are not null
+		Objects.requireNonNull(nodeId);
+		Objects.requireNonNull(component);
+
+		// Read manadatory data
+
+		@Nullable
+		String nodeIdString = nodeId.getValue();
+		@Nullable
+		String uuid = ORanDMDOMUtility.getKeyValue(component);
+		@Nullable
+		String idParent = ORanDMDOMUtility.getLeafValue(component, HW_COMPONENT_LIST_PARENT);
+		@Nullable
+		String uuidParent = idParent != null ? idParent : uuid; // <- Passt nicht
+		LOG.info("Dump = {}, {}, {}, {}", uuidParent, uuid, treeLevel, nodeIdString);
+		// do consistency check if all mandatory parameters are there
+		if (treeLevel >= 0 && nodeIdString != null && uuid != null && uuidParent != null) {
+			LOG.info("Creating new instance of Inventory");
+			// Build output data
+
+			InventoryBuilder inventoryBuilder = new InventoryBuilder();
+
+			// General assumed as mandatory
+			inventoryBuilder.setNodeId(nodeIdString);
+			inventoryBuilder.setUuid(uuid);
+			inventoryBuilder.setParentUuid(uuidParent);
+			inventoryBuilder.setTreeLevel(Uint32.valueOf(treeLevel));
+
+			// -- String list with ids of holders (optional)
+			inventoryBuilder
+					.setContainedHolder(ORanDMDOMUtility.getLeafListValue(component, HW_COMPONENT_LIST_CONTAINS_CHILD));
+
+			// -- Manufacturer related things (optional)
+			@Nullable
+			String mfgName = ORanDMDOMUtility.getLeafValue(component, HW_COMPONENT_LIST_MFG_NAME);
+			inventoryBuilder.setManufacturerName(mfgName);
+			inventoryBuilder.setManufacturerIdentifier(mfgName);
+
+			// Equipment type (optional)
+			inventoryBuilder.setDescription(ORanDMDOMUtility.getLeafValue(component, HW_COMPONENT_LIST_DESC));
+			inventoryBuilder.setModelIdentifier(ORanDMDOMUtility.getLeafValue(component, HW_COMPONENT_LIST_MODEL_NAME));
+
+			inventoryBuilder.setPartTypeId(ORanDMDOMUtility.getLeafValue(component, HW_COMPONENT_LIST_CLASS));
+
+			inventoryBuilder.setTypeName(ORanDMDOMUtility.getKeyValue(component));
+			inventoryBuilder.setVersion(ORanDMDOMUtility.getLeafValue(component, HW_COMPONENT_LIST_HW_REV));
+
+			// Equipment instance (optional)
+			@Nullable
+			String mfgDate = ORanDMDOMUtility.getLeafValue(component, HW_COMPONENT_LIST_MFG_DATE);
+			if (mfgDate != null) {
+				inventoryBuilder.setDate(mfgDate);
+			}
+			inventoryBuilder.setSerial(ORanDMDOMUtility.getLeafValue(component, HW_COMPONENT_LIST_SER_NUM));
+
+			return Optional.of(inventoryBuilder.build());
+		}
+		return Optional.empty();
+	}
+
+}
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORANReadHardware.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORANReadHardware.java
new file mode 100644
index 0000000..b2da8e6
--- /dev/null
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORANReadHardware.java
@@ -0,0 +1,383 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2021 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.dom;
+
+import com.google.common.base.VerifyException;
+import com.google.common.collect.ImmutableList;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.NoSuchElementException;
+import java.util.Optional;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.opendaylight.yangtools.util.xml.UntrustedXML;
+import org.opendaylight.yangtools.yang.binding.CodeHelpers;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
+import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
+import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild;
+import org.opendaylight.yangtools.yang.data.api.schema.DataContainerNode;
+import org.opendaylight.yangtools.yang.data.api.schema.LeafNode;
+import org.opendaylight.yangtools.yang.data.api.schema.LeafSetEntryNode;
+import org.opendaylight.yangtools.yang.data.api.schema.LeafSetNode;
+import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
+import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
+import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
+import org.opendaylight.yangtools.yang.data.codec.xml.XmlParserStream;
+import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
+import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter;
+import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeResult;
+import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
+import org.opendaylight.yangtools.yang.model.util.SchemaContextUtil;
+import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.Inference;
+//import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.Inference; //Yangtool 8.0
+import org.xml.sax.SAXException;
+
+public class TestORANReadHardware {
+
+	/*
+	 * private static final QNameModule IETF_HARDWARE_MODULE =
+	 * QNameModule.create(XMLNamespace.of(
+	 * "urn:ietf:params:xml:ns:yang:ietf-hardware"), Revision.of("2018-03-13"));
+	 */ // Applicable for Yangtools 8.0
+	// private static final URI IETF_HARDWARE_URI =
+	// URI.create("urn:ietf:params:xml:ns:yang:ietf-hardware");
+	private static final QNameModule IETF_HARDWARE_MODULE = QNameModule
+			.create(XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-hardware"), Revision.of("2018-03-13"));
+	private static final QName HW_CONTAINER = QName.create(IETF_HARDWARE_MODULE, "hardware");
+	private static final QName HW_COMPONENT_LIST = QName.create(IETF_HARDWARE_MODULE, "component");
+	private static final QName HW_COMPONENT_LIST_KEY = QName.create(IETF_HARDWARE_MODULE, "name");
+	private static final QName HW_COMPONENT_LIST_CLASS = QName.create(IETF_HARDWARE_MODULE, "class");
+	private static final QName HW_COMPONENT_LIST_PHYSICAL_INDEX = QName.create(IETF_HARDWARE_MODULE, "physical-index"); // leaf:int32
+	private static final QName HW_COMPONENT_LIST_DESC = QName.create(IETF_HARDWARE_MODULE, "description"); // leaf:String
+	private static final QName HW_COMPONENT_LIST_PARENT = QName.create(IETF_HARDWARE_MODULE, "parent"); // leaf:leafref
+	private static final QName HW_COMPONENT_LIST_PARENT_REL_POS = QName.create(IETF_HARDWARE_MODULE, "parent-rel-pos"); // leaf:int32
+	private static final QName HW_COMPONENT_LIST_CONTAINS_CHILD = QName.create(IETF_HARDWARE_MODULE, "contains-child"); // leaf-list:leafref
+	private static final QName HW_COMPONENT_LIST_HW_REV = QName.create(IETF_HARDWARE_MODULE, "hardware-rev"); // leaf:String
+	private static final QName HW_COMPONENT_LIST_FW_REV = QName.create(IETF_HARDWARE_MODULE, "firmware-rev"); // leaf:String
+	private static final QName HW_COMPONENT_LIST_SW_REV = QName.create(IETF_HARDWARE_MODULE, "software-rev"); // leaf:String
+	private static final QName HW_COMPONENT_LIST_SER_NUM = QName.create(IETF_HARDWARE_MODULE, "serial-num"); // leaf:String
+	private static final QName HW_COMPONENT_LIST_MFG_NAME = QName.create(IETF_HARDWARE_MODULE, "mfg-name"); // leaf:String
+	private static final QName HW_COMPONENT_LIST_MODEL_NAME = QName.create(IETF_HARDWARE_MODULE, "model-name"); // leaf:String
+	private static final QName HW_COMPONENT_LIST_ALIAS = QName.create(IETF_HARDWARE_MODULE, "alias"); // leaf:String
+	private static final QName HW_COMPONENT_LIST_ASSET_ID = QName.create(IETF_HARDWARE_MODULE, "asset-id"); // leaf:String
+	private static final QName HW_COMPONENT_LIST_IS_FRU = QName.create(IETF_HARDWARE_MODULE, "is-fru"); // leaf:boolean
+	private static final QName HW_COMPONENT_LIST_MFG_DATE = QName.create(IETF_HARDWARE_MODULE, "mfg-date"); // leaf:yang:date-and-time
+	private static final QName HW_COMPONENT_LIST_URI = QName.create(IETF_HARDWARE_MODULE, "uri"); // leaf-list:inet:uri
+	private static final QName HW_COMPONENT_LIST_UUID = QName.create(IETF_HARDWARE_MODULE, "uuid"); // leaf:yang:uuid
+	private static final QName HW_COMPONENT_LIST_STATE = QName.create(IETF_HARDWARE_MODULE, "state"); // leaf:yang:uuid
+	private static final QName HW_COMPONENT_LIST_ADMIN_STATE = QName.create(IETF_HARDWARE_MODULE, "admin-state"); // leaf:yang:uuid
+	private static final QName HW_COMPONENT_LIST_OPER_STATE = QName.create(IETF_HARDWARE_MODULE, "oper-state"); // leaf:yang:uuid
+
+	private static EffectiveModelContext schemaContext;
+	private static Inference hwContainerSchema;
+
+	@BeforeClass
+	public static void setup() throws IOException {
+		schemaContext = YangParserTestUtils.parseYangResourceDirectory("/");
+		hwContainerSchema = Inference.ofDataTreePath(schemaContext, HW_CONTAINER);
+		System.out.println("URL is - " + TestORANReadHardware.class.getResource("/"));
+	}
+
+	@AfterClass
+	public static void cleanup() {
+		schemaContext = null;
+		hwContainerSchema = null;
+	}
+
+	@Test
+	public void testIetfHardwareFromXML() throws XMLStreamException, URISyntaxException, IOException, SAXException {
+
+		final InputStream resourceAsStream = TestORANReadHardware.class.getResourceAsStream("/ietf-hardware.xml");
+
+		/*
+		 * final XMLInputFactory factory = XMLInputFactory.newInstance();
+		 * XMLStreamReader reader = factory.createXMLStreamReader(resourceAsStream);
+		 */
+		final XMLStreamReader reader = UntrustedXML.createXMLStreamReader(resourceAsStream);
+
+		final NormalizedNodeResult result = new NormalizedNodeResult();
+		final NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result);
+
+		final XmlParserStream xmlParser = XmlParserStream.create(streamWriter, hwContainerSchema);
+		xmlParser.parse(reader);
+
+		xmlParser.flush();
+		xmlParser.close();
+
+		NormalizedNode transformedInput = result.getResult();
+		System.out.println("Hardware Data = " + transformedInput);
+
+		ContainerNode hwContainer = (ContainerNode) transformedInput;
+		MapNode containerMap = (MapNode) hwContainer.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST));
+		Collection<MapEntryNode> containerMapEntries = containerMap.body();
+		for (MapEntryNode mapEntryNode : containerMapEntries) {
+			NodeIdentifierWithPredicates componentKey = mapEntryNode.getIdentifier(); // list key
+			System.out.println("Key Name is - " + componentKey.keySet());
+			System.out.println("Key Value is - " + componentKey.getValue(HW_COMPONENT_LIST_KEY));
+
+			LeafNode<?> classField = (LeafNode<?>) mapEntryNode
+					.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_CLASS));
+			System.out.println("Class = " + classField.getIdentifier().getNodeType().getLocalName() + " Value = "
+					+ classField.body().toString());
+			Object obj = classField.body();
+			System.out.println(obj.getClass());
+			if (obj instanceof QName) {
+				System.out.println("This is of type QName");
+			}
+			LeafNode<?> aliasLeaf = (LeafNode<?>) mapEntryNode
+					.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_ALIAS));
+			// System.out.println("Alias = " + aliasLeaf.getValue().toString());
+			System.out.println("Alias = " + getLeafValue(mapEntryNode, HW_COMPONENT_LIST_ALIAS));
+
+			try {
+				DataContainerChild childSet = mapEntryNode
+						.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_CONTAINS_CHILD));
+
+				Collection<?> childEntry = (Collection<?>) childSet.body();
+				Iterator<?> childEntryItr = childEntry.iterator();
+				while (childEntryItr.hasNext()) {
+					LeafSetEntryNode<?> childEntryNode = (LeafSetEntryNode<?>) childEntryItr.next();
+					System.out.println("Child Node - " + childEntryNode.body());
+				}
+			} catch (VerifyException ve) {
+				// System.out.println("Child not not exist");
+			}
+
+			try {
+				LeafSetNode<?> containsChildSet = (LeafSetNode<?>) mapEntryNode
+						.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_CONTAINS_CHILD));
+				Collection<?> containsChildSetEntry = containsChildSet.body();
+				Iterator<?> childItr = containsChildSetEntry.iterator();
+				while (childItr.hasNext()) {
+					LeafSetEntryNode<?> childEntryNode = (LeafSetEntryNode<?>) childItr.next();
+					System.out.println("Child Node - " + childEntryNode.body());
+				}
+			} catch (VerifyException | NoSuchElementException e) {
+				// System.out.println("Child not not exist");
+			}
+
+			try {
+				System.out
+						.println(CodeHelpers.nonnull(getLeafListValue(mapEntryNode, HW_COMPONENT_LIST_CONTAINS_CHILD)));
+				for (String childUuid : CodeHelpers
+						.nonnull(getLeafListValue(mapEntryNode, HW_COMPONENT_LIST_CONTAINS_CHILD))) {
+					System.out.println("Calling recursively - " + childUuid);
+				}
+			} catch (VerifyException | NoSuchElementException e) {
+				// System.out.println("Child not not exist");
+			}
+			try {
+				String description = (String) mapEntryNode.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_DESC))
+						.body();
+				System.out.println("Description = " + description);
+			} catch (VerifyException | NoSuchElementException e) {
+				// System.out.println("Child not not exist");
+			}
+			try {
+				String serialNum = (String) mapEntryNode.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_SER_NUM))
+						.body();
+				System.out.println("Serial Number = " + serialNum);
+			} catch (VerifyException | NoSuchElementException e) {
+				// System.out.println("Child not not exist");
+			}
+			try {
+				String firmwareRev = (String) mapEntryNode.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_FW_REV))
+						.body();
+				System.out.println("Firmware Rev = " + firmwareRev);
+			} catch (VerifyException | NoSuchElementException e) {
+				// System.out.println("Child not not exist");
+			}
+			try {
+				String swRev = (String) mapEntryNode.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_SW_REV)).body();
+				System.out.println("Software Rev = " + swRev);
+			} catch (VerifyException | NoSuchElementException e) {
+				// System.out.println("Child not not exist");
+			}
+			try {
+				String modelName = (String) mapEntryNode.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_MODEL_NAME))
+						.body();
+				System.out.println("Model Name = " + modelName);
+			} catch (VerifyException | NoSuchElementException e) {
+				// System.out.println("Child not not exist");
+			}
+			try {
+				Integer parentRelPos = (Integer) mapEntryNode
+						.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_PARENT_REL_POS)).body();
+				System.out.println("Parent Rel Pos = " + (parentRelPos != null ? parentRelPos.intValue() : null));
+			} catch (VerifyException | NoSuchElementException e) {
+				// System.out.println("Child not not exist");
+			}
+			try {
+				String parent = (String) mapEntryNode.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_PARENT))
+						.body();
+				System.out.println("Parent = " + parent);
+			} catch (VerifyException | NoSuchElementException e) {
+				// System.out.println("Child not not exist");
+			}
+			try {
+				String hwRev = (String) mapEntryNode.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_HW_REV)).body();
+				System.out.println("Hardware Revision = " + hwRev);
+			} catch (VerifyException | NoSuchElementException e) {
+				// System.out.println("Child not not exist");
+			}
+			try {
+				String mfgName = (String) mapEntryNode.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_MFG_NAME))
+						.body();
+				System.out.println("Manufacturer Name = " + mfgName);
+			} catch (VerifyException | NoSuchElementException e) {
+				// System.out.println("Child not not exist");
+			}
+			try {
+				DataContainerChild mfgNameOpt = mapEntryNode
+						.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_MFG_NAME));
+				if (mfgNameOpt != null) {
+					System.out.println("Mfg Name - " + (String) mfgNameOpt.body());
+				}
+			} catch (VerifyException | NoSuchElementException e) {
+				// System.out.println("Child not not exist");
+			}
+			try {
+				String assetID = (String) mapEntryNode.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_ASSET_ID))
+						.body();
+				System.out.println("Asset ID = " + assetID);
+			} catch (VerifyException | NoSuchElementException e) {
+				// System.out.println("Child not not exist");
+			}
+			try {
+				String mfgDate = (String) mapEntryNode.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_MFG_DATE))
+						.body();
+				System.out.println("Mfg Date = " + mfgDate);
+			} catch (VerifyException | NoSuchElementException e) {
+				// System.out.println("Child not not exist");
+			}
+			try {
+				String uri = (String) mapEntryNode.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_URI)).body();
+				System.out.println("URI = " + uri);
+			} catch (VerifyException | NoSuchElementException e) {
+				// System.out.println("Child not not exist");
+			}
+			try {
+				Boolean isFRU = (Boolean) mapEntryNode.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_IS_FRU))
+						.body();
+				System.out.println("IS FRU = " + isFRU);
+			} catch (VerifyException | NoSuchElementException e) {
+				// System.out.println("Child not not exist");
+			}
+			try {
+				String uuid = (String) mapEntryNode.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_UUID)).body()
+						.toString();
+				System.out.println("UUID = " + uuid);
+			} catch (VerifyException | NoSuchElementException e) {
+				// System.out.println("Child not not exist");
+			}
+
+			try {
+				ContainerNode state = (ContainerNode) mapEntryNode
+						.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_STATE));
+				String adminState = (String) state.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_ADMIN_STATE))
+						.body().toString();       
+				System.out.println("Admin State = " + adminState);
+				String operState = (String) state.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_OPER_STATE)).body()
+						.toString();
+
+				System.out.println("Oper State = " + operState);
+			} catch (VerifyException | NoSuchElementException e) {
+				System.out.println("Child not not exist");
+			}
+
+			System.out.println("********************************************");
+
+		}
+		// assertNotNull(transformedInput);
+
+	}
+
+	public static String getLeafValue(DataContainerNode componentEntry, QName leafQName) {
+		NodeIdentifier leafNodeIdentifier = new NodeIdentifier(leafQName);
+		try {
+			LeafNode<?> optLeafNode = (LeafNode<?>) componentEntry.getChildByArg(leafNodeIdentifier);
+			if (optLeafNode.body() instanceof QName) {
+				System.out.println("Leaf is of type QName");
+			}
+			return optLeafNode.body().toString();
+		} catch (NoSuchElementException nsee) {
+			System.out.println("Leaf with QName {} not found" + leafQName.toString());
+			return null;
+		}
+	}
+
+	public static List<String> getLeafListValue(DataContainerNode componentEntry, QName leafListQName) {
+		if (componentEntry instanceof MapEntryNode) {
+			List<String> containsChildList = new ArrayList<String>();
+			DataContainerChild childSet = componentEntry.getChildByArg(new NodeIdentifier(leafListQName));
+			if (childSet != null) {
+				Collection<?> childEntry = (Collection<?>) childSet.body();
+				Iterator<?> childEntryItr = childEntry.iterator();
+				while (childEntryItr.hasNext()) {
+					LeafSetEntryNode<?> childEntryNode = (LeafSetEntryNode<?>) childEntryItr.next();
+					containsChildList.add(childEntryNode.body().toString());
+				}
+			}
+			return containsChildList;
+		}
+		return null;
+	}
+
+	@Test
+	public void testIetfHardwareFromNormalizedNode() {
+		buildIetfHardwareContainerNode();
+	}
+
+	private static NormalizedNode buildIetfHardwareContainerNode() {
+		MapNode componentMap = Builders.mapBuilder().withNodeIdentifier(new NodeIdentifier(HW_COMPONENT_LIST))
+				.withChild(Builders.mapEntryBuilder()
+						.withNodeIdentifier(
+								NodeIdentifierWithPredicates.of(HW_COMPONENT_LIST, HW_COMPONENT_LIST_KEY, "chassis"))
+						.withChild(
+								Builders.leafBuilder().withNodeIdentifier(new NodeIdentifier(HW_COMPONENT_LIST_CLASS))
+										.withValue("ianahw:chassis").build())
+						.withChild(Builders.leafBuilder()
+								.withNodeIdentifier(new NodeIdentifier(HW_COMPONENT_LIST_PHYSICAL_INDEX)).withValue(1)
+								.build())
+						.build())
+				.build();
+		return componentMap;
+	}
+
+}
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanDOMFaultNotificationListener.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanDOMFaultNotificationListener.java
new file mode 100644
index 0000000..8abfb2d
--- /dev/null
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanDOMFaultNotificationListener.java
@@ -0,0 +1,164 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2021 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.dom;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import com.google.common.io.Files;
+import java.io.File;
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.time.Instant;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.onap.ccsdk.features.sdnr.wt.common.configuration.ConfigurationFileRepresentation;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.binding.TestORanFaultNotificationListener;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.vescollectorconnector.impl.VESCollectorServiceImpl;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor;
+import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService;
+import org.opendaylight.mdsal.dom.api.DOMEvent;
+import org.opendaylight.mdsal.dom.api.DOMNotification;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogEntity;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
+import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
+import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
+import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@RunWith(MockitoJUnitRunner.class)
+public class TestORanDOMFaultNotificationListener {
+    private static final Logger LOG = LoggerFactory.getLogger(TestORanFaultNotificationListener.class);
+    private static final String TESTFILENAME = "configFile.txt";
+
+    // @formatter:off
+    private static final String TESTCONFIG_CONTENT = "[VESCollector]\n"
+            + "VES_COLLECTOR_ENABLED=true\n"
+            + "VES_COLLECTOR_TLS_ENABLED=true\n"
+            + "VES_COLLECTOR_TRUST_ALL_CERTS=true\n"
+            + "VES_COLLECTOR_USERNAME=sample1\n"
+            + "VES_COLLECTOR_PASSWORD=sample1\n"
+            + "VES_COLLECTOR_IP=[2001:db8:1:1::1]\n"
+            + "VES_COLLECTOR_PORT=8443\n"
+            + "VES_COLLECTOR_VERSION=v7\n"
+            + "REPORTING_ENTITY_NAME=ONAP SDN-R\n"
+            + "EVENTLOG_MSG_DETAIL=SHORT\n"
+            + "";
+    // @formatter:on
+
+    @Mock
+    NetconfDomAccessor domAccessor;
+    @Mock
+    DataProvider dataProvider;
+    @Mock
+    FaultService faultService;
+    @Mock
+    DeviceManagerServiceProvider serviceProvider;
+    @Mock
+    WebsocketManagerService websocketManagerService;
+    @Mock
+    DataProvider databaseService;
+    VESCollectorService vesCollectorService;
+
+    @After
+    @Before
+    public void afterAndBefore() {
+        File f = new File(TESTFILENAME);
+        if (f.exists()) {
+            LOG.info("Remove {}", f.getAbsolutePath());
+            f.delete();
+        }
+    }
+
+    @Test
+    public void test() throws IOException {
+        Files.asCharSink(new File(TESTFILENAME), StandardCharsets.UTF_8).write(TESTCONFIG_CONTENT);
+        vesCollectorService = new VESCollectorServiceImpl(new ConfigurationFileRepresentation(TESTFILENAME));
+        when(domAccessor.getNodeId()).thenReturn(new NodeId("nSky"));
+        ORanDOMFaultNotificationListener faultListener = new ORanDOMFaultNotificationListener(domAccessor,
+                vesCollectorService, faultService, websocketManagerService, databaseService);
+        NetconfDeviceNotification ndn = new NetconfDeviceNotification(createORANDOMFault(), Instant.now());
+        faultListener.onNotification(ndn);
+
+        verify(faultService).faultNotification(any(FaultlogEntity.class));
+    }
+
+    public static ContainerNode createORANDOMFault() {
+        final QName fault_id = QName.create(ORanDeviceManagerQNames.ORAN_FM_ALARM_NOTIF, "fault-id");
+        final QName fault_source = QName.create(ORanDeviceManagerQNames.ORAN_FM_ALARM_NOTIF, "fault-source");
+        final QName fault_severity = QName.create(ORanDeviceManagerQNames.ORAN_FM_ALARM_NOTIF, "fault-severity");
+        final QName is_cleared = QName.create(ORanDeviceManagerQNames.ORAN_FM_ALARM_NOTIF, "is-cleared");
+        final QName fault_text = QName.create(ORanDeviceManagerQNames.ORAN_FM_ALARM_NOTIF, "fault-text");
+        return Builders.containerBuilder().withNodeIdentifier(NodeIdentifier.create(ORanDeviceManagerQNames.ORAN_FM_ALARM_NOTIF))
+                .withChild(ImmutableNodes.leafNode(fault_id, "47"))
+                .withChild(ImmutableNodes.leafNode(fault_source, "Slot-2-Port-B"))
+                .withChild(ImmutableNodes.leafNode(fault_severity, "MAJOR"))
+                .withChild(ImmutableNodes.leafNode(is_cleared, "true"))
+                .withChild(ImmutableNodes.leafNode(fault_text, "CPRI Port Down")).build();
+    }
+
+
+    public static class NetconfDeviceNotification implements DOMNotification, DOMEvent {
+        private final ContainerNode content;
+        private final Absolute schemaPath;
+        private final Instant eventTime;
+
+        NetconfDeviceNotification(final ContainerNode content, final Instant eventTime) {
+            this.content = content;
+            this.eventTime = eventTime;
+            this.schemaPath = Absolute.of(content.getIdentifier().getNodeType());
+        }
+
+        NetconfDeviceNotification(final ContainerNode content, final Absolute schemaPath, final Instant eventTime) {
+            this.content = content;
+            this.eventTime = eventTime;
+            this.schemaPath = schemaPath;
+        }
+
+        @Override
+        public Absolute getType() {
+            return schemaPath;
+        }
+
+        @Override
+        public ContainerNode getBody() {
+            return content;
+        }
+
+        @Override
+        public Instant getEventInstant() {
+            return eventTime;
+        }
+    }
+}
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanNetworkElement.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanDOMNetworkElement.java
similarity index 71%
copy from sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanNetworkElement.java
copy to sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanDOMNetworkElement.java
index af7664a..c75f4f5 100644
--- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanNetworkElement.java
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanDOMNetworkElement.java
@@ -1,21 +1,25 @@
 /*
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt
- * =================================================================================================
- * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2021 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
  *
- * http://www.apache.org/licenses/LICENSE-2.0
+ *     http://www.apache.org/licenses/LICENSE-2.0
  *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
  */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl;
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.dom;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
@@ -28,6 +32,7 @@
 import org.junit.Test;
 import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElement;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.startup.ORanNetworkElementFactory;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NotificationProxyParser;
@@ -35,26 +40,24 @@
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService;
 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.Capabilities;
 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
-import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
-import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.TransactionUtils;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor;
 import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService;
-import org.opendaylight.yang.gen.v1.urn.o.ran.hardware._1._0.rev190328.ORANHWCOMPONENT;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
 import org.opendaylight.yangtools.yang.common.QName;
 
-public class TestORanNetworkElement {
+public class TestORanDOMNetworkElement {
 
     private static final QName OneCell =
             QName.create("urn:onf:otcc:wireless:yang:radio-access:commscope-onecell", "2020-06-22", "onecell").intern();
-    private static final @NonNull QName OnapSystem = QName.create("urn:onap:system", "2020-10-26", "onap-system").intern();
+    private static final @NonNull QName OnapSystem =
+            QName.create("urn:onap:system", "2020-10-26", "onap-system").intern();
     private static String NODEIDSTRING = "nSky";
     private static NodeId nodeId = new NodeId(NODEIDSTRING);
 
     private static NetconfAccessor accessor;
     private static DeviceManagerServiceProvider serviceProvider;
     private static Capabilities capabilities;
-    private static TransactionUtils transactionUtils;
-    private static NetconfBindingAccessor bindingAccessor;
+    private static NetconfDomAccessor domAccessor;
     private static VESCollectorService vesCollectorService;
     private static NotificationProxyParser notificationProxyParser;
     private static VESCollectorCfgService vesCfgService;
@@ -65,8 +68,7 @@
         capabilities = mock(Capabilities.class);
         accessor = mock(NetconfAccessor.class);
         serviceProvider = mock(DeviceManagerServiceProvider.class);
-        transactionUtils = mock(TransactionUtils.class);
-        bindingAccessor = mock(NetconfBindingAccessor.class);
+        domAccessor = mock(NetconfDomAccessor.class);
         vesCollectorService = mock(VESCollectorService.class);
         notificationProxyParser = mock(NotificationProxyParser.class);
         vesCfgService = mock(VESCollectorCfgService.class);
@@ -74,10 +76,9 @@
 
         when(accessor.getCapabilites()).thenReturn(capabilities);
         when(accessor.getNodeId()).thenReturn(nodeId);
-        when(accessor.getNetconfBindingAccessor()).thenReturn(Optional.of(bindingAccessor));
-        when(bindingAccessor.getCapabilites()).thenReturn(capabilities);
-        when(bindingAccessor.getTransactionUtils()).thenReturn(transactionUtils);
-        when(bindingAccessor.getNodeId()).thenReturn(nodeId);
+        when(accessor.getNetconfDomAccessor()).thenReturn(Optional.of(domAccessor));
+        when(domAccessor.getNodeId()).thenReturn(nodeId);
+        when(domAccessor.getCapabilites()).thenReturn(capabilities);
         when(vesCollectorService.getNotificationProxyParser()).thenReturn(notificationProxyParser);
 
         DataProvider dataProvider = mock(DataProvider.class);
@@ -94,7 +95,7 @@
     @Test
     public void test() {
         Optional<NetworkElement> oRanNe;
-        when(capabilities.isSupportingNamespace(ORANHWCOMPONENT.QNAME)).thenReturn(true);
+        when(capabilities.isSupportingNamespace(ORanDeviceManagerQNames.ORAN_HW_COMPONENT)).thenReturn(true);
         when(capabilities.isSupportingNamespace(OneCell)).thenReturn(false);
         when(capabilities.isSupportingNamespace(OnapSystem)).thenReturn(false);
 
@@ -107,5 +108,4 @@
         oRanNe.get().getDeviceType();
         assertEquals(oRanNe.get().getNodeId().getValue(), "nSky");
     }
-
- }
+}
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanDOMNotification.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanDOMNotification.java
new file mode 100644
index 0000000..1665ac1
--- /dev/null
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanDOMNotification.java
@@ -0,0 +1,184 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2021 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.dom;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import java.time.Instant;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorCfgService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor;
+import org.opendaylight.mdsal.dom.api.DOMEvent;
+import org.opendaylight.mdsal.dom.api.DOMNotification;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogEntity;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+import org.opendaylight.yangtools.yang.common.Uint32;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
+import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
+import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
+import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+public class TestORanDOMNotification {
+
+    private static final Logger log = LoggerFactory.getLogger(TestORanDOMNotification.class);
+    static ContainerNode cn = null;
+    static NodeId nodeId = new NodeId("nSky");
+    private static NetconfDomAccessor domAccessor;
+    private static VESCollectorService vesCollectorService;
+    private static DataProvider databaseService;
+    private static VESCollectorCfgService vesCfgService;
+    // Use the below procedure for creating QName if binding generated classes are not available
+    /*String ietf_netconf_notif_ns = "urn:ietf:params:xml:ns:yang:ietf-netconf-notifications";
+    String ietf_netconf_notif_ns_date = "2012-02-06";
+    QName username = QName.create(ietf_netconf_notif_ns, ietf_netconf_notif_ns_date, "username");*/
+
+
+    @BeforeClass
+    public static void prepare() {
+        domAccessor = mock(NetconfDomAccessor.class);
+        vesCollectorService = mock(VESCollectorService.class);
+        databaseService = mock(DataProvider.class);
+        vesCfgService = mock(VESCollectorCfgService.class);
+        when(vesCollectorService.getConfig()).thenReturn(vesCfgService);
+        when(vesCfgService.isVESCollectorEnabled()).thenReturn(true);
+        when(domAccessor.getNodeId()).thenReturn(nodeId);
+    }
+
+    /*
+    ImmutableContainerNode{
+    identifier=(urn:ietf:params:xml:ns:yang:ietf-netconf-notifications?revision=2012-02-06)netconf-config-change,
+    value=[
+        ImmutableContainerNode{
+            identifier=(urn:ietf:params:xml:ns:yang:ietf-netconf-notifications?revision=2012-02-06)changed-by,
+            value=[
+                ImmutableChoiceNode{
+                    identifier=(urn:ietf:params:xml:ns:yang:ietf-netconf-notifications?revision=2012-02-06)server-or-user,
+                    value=[
+                        ImmutableLeafNode{
+                            identifier=(urn:ietf:params:xml:ns:yang:ietf-netconf-notifications?revision=2012-02-06)username,
+                            value=root
+                        },
+                        ImmutableLeafNode{
+                            identifier=(urn:ietf:params:xml:ns:yang:ietf-netconf-notifications?revision=2012-02-06)session-id,
+                            value=2
+                        }
+                    ]
+                }
+            ]
+        },
+        ImmutableUnkeyedListNode{
+            identifier=(urn:ietf:params:xml:ns:yang:ietf-netconf-notifications?revision=2012-02-06)edit,
+            value=[
+                ImmutableUnkeyedListEntryNode{
+                    identifier=(urn:ietf:params:xml:ns:yang:ietf-netconf-notifications?revision=2012-02-06)edit,
+                    value=[
+                        ImmutableLeafNode{
+                            identifier=(urn:ietf:params:xml:ns:yang:ietf-netconf-notifications?revision=2012-02-06)operation,
+                            value=replace
+                        },
+                        ImmutableLeafNode{
+                            identifier=(urn:ietf:params:xml:ns:yang:ietf-netconf-notifications?revision=2012-02-06)target, value=/(urn:ietf:params:xml:ns:yang:ietf-hardware?revision=2018-03-13)hardware/component/component[{(urn:ietf:params:xml:ns:yang:ietf-hardware?revision=2018-03-13)name=chassis-fan3}]/alias
+                        }
+                    ]
+                }
+            ]
+        },
+        ImmutableLeafNode{
+            identifier=(urn:ietf:params:xml:ns:yang:ietf-netconf-notifications?revision=2012-02-06)datastore,
+            value=running
+        }
+    ]
+    }
+     */
+    private static ContainerNode createDOMNotificationBody() {
+        return Builders.containerBuilder().withNodeIdentifier(NodeIdentifier.create(ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_NETCONF_CONFIG_CHANGE))
+                .withChild(
+                        Builders.containerBuilder().withNodeIdentifier(NodeIdentifier.create(ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_CHANGEDBY))
+                                .withChild(Builders.choiceBuilder()
+                                        .withNodeIdentifier(NodeIdentifier.create(ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_SERVERORUSER))
+                                        .withChild(ImmutableNodes.leafNode(ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_USERNAME, "root"))
+                                        .withChild(ImmutableNodes.leafNode(ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_SESSIONID, Uint32.valueOf(2))).build())
+                                .build())
+                .withChild(Builders.unkeyedListBuilder().withNodeIdentifier(NodeIdentifier.create(ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_EDITNODE))
+                        .withChild(Builders.unkeyedListEntryBuilder()
+                                .withNodeIdentifier(NodeIdentifier.create(ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_EDITNODE))
+                                .withChild(ImmutableNodes.leafNode(ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_OPERATION, "replace"))
+                                .withChild(ImmutableNodes.leafNode(ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_TARGET,
+                                        "/(urn:ietf:params:xml:ns:yang:ietf-hardware?revision=2018-03-13)hardware/component[{(urn:ietf:params:xml:ns:yang:ietf-hardware?revision=2018-03-13)name=chassis-fan3}]/alias"))
+                                .build())
+                        .build())
+                .withChild(ImmutableNodes.leafNode(ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_DATASTORE, "running")).build();
+    }
+
+    @Test
+    public void test() {
+        ContainerNode cn = createDOMNotificationBody();
+        System.out.println(cn.toString());
+        NetconfDeviceNotification ndn = new NetconfDeviceNotification(cn, Instant.now());
+        ORanDOMChangeNotificationListener changeListener = new ORanDOMChangeNotificationListener(domAccessor, vesCollectorService, databaseService);
+        changeListener.onNotification(ndn);
+        verify(databaseService).writeEventLog(any(EventlogEntity.class));
+    }
+
+    public static class NetconfDeviceNotification implements DOMNotification, DOMEvent {
+        private final ContainerNode content;
+        private final Absolute schemaPath;
+        private final Instant eventTime;
+
+        NetconfDeviceNotification(final ContainerNode content, final Instant eventTime) {
+            this.content = content;
+            this.eventTime = eventTime;
+            this.schemaPath = Absolute.of(content.getIdentifier().getNodeType());
+        }
+
+        NetconfDeviceNotification(final ContainerNode content, final Absolute schemaPath, final Instant eventTime) {
+            this.content = content;
+            this.eventTime = eventTime;
+            this.schemaPath = schemaPath;
+        }
+
+        @Override
+        public Absolute getType() {
+            return schemaPath;
+        }
+
+        @Override
+        public ContainerNode getBody() {
+            return content;
+        }
+
+        @Override
+        public Instant getEventInstant() {
+            return eventTime;
+        }
+    }
+
+}
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanDOMToInternalDataModel.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanDOMToInternalDataModel.java
new file mode 100644
index 0000000..4eac71c
--- /dev/null
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanDOMToInternalDataModel.java
@@ -0,0 +1,202 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2021 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.dom;
+
+import static org.junit.Assert.assertEquals;
+import com.google.common.collect.Sets;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URISyntaxException;
+import java.time.Instant;
+import java.util.List;
+import java.util.Optional;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.opendaylight.mdsal.dom.api.DOMEvent;
+import org.opendaylight.mdsal.dom.api.DOMNotification;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogEntity;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Guicutthrough;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+import org.opendaylight.yangtools.util.xml.UntrustedXML;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
+import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
+import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
+import org.opendaylight.yangtools.yang.data.codec.xml.XmlParserStream;
+import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
+import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
+import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter;
+import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeResult;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
+import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.Inference;
+import org.xml.sax.SAXException;
+
+public class TestORanDOMToInternalDataModel {
+
+	private static final QNameModule IETF_HARDWARE_MODULE = QNameModule
+			.create(XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-hardware"), Revision.of("2018-03-13"));
+	private static final QName HW_CONTAINER = QName.create(IETF_HARDWARE_MODULE, "hardware");
+
+	private static final QNameModule IETF_SYSTEM_MODULE = QNameModule
+			.create(XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-system"), Revision.of("2014-08-06"));
+	private static final QName IETF_CONTAINER = QName.create(IETF_SYSTEM_MODULE, "system");
+
+	private static EffectiveModelContext schemaContext;
+	private static Inference hwContainerSchema;
+	private static Inference systemSchema;
+
+	private static final NodeId nodeId = new NodeId("nSky");
+
+	@BeforeClass
+	public static void setup() throws IOException {
+		schemaContext = YangParserTestUtils.parseYangResourceDirectory("/");
+		hwContainerSchema = Inference.ofDataTreePath(schemaContext, HW_CONTAINER);
+		systemSchema = Inference.ofDataTreePath(schemaContext, IETF_CONTAINER);
+	}
+
+	@AfterClass
+	public static void cleanup() {
+		schemaContext = null;
+		hwContainerSchema = null;
+		systemSchema = null;
+	}
+
+	@Test
+	public void testIetfHardwareFromXML() throws XMLStreamException, URISyntaxException, IOException, SAXException {
+
+		final InputStream resourceAsStream = TestORANReadHardware.class.getResourceAsStream("/ietf-hardware.xml");
+
+		/*
+		 * final XMLInputFactory factory = XMLInputFactory.newInstance();
+		 * XMLStreamReader reader = factory.createXMLStreamReader(resourceAsStream);
+		 */
+		final XMLStreamReader reader = UntrustedXML.createXMLStreamReader(resourceAsStream);
+
+		final NormalizedNodeResult result = new NormalizedNodeResult();
+		final NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result);
+
+		final XmlParserStream xmlParser = XmlParserStream.create(streamWriter, hwContainerSchema);
+		xmlParser.parse(reader);
+
+		xmlParser.flush();
+		xmlParser.close();
+
+		NormalizedNode transformedInput = result.getResult();
+
+		List<Inventory> inventoryList = ORanDOMToInternalDataModel.getInventoryList(nodeId, transformedInput);
+		assertEquals("All elements", 27, inventoryList.size());
+		assertEquals("Treelevel always there", 0,
+				inventoryList.stream().filter(inventory -> inventory.getTreeLevel() == null).count());
+	}
+
+	@Test
+	public void testIetfSystemFromXML() throws XMLStreamException, URISyntaxException, IOException, SAXException {
+
+		final InputStream resourceAsStream = TestORANReadHardware.class.getResourceAsStream("/onap-system.xml");
+
+		final XMLStreamReader reader = UntrustedXML.createXMLStreamReader(resourceAsStream);
+
+		final NormalizedNodeResult result = new NormalizedNodeResult();
+		final NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result);
+
+		final XmlParserStream xmlParser = XmlParserStream.create(streamWriter, systemSchema);
+		xmlParser.parse(reader);
+
+		xmlParser.flush();
+		xmlParser.close();
+
+		NormalizedNode transformedInput = result.getResult();
+		ContainerNode cn = (ContainerNode) transformedInput;
+		AugmentationIdentifier onapSystemIID = YangInstanceIdentifier.AugmentationIdentifier.create(
+				Sets.newHashSet(ORanDeviceManagerQNames.ONAP_SYSTEM_NAME, ORanDeviceManagerQNames.ONAP_SYSTEM_WEB_UI));
+		Optional<Guicutthrough> gc = ORanDOMToInternalDataModel.getGuicutthrough(cn.getChildByArg(onapSystemIID));
+		assertEquals(gc.isPresent(), true);
+
+	}
+
+	@Test
+	public void testORANFault() {
+		ContainerNode cn = createORANDOMFault();
+		NetconfDeviceNotification faultNotif = new NetconfDeviceNotification(cn, Instant.now());
+		FaultlogEntity fle = ORanDOMToInternalDataModel.getFaultLog(faultNotif, nodeId, 1);
+		assertEquals(fle.getId(), "47");
+	}
+
+	public static ContainerNode createORANDOMFault() {
+		final QName fault_id = QName.create(ORanDeviceManagerQNames.ORAN_FM_FAULT_ID, "fault-id");
+		final QName fault_source = QName.create(ORanDeviceManagerQNames.ORAN_FM_FAULT_SOURCE, "fault-source");
+		final QName fault_severity = QName.create(ORanDeviceManagerQNames.ORAN_FM_FAULT_SEVERITY, "fault-severity");
+		final QName is_cleared = QName.create(ORanDeviceManagerQNames.ORAN_FM_FAULT_IS_CLEARED, "is-cleared");
+		final QName fault_text = QName.create(ORanDeviceManagerQNames.ORAN_FM_FAULT_TEXT, "fault-text");
+		return Builders.containerBuilder()
+				.withNodeIdentifier(NodeIdentifier.create(ORanDeviceManagerQNames.ORAN_FM_ALARM_NOTIF))
+				.withChild(ImmutableNodes.leafNode(fault_id, "47"))
+				.withChild(ImmutableNodes.leafNode(fault_source, "Slot-2-Port-B"))
+				.withChild(ImmutableNodes.leafNode(fault_severity, "MAJOR"))
+				.withChild(ImmutableNodes.leafNode(is_cleared, "true"))
+				.withChild(ImmutableNodes.leafNode(fault_text, "CPRI Port Down")).build();
+	}
+
+	public static class NetconfDeviceNotification implements DOMNotification, DOMEvent {
+		private final ContainerNode content;
+		private final Absolute schemaPath;
+		private final Instant eventTime;
+
+		NetconfDeviceNotification(final ContainerNode content, final Instant eventTime) {
+			this.content = content;
+			this.eventTime = eventTime;
+			this.schemaPath = Absolute.of(content.getIdentifier().getNodeType());
+		}
+
+		NetconfDeviceNotification(final ContainerNode content, final Absolute schemaPath, final Instant eventTime) {
+			this.content = content;
+			this.eventTime = eventTime;
+			this.schemaPath = schemaPath;
+		}
+
+		@Override
+		public Absolute getType() {
+			return schemaPath;
+		}
+
+		@Override
+		public ContainerNode getBody() {
+			return content;
+		}
+
+		@Override
+		public Instant getEventInstant() {
+			return eventTime;
+		}
+	}
+}
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanNetworkElementFactory.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanNetworkElementFactory.java
similarity index 79%
rename from sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanNetworkElementFactory.java
rename to sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanNetworkElementFactory.java
index fc382bf..27793e4 100644
--- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanNetworkElementFactory.java
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanNetworkElementFactory.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START========================================================================
  * ONAP : ccsdk feature sdnr wt
  * =================================================================================================
- * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * Copyright (C) 2021 highstreet technologies GmbH Intellectual Property. All rights reserved.
  * =================================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
  * in compliance with the License. You may obtain a copy of the License at
@@ -15,7 +15,7 @@
  * the License.
  * ============LICENSE_END==========================================================================
  */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl;
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.dom;
 
 import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.mock;
@@ -26,37 +26,43 @@
 import org.junit.BeforeClass;
 import org.junit.Test;
 import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.startup.ORanNetworkElementFactory;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService;
 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.Capabilities;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor;
 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.TransactionUtils;
 import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService;
-import org.opendaylight.yang.gen.v1.urn.o.ran.hardware._1._0.rev190328.ORANHWCOMPONENT;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
 
 public class TestORanNetworkElementFactory {
 
     private static String NODEIDSTRING = "nSky";
 
-    private static NetconfBindingAccessor accessor;
+    private static NetconfAccessor accessor;
     private static DeviceManagerServiceProvider serviceProvider;
     private static Capabilities capabilities;
     private static VESCollectorService vesCollectorService;
     private static FaultService faultService;
     private static WebsocketManagerService notificationService;
     private static DataProvider databaseService;
+    private static NodeId nodeId = new NodeId(NODEIDSTRING);
 
     @BeforeClass
     public static void init() throws InterruptedException, IOException {
         NetconfBindingAccessor bindingAccessor = mock(NetconfBindingAccessor.class);
-        NodeId nodeId = new NodeId(NODEIDSTRING);
         when(bindingAccessor.getTransactionUtils()).thenReturn(mock(TransactionUtils.class));
         when(bindingAccessor.getNodeId()).thenReturn(nodeId);
 
+        NetconfDomAccessor domAccessor = mock(NetconfDomAccessor.class);
+        when(domAccessor.getNodeId()).thenReturn(nodeId);
+
         capabilities = mock(Capabilities.class);
-        accessor = mock(NetconfBindingAccessor.class);
+        //accessor = mock(NetconfBindingAccessor.class);
+        accessor = mock(NetconfAccessor.class);
         serviceProvider = mock(DeviceManagerServiceProvider.class);
         vesCollectorService = mock(VESCollectorService.class);
         faultService = mock(FaultService.class);
@@ -65,6 +71,7 @@
 
         when(accessor.getCapabilites()).thenReturn(capabilities);
         when(accessor.getNetconfBindingAccessor()).thenReturn(Optional.of(bindingAccessor));
+        when(accessor.getNetconfDomAccessor()).thenReturn(Optional.of(domAccessor));
         when(serviceProvider.getFaultService()).thenReturn(faultService);
         when(serviceProvider.getWebsocketService()).thenReturn(notificationService);
         when(serviceProvider.getDataProvider()).thenReturn(databaseService);
@@ -74,14 +81,14 @@
 
     @Test
     public void testCreateORANHWComponent() throws Exception {
-        when(accessor.getCapabilites().isSupportingNamespace(ORANHWCOMPONENT.QNAME)).thenReturn(true);
+        when(accessor.getCapabilites().isSupportingNamespace(ORanDeviceManagerQNames.ORAN_HW_COMPONENT)).thenReturn(true);
         ORanNetworkElementFactory factory = new ORanNetworkElementFactory();
         assertTrue((factory.create(accessor, serviceProvider)).isPresent());
     }
 
     @Test
     public void testCreateNone() throws Exception {
-        when(accessor.getCapabilites().isSupportingNamespace(ORANHWCOMPONENT.QNAME)).thenReturn(false);
+        when(accessor.getCapabilites().isSupportingNamespace(ORanDeviceManagerQNames.ORAN_HW_COMPONENT)).thenReturn(false);
         ORanNetworkElementFactory factory = new ORanNetworkElementFactory();
         assertTrue(!(factory.create(accessor, serviceProvider).isPresent()));
     }
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanRegistrationToVESpnfRegistration.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanRegistrationToVESpnfRegistration.java
new file mode 100644
index 0000000..d520af5
--- /dev/null
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanRegistrationToVESpnfRegistration.java
@@ -0,0 +1,119 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2021 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.dom;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.binding.ORanRegistrationToVESpnfRegistrationMapper;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorCfgService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESCommonEventHeaderPOJO;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESPNFRegistrationFieldsPOJO;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Host;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
+import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
+import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
+
+@RunWith(MockitoJUnitRunner.class)
+public class TestORanRegistrationToVESpnfRegistration {
+
+	@Mock
+	NetconfAccessor netconfAccessor;
+	@Mock
+	VESCollectorService vesCollectorService;
+	@Mock
+	VESCollectorCfgService vesCfgService;
+
+	private static final QNameModule IETF_HARDWARE_MODULE = QNameModule
+			.create(XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-hardware"), Revision.of("2018-03-13"));
+	private static final QName HW_COMPONENT_LIST = QName.create(IETF_HARDWARE_MODULE, "component");
+	private static final QName HW_COMPONENT_LIST_KEY = QName.create(IETF_HARDWARE_MODULE, "name");
+	private static final QName HW_COMPONENT_LIST_CLASS = QName.create(IETF_HARDWARE_MODULE, "class");
+	private static final QName HW_COMPONENT_LIST_PHYSICAL_INDEX = QName.create(IETF_HARDWARE_MODULE, "physical-index"); // leaf:int32
+	private static final QName HW_COMPONENT_LIST_DESC = QName.create(IETF_HARDWARE_MODULE, "description"); // leaf:String
+	private static final QName HW_COMPONENT_LIST_SW_REV = QName.create(IETF_HARDWARE_MODULE, "software-rev"); // leaf:String
+	private static final QName HW_COMPONENT_LIST_SER_NUM = QName.create(IETF_HARDWARE_MODULE, "serial-num"); // leaf:String
+	private static final QName HW_COMPONENT_LIST_MFG_NAME = QName.create(IETF_HARDWARE_MODULE, "mfg-name"); // leaf:String
+	private static final QName HW_COMPONENT_LIST_MODEL_NAME = QName.create(IETF_HARDWARE_MODULE, "model-name"); // leaf:String
+	private static final QName HW_COMPONENT_LIST_ALIAS = QName.create(IETF_HARDWARE_MODULE, "alias"); // leaf:String
+
+	@Test
+	public void test() {
+		NetconfNode testNetconfNode = mock(NetconfNode.class);
+		when(testNetconfNode.getHost()).thenReturn(new Host(new IpAddress(new Ipv4Address("10.10.10.10"))));
+
+		when(netconfAccessor.getNodeId()).thenReturn(new NodeId("nSky"));
+		when(netconfAccessor.getNetconfNode()).thenReturn(testNetconfNode);
+		when(vesCollectorService.getConfig()).thenReturn(vesCfgService);
+		when(vesCfgService.getReportingEntityName()).thenReturn("SDN-R");
+
+		ORanRegistrationToVESpnfRegistrationMapper mapper = new ORanRegistrationToVESpnfRegistrationMapper(
+				netconfAccessor, vesCollectorService);
+		VESCommonEventHeaderPOJO commonHeader = mapper.mapCommonEventHeader(buildComponentEntry());
+		VESPNFRegistrationFieldsPOJO pnfFields = mapper.mapPNFRegistrationFields(buildComponentEntry());
+
+		assertEquals(commonHeader.getNfVendorName(), "ISCO");
+		assertEquals(pnfFields.getUnitType(), "chassis");
+		assertEquals(pnfFields.getSerialNumber(), "10283");
+		assertEquals(pnfFields.getSoftwareVersion(), "3.8.1 (2020-10-30 11:47:59)");
+	}
+
+	public MapEntryNode buildComponentEntry() {
+		return Builders.mapEntryBuilder()
+				.withNodeIdentifier(
+						NodeIdentifierWithPredicates.of(HW_COMPONENT_LIST, HW_COMPONENT_LIST_KEY, "chassis"))
+				.withChild(Builders.leafBuilder().withNodeIdentifier(new NodeIdentifier(HW_COMPONENT_LIST_CLASS))
+						.withValue("ianahw:chassis").build())
+				.withChild(Builders.leafBuilder()
+						.withNodeIdentifier(new NodeIdentifier(HW_COMPONENT_LIST_PHYSICAL_INDEX)).withValue(1).build())
+				.withChild(Builders.leafBuilder().withNodeIdentifier(new NodeIdentifier(HW_COMPONENT_LIST_MFG_NAME))
+						.withValue("ISCO").build())
+				.withChild(Builders.leafBuilder().withNodeIdentifier(new NodeIdentifier(HW_COMPONENT_LIST_MODEL_NAME))
+						.withValue("ProteusCPRI Compact").build())
+				.withChild(Builders.leafBuilder().withNodeIdentifier(new NodeIdentifier(HW_COMPONENT_LIST_ALIAS))
+						.withValue("chassis").build())
+				.withChild(Builders.leafBuilder().withNodeIdentifier(new NodeIdentifier(HW_COMPONENT_LIST_SER_NUM))
+						.withValue("10283").build())
+				.withChild(Builders.leafBuilder().withNodeIdentifier(new NodeIdentifier(HW_COMPONENT_LIST_DESC))
+						.withValue("HighStreet-ONAP40").build())
+				.withChild(Builders.leafBuilder().withNodeIdentifier(new NodeIdentifier(HW_COMPONENT_LIST_SW_REV))
+						.withValue("3.8.1 (2020-10-30 11:47:59)").build())
+				.build();
+
+	}
+
+}
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/YangParserTestUtils.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/YangParserTestUtils.java
new file mode 100644
index 0000000..1d17260
--- /dev/null
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/YangParserTestUtils.java
@@ -0,0 +1,380 @@
+/*
+ * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.dom;
+
+import com.google.common.annotations.Beta;
+import java.io.File;
+import java.io.FileFilter;
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Locale;
+import java.util.ServiceLoader;
+import java.util.Set;
+import java.util.stream.Collectors;
+import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.common.YangConstants;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
+import org.opendaylight.yangtools.yang.parser.api.YangParser;
+import org.opendaylight.yangtools.yang.parser.api.YangParserConfiguration;
+import org.opendaylight.yangtools.yang.parser.api.YangParserException;
+import org.opendaylight.yangtools.yang.parser.api.YangParserFactory;
+import org.opendaylight.yangtools.yang.parser.api.YangSyntaxErrorException;
+import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceRepresentation;
+import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+
+/**
+ * Utility class which provides convenience methods for producing effective schema context based on the supplied
+ * yang/yin sources or paths to these sources.
+ */
+@Beta
+public final class YangParserTestUtils {
+
+    private static final FileFilter YANG_FILE_FILTER = file -> {
+        // Locale keeps SpotBugs happy. It should not matter that much anyway.
+        final String name = file.getName().toLowerCase(Locale.ENGLISH);
+        return name.endsWith(YangConstants.RFC6020_YANG_FILE_EXTENSION) && file.isFile();
+    };
+
+    private static final @NonNull YangParserFactory PARSER_FACTORY;
+
+    static {
+        final Iterator<@NonNull YangParserFactory> it = ServiceLoader.load(YangParserFactory.class).iterator();
+        if (!it.hasNext()) {
+            throw new IllegalStateException("No YangParserFactory found");
+        }
+        PARSER_FACTORY = it.next();
+    }
+
+    private YangParserTestUtils() {
+        // Hidden on purpose
+    }
+
+    /**
+     * Creates a new effective schema context containing the specified YANG source. Statement parser mode is set to
+     * default mode and all YANG features are supported.
+     *
+     * @param resource relative path to the YANG file to be parsed
+     *
+     * @return effective schema context
+     */
+    public static EffectiveModelContext parseYangResource(final String resource) {
+        return parseYangResource(resource, YangParserConfiguration.DEFAULT);
+    }
+
+    /**
+     * Creates a new effective schema context containing the specified YANG source. All YANG features are supported.
+     *
+     * @param resource relative path to the YANG file to be parsed
+     * @param parserMode mode of statement parser
+     * @return effective schema context
+     */
+    public static EffectiveModelContext parseYangResource(final String resource, final YangParserConfiguration config) {
+        return parseYangResource(resource, config, null);
+    }
+
+    /**
+     * Creates a new effective schema context containing the specified YANG source. Statement parser mode is set to
+     * default mode.
+     *
+     * @param resource relative path to the YANG file to be parsed
+     * @param supportedFeatures set of supported features based on which all if-feature statements in the parsed YANG
+     *                          model are resolved
+     * @return effective schema context
+     */
+    public static EffectiveModelContext parseYangResource(final String resource, final Set<QName> supportedFeatures) {
+        return parseYangResource(resource, YangParserConfiguration.DEFAULT, supportedFeatures);
+    }
+
+    /**
+     * Creates a new effective schema context containing the specified YANG source.
+     *
+     * @param resource relative path to the YANG file to be parsed
+     * @param supportedFeatures set of supported features based on which all if-feature statements in the parsed YANG
+     *                          model are resolved
+     * @param parserMode mode of statement parser
+     * @return effective schema context
+     */
+    public static EffectiveModelContext parseYangResource(final String resource, final YangParserConfiguration config,
+            final Set<QName> supportedFeatures) {
+        final YangTextSchemaSource source = YangTextSchemaSource.forResource(YangParserTestUtils.class, resource);
+        return parseYangSources(config, supportedFeatures, source);
+    }
+
+    /**
+     * Creates a new effective schema context containing the specified YANG sources. Statement parser mode is set to
+     * default mode and all YANG features are supported.
+     *
+     * @param files YANG files to be parsed
+     * @return effective schema context
+     */
+    public static EffectiveModelContext parseYangFiles(final File... files) {
+        return parseYangFiles(Arrays.asList(files));
+    }
+
+    /**
+     * Creates a new effective schema context containing the specified YANG sources. Statement parser mode is set to
+     * default mode and all YANG features are supported.
+     *
+     * @param files collection of YANG files to be parsed
+     * @return effective schema context
+     */
+    public static EffectiveModelContext parseYangFiles(final Collection<File> files) {
+        return parseYangFiles(YangParserConfiguration.DEFAULT, files);
+    }
+
+    /**
+     * Creates a new effective schema context containing the specified YANG sources. Statement parser mode is set to
+     * default mode.
+     *
+     * @param supportedFeatures set of supported features based on which all if-feature statements in the parsed YANG
+     *                          models are resolved
+     * @param files YANG files to be parsed
+     * @return effective schema context
+     */
+    public static EffectiveModelContext parseYangFiles(final Set<QName> supportedFeatures, final File... files) {
+        return parseYangFiles(supportedFeatures, Arrays.asList(files));
+    }
+
+    public static EffectiveModelContext parseYangFiles(final Set<QName> supportedFeatures,
+            final Collection<File> files) {
+        return parseYangFiles(supportedFeatures, YangParserConfiguration.DEFAULT, files);
+    }
+
+    /**
+     * Creates a new effective schema context containing the specified YANG sources. All YANG features are supported.
+     *
+     * @param parserMode mode of statement parser
+     * @param files YANG files to be parsed
+     * @return effective schema context
+     */
+    public static EffectiveModelContext parseYangFiles(final YangParserConfiguration config, final File... files) {
+        return parseYangFiles(config, Arrays.asList(files));
+    }
+
+    /**
+     * Creates a new effective schema context containing the specified YANG sources. All YANG features are supported.
+     *
+     * @param parserMode mode of statement parser
+     * @param files collection of YANG files to be parsed
+     * @return effective schema context
+     */
+    public static EffectiveModelContext parseYangFiles(final YangParserConfiguration config,
+            final Collection<File> files) {
+        return parseYangFiles(null, config, files);
+    }
+
+    /**
+     * Creates a new effective schema context containing the specified YANG sources.
+     *
+     * @param supportedFeatures set of supported features based on which all if-feature statements in the parsed YANG
+     *                          models are resolved
+     * @param parserMode mode of statement parser
+     * @param files YANG files to be parsed
+     * @return effective schema context
+     */
+    public static EffectiveModelContext parseYangFiles(final Set<QName> supportedFeatures,
+    		final YangParserConfiguration config, final File... files) {
+        return parseYangFiles(supportedFeatures, config, Arrays.asList(files));
+    }
+
+    /**
+     * Creates a new effective schema context containing the specified YANG sources.
+     *
+     * @param supportedFeatures set of supported features based on which all if-feature statements in the parsed YANG
+     *                          models are resolved
+     * @param parserMode mode of statement parser
+     * @param files YANG files to be parsed
+     * @return effective schema context
+     */
+    public static EffectiveModelContext parseYangFiles(final Set<QName> supportedFeatures,
+    		final YangParserConfiguration config, final Collection<File> files) {
+        return parseSources(config, supportedFeatures,
+            files.stream().map(YangTextSchemaSource::forFile).collect(Collectors.toList()));
+    }
+
+    /**
+     * Creates a new effective schema context containing the specified YANG sources. Statement parser mode is set to
+     * default mode and all YANG features are supported.
+     *
+     * @param resourcePath relative path to the directory with YANG files to be parsed
+     * @return effective schema context
+     */
+    public static EffectiveModelContext parseYangResourceDirectory(final String resourcePath) {
+        return parseYangResourceDirectory(resourcePath, YangParserConfiguration.DEFAULT);
+    }
+
+    /**
+     * Creates a new effective schema context containing the specified YANG sources. All YANG features are supported.
+     *
+     * @param resourcePath relative path to the directory with YANG files to be parsed
+     * @param parserMode mode of statement parser
+     * @return effective schema context
+     */
+    public static EffectiveModelContext parseYangResourceDirectory(final String resourcePath,
+    		final YangParserConfiguration config) {
+        return parseYangResourceDirectory(resourcePath, null, config);
+    }
+
+    /**
+     * Creates a new effective schema context containing the specified YANG sources. Statement parser mode is set to
+     * default mode.
+     *
+     * @param resourcePath relative path to the directory with YANG files to be parsed
+     * @param supportedFeatures set of supported features based on which all if-feature statements in the parsed YANG
+     *                          models are resolved
+     * @return effective schema context
+     */
+    public static EffectiveModelContext parseYangResourceDirectory(final String resourcePath,
+            final Set<QName> supportedFeatures) {
+        return parseYangResourceDirectory(resourcePath, supportedFeatures, YangParserConfiguration.DEFAULT);
+    }
+
+    /**
+     * Creates a new effective schema context containing the specified YANG sources.
+     *
+     * @param resourcePath relative path to the directory with YANG files to be parsed
+     * @param supportedFeatures set of supported features based on which all if-feature statements in the parsed YANG
+     *                          models are resolved
+     * @param parserMode mode of statement parser
+     * @return effective schema context
+     */
+    @SuppressFBWarnings(value = "NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE", justification = "Wrong inferent on listFiles")
+    public static EffectiveModelContext parseYangResourceDirectory(final String resourcePath,
+            final Set<QName> supportedFeatures, final YangParserConfiguration config) {
+        final URI directoryPath;
+        try {
+            directoryPath = YangParserTestUtils.class.getResource(resourcePath).toURI();
+        } catch (URISyntaxException e) {
+            throw new IllegalArgumentException("Failed to open resource " + resourcePath, e);
+        }
+        return parseYangFiles(supportedFeatures, config, new File(directoryPath).listFiles(YANG_FILE_FILTER));
+    }
+
+    /**
+     * Creates a new effective schema context containing the specified YANG sources. Statement parser mode is set to
+     * default mode and all YANG features are supported.
+     *
+     * @param clazz Resource lookup base
+     * @param resources Resource names to be looked up
+     * @return effective schema context
+     */
+    public static EffectiveModelContext parseYangResources(final Class<?> clazz, final String... resources) {
+        return parseYangResources(clazz, Arrays.asList(resources));
+    }
+
+    public static EffectiveModelContext parseYangResources(final Class<?> clazz, final Collection<String> resources) {
+        final List<YangTextSchemaSource> sources = new ArrayList<>(resources.size());
+        for (final String r : resources) {
+            sources.add(YangTextSchemaSource.forResource(clazz, r));
+        }
+        return parseSources(YangParserConfiguration.DEFAULT, null, sources);
+    }
+
+    /**
+     * Creates a new effective schema context containing the specified YANG sources. Statement parser mode is set to
+     * default mode.
+     *
+     * @param yangDirs relative paths to the directories containing YANG files to be parsed
+     * @param yangFiles relative paths to the YANG files to be parsed
+     * @param supportedFeatures set of supported features based on which all if-feature statements in the parsed YANG
+     *                          models are resolved
+     * @return effective schema context
+     */
+    public static EffectiveModelContext parseYangResources(final List<String> yangDirs, final List<String> yangFiles,
+            final Set<QName> supportedFeatures) {
+        return parseYangResources(yangDirs, yangFiles, supportedFeatures, YangParserConfiguration.DEFAULT);
+    }
+
+    /**
+     * Creates a new effective schema context containing the specified YANG sources. All YANG features are supported.
+     *
+     * @param yangResourceDirs relative paths to the directories containing YANG files to be parsed
+     * @param yangResources relative paths to the YANG files to be parsed
+     * @param statementParserMode mode of statement parser
+     * @return effective schema context
+     */
+    public static EffectiveModelContext parseYangResources(final List<String> yangResourceDirs,
+            final List<String> yangResources, final YangParserConfiguration config) {
+        return parseYangResources(yangResourceDirs, yangResources, null, config);
+    }
+
+    /**
+     * Creates a new effective schema context containing the specified YANG sources.
+     *
+     * @param yangResourceDirs relative paths to the directories containing YANG files to be parsed
+     * @param yangResources relative paths to the YANG files to be parsed
+     * @param supportedFeatures set of supported features based on which all if-feature statements in the parsed YANG
+     *                          models are resolved
+     * @param statementParserMode mode of statement parser
+     * @return effective schema context
+     */
+    public static EffectiveModelContext parseYangResources(final List<String> yangResourceDirs,
+            final List<String> yangResources, final Set<QName> supportedFeatures,
+            final YangParserConfiguration config) {
+        final List<File> allYangFiles = new ArrayList<>();
+        for (final String yangDir : yangResourceDirs) {
+            allYangFiles.addAll(getYangFiles(yangDir));
+        }
+
+        for (final String yangFile : yangResources) {
+            try {
+                allYangFiles.add(new File(YangParserTestUtils.class.getResource(yangFile).toURI()));
+            } catch (URISyntaxException e) {
+                throw new IllegalArgumentException("Invalid resource " + yangFile, e);
+            }
+        }
+
+        return parseYangFiles(supportedFeatures, config, allYangFiles);
+    }
+
+    public static EffectiveModelContext parseYangSources(final YangParserConfiguration config,
+            final Set<QName> supportedFeatures, final YangTextSchemaSource... sources) {
+        return parseSources(config, supportedFeatures, Arrays.asList(sources));
+    }
+
+    public static EffectiveModelContext parseSources(final YangParserConfiguration config,
+            final Set<QName> supportedFeatures, final Collection<? extends SchemaSourceRepresentation> sources) {
+        final YangParser parser = PARSER_FACTORY.createParser(config);
+        if (supportedFeatures != null) {
+            parser.setSupportedFeatures(supportedFeatures);
+        }
+
+        try {
+            parser.addSources(sources);
+        } catch (YangSyntaxErrorException e) {
+            throw new IllegalArgumentException("Malformed source", e);
+        } catch (IOException e) {
+            throw new IllegalArgumentException("Failed to read a source", e);
+        }
+
+        try {
+            return parser.buildEffectiveModel();
+        } catch (YangParserException e) {
+            throw new IllegalStateException("Failed to assemble SchemaContext", e);
+        }
+    }
+
+    @SuppressFBWarnings(value = "NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE", justification = "Wrong inferent on listFiles")
+    private static Collection<File> getYangFiles(final String resourcePath) {
+        final URI directoryPath;
+        try {
+            directoryPath = YangParserTestUtils.class.getResource(resourcePath).toURI();
+        } catch (URISyntaxException e) {
+            throw new IllegalArgumentException("Failed to open resource directory " + resourcePath, e);
+        }
+        return Arrays.asList(new File(directoryPath).listFiles(YANG_FILE_FILTER));
+    }
+}
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/iana-crypt-hash@2014-08-06.yang b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/iana-crypt-hash@2014-08-06.yang
new file mode 100644
index 0000000..44c4674
--- /dev/null
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/iana-crypt-hash@2014-08-06.yang
@@ -0,0 +1,120 @@
+module iana-crypt-hash {
+  namespace "urn:ietf:params:xml:ns:yang:iana-crypt-hash";
+  prefix ianach;
+
+  organization "IANA";
+  contact
+    "        Internet Assigned Numbers Authority
+
+     Postal: ICANN
+             12025 Waterfront Drive, Suite 300
+             Los Angeles, CA  90094-2536
+             United States
+
+     Tel:    +1 310 301 5800
+     E-Mail: iana@iana.org>";
+  description
+    "This YANG module defines a type for storing passwords
+     using a hash function and features to indicate which hash
+     functions are supported by an implementation.
+
+     The latest revision of this YANG module can be obtained from
+     the IANA web site.
+
+     Requests for new values should be made to IANA via
+     email (iana@iana.org).
+
+     Copyright (c) 2014 IETF Trust and the persons identified as
+     authors of the code.  All rights reserved.
+
+     Redistribution and use in source and binary forms, with or
+     without modification, is permitted pursuant to, and subject
+     to the license terms contained in, the Simplified BSD License
+     set forth in Section 4.c of the IETF Trust's Legal Provisions
+     Relating to IETF Documents
+     (http://trustee.ietf.org/license-info).
+
+     The initial version of this YANG module is part of RFC 7317;
+     see the RFC itself for full legal notices.";
+
+  revision 2014-08-06 {
+    description
+      "Initial revision.";
+    reference
+      "RFC 7317: A YANG Data Model for System Management";
+  }
+
+  typedef crypt-hash {
+    type string {
+      pattern
+        '$0$.*'
+      + '|$1$[a-zA-Z0-9./]{1,8}$[a-zA-Z0-9./]{22}'
+      + '|$5$(rounds=\d+$)?[a-zA-Z0-9./]{1,16}$[a-zA-Z0-9./]{43}'
+      + '|$6$(rounds=\d+$)?[a-zA-Z0-9./]{1,16}$[a-zA-Z0-9./]{86}';
+    }
+    description
+      "The crypt-hash type is used to store passwords using
+       a hash function.  The algorithms for applying the hash
+       function and encoding the result are implemented in
+       various UNIX systems as the function crypt(3).
+
+       A value of this type matches one of the forms:
+
+         $0$<clear text password>
+         $<id>$<salt>$<password hash>
+         $<id>$<parameter>$<salt>$<password hash>
+
+       The '$0$' prefix signals that the value is clear text.  When
+       such a value is received by the server, a hash value is
+       calculated, and the string '$<id>$<salt>$' or
+       $<id>$<parameter>$<salt>$ is prepended to the result.  This
+       value is stored in the configuration data store.
+       If a value starting with '$<id>$', where <id> is not '0', is
+       received, the server knows that the value already represents a
+       hashed value and stores it 'as is' in the data store.
+
+       When a server needs to verify a password given by a user, it
+       finds the stored password hash string for that user, extracts
+       the salt, and calculates the hash with the salt and given
+       password as input.  If the calculated hash value is the same
+       as the stored value, the password given by the client is
+       accepted.
+
+       This type defines the following hash functions:
+
+         id | hash function | feature
+         ---+---------------+-------------------
+          1 | MD5           | crypt-hash-md5
+          5 | SHA-256       | crypt-hash-sha-256
+          6 | SHA-512       | crypt-hash-sha-512
+
+       The server indicates support for the different hash functions
+       by advertising the corresponding feature.";
+    reference
+      "IEEE Std 1003.1-2008 - crypt() function
+       RFC 1321: The MD5 Message-Digest Algorithm
+       FIPS.180-4.2012: Secure Hash Standard (SHS)";
+  }
+
+  feature crypt-hash-md5 {
+    description
+      "Indicates that the device supports the MD5
+       hash function in 'crypt-hash' values.";
+    reference "RFC 1321: The MD5 Message-Digest Algorithm";
+  }
+
+  feature crypt-hash-sha-256 {
+    description
+      "Indicates that the device supports the SHA-256
+       hash function in 'crypt-hash' values.";
+    reference "FIPS.180-4.2012: Secure Hash Standard (SHS)";
+  }
+
+  feature crypt-hash-sha-512 {
+    description
+      "Indicates that the device supports the SHA-512
+       hash function in 'crypt-hash' values.";
+    reference "FIPS.180-4.2012: Secure Hash Standard (SHS)";
+  }
+
+}
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/iana-hardware.yang b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/iana-hardware.yang
new file mode 100755
index 0000000..52bcaf3
--- /dev/null
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/iana-hardware.yang
@@ -0,0 +1,180 @@
+module iana-hardware {
+yang-version 1.1;
+namespace "urn:ietf:params:xml:ns:yang:iana-hardware";
+prefix ianahw;
+
+organization "IANA";
+contact
+  "        Internet Assigned Numbers Authority
+   Postal: ICANN
+           12025 Waterfront Drive, Suite 300
+           Los Angeles, CA  90094-2536
+           United States of America
+   Tel:    +1 310 301 5800
+   E-Mail: iana@iana.org>";
+
+description
+  "IANA-defined identities for hardware class.
+   The latest revision of this YANG module can be obtained from
+   the IANA website.
+   Requests for new values should be made to IANA via
+   email (iana@iana.org).
+   Copyright (c) 2018 IETF Trust and the persons identified as
+   authors of the code.  All rights reserved.
+   Redistribution and use in source and binary forms, with or
+   without modification, is permitted pursuant to, and subject
+   to the license terms contained in, the Simplified BSD License
+   set forth in Section 4.c of the IETF Trust's Legal Provisions
+   Relating to IETF Documents
+   (https://trustee.ietf.org/license-info).
+   The initial version of this YANG module is part of RFC 8348;
+   see the RFC itself for full legal notices.";
+reference
+  "https://www.iana.org/assignments/yang-parameters";
+
+revision 2018-03-13 {
+  description
+    "Initial revision.";
+  reference
+    "RFC 8348: A YANG Data Model for Hardware Management";
+}
+
+/*
+ * Identities
+ */
+
+identity hardware-class {
+  description
+    "This identity is the base for all hardware class
+     identifiers.";
+}
+
+identity unknown {
+  base ianahw:hardware-class;
+  description
+    "This identity is applicable if the hardware class is unknown
+     to the server.";
+}
+
+identity chassis {
+  base ianahw:hardware-class;
+  description
+    "This identity is applicable if the hardware class is an
+     overall container for networking equipment.  Any class of
+     physical component, except a stack, may be contained within a
+     chassis; a chassis may only be contained within a stack.";
+}
+
+identity backplane {
+  base ianahw:hardware-class;
+  description
+    "This identity is applicable if the hardware class is some sort
+     of device for aggregating and forwarding networking traffic,
+     such as a shared backplane in a modular ethernet switch.  Note
+     that an implementation may model a backplane as a single
+     physical component, which is actually implemented as multiple
+     discrete physical components (within a chassis or stack).";
+}
+
+identity container {
+  base ianahw:hardware-class;
+  description
+    "This identity is applicable if the hardware class is capable
+     of containing one or more removable physical entities,
+     possibly of different types.  For example, each (empty or
+     full) slot in a chassis will be modeled as a container.  Note
+     that all removable physical components should be modeled
+     within a container component, such as field-replaceable
+     modules, fans, or power supplies.  Note that all known
+     containers should be modeled by the agent, including empty
+     containers.";
+}
+
+identity power-supply {
+  base ianahw:hardware-class;
+  description
+    "This identity is applicable if the hardware class is a
+     power-supplying component.";
+}
+
+identity fan {
+  base ianahw:hardware-class;
+  description
+    "This identity is applicable if the hardware class is a fan or
+     other heat-reduction component.";
+}
+
+identity sensor {
+  base ianahw:hardware-class;
+  description
+    "This identity is applicable if the hardware class is some sort
+     of sensor, such as a temperature sensor within a router
+     chassis.";
+}
+
+identity module {
+  base ianahw:hardware-class;
+  description
+    "This identity is applicable if the hardware class is some sort
+     of self-contained sub-system.  If a module component is
+     removable, then it should be modeled within a container
+     component; otherwise, it should be modeled directly within
+     another physical component (e.g., a chassis or another
+     module).";
+}
+
+identity port {
+  base ianahw:hardware-class;
+  description
+    "This identity is applicable if the hardware class is some sort
+     of networking port capable of receiving and/or transmitting
+     networking traffic.";
+}
+
+identity stack {
+  base ianahw:hardware-class;
+  description
+    "This identity is applicable if the hardware class is some sort
+     of super-container (possibly virtual) intended to group
+     together multiple chassis entities.  A stack may be realized
+     by a virtual cable, a real interconnect cable attached to
+     multiple chassis, or multiple interconnect cables.  A stack
+     should not be modeled within any other physical components,
+     but a stack may be contained within another stack.  Only
+     chassis components should be contained within a stack.";
+}
+
+identity cpu {
+  base ianahw:hardware-class;
+  description
+    "This identity is applicable if the hardware class is some sort
+     of central processing unit.";
+}
+
+identity energy-object {
+  base ianahw:hardware-class;
+  description
+    "This identity is applicable if the hardware class is some sort
+     of energy object, i.e., it is a piece of equipment that is
+     part of or attached to a communications network that is
+     monitored, it is controlled, or it aids in the management of
+     another device for Energy Management.";
+}
+
+identity battery {
+  base ianahw:hardware-class;
+  description
+    "This identity is applicable if the hardware class is some sort
+     of battery.";
+}
+
+identity storage-drive {
+  base ianahw:hardware-class;
+  description
+    "This identity is applicable if the hardware class is some sort
+     of component with data storage capability as its main
+     functionality, e.g., hard disk drive (HDD), solid-state device
+     (SSD), solid-state hybrid drive (SSHD), object storage device
+     (OSD), or other.";
+}
+}
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/ietf-hardware.xml b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/ietf-hardware.xml
new file mode 100644
index 0000000..60f9986
--- /dev/null
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/ietf-hardware.xml
@@ -0,0 +1,418 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<hardware xmlns="urn:ietf:params:xml:ns:yang:ietf-hardware">
+    <component>
+        <name>chassis</name>
+        <alias>chassis</alias>
+        <class xmlns:ianahw="urn:ietf:params:xml:ns:yang:iana-hardware">ianahw:chassis</class>
+        <state>
+            <admin-state>unlocked</admin-state>
+            <oper-state>enabled</oper-state>
+        </state>
+        <serial-num>10283</serial-num>
+        <software-rev>3.8.1 (2020-10-30 11:47:59)</software-rev>
+        <mfg-name>ISCO</mfg-name>
+        <model-name>ProteusCPRI Compact</model-name>
+        <description>HighStreet-ONAP40</description>
+        <contains-child>chassis-temperature-exhaust</contains-child>
+        <contains-child>chassis-temperature-inlet</contains-child>
+        <contains-child>chassis-fan0</contains-child>
+        <contains-child>chassis-fan1</contains-child>
+        <contains-child>chassis-fan2</contains-child>
+        <contains-child>chassis-fan3</contains-child>
+        <contains-child>cpu</contains-child>
+        <contains-child>slot0</contains-child>
+        <contains-child>slot2</contains-child>
+    </component>
+    <component>
+        <name>chassis-temperature-exhaust</name>
+        <alias>chassis-temperature-exhaust</alias>
+        <class xmlns:ianahw="urn:ietf:params:xml:ns:yang:iana-hardware">ianahw:sensor</class>
+        <state>
+            <admin-state>locked</admin-state>
+            <oper-state>enabled</oper-state>
+        </state>
+        <parent>chassis</parent>
+        <parent-rel-pos>0</parent-rel-pos>
+        <sensor-data>
+            <value>30</value>
+            <value-type>celsius</value-type>
+            <value-timestamp>2021-03-18T19:51:50.3Z</value-timestamp>
+            <oper-status>ok</oper-status>
+        </sensor-data>
+    </component>
+    <component>
+        <name>chassis-temperature-inlet</name>
+        <alias>chassis-temperature-inlet</alias>
+        <class xmlns:ianahw="urn:ietf:params:xml:ns:yang:iana-hardware">ianahw:sensor</class>
+        <state>
+            <admin-state>locked</admin-state>
+            <oper-state>enabled</oper-state>
+        </state>
+        <parent>chassis</parent>
+        <parent-rel-pos>1</parent-rel-pos>
+        <sensor-data>
+            <value>29</value>
+            <value-type>celsius</value-type>
+            <value-timestamp>2021-03-18T19:51:50.3Z</value-timestamp>
+            <oper-status>ok</oper-status>
+        </sensor-data>
+    </component>
+    <component>
+        <name>chassis-fan0</name>
+        <alias>chassis-fan0</alias>
+        <class xmlns:ianahw="urn:ietf:params:xml:ns:yang:iana-hardware">ianahw:fan</class>
+        <state>
+            <admin-state>locked</admin-state>
+            <oper-state>enabled</oper-state>
+        </state>
+        <parent>chassis</parent>
+        <parent-rel-pos>2</parent-rel-pos>
+        <contains-child>chassis-fan0-speed</contains-child>
+    </component>
+    <component>
+        <name>chassis-fan0-speed</name>
+        <alias>chassis-fan0-speed</alias>
+        <class xmlns:ianahw="urn:ietf:params:xml:ns:yang:iana-hardware">ianahw:sensor</class>
+        <state>
+            <admin-state>locked</admin-state>
+            <oper-state>enabled</oper-state>
+        </state>
+        <parent>chassis-fan0</parent>
+        <parent-rel-pos>0</parent-rel-pos>
+        <sensor-data>
+            <value>4100</value>
+            <value-type>rpm</value-type>
+            <value-timestamp>2021-03-18T19:51:50.3Z</value-timestamp>
+            <oper-status>ok</oper-status>
+        </sensor-data>
+    </component>
+    <component>
+        <name>chassis-fan1</name>
+        <alias>chassis-fan1</alias>
+        <class xmlns:ianahw="urn:ietf:params:xml:ns:yang:iana-hardware">ianahw:fan</class>
+        <state>
+            <admin-state>locked</admin-state>
+            <oper-state>enabled</oper-state>
+        </state>
+        <parent>chassis</parent>
+        <parent-rel-pos>3</parent-rel-pos>
+        <contains-child>chassis-fan1-speed</contains-child>
+    </component>
+    <component>
+        <name>chassis-fan1-speed</name>
+        <alias>chassis-fan1-speed</alias>
+        <class xmlns:ianahw="urn:ietf:params:xml:ns:yang:iana-hardware">ianahw:sensor</class>
+        <state>
+            <admin-state>locked</admin-state>
+            <oper-state>enabled</oper-state>
+        </state>
+        <parent>chassis-fan1</parent>
+        <parent-rel-pos>0</parent-rel-pos>
+        <sensor-data>
+            <value>4100</value>
+            <value-type>rpm</value-type>
+            <value-timestamp>2021-03-18T19:51:50.3Z</value-timestamp>
+            <oper-status>ok</oper-status>
+        </sensor-data>
+    </component>
+    <component>
+        <name>chassis-fan2</name>
+        <alias>chassis-fan2</alias>
+        <class xmlns:ianahw="urn:ietf:params:xml:ns:yang:iana-hardware">ianahw:fan</class>
+        <state>
+            <admin-state>locked</admin-state>
+            <oper-state>enabled</oper-state>
+        </state>
+        <parent>chassis</parent>
+        <parent-rel-pos>4</parent-rel-pos>
+        <contains-child>chassis-fan2-speed</contains-child>
+    </component>
+    <component>
+        <name>chassis-fan2-speed</name>
+        <alias>chassis-fan2-speed</alias>
+        <class xmlns:ianahw="urn:ietf:params:xml:ns:yang:iana-hardware">ianahw:sensor</class>
+        <state>
+            <admin-state>locked</admin-state>
+            <oper-state>enabled</oper-state>
+        </state>
+        <parent>chassis-fan2</parent>
+        <parent-rel-pos>0</parent-rel-pos>
+        <sensor-data>
+            <value>4100</value>
+            <value-type>rpm</value-type>
+            <value-timestamp>2021-03-18T19:51:50.3Z</value-timestamp>
+            <oper-status>ok</oper-status>
+        </sensor-data>
+    </component>
+    <component>
+        <name>chassis-fan3</name>
+        <alias>chassis-fan3</alias>
+        <class xmlns:ianahw="urn:ietf:params:xml:ns:yang:iana-hardware">ianahw:fan</class>
+        <state>
+            <admin-state>locked</admin-state>
+            <oper-state>enabled</oper-state>
+        </state>
+        <parent>chassis</parent>
+        <parent-rel-pos>5</parent-rel-pos>
+        <contains-child>chassis-fan3-speed</contains-child>
+    </component>
+    <component>
+        <name>chassis-fan3-speed</name>
+        <alias>chassis-fan3-speed</alias>
+        <class xmlns:ianahw="urn:ietf:params:xml:ns:yang:iana-hardware">ianahw:sensor</class>
+        <state>
+            <admin-state>locked</admin-state>
+            <oper-state>enabled</oper-state>
+        </state>
+        <parent>chassis-fan3</parent>
+        <parent-rel-pos>0</parent-rel-pos>
+        <sensor-data>
+            <value>1000</value>
+            <value-type>rpm</value-type>
+            <value-timestamp>2021-03-18T19:51:50.3Z</value-timestamp>
+            <oper-status>ok</oper-status>
+        </sensor-data>
+    </component>
+    <component>
+        <name>cpu</name>
+        <alias>cpu</alias>
+        <class xmlns:ianahw="urn:ietf:params:xml:ns:yang:iana-hardware">ianahw:cpu</class>
+        <state>
+            <admin-state>locked</admin-state>
+            <oper-state>enabled</oper-state>
+        </state>
+        <parent>chassis</parent>
+        <parent-rel-pos>6</parent-rel-pos>
+        <contains-child>cpu-temperature</contains-child>
+    </component>
+    <component>
+        <name>cpu-temperature</name>
+        <alias>cpu-temperature</alias>
+        <class xmlns:ianahw="urn:ietf:params:xml:ns:yang:iana-hardware">ianahw:sensor</class>
+        <state>
+            <admin-state>locked</admin-state>
+            <oper-state>enabled</oper-state>
+        </state>
+        <parent>cpu</parent>
+        <parent-rel-pos>0</parent-rel-pos>
+        <sensor-data>
+            <value>30</value>
+            <value-type>celsius</value-type>
+            <value-timestamp>2021-03-18T19:51:50.3Z</value-timestamp>
+            <oper-status>ok</oper-status>
+        </sensor-data>
+    </component>
+    <component>
+        <name>slot0</name>
+        <alias>slot0</alias>
+        <class xmlns:ianahw="urn:ietf:params:xml:ns:yang:iana-hardware">ianahw:module</class>
+        <state>
+            <admin-state>unlocked</admin-state>
+            <oper-state>enabled</oper-state>
+        </state>
+        <parent>chassis</parent>
+        <parent-rel-pos>7</parent-rel-pos>
+        <serial-num>7220530</serial-num>
+        <firmware-rev>12.00.42-S (0F7F1001)</firmware-rev>
+        <software-rev>0</software-rev>
+        <model-name>385A-SFP-2P-40-FHL-JC3</model-name>
+        <contains-child>slot0-temperature</contains-child>
+        <contains-child>slot0-logical0</contains-child>
+        <contains-child>slot0-logical1</contains-child>
+        <contains-child>slot0-logical2</contains-child>
+    </component>
+    <component>
+        <name>slot0-temperature</name>
+        <alias>slot0-temperature</alias>
+        <class xmlns:ianahw="urn:ietf:params:xml:ns:yang:iana-hardware">ianahw:sensor</class>
+        <state>
+            <admin-state>locked</admin-state>
+            <oper-state>enabled</oper-state>
+        </state>
+        <parent>slot0</parent>
+        <parent-rel-pos>0</parent-rel-pos>
+        <sensor-data>
+            <value>51</value>
+            <value-type>celsius</value-type>
+            <value-timestamp>2021-03-18T19:51:50.3Z</value-timestamp>
+            <oper-status>ok</oper-status>
+        </sensor-data>
+    </component>
+    <component>
+        <name>slot0-logical0</name>
+        <alias>Slot0-A</alias>
+        <class xmlns:ianahw="urn:ietf:params:xml:ns:yang:iana-hardware">ianahw:module</class>
+        <state>
+            <admin-state>unlocked</admin-state>
+            <oper-state>enabled</oper-state>
+        </state>
+        <parent>slot0</parent>
+        <parent-rel-pos>1</parent-rel-pos>
+        <description>SLOT0-AZ</description>
+        <contains-child>slot0-logical0-bbu</contains-child>
+        <contains-child>slot0-logical0-rrh</contains-child>
+    </component>
+    <component>
+        <name>slot0-logical0-bbu</name>
+        <alias>Slot0-A-bbu</alias>
+        <class xmlns:ianahw="urn:ietf:params:xml:ns:yang:iana-hardware">ianahw:port</class>
+        <state>
+            <admin-state>unlocked</admin-state>
+            <oper-state>enabled</oper-state>
+        </state>
+        <parent>slot0-logical0</parent>
+        <parent-rel-pos>0</parent-rel-pos>
+        <o-ran-name xmlns="urn:o-ran:hardware:1.0">slot0-logical0-bbu</o-ran-name>
+        <serial-num>AYR3GA2</serial-num>
+        <mfg-name>FINISAR CORP.</mfg-name>
+        <model-name>FTLX1475D3BTL-E7</model-name>
+        <contains-child>slot0-logical0-bbu-temperature</contains-child>
+    </component>
+    <component>
+        <name>slot0-logical0-bbu-temperature</name>
+        <alias>Slot0-A-bbu-temperature</alias>
+        <class xmlns:ianahw="urn:ietf:params:xml:ns:yang:iana-hardware">ianahw:sensor</class>
+        <state>
+            <admin-state>locked</admin-state>
+            <oper-state>enabled</oper-state>
+        </state>
+        <parent>slot0-logical0-bbu</parent>
+        <parent-rel-pos>0</parent-rel-pos>
+        <sensor-data>
+            <value>37</value>
+            <value-type>celsius</value-type>
+            <value-timestamp>2021-03-18T19:51:50.3Z</value-timestamp>
+            <oper-status>ok</oper-status>
+        </sensor-data>
+    </component>
+    <component>
+        <name>slot0-logical0-rrh</name>
+        <alias>Slot0-A-rrh</alias>
+        <class xmlns:ianahw="urn:ietf:params:xml:ns:yang:iana-hardware">ianahw:port</class>
+        <state>
+            <admin-state>unlocked</admin-state>
+            <oper-state>enabled</oper-state>
+        </state>
+        <parent>slot0-logical0</parent>
+        <parent-rel-pos>1</parent-rel-pos>
+        <o-ran-name xmlns="urn:o-ran:hardware:1.0">slot0-logical0-rrh</o-ran-name>
+        <serial-num>AYR3GA9</serial-num>
+        <mfg-name>FINISAR CORP.</mfg-name>
+        <model-name>FTLX1475D3BTL-E7</model-name>
+        <contains-child>slot0-logical0-rrh-temperature</contains-child>
+    </component>
+    <component>
+        <name>slot0-logical0-rrh-temperature</name>
+        <alias>Slot0-A-rrh-temperature</alias>
+        <class xmlns:ianahw="urn:ietf:params:xml:ns:yang:iana-hardware">ianahw:sensor</class>
+        <state>
+            <admin-state>locked</admin-state>
+            <oper-state>enabled</oper-state>
+        </state>
+        <parent>slot0-logical0-rrh</parent>
+        <parent-rel-pos>0</parent-rel-pos>
+        <sensor-data>
+            <value>35</value>
+            <value-type>celsius</value-type>
+            <value-timestamp>2021-03-18T19:51:50.3Z</value-timestamp>
+            <oper-status>ok</oper-status>
+        </sensor-data>
+    </component>
+    <component>
+        <name>slot0-logical1</name>
+        <alias>Slot0-B</alias>
+        <class xmlns:ianahw="urn:ietf:params:xml:ns:yang:iana-hardware">ianahw:module</class>
+        <state>
+            <admin-state>unlocked</admin-state>
+            <oper-state>disabled</oper-state>
+        </state>
+        <parent>slot0</parent>
+        <parent-rel-pos>2</parent-rel-pos>
+        <description>SLOT0-B</description>
+    </component>
+    <component>
+        <name>slot0-logical2</name>
+        <alias>Slot0-C</alias>
+        <class xmlns:ianahw="urn:ietf:params:xml:ns:yang:iana-hardware">ianahw:module</class>
+        <state>
+            <admin-state>unlocked</admin-state>
+            <oper-state>disabled</oper-state>
+        </state>
+        <parent>slot0</parent>
+        <parent-rel-pos>3</parent-rel-pos>
+        <description>SLOT0-C</description>
+    </component>
+    <component>
+        <name>slot2</name>
+        <alias>slot2</alias>
+        <class xmlns:ianahw="urn:ietf:params:xml:ns:yang:iana-hardware">ianahw:module</class>
+        <state>
+            <admin-state>unlocked</admin-state>
+            <oper-state>enabled</oper-state>
+        </state>
+        <parent>chassis</parent>
+        <parent-rel-pos>9</parent-rel-pos>
+        <serial-num>7220718</serial-num>
+        <firmware-rev>12.00.42-S (0F7F1001)</firmware-rev>
+        <software-rev>0</software-rev>
+        <model-name>385A-SFP-2P-40-FHL-JC3</model-name>
+        <mfg-date>2021-10-12T14:41:55.234Z</mfg-date>
+        <contains-child>slot2-temperature</contains-child>
+        <contains-child>slot2-logical0</contains-child>
+        <contains-child>slot2-logical1</contains-child>
+        <contains-child>slot2-logical2</contains-child>
+    </component>
+    <component>
+        <name>slot2-temperature</name>
+        <alias>slot2-temperature</alias>
+        <class xmlns:ianahw="urn:ietf:params:xml:ns:yang:iana-hardware">ianahw:sensor</class>
+        <state>
+            <admin-state>locked</admin-state>
+            <oper-state>enabled</oper-state>
+        </state>
+        <parent>slot2</parent>
+        <parent-rel-pos>0</parent-rel-pos>
+        <sensor-data>
+            <value>49</value>
+            <value-type>celsius</value-type>
+            <value-timestamp>2021-03-18T19:51:50.3Z</value-timestamp>
+            <oper-status>ok</oper-status>
+        </sensor-data>
+    </component>
+    <component>
+        <name>slot2-logical0</name>
+        <alias>Slot2-C</alias>
+        <class xmlns:ianahw="urn:ietf:params:xml:ns:yang:iana-hardware">ianahw:module</class>
+        <state>
+            <admin-state>unlocked</admin-state>
+            <oper-state>disabled</oper-state>
+        </state>
+        <parent>slot2</parent>
+        <parent-rel-pos>1</parent-rel-pos>
+        <description>SLOT2-C</description>
+    </component>
+    <component>
+        <name>slot2-logical1</name>
+        <alias>Slot3-A</alias>
+        <class xmlns:ianahw="urn:ietf:params:xml:ns:yang:iana-hardware">ianahw:module</class>
+        <state>
+            <admin-state>unlocked</admin-state>
+            <oper-state>disabled</oper-state>
+        </state>
+        <parent>slot2</parent>
+        <parent-rel-pos>2</parent-rel-pos>
+        <description>SLOT3-A</description>
+    </component>
+    <component>
+        <name>slot2-logical2</name>
+        <alias>Slot3-B</alias>
+        <class xmlns:ianahw="urn:ietf:params:xml:ns:yang:iana-hardware">ianahw:module</class>
+        <state>
+            <admin-state>unlocked</admin-state>
+            <oper-state>disabled</oper-state>
+        </state>
+        <parent>slot2</parent>
+        <parent-rel-pos>3</parent-rel-pos>
+        <description>SLOT3-B</description>
+    </component>
+</hardware>
\ No newline at end of file
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/ietf-hardware.yang b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/ietf-hardware.yang
new file mode 100755
index 0000000..f444e26
--- /dev/null
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/ietf-hardware.yang
@@ -0,0 +1,1141 @@
+module ietf-hardware {
+yang-version 1.1;
+namespace "urn:ietf:params:xml:ns:yang:ietf-hardware";
+prefix hw;
+
+import ietf-inet-types {
+  prefix inet;
+}
+import ietf-yang-types {
+  prefix yang;
+}
+import iana-hardware {
+  prefix ianahw;
+}
+
+organization
+  "IETF NETMOD (Network Modeling) Working Group";
+
+contact
+  "WG Web:   <https://datatracker.ietf.org/wg/netmod/>
+   WG List:  <mailto:netmod@ietf.org>
+   Editor:   Andy Bierman
+             <mailto:andy@yumaworks.com>
+   Editor:   Martin Bjorklund
+             <mailto:mbj@tail-f.com>
+   Editor:   Jie Dong
+             <mailto:jie.dong@huawei.com>
+   Editor:   Dan Romascanu
+             <mailto:dromasca@gmail.com>";
+
+description
+  "This module contains a collection of YANG definitions for
+   managing hardware.
+   This data model is designed for the Network Management Datastore
+   Architecture (NMDA) defined in RFC 8342.
+   Copyright (c) 2018 IETF Trust and the persons identified as
+   authors of the code.  All rights reserved.
+   Redistribution and use in source and binary forms, with or
+   without modification, is permitted pursuant to, and subject
+   to the license terms contained in, the Simplified BSD License
+   set forth in Section 4.c of the IETF Trust's Legal Provisions
+   Relating to IETF Documents
+   (https://trustee.ietf.org/license-info).
+   This version of this YANG module is part of RFC 8348; see
+   the RFC itself for full legal notices.";
+
+revision 2018-03-13 {
+  description
+    "Initial revision.";
+  reference
+    "RFC 8348: A YANG Data Model for Hardware Management";
+}
+
+/*
+ * Features
+ */
+
+feature entity-mib {
+  description
+    "This feature indicates that the device implements
+     the ENTITY-MIB.";
+  reference
+    "RFC 6933: Entity MIB (Version 4)";
+}
+
+feature hardware-state {
+  description
+    "Indicates that ENTITY-STATE-MIB objects are supported";
+  reference
+    "RFC 4268: Entity State MIB";
+}
+
+feature hardware-sensor {
+  description
+    "Indicates that ENTITY-SENSOR-MIB objects are supported";
+  reference
+    "RFC 3433: Entity Sensor Management Information Base";
+}
+
+/*
+ * Typedefs
+ */
+
+typedef admin-state {
+  type enumeration {
+    enum unknown {
+      value 1;
+      description
+        "The resource is unable to report administrative state.";
+    }
+    enum locked {
+      value 2;
+      description
+        "The resource is administratively prohibited from use.";
+    }
+    enum shutting-down {
+      value 3;
+      description
+        "The resource usage is administratively limited to current
+         instances of use.";
+    }
+    enum unlocked {
+      value 4;
+      description
+        "The resource is not administratively prohibited from
+         use.";
+    }
+  }
+  description
+    "Represents the various possible administrative states.";
+  reference
+    "RFC 4268: Entity State MIB - EntityAdminState";
+}
+
+typedef oper-state {
+  type enumeration {
+    enum unknown {
+      value 1;
+      description
+        "The resource is unable to report its operational state.";
+    }
+    enum disabled {
+      value 2;
+      description
+        "The resource is totally inoperable.";
+    }
+    enum enabled {
+      value 3;
+
+      description
+        "The resource is partially or fully operable.";
+    }
+    enum testing {
+      value 4;
+      description
+        "The resource is currently being tested and cannot
+         therefore report whether or not it is operational.";
+    }
+  }
+  description
+    "Represents the possible values of operational states.";
+  reference
+    "RFC 4268: Entity State MIB - EntityOperState";
+}
+
+typedef usage-state {
+  type enumeration {
+    enum unknown {
+      value 1;
+      description
+        "The resource is unable to report usage state.";
+    }
+    enum idle {
+      value 2;
+      description
+        "The resource is servicing no users.";
+    }
+    enum active {
+      value 3;
+      description
+        "The resource is currently in use, and it has sufficient
+         spare capacity to provide for additional users.";
+    }
+    enum busy {
+      value 4;
+      description
+        "The resource is currently in use, but it currently has no
+         spare capacity to provide for additional users.";
+    }
+  }
+  description
+    "Represents the possible values of usage states.";
+  reference
+    "RFC 4268: Entity State MIB -  EntityUsageState";
+}
+
+typedef alarm-state {
+  type bits {
+    bit unknown {
+      position 0;
+      description
+        "The resource is unable to report alarm state.";
+    }
+    bit under-repair {
+      position 1;
+      description
+        "The resource is currently being repaired, which, depending
+         on the implementation, may make the other values in this
+         bit string not meaningful.";
+    }
+    bit critical {
+      position 2;
+      description
+        "One or more critical alarms are active against the
+         resource.";
+    }
+    bit major {
+      position 3;
+      description
+        "One or more major alarms are active against the
+         resource.";
+    }
+    bit minor {
+      position 4;
+      description
+        "One or more minor alarms are active against the
+         resource.";
+    }
+    bit warning {
+      position 5;
+      description
+        "One or more warning alarms are active against the
+         resource.";
+    }
+    bit indeterminate {
+      position 6;
+      description
+        "One or more alarms of whose perceived severity cannot be
+         determined are active against this resource.";
+    }
+  }
+  description
+    "Represents the possible values of alarm states.  An alarm is a
+     persistent indication of an error or warning condition.
+     When no bits of this attribute are set, then no active alarms
+     are known against this component and it is not under repair.";
+  reference
+    "RFC 4268: Entity State MIB - EntityAlarmStatus";
+}
+
+typedef standby-state {
+  type enumeration {
+    enum unknown {
+      value 1;
+      description
+        "The resource is unable to report standby state.";
+    }
+    enum hot-standby {
+      value 2;
+      description
+        "The resource is not providing service, but it will be
+         immediately able to take over the role of the resource to
+         be backed up, without the need for initialization
+         activity, and will contain the same information as the
+         resource to be backed up.";
+    }
+    enum cold-standby {
+      value 3;
+      description
+        "The resource is to back up another resource, but it will
+         not be immediately able to take over the role of a
+         resource to be backed up and will require some
+         initialization activity.";
+    }
+    enum providing-service {
+      value 4;
+      description
+        "The resource is providing service.";
+    }
+  }
+  description
+    "Represents the possible values of standby states.";
+  reference
+    "RFC 4268: Entity State MIB - EntityStandbyStatus";
+}
+
+typedef sensor-value-type {
+  type enumeration {
+    enum other {
+      value 1;
+      description
+        "A measure other than those listed below.";
+    }
+    enum unknown {
+      value 2;
+      description
+        "An unknown measurement or arbitrary, relative numbers";
+    }
+    enum volts-AC {
+      value 3;
+      description
+        "A measure of electric potential (alternating current).";
+    }
+    enum volts-DC {
+      value 4;
+      description
+        "A measure of electric potential (direct current).";
+    }
+    enum amperes {
+      value 5;
+      description
+        "A measure of electric current.";
+    }
+    enum watts {
+      value 6;
+      description
+        "A measure of power.";
+    }
+    enum hertz {
+      value 7;
+      description
+        "A measure of frequency.";
+    }
+    enum celsius {
+      value 8;
+      description
+        "A measure of temperature.";
+    }
+    enum percent-RH {
+      value 9;
+      description
+        "A measure of percent relative humidity.";
+    }
+    enum rpm {
+      value 10;
+      description
+        "A measure of shaft revolutions per minute.";
+    }
+    enum cmm {
+      value 11;
+      description
+        "A measure of cubic meters per minute (airflow).";
+    }
+    enum truth-value {
+      value 12;
+      description
+        "Value is one of 1 (true) or 2 (false)";
+    }
+  }
+  description
+    "A node using this data type represents the sensor measurement
+     data type associated with a physical sensor value.  The actual
+     data units are determined by examining a node of this type
+     together with the associated sensor-value-scale node.
+     A node of this type SHOULD be defined together with nodes of
+     type sensor-value-scale and type sensor-value-precision.
+     These three types are used to identify the semantics of a node
+     of type sensor-value.";
+  reference
+    "RFC 3433: Entity Sensor Management Information Base -
+               EntitySensorDataType";
+}
+
+typedef sensor-value-scale {
+  type enumeration {
+    enum yocto {
+      value 1;
+      description
+        "Data scaling factor of 10^-24.";
+    }
+    enum zepto {
+      value 2;
+      description
+        "Data scaling factor of 10^-21.";
+    }
+    enum atto {
+      value 3;
+      description
+        "Data scaling factor of 10^-18.";
+    }
+    enum femto {
+      value 4;
+      description
+        "Data scaling factor of 10^-15.";
+    }
+    enum pico {
+      value 5;
+      description
+        "Data scaling factor of 10^-12.";
+    }
+    enum nano {
+      value 6;
+      description
+        "Data scaling factor of 10^-9.";
+    }
+    enum micro {
+      value 7;
+      description
+        "Data scaling factor of 10^-6.";
+    }
+    enum milli {
+      value 8;
+      description
+        "Data scaling factor of 10^-3.";
+    }
+    enum units {
+      value 9;
+      description
+        "Data scaling factor of 10^0.";
+    }
+    enum kilo {
+      value 10;
+      description
+        "Data scaling factor of 10^3.";
+    }
+    enum mega {
+      value 11;
+      description
+        "Data scaling factor of 10^6.";
+    }
+    enum giga {
+      value 12;
+      description
+        "Data scaling factor of 10^9.";
+    }
+    enum tera {
+      value 13;
+      description
+        "Data scaling factor of 10^12.";
+    }
+    enum peta {
+      value 14;
+      description
+        "Data scaling factor of 10^15.";
+    }
+    enum exa {
+      value 15;
+      description
+        "Data scaling factor of 10^18.";
+    }
+    enum zetta {
+      value 16;
+      description
+        "Data scaling factor of 10^21.";
+    }
+    enum yotta {
+      value 17;
+      description
+        "Data scaling factor of 10^24.";
+    }
+  }
+  description
+    "A node using this data type represents a data scaling factor,
+     represented with an International System of Units (SI) prefix.
+     The actual data units are determined by examining a node of
+     this type together with the associated sensor-value-type.
+     A node of this type SHOULD be defined together with nodes of
+     type sensor-value-type and type sensor-value-precision.
+     Together, associated nodes of these three types are used to
+     identify the semantics of a node of type sensor-value.";
+  reference
+    "RFC 3433: Entity Sensor Management Information Base -
+               EntitySensorDataScale";
+}
+
+typedef sensor-value-precision {
+  type int8 {
+    range "-8 .. 9";
+  }
+  description
+    "A node using this data type represents a sensor value
+     precision range.
+     A node of this type SHOULD be defined together with nodes of
+     type sensor-value-type and type sensor-value-scale.  Together,
+     associated nodes of these three types are used to identify the
+     semantics of a node of type sensor-value.
+     If a node of this type contains a value in the range 1 to 9,
+     it represents the number of decimal places in the fractional
+     part of an associated sensor-value fixed-point number.
+     If a node of this type contains a value in the range -8 to -1,
+     it represents the number of accurate digits in the associated
+     sensor-value fixed-point number.
+     The value zero indicates the associated sensor-value node is
+     not a fixed-point number.
+     Server implementers must choose a value for the associated
+     sensor-value-precision node so that the precision and accuracy
+     of the associated sensor-value node is correctly indicated.
+     For example, a component representing a temperature sensor
+     that can measure 0 to 100 degrees C in 0.1 degree
+     increments, +/- 0.05 degrees, would have a
+     sensor-value-precision value of '1', a sensor-value-scale
+     value of 'units', and a sensor-value ranging from '0' to
+     '1000'.  The sensor-value would be interpreted as
+     'degrees C * 10'.";
+  reference
+    "RFC 3433: Entity Sensor Management Information Base -
+               EntitySensorPrecision";
+}
+
+typedef sensor-value {
+  type int32 {
+    range "-1000000000 .. 1000000000";
+  }
+  description
+   "A node using this data type represents a sensor value.
+    A node of this type SHOULD be defined together with nodes of
+    type sensor-value-type, type sensor-value-scale, and
+    type sensor-value-precision.  Together, associated nodes of
+    those three types are used to identify the semantics of a node
+    of this data type.
+    The semantics of a node using this data type are determined by
+    the value of the associated sensor-value-type node.
+    If the associated sensor-value-type node is equal to 'voltsAC',
+    'voltsDC', 'amperes', 'watts', 'hertz', 'celsius', or 'cmm',
+    then a node of this type MUST contain a fixed-point number
+    ranging from -999,999,999 to +999,999,999.  The value
+    -1000000000 indicates an underflow error.  The value
+    +1000000000 indicates an overflow error.  The
+    sensor-value-precision indicates how many fractional digits
+    are represented in the associated sensor-value node.
+    If the associated sensor-value-type node is equal to
+    'percentRH', then a node of this type MUST contain a number
+    ranging from 0 to 100.
+    If the associated sensor-value-type node is equal to 'rpm',
+    then a node of this type MUST contain a number ranging from
+    -999,999,999 to +999,999,999.
+    If the associated sensor-value-type node is equal to
+    'truth-value', then a node of this type MUST contain either the
+    value 1 (true) or the value 2 (false).
+    If the associated sensor-value-type node is equal to 'other' or
+    'unknown', then a node of this type MUST contain a number
+    ranging from -1000000000 to 1000000000.";
+  reference
+    "RFC 3433: Entity Sensor Management Information Base -
+               EntitySensorValue";
+}
+
+typedef sensor-status {
+  type enumeration {
+    enum ok {
+      value 1;
+      description
+        "Indicates that the server can obtain the sensor value.";
+    }
+    enum unavailable {
+      value 2;
+      description
+        "Indicates that the server presently cannot obtain the
+         sensor value.";
+    }
+    enum nonoperational {
+      value 3;
+      description
+        "Indicates that the server believes the sensor is broken.
+         The sensor could have a hard failure (disconnected wire)
+         or a soft failure such as out-of-range, jittery, or wildly
+         fluctuating readings.";
+    }
+  }
+  description
+    "A node using this data type represents the operational status
+     of a physical sensor.";
+  reference
+    "RFC 3433: Entity Sensor Management Information Base -
+               EntitySensorStatus";
+}
+
+/*
+ * Data nodes
+ */
+
+container hardware {
+  description
+    "Data nodes representing components.
+     If the server supports configuration of hardware components,
+     then this data model is instantiated in the configuration
+     datastores supported by the server.  The leaf-list 'datastore'
+     for the module 'ietf-hardware' in the YANG library provides
+     this information.";
+
+  leaf last-change {
+    type yang:date-and-time;
+    config false;
+    description
+      "The time the '/hardware/component' list changed in the
+       operational state.";
+  }
+
+  list component {
+    key name;
+    description
+      "List of components.
+       When the server detects a new hardware component, it
+       initializes a list entry in the operational state.
+       If the server does not support configuration of hardware
+       components, list entries in the operational state are
+       initialized with values for all nodes as detected by the
+       implementation.
+       Otherwise, this procedure is followed:
+         1. If there is an entry in the '/hardware/component' list
+            in the intended configuration with values for the nodes
+            'class', 'parent', and 'parent-rel-pos' that are equal
+            to the detected values, then the list entry in the
+            operational state is initialized with the configured
+            values, including the 'name'.
+         2. Otherwise (i.e., there is no matching configuration
+            entry), the list entry in the operational state is
+            initialized with values for all nodes as detected by
+            the implementation.
+       If the '/hardware/component' list in the intended
+       configuration is modified, then the system MUST behave as if
+       it re-initializes itself and follow the procedure in (1).";
+    reference
+      "RFC 6933: Entity MIB (Version 4) - entPhysicalEntry";
+
+    leaf name {
+      type string;
+      description
+        "The name assigned to this component.
+         This name is not required to be the same as
+         entPhysicalName.";
+    }
+
+    leaf class {
+      type identityref {
+        base ianahw:hardware-class;
+      }
+      mandatory true;
+      description
+        "An indication of the general hardware type of the
+         component.";
+      reference
+        "RFC 6933: Entity MIB (Version 4) - entPhysicalClass";
+    }
+
+    leaf physical-index {
+      if-feature entity-mib;
+      type int32 {
+        range "1..2147483647";
+      }
+      config false;
+      description
+        "The entPhysicalIndex for the entPhysicalEntry represented
+         by this list entry.";
+      reference
+        "RFC 6933: Entity MIB (Version 4) - entPhysicalIndex";
+    }
+
+    leaf description {
+      type string;
+      config false;
+      description
+        "A textual description of the component.  This node should
+         contain a string that identifies the manufacturer's name
+         for the component and should be set to a distinct value
+         for each version or model of the component.";
+      reference
+        "RFC 6933: Entity MIB (Version 4) - entPhysicalDescr";
+    }
+
+    leaf parent {
+      type leafref {
+        path "../../component/name";
+        require-instance false;
+      }
+      description
+        "The name of the component that physically contains this
+         component.
+         If this leaf is not instantiated, it indicates that this
+         component is not contained in any other component.
+         In the event that a physical component is contained by
+         more than one physical component (e.g., double-wide
+         modules), this node contains the name of one of these
+         components.  An implementation MUST use the same name
+         every time this node is instantiated.";
+      reference
+        "RFC 6933: Entity MIB (Version 4) - entPhysicalContainedIn";
+    }
+
+    leaf parent-rel-pos {
+      type int32 {
+        range "0 .. 2147483647";
+      }
+      description
+        "An indication of the relative position of this child
+         component among all its sibling components.  Sibling
+         components are defined as components that:
+           o share the same value of the 'parent' node and
+           o share a common base identity for the 'class' node.
+         Note that the last rule gives implementations flexibility
+         in how components are numbered.  For example, some
+         implementations might have a single number series for all
+         components derived from 'ianahw:port', while some others
+         might have different number series for different
+         components with identities derived from 'ianahw:port' (for
+         example, one for registered jack 45 (RJ45) and one for
+         small form-factor pluggable (SFP)).";
+
+      reference
+        "RFC 6933: Entity MIB (Version 4) -
+                   entPhysicalParentRelPos";
+    }
+
+    leaf-list contains-child {
+      type leafref {
+        path "../../component/name";
+      }
+      config false;
+      description
+        "The name of the contained component.";
+      reference
+        "RFC 6933: Entity MIB (Version 4) - entPhysicalChildIndex";
+    }
+
+    leaf hardware-rev {
+      type string;
+      config false;
+      description
+        "The vendor-specific hardware revision string for the
+         component.  The preferred value is the hardware revision
+         identifier actually printed on the component itself (if
+         present).";
+      reference
+        "RFC 6933: Entity MIB (Version 4) -
+                   entPhysicalHardwareRev";
+    }
+
+    leaf firmware-rev {
+      type string;
+      config false;
+      description
+        "The vendor-specific firmware revision string for the
+         component.";
+      reference
+        "RFC 6933: Entity MIB (Version 4) -
+                   entPhysicalFirmwareRev";
+    }
+
+    leaf software-rev {
+      type string;
+      config false;
+
+      description
+        "The vendor-specific software revision string for the
+         component.";
+      reference
+        "RFC 6933: Entity MIB (Version 4) -
+                   entPhysicalSoftwareRev";
+    }
+
+    leaf serial-num {
+      type string;
+      config false;
+      description
+        "The vendor-specific serial number string for the
+         component.  The preferred value is the serial number
+         string actually printed on the component itself (if
+         present).";
+      reference
+        "RFC 6933: Entity MIB (Version 4) - entPhysicalSerialNum";
+    }
+
+    leaf mfg-name {
+      type string;
+      config false;
+      description
+        "The name of the manufacturer of this physical component.
+         The preferred value is the manufacturer name string
+         actually printed on the component itself (if present).
+         Note that comparisons between instances of the
+         'model-name', 'firmware-rev', 'software-rev', and
+         'serial-num' nodes are only meaningful amongst components
+         with the same value of 'mfg-name'.
+         If the manufacturer name string associated with the
+         physical component is unknown to the server, then this
+         node is not instantiated.";
+      reference
+        "RFC 6933: Entity MIB (Version 4) - entPhysicalMfgName";
+    }
+
+    leaf model-name {
+      type string;
+      config false;
+      description
+        "The vendor-specific model name identifier string
+         associated with this physical component.  The preferred
+         value is the customer-visible part number, which may be
+         printed on the component itself.
+         If the model name string associated with the physical
+         component is unknown to the server, then this node is not
+         instantiated.";
+      reference
+        "RFC 6933: Entity MIB (Version 4) - entPhysicalModelName";
+    }
+
+    leaf alias {
+      type string;
+      description
+        "An 'alias' name for the component, as specified by a
+         network manager, that provides a non-volatile 'handle' for
+         the component.
+         If no configured value exists, the server MAY set the
+         value of this node to a locally unique value in the
+         operational state.
+         A server implementation MAY map this leaf to the
+         entPhysicalAlias MIB object.  Such an implementation needs
+         to use some mechanism to handle the differences in size
+         and characters allowed between this leaf and
+         entPhysicalAlias.  The definition of such a mechanism is
+         outside the scope of this document.";
+      reference
+        "RFC 6933: Entity MIB (Version 4) - entPhysicalAlias";
+    }
+
+    leaf asset-id {
+      type string;
+      description
+        "This node is a user-assigned asset tracking identifier for
+         the component.
+         A server implementation MAY map this leaf to the
+         entPhysicalAssetID MIB object.  Such an implementation
+         needs to use some mechanism to handle the differences in
+         size and characters allowed between this leaf and
+         entPhysicalAssetID.  The definition of such a mechanism is
+         outside the scope of this document.";
+      reference
+        "RFC 6933: Entity MIB (Version 4) - entPhysicalAssetID";
+    }
+
+    leaf is-fru {
+      type boolean;
+      config false;
+
+      description
+        "This node indicates whether or not this component is
+         considered a 'field-replaceable unit' by the vendor.  If
+         this node contains the value 'true', then this component
+         identifies a field-replaceable unit.  For all components
+         that are permanently contained within a field-replaceable
+         unit, the value 'false' should be returned for this
+         node.";
+      reference
+        "RFC 6933: Entity MIB (Version 4) - entPhysicalIsFRU";
+    }
+
+    leaf mfg-date {
+      type yang:date-and-time;
+      config false;
+      description
+        "The date of manufacturing of the managed component.";
+      reference
+        "RFC 6933: Entity MIB (Version 4) - entPhysicalMfgDate";
+    }
+
+    leaf-list uri {
+      type inet:uri;
+      description
+        "This node contains identification information about the
+         component.";
+      reference
+        "RFC 6933: Entity MIB (Version 4) - entPhysicalUris";
+    }
+
+    leaf uuid {
+      type yang:uuid;
+      config false;
+      description
+        "A Universally Unique Identifier of the component.";
+      reference
+        "RFC 6933: Entity MIB (Version 4) - entPhysicalUUID";
+    }
+
+    container state {
+      if-feature hardware-state;
+      description
+        "State-related nodes";
+      reference
+        "RFC 4268: Entity State MIB";
+
+      leaf state-last-changed {
+        type yang:date-and-time;
+        config false;
+        description
+          "The date and time when the value of any of the
+           admin-state, oper-state, usage-state, alarm-state, or
+           standby-state changed for this component.
+           If there has been no change since the last
+           re-initialization of the local system, this node
+           contains the date and time of local system
+           initialization.  If there has been no change since the
+           component was added to the local system, this node
+           contains the date and time of the insertion.";
+        reference
+          "RFC 4268: Entity State MIB - entStateLastChanged";
+      }
+
+      leaf admin-state {
+        type admin-state;
+        description
+          "The administrative state for this component.
+           This node refers to a component's administrative
+           permission to service both other components within its
+           containment hierarchy as well other users of its
+           services defined by means outside the scope of this
+           module.
+           Some components exhibit only a subset of the remaining
+           administrative state values.  Some components cannot be
+           locked; hence, this node exhibits only the 'unlocked'
+           state.  Other components cannot be shut down gracefully;
+           hence, this node does not exhibit the 'shutting-down'
+           state.";
+        reference
+          "RFC 4268: Entity State MIB - entStateAdmin";
+      }
+
+      leaf oper-state {
+        type oper-state;
+        config false;
+        description
+          "The operational state for this component.
+           Note that this node does not follow the administrative
+           state.  An administrative state of 'down' does not
+           predict an operational state of 'disabled'.
+           Note that some implementations may not be able to
+           accurately report oper-state while the admin-state node
+           has a value other than 'unlocked'.  In these cases, this
+           node MUST have a value of 'unknown'.";
+        reference
+          "RFC 4268: Entity State MIB - entStateOper";
+      }
+
+      leaf usage-state {
+        type usage-state;
+        config false;
+        description
+          "The usage state for this component.
+           This node refers to a component's ability to service
+           more components in a containment hierarchy.
+           Some components will exhibit only a subset of the usage
+           state values.  Components that are unable to ever
+           service any components within a containment hierarchy
+           will always have a usage state of 'busy'.  In some
+           cases, a component will be able to support only one
+           other component within its containment hierarchy and
+           will therefore only exhibit values of 'idle' and
+           'busy'.";
+        reference
+          "RFC 4268: Entity State MIB - entStateUsage";
+      }
+
+      leaf alarm-state {
+        type alarm-state;
+        config false;
+        description
+          "The alarm state for this component.  It does not
+           include the alarms raised on child components within its
+           containment hierarchy.";
+        reference
+          "RFC 4268: Entity State MIB - entStateAlarm";
+      }
+
+      leaf standby-state {
+        type standby-state;
+        config false;
+        description
+          "The standby state for this component.
+           Some components will exhibit only a subset of the
+           remaining standby state values.  If this component
+           cannot operate in a standby role, the value of this node
+           will always be 'providing-service'.";
+        reference
+          "RFC 4268: Entity State MIB - entStateStandby";
+      }
+    }
+
+    container sensor-data {
+      when 'derived-from-or-self(../class,
+                                 "ianahw:sensor")' {
+        description
+          "Sensor data nodes present for any component of type
+           'sensor'";
+      }
+      if-feature hardware-sensor;
+      config false;
+
+      description
+        "Sensor-related nodes.";
+      reference
+        "RFC 3433: Entity Sensor Management Information Base";
+
+      leaf value {
+        type sensor-value;
+        description
+          "The most recent measurement obtained by the server
+           for this sensor.
+           A client that periodically fetches this node should also
+           fetch the nodes 'value-type', 'value-scale', and
+           'value-precision', since they may change when the value
+           is changed.";
+        reference
+          "RFC 3433: Entity Sensor Management Information Base -
+                     entPhySensorValue";
+      }
+
+      leaf value-type {
+        type sensor-value-type;
+        description
+          "The type of data units associated with the
+           sensor value";
+        reference
+          "RFC 3433: Entity Sensor Management Information Base -
+                     entPhySensorType";
+      }
+      leaf value-scale {
+        type sensor-value-scale;
+        description
+          "The (power of 10) scaling factor associated
+           with the sensor value";
+        reference
+          "RFC 3433: Entity Sensor Management Information Base -
+                     entPhySensorScale";
+      }
+
+      leaf value-precision {
+        type sensor-value-precision;
+        description
+          "The number of decimal places of precision
+           associated with the sensor value";
+        reference
+          "RFC 3433: Entity Sensor Management Information Base -
+                     entPhySensorPrecision";
+      }
+
+      leaf oper-status {
+        type sensor-status;
+        description
+          "The operational status of the sensor.";
+        reference
+          "RFC 3433: Entity Sensor Management Information Base -
+                     entPhySensorOperStatus";
+      }
+
+      leaf units-display {
+        type string;
+        description
+          "A textual description of the data units that should be
+           used in the display of the sensor value.";
+        reference
+          "RFC 3433: Entity Sensor Management Information Base -
+                     entPhySensorUnitsDisplay";
+      }
+
+      leaf value-timestamp {
+        type yang:date-and-time;
+        description
+          "The time the status and/or value of this sensor was last
+           obtained by the server.";
+        reference
+          "RFC 3433: Entity Sensor Management Information Base -
+                     entPhySensorValueTimeStamp";
+      }
+      leaf value-update-rate {
+        type uint32;
+        units "milliseconds";
+        description
+          "An indication of the frequency that the server updates
+           the associated 'value' node, represented in
+           milliseconds.  The value zero indicates:
+            - the sensor value is updated on demand (e.g.,
+              when polled by the server for a get-request),
+            - the sensor value is updated when the sensor
+              value changes (event-driven), or
+            - the server does not know the update rate.";
+        reference
+          "RFC 3433: Entity Sensor Management Information Base -
+                     entPhySensorValueUpdateRate";
+      }
+    }
+  }
+}
+
+/*
+ * Notifications
+ */
+
+notification hardware-state-change {
+  description
+    "A hardware-state-change notification is generated when the
+     value of /hardware/last-change changes in the operational
+     state.";
+  reference
+    "RFC 6933: Entity MIB (Version 4) - entConfigChange";
+}
+
+notification hardware-state-oper-enabled {
+  if-feature hardware-state;
+  description
+    "A hardware-state-oper-enabled notification signifies that a
+     component has transitioned into the 'enabled' state.";
+
+  leaf name {
+    type leafref {
+      path "/hardware/component/name";
+    }
+
+    description
+      "The name of the component that has transitioned into the
+       'enabled' state.";
+  }
+  leaf admin-state {
+    type leafref {
+      path "/hardware/component/state/admin-state";
+    }
+    description
+      "The administrative state for the component.";
+  }
+  leaf alarm-state {
+    type leafref {
+      path "/hardware/component/state/alarm-state";
+    }
+    description
+      "The alarm state for the component.";
+  }
+  reference
+    "RFC 4268: Entity State MIB - entStateOperEnabled";
+}
+
+notification hardware-state-oper-disabled {
+  if-feature hardware-state;
+  description
+    "A hardware-state-oper-disabled notification signifies that a
+     component has transitioned into the 'disabled' state.";
+
+  leaf name {
+    type leafref {
+      path "/hardware/component/name";
+    }
+    description
+      "The name of the component that has transitioned into the
+       'disabled' state.";
+  }
+  leaf admin-state {
+    type leafref {
+      path "/hardware/component/state/admin-state";
+    }
+    description
+      "The administrative state for the component.";
+  }
+  leaf alarm-state {
+    type leafref {
+      path "/hardware/component/state/alarm-state";
+    }
+
+    description
+      "The alarm state for the component.";
+  }
+  reference
+    "RFC 4268: Entity State MIB - entStateOperDisabled";
+}
+
+}
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/ietf-inet-types.yang b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/ietf-inet-types.yang
new file mode 100644
index 0000000..f91aa1f
--- /dev/null
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/ietf-inet-types.yang
@@ -0,0 +1,429 @@
+module ietf-inet-types {
+
+  namespace "urn:ietf:params:xml:ns:yang:ietf-inet-types";
+  prefix "inet";
+
+  organization
+   "IETF NETMOD (NETCONF Data Modeling Language) Working Group";
+
+  contact
+   "WG Web:   <http://tools.ietf.org/wg/netmod/>
+    WG List:  <mailto:netmod@ietf.org>
+    WG Chair: David Kessens
+              <mailto:david.kessens@nsn.com>
+    WG Chair: Juergen Schoenwaelder
+              <mailto:j.schoenwaelder@jacobs-university.de>
+    Editor:   Juergen Schoenwaelder
+              <mailto:j.schoenwaelder@jacobs-university.de>";
+
+  description
+   "This module contains a collection of generally useful derived
+    YANG data types for Internet addresses and related things.
+    Copyright (c) 2013 IETF Trust and the persons identified as
+    authors of the code.  All rights reserved.
+    Redistribution and use in source and binary forms, with or
+    without modification, is permitted pursuant to, and subject
+    to the license terms contained in, the Simplified BSD License
+    set forth in Section 4.c of the IETF Trust's Legal Provisions
+    Relating to IETF Documents
+    (http://trustee.ietf.org/license-info).
+    This version of this YANG module is part of RFC 6991; see
+    the RFC itself for full legal notices.";
+
+  revision 2013-07-15 {
+    description
+     "This revision adds the following new data types:
+      - ip-address-no-zone
+      - ipv4-address-no-zone
+      - ipv6-address-no-zone";
+    reference
+     "RFC 6991: Common YANG Data Types";
+  }
+
+  revision 2010-09-24 {
+    description
+     "Initial revision.";
+    reference
+     "RFC 6021: Common YANG Data Types";
+  }
+
+  /*** collection of types related to protocol fields ***/
+
+  typedef ip-version {
+    type enumeration {
+      enum unknown {
+        value "0";
+        description
+         "An unknown or unspecified version of the Internet
+          protocol.";
+      }
+      enum ipv4 {
+        value "1";
+        description
+         "The IPv4 protocol as defined in RFC 791.";
+      }
+      enum ipv6 {
+        value "2";
+        description
+         "The IPv6 protocol as defined in RFC 2460.";
+      }
+    }
+    description
+     "This value represents the version of the IP protocol.
+      In the value set and its semantics, this type is equivalent
+      to the InetVersion textual convention of the SMIv2.";
+    reference
+     "RFC  791: Internet Protocol
+      RFC 2460: Internet Protocol, Version 6 (IPv6) Specification
+      RFC 4001: Textual Conventions for Internet Network Addresses";
+  }
+
+  typedef dscp {
+    type uint8 {
+      range "0..63";
+    }
+    description
+     "The dscp type represents a Differentiated Services Code Point
+      that may be used for marking packets in a traffic stream.
+      In the value set and its semantics, this type is equivalent
+      to the Dscp textual convention of the SMIv2.";
+    reference
+     "RFC 3289: Management Information Base for the Differentiated
+                Services Architecture
+      RFC 2474: Definition of the Differentiated Services Field
+                (DS Field) in the IPv4 and IPv6 Headers
+      RFC 2780: IANA Allocation Guidelines For Values In
+                the Internet Protocol and Related Headers";
+  }
+
+  typedef ipv6-flow-label {
+    type uint32 {
+      range "0..1048575";
+    }
+    description
+     "The ipv6-flow-label type represents the flow identifier or Flow
+      Label in an IPv6 packet header that may be used to
+      discriminate traffic flows.
+      In the value set and its semantics, this type is equivalent
+      to the IPv6FlowLabel textual convention of the SMIv2.";
+    reference
+     "RFC 3595: Textual Conventions for IPv6 Flow Label
+      RFC 2460: Internet Protocol, Version 6 (IPv6) Specification";
+  }
+
+  typedef port-number {
+    type uint16 {
+      range "0..65535";
+    }
+    description
+     "The port-number type represents a 16-bit port number of an
+      Internet transport-layer protocol such as UDP, TCP, DCCP, or
+      SCTP.  Port numbers are assigned by IANA.  A current list of
+      all assignments is available from <http://www.iana.org/>.
+      Note that the port number value zero is reserved by IANA.  In
+      situations where the value zero does not make sense, it can
+      be excluded by subtyping the port-number type.
+      In the value set and its semantics, this type is equivalent
+      to the InetPortNumber textual convention of the SMIv2.";
+    reference
+     "RFC  768: User Datagram Protocol
+      RFC  793: Transmission Control Protocol
+      RFC 4960: Stream Control Transmission Protocol
+      RFC 4340: Datagram Congestion Control Protocol (DCCP)
+      RFC 4001: Textual Conventions for Internet Network Addresses";
+  }
+
+  /*** collection of types related to autonomous systems ***/
+
+  typedef as-number {
+    type uint32;
+    description
+     "The as-number type represents autonomous system numbers
+      which identify an Autonomous System (AS).  An AS is a set
+      of routers under a single technical administration, using
+      an interior gateway protocol and common metrics to route
+      packets within the AS, and using an exterior gateway
+      protocol to route packets to other ASes.  IANA maintains
+      the AS number space and has delegated large parts to the
+      regional registries.
+      Autonomous system numbers were originally limited to 16
+      bits.  BGP extensions have enlarged the autonomous system
+      number space to 32 bits.  This type therefore uses an uint32
+      base type without a range restriction in order to support
+      a larger autonomous system number space.
+      In the value set and its semantics, this type is equivalent
+      to the InetAutonomousSystemNumber textual convention of
+      the SMIv2.";
+    reference
+     "RFC 1930: Guidelines for creation, selection, and registration
+                of an Autonomous System (AS)
+      RFC 4271: A Border Gateway Protocol 4 (BGP-4)
+      RFC 4001: Textual Conventions for Internet Network Addresses
+      RFC 6793: BGP Support for Four-Octet Autonomous System (AS)
+                Number Space";
+  }
+
+  /*** collection of types related to IP addresses and hostnames ***/
+
+  typedef ip-address {
+    type union {
+      type inet:ipv4-address;
+      type inet:ipv6-address;
+    }
+    description
+     "The ip-address type represents an IP address and is IP
+      version neutral.  The format of the textual representation
+      implies the IP version.  This type supports scoped addresses
+      by allowing zone identifiers in the address format.";
+    reference
+     "RFC 4007: IPv6 Scoped Address Architecture";
+  }
+
+  typedef ipv4-address {
+    type string {
+      pattern
+        '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'
+      +  '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'
+      + '(%[\p{N}\p{L}]+)?';
+    }
+    description
+      "The ipv4-address type represents an IPv4 address in
+       dotted-quad notation.  The IPv4 address may include a zone
+       index, separated by a % sign.
+       The zone index is used to disambiguate identical address
+       values.  For link-local addresses, the zone index will
+       typically be the interface index number or the name of an
+       interface.  If the zone index is not present, the default
+       zone of the device will be used.
+       The canonical format for the zone index is the numerical
+       format";
+  }
+
+  typedef ipv6-address {
+    type string {
+      pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}'
+            + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|'
+            + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}'
+            + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))'
+            + '(%[\p{N}\p{L}]+)?';
+      pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|'
+            + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)'
+            + '(%.+)?';
+    }
+    description
+     "The ipv6-address type represents an IPv6 address in full,
+      mixed, shortened, and shortened-mixed notation.  The IPv6
+      address may include a zone index, separated by a % sign.
+      The zone index is used to disambiguate identical address
+      values.  For link-local addresses, the zone index will
+      typically be the interface index number or the name of an
+      interface.  If the zone index is not present, the default
+      zone of the device will be used.
+      The canonical format of IPv6 addresses uses the textual
+      representation defined in Section 4 of RFC 5952.  The
+      canonical format for the zone index is the numerical
+      format as described in Section 11.2 of RFC 4007.";
+    reference
+     "RFC 4291: IP Version 6 Addressing Architecture
+      RFC 4007: IPv6 Scoped Address Architecture
+      RFC 5952: A Recommendation for IPv6 Address Text
+                Representation";
+  }
+
+  typedef ip-address-no-zone {
+    type union {
+      type inet:ipv4-address-no-zone;
+      type inet:ipv6-address-no-zone;
+    }
+    description
+     "The ip-address-no-zone type represents an IP address and is
+      IP version neutral.  The format of the textual representation
+      implies the IP version.  This type does not support scoped
+      addresses since it does not allow zone identifiers in the
+      address format.";
+    reference
+     "RFC 4007: IPv6 Scoped Address Architecture";
+  }
+
+  typedef ipv4-address-no-zone {
+    type inet:ipv4-address {
+      pattern '[0-9\.]*';
+    }
+    description
+      "An IPv4 address without a zone index.  This type, derived from
+       ipv4-address, may be used in situations where the zone is
+       known from the context and hence no zone index is needed.";
+  }
+
+  typedef ipv6-address-no-zone {
+    type inet:ipv6-address {
+      pattern '[0-9a-fA-F:\.]*';
+    }
+    description
+      "An IPv6 address without a zone index.  This type, derived from
+       ipv6-address, may be used in situations where the zone is
+       known from the context and hence no zone index is needed.";
+    reference
+     "RFC 4291: IP Version 6 Addressing Architecture
+      RFC 4007: IPv6 Scoped Address Architecture
+      RFC 5952: A Recommendation for IPv6 Address Text
+                Representation";
+  }
+
+  typedef ip-prefix {
+    type union {
+      type inet:ipv4-prefix;
+      type inet:ipv6-prefix;
+    }
+    description
+     "The ip-prefix type represents an IP prefix and is IP
+      version neutral.  The format of the textual representations
+      implies the IP version.";
+  }
+
+  typedef ipv4-prefix {
+    type string {
+      pattern
+         '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'
+       +  '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'
+       + '/(([0-9])|([1-2][0-9])|(3[0-2]))';
+    }
+    description
+     "The ipv4-prefix type represents an IPv4 address prefix.
+      The prefix length is given by the number following the
+      slash character and must be less than or equal to 32.
+      A prefix length value of n corresponds to an IP address
+      mask that has n contiguous 1-bits from the most
+      significant bit (MSB) and all other bits set to 0.
+      The canonical format of an IPv4 prefix has all bits of
+      the IPv4 address set to zero that are not part of the
+      IPv4 prefix.";
+  }
+
+  typedef ipv6-prefix {
+    type string {
+      pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}'
+            + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|'
+            + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}'
+            + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))'
+            + '(/(([0-9])|([0-9]{2})|(1[0-1][0-9])|(12[0-8])))';
+      pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|'
+            + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)'
+            + '(/.+)';
+    }
+
+    description
+     "The ipv6-prefix type represents an IPv6 address prefix.
+      The prefix length is given by the number following the
+      slash character and must be less than or equal to 128.
+      A prefix length value of n corresponds to an IP address
+      mask that has n contiguous 1-bits from the most
+      significant bit (MSB) and all other bits set to 0.
+      The IPv6 address should have all bits that do not belong
+      to the prefix set to zero.
+      The canonical format of an IPv6 prefix has all bits of
+      the IPv6 address set to zero that are not part of the
+      IPv6 prefix.  Furthermore, the IPv6 address is represented
+      as defined in Section 4 of RFC 5952.";
+    reference
+     "RFC 5952: A Recommendation for IPv6 Address Text
+                Representation";
+  }
+
+  /*** collection of domain name and URI types ***/
+
+  typedef domain-name {
+    type string {
+      pattern
+        '((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*'
+      + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)'
+      + '|\.';
+      length "1..253";
+    }
+    description
+     "The domain-name type represents a DNS domain name.  The
+      name SHOULD be fully qualified whenever possible.
+      Internet domain names are only loosely specified.  Section
+      3.5 of RFC 1034 recommends a syntax (modified in Section
+      2.1 of RFC 1123).  The pattern above is intended to allow
+      for current practice in domain name use, and some possible
+      future expansion.  It is designed to hold various types of
+      domain names, including names used for A or AAAA records
+      (host names) and other records, such as SRV records.  Note
+      that Internet host names have a stricter syntax (described
+      in RFC 952) than the DNS recommendations in RFCs 1034 and
+      1123, and that systems that want to store host names in
+      schema nodes using the domain-name type are recommended to
+      adhere to this stricter standard to ensure interoperability.
+      The encoding of DNS names in the DNS protocol is limited
+      to 255 characters.  Since the encoding consists of labels
+      prefixed by a length bytes and there is a trailing NULL
+      byte, only 253 characters can appear in the textual dotted
+      notation.
+      The description clause of schema nodes using the domain-name
+      type MUST describe when and how these names are resolved to
+      IP addresses.  Note that the resolution of a domain-name value
+      may require to query multiple DNS records (e.g., A for IPv4
+      and AAAA for IPv6).  The order of the resolution process and
+      which DNS record takes precedence can either be defined
+      explicitly or may depend on the configuration of the
+      resolver.
+      Domain-name values use the US-ASCII encoding.  Their canonical
+      format uses lowercase US-ASCII characters.  Internationalized
+      domain names MUST be A-labels as per RFC 5890.";
+    reference
+     "RFC  952: DoD Internet Host Table Specification
+      RFC 1034: Domain Names - Concepts and Facilities
+      RFC 1123: Requirements for Internet Hosts -- Application
+                and Support
+      RFC 2782: A DNS RR for specifying the location of services
+                (DNS SRV)
+      RFC 5890: Internationalized Domain Names in Applications
+                (IDNA): Definitions and Document Framework";
+  }
+
+  typedef host {
+    type union {
+      type inet:ip-address;
+      type inet:domain-name;
+    }
+    description
+     "The host type represents either an IP address or a DNS
+      domain name.";
+  }
+
+  typedef uri {
+    type string;
+    description
+     "The uri type represents a Uniform Resource Identifier
+      (URI) as defined by STD 66.
+      Objects using the uri type MUST be in US-ASCII encoding,
+      and MUST be normalized as described by RFC 3986 Sections
+      6.2.1, 6.2.2.1, and 6.2.2.2.  All unnecessary
+      percent-encoding is removed, and all case-insensitive
+      characters are set to lowercase except for hexadecimal
+      digits, which are normalized to uppercase as described in
+      Section 6.2.2.1.
+      The purpose of this normalization is to help provide
+      unique URIs.  Note that this normalization is not
+      sufficient to provide uniqueness.  Two URIs that are
+      textually distinct after this normalization may still be
+      equivalent.
+      Objects using the uri type may restrict the schemes that
+      they permit.  For example, 'data:' and 'urn:' schemes
+      might not be appropriate.
+      A zero-length URI is not a valid URI.  This can be used to
+      express 'URI absent' where required.
+      In the value set and its semantics, this type is equivalent
+      to the Uri SMIv2 textual convention defined in RFC 5017.";
+    reference
+     "RFC 3986: Uniform Resource Identifier (URI): Generic Syntax
+      RFC 3305: Report from the Joint W3C/IETF URI Planning Interest
+                Group: Uniform Resource Identifiers (URIs), URLs,
+                and Uniform Resource Names (URNs): Clarifications
+                and Recommendations
+      RFC 5017: MIB Textual Conventions for Uniform Resource
+                Identifiers (URIs)";
+  }
+
+}
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/ietf-netconf-acm.yang b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/ietf-netconf-acm.yang
new file mode 100644
index 0000000..bf4855f
--- /dev/null
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/ietf-netconf-acm.yang
@@ -0,0 +1,464 @@
+module ietf-netconf-acm {
+
+  namespace "urn:ietf:params:xml:ns:yang:ietf-netconf-acm";
+
+  prefix nacm;
+
+  import ietf-yang-types {
+    prefix yang;
+  }
+
+  organization
+    "IETF NETCONF (Network Configuration) Working Group";
+
+  contact
+    "WG Web:   <https://datatracker.ietf.org/wg/netconf/>
+     WG List:  <mailto:netconf@ietf.org>
+
+     Author:   Andy Bierman
+               <mailto:andy@yumaworks.com>
+
+     Author:   Martin Bjorklund
+               <mailto:mbj@tail-f.com>";
+
+  description
+    "Network Configuration Access Control Model.
+
+     Copyright (c) 2012 - 2018 IETF Trust and the persons
+     identified as authors of the code.  All rights reserved.
+
+     Redistribution and use in source and binary forms, with or
+     without modification, is permitted pursuant to, and subject
+     to the license terms contained in, the Simplified BSD
+     License set forth in Section 4.c of the IETF Trust's
+     Legal Provisions Relating to IETF Documents
+     (https://trustee.ietf.org/license-info).
+
+     This version of this YANG module is part of RFC 8341; see
+     the RFC itself for full legal notices.";
+
+  revision "2018-02-14" {
+    description
+      "Added support for YANG 1.1 actions and notifications tied to
+       data nodes.  Clarified how NACM extensions can be used by
+       other data models.";
+    reference
+      "RFC 8341: Network Configuration Access Control Model";
+  }
+
+  revision "2012-02-22" {
+    description
+      "Initial version.";
+    reference
+      "RFC 6536: Network Configuration Protocol (NETCONF)
+                 Access Control Model";
+  }
+
+  /*
+   * Extension statements
+   */
+
+  extension default-deny-write {
+    description
+      "Used to indicate that the data model node
+       represents a sensitive security system parameter.
+
+       If present, the NETCONF server will only allow the designated
+       'recovery session' to have write access to the node.  An
+       explicit access control rule is required for all other users.
+
+       If the NACM module is used, then it must be enabled (i.e.,
+       /nacm/enable-nacm object equals 'true'), or this extension
+       is ignored.
+
+       The 'default-deny-write' extension MAY appear within a data
+       definition statement.  It is ignored otherwise.";
+  }
+
+  extension default-deny-all {
+    description
+      "Used to indicate that the data model node
+       controls a very sensitive security system parameter.
+
+       If present, the NETCONF server will only allow the designated
+       'recovery session' to have read, write, or execute access to
+       the node.  An explicit access control rule is required for all
+       other users.
+
+       If the NACM module is used, then it must be enabled (i.e.,
+       /nacm/enable-nacm object equals 'true'), or this extension
+       is ignored.
+
+       The 'default-deny-all' extension MAY appear within a data
+       definition statement, 'rpc' statement, or 'notification'
+       statement.  It is ignored otherwise.";
+  }
+
+  /*
+   * Derived types
+   */
+
+  typedef user-name-type {
+    type string {
+      length "1..max";
+    }
+    description
+      "General-purpose username string.";
+  }
+
+  typedef matchall-string-type {
+    type string {
+      pattern '\*';
+    }
+    description
+      "The string containing a single asterisk '*' is used
+       to conceptually represent all possible values
+       for the particular leaf using this data type.";
+  }
+
+  typedef access-operations-type {
+    type bits {
+      bit create {
+        description
+          "Any protocol operation that creates a
+           new data node.";
+      }
+      bit read {
+        description
+          "Any protocol operation or notification that
+           returns the value of a data node.";
+      }
+      bit update {
+        description
+          "Any protocol operation that alters an existing
+           data node.";
+      }
+      bit delete {
+        description
+          "Any protocol operation that removes a data node.";
+      }
+      bit exec {
+        description
+          "Execution access to the specified protocol operation.";
+      }
+    }
+    description
+      "Access operation.";
+  }
+
+  typedef group-name-type {
+    type string {
+      length "1..max";
+      pattern '[^\*].*';
+    }
+    description
+      "Name of administrative group to which
+       users can be assigned.";
+  }
+
+  typedef action-type {
+    type enumeration {
+      enum permit {
+        description
+          "Requested action is permitted.";
+      }
+      enum deny {
+        description
+          "Requested action is denied.";
+      }
+    }
+    description
+      "Action taken by the server when a particular
+       rule matches.";
+  }
+
+  typedef node-instance-identifier {
+    type yang:xpath1.0;
+    description
+      "Path expression used to represent a special
+       data node, action, or notification instance-identifier
+       string.
+
+       A node-instance-identifier value is an
+       unrestricted YANG instance-identifier expression.
+       All the same rules as an instance-identifier apply,
+       except that predicates for keys are optional.  If a key
+       predicate is missing, then the node-instance-identifier
+       represents all possible server instances for that key.
+
+       This XML Path Language (XPath) expression is evaluated in the
+       following context:
+
+          o  The set of namespace declarations are those in scope on
+             the leaf element where this type is used.
+
+          o  The set of variable bindings contains one variable,
+             'USER', which contains the name of the user of the
+             current session.
+
+          o  The function library is the core function library, but
+             note that due to the syntax restrictions of an
+             instance-identifier, no functions are allowed.
+
+          o  The context node is the root node in the data tree.
+
+       The accessible tree includes actions and notifications tied
+       to data nodes.";
+  }
+
+  /*
+   * Data definition statements
+   */
+
+  container nacm {
+    nacm:default-deny-all;
+
+    description
+      "Parameters for NETCONF access control model.";
+
+    leaf enable-nacm {
+      type boolean;
+      default "true";
+      description
+        "Enables or disables all NETCONF access control
+         enforcement.  If 'true', then enforcement
+         is enabled.  If 'false', then enforcement
+         is disabled.";
+    }
+
+    leaf read-default {
+      type action-type;
+      default "permit";
+      description
+        "Controls whether read access is granted if
+         no appropriate rule is found for a
+         particular read request.";
+    }
+
+    leaf write-default {
+      type action-type;
+      default "deny";
+      description
+        "Controls whether create, update, or delete access
+         is granted if no appropriate rule is found for a
+         particular write request.";
+    }
+
+    leaf exec-default {
+      type action-type;
+      default "permit";
+      description
+        "Controls whether exec access is granted if no appropriate
+         rule is found for a particular protocol operation request.";
+    }
+
+    leaf enable-external-groups {
+      type boolean;
+      default "true";
+      description
+        "Controls whether the server uses the groups reported by the
+         NETCONF transport layer when it assigns the user to a set of
+         NACM groups.  If this leaf has the value 'false', any group
+         names reported by the transport layer are ignored by the
+         server.";
+    }
+
+    leaf denied-operations {
+      type yang:zero-based-counter32;
+      config false;
+      mandatory true;
+      description
+        "Number of times since the server last restarted that a
+         protocol operation request was denied.";
+    }
+
+    leaf denied-data-writes {
+      type yang:zero-based-counter32;
+      config false;
+      mandatory true;
+      description
+        "Number of times since the server last restarted that a
+         protocol operation request to alter
+         a configuration datastore was denied.";
+    }
+
+    leaf denied-notifications {
+      type yang:zero-based-counter32;
+      config false;
+      mandatory true;
+      description
+        "Number of times since the server last restarted that
+         a notification was dropped for a subscription because
+         access to the event type was denied.";
+    }
+
+    container groups {
+      description
+        "NETCONF access control groups.";
+
+      list group {
+        key name;
+
+        description
+          "One NACM group entry.  This list will only contain
+           configured entries, not any entries learned from
+           any transport protocols.";
+
+        leaf name {
+          type group-name-type;
+          description
+            "Group name associated with this entry.";
+        }
+
+        leaf-list user-name {
+          type user-name-type;
+          description
+            "Each entry identifies the username of
+             a member of the group associated with
+             this entry.";
+        }
+      }
+    }
+
+    list rule-list {
+      key name;
+      ordered-by user;
+      description
+        "An ordered collection of access control rules.";
+
+      leaf name {
+        type string {
+          length "1..max";
+        }
+        description
+          "Arbitrary name assigned to the rule-list.";
+      }
+      leaf-list group {
+        type union {
+          type matchall-string-type;
+          type group-name-type;
+        }
+        description
+          "List of administrative groups that will be
+           assigned the associated access rights
+           defined by the 'rule' list.
+
+           The string '*' indicates that all groups apply to the
+           entry.";
+      }
+
+      list rule {
+        key name;
+        ordered-by user;
+        description
+          "One access control rule.
+
+           Rules are processed in user-defined order until a match is
+           found.  A rule matches if 'module-name', 'rule-type', and
+           'access-operations' match the request.  If a rule
+           matches, the 'action' leaf determines whether or not
+           access is granted.";
+
+        leaf name {
+          type string {
+            length "1..max";
+          }
+          description
+            "Arbitrary name assigned to the rule.";
+        }
+
+        leaf module-name {
+          type union {
+            type matchall-string-type;
+            type string;
+          }
+          default "*";
+          description
+            "Name of the module associated with this rule.
+
+             This leaf matches if it has the value '*' or if the
+             object being accessed is defined in the module with the
+             specified module name.";
+        }
+        choice rule-type {
+          description
+            "This choice matches if all leafs present in the rule
+             match the request.  If no leafs are present, the
+             choice matches all requests.";
+          case protocol-operation {
+            leaf rpc-name {
+              type union {
+                type matchall-string-type;
+                type string;
+              }
+              description
+                "This leaf matches if it has the value '*' or if
+                 its value equals the requested protocol operation
+                 name.";
+            }
+          }
+          case notification {
+            leaf notification-name {
+              type union {
+                type matchall-string-type;
+                type string;
+              }
+              description
+                "This leaf matches if it has the value '*' or if its
+                 value equals the requested notification name.";
+            }
+          }
+
+          case data-node {
+            leaf path {
+              type node-instance-identifier;
+              mandatory true;
+              description
+                "Data node instance-identifier associated with the
+                 data node, action, or notification controlled by
+                 this rule.
+
+                 Configuration data or state data
+                 instance-identifiers start with a top-level
+                 data node.  A complete instance-identifier is
+                 required for this type of path value.
+
+                 The special value '/' refers to all possible
+                 datastore contents.";
+            }
+          }
+        }
+
+        leaf access-operations {
+          type union {
+            type matchall-string-type;
+            type access-operations-type;
+          }
+          default "*";
+          description
+            "Access operations associated with this rule.
+
+             This leaf matches if it has the value '*' or if the
+             bit corresponding to the requested operation is set.";
+        }
+
+        leaf action {
+          type action-type;
+          mandatory true;
+          description
+            "The access control action associated with the
+             rule.  If a rule has been determined to match a
+             particular request, then this object is used
+             to determine whether to permit or deny the
+             request.";
+        }
+
+        leaf comment {
+          type string;
+          description
+            "A textual description of the access rule.";
+        }
+      }
+    }
+  }
+}
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/ietf-system@2014-08-06.yang b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/ietf-system@2014-08-06.yang
new file mode 100644
index 0000000..1618242
--- /dev/null
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/ietf-system@2014-08-06.yang
@@ -0,0 +1,800 @@
+module ietf-system {
+  namespace "urn:ietf:params:xml:ns:yang:ietf-system";
+  prefix "sys";
+
+  import ietf-yang-types {
+    prefix yang;
+  }
+
+  import ietf-inet-types {
+    prefix inet;
+  }
+
+  import ietf-netconf-acm {
+    prefix nacm;
+  }
+
+  import iana-crypt-hash {
+    prefix ianach;
+  }
+
+  organization
+    "IETF NETMOD (NETCONF Data Modeling Language) Working Group";
+
+  contact
+    "WG Web:   <http://tools.ietf.org/wg/netmod/>
+     WG List:  <mailto:netmod@ietf.org>
+
+     WG Chair: Thomas Nadeau
+               <mailto:tnadeau@lucidvision.com>
+
+     WG Chair: Juergen Schoenwaelder
+               <mailto:j.schoenwaelder@jacobs-university.de>
+
+     Editor:   Andy Bierman
+               <mailto:andy@yumaworks.com>
+
+     Editor:   Martin Bjorklund
+               <mailto:mbj@tail-f.com>";
+
+  description
+    "This module contains a collection of YANG definitions for the
+     configuration and identification of some common system
+     properties within a device containing a NETCONF server.  This
+     includes data node definitions for system identification,
+     time-of-day management, user management, DNS resolver
+     configuration, and some protocol operations for system
+     management.
+
+     Copyright (c) 2014 IETF Trust and the persons identified as
+     authors of the code.  All rights reserved.
+
+     Redistribution and use in source and binary forms, with or
+     without modification, is permitted pursuant to, and subject
+     to the license terms contained in, the Simplified BSD License
+     set forth in Section 4.c of the IETF Trust's Legal Provisions
+     Relating to IETF Documents
+     (http://trustee.ietf.org/license-info).
+
+     This version of this YANG module is part of RFC 7317; see
+     the RFC itself for full legal notices.";
+
+  revision 2014-08-06 {
+    description
+      "Initial revision.";
+    reference
+      "RFC 7317: A YANG Data Model for System Management";
+  }
+
+ /*
+  * Typedefs
+  */
+
+  typedef timezone-name {
+    type string;
+    description
+      "A time zone name as used by the Time Zone Database,
+       sometimes referred to as the 'Olson Database'.
+
+       The exact set of valid values is an implementation-specific
+       matter.  Client discovery of the exact set of time zone names
+       for a particular server is out of scope.";
+    reference
+      "RFC 6557: Procedures for Maintaining the Time Zone Database";
+   }
+
+  /*
+   * Features
+   */
+
+  feature radius {
+    description
+      "Indicates that the device can be configured as a RADIUS
+       client.";
+    reference
+      "RFC 2865: Remote Authentication Dial In User Service (RADIUS)";
+  }
+
+  feature authentication {
+    description
+      "Indicates that the device supports configuration of
+       user authentication.";
+  }
+
+  feature local-users {
+    if-feature authentication;
+    description
+      "Indicates that the device supports configuration of
+       local user authentication.";
+  }
+
+  feature radius-authentication {
+    if-feature radius;
+    if-feature authentication;
+    description
+      "Indicates that the device supports configuration of user
+       authentication over RADIUS.";
+    reference
+      "RFC 2865: Remote Authentication Dial In User Service (RADIUS)
+       RFC 5607: Remote Authentication Dial-In User Service (RADIUS)
+                 Authorization for Network Access Server (NAS)
+                 Management";
+  }
+
+  feature ntp {
+    description
+      "Indicates that the device can be configured to use one or
+       more NTP servers to set the system date and time.";
+  }
+
+  feature ntp-udp-port {
+    if-feature ntp;
+    description
+      "Indicates that the device supports the configuration of
+       the UDP port for NTP servers.
+
+       This is a 'feature', since many implementations do not support
+       any port other than the default port.";
+  }
+
+  feature timezone-name {
+    description
+      "Indicates that the local time zone on the device
+       can be configured to use the TZ database
+       to set the time zone and manage daylight saving time.";
+    reference
+      "RFC 6557: Procedures for Maintaining the Time Zone Database";
+  }
+
+  feature dns-udp-tcp-port {
+    description
+      "Indicates that the device supports the configuration of
+       the UDP and TCP port for DNS servers.
+
+       This is a 'feature', since many implementations do not support
+       any port other than the default port.";
+  }
+
+  /*
+   * Identities
+   */
+
+  identity authentication-method {
+    description
+      "Base identity for user authentication methods.";
+  }
+
+  identity radius {
+    base authentication-method;
+    description
+      "Indicates user authentication using RADIUS.";
+    reference
+      "RFC 2865: Remote Authentication Dial In User Service (RADIUS)
+       RFC 5607: Remote Authentication Dial-In User Service (RADIUS)
+                 Authorization for Network Access Server (NAS)
+                 Management";
+  }
+
+  identity local-users {
+    base authentication-method;
+    description
+      "Indicates password-based authentication of locally
+       configured users.";
+  }
+
+  identity radius-authentication-type {
+    description
+      "Base identity for RADIUS authentication types.";
+  }
+
+  identity radius-pap {
+    base radius-authentication-type;
+    description
+      "The device requests Password Authentication Protocol (PAP)
+       authentication from the RADIUS server.";
+    reference
+      "RFC 2865: Remote Authentication Dial In User Service (RADIUS)";
+  }
+
+  identity radius-chap {
+    base radius-authentication-type;
+    description
+      "The device requests Challenge Handshake Authentication
+       Protocol (CHAP) authentication from the RADIUS server.";
+    reference
+      "RFC 2865: Remote Authentication Dial In User Service (RADIUS)";
+  }
+
+  /*
+   * Configuration data nodes
+   */
+
+  container system {
+    description
+      "System group configuration.";
+
+    leaf contact {
+      type string;
+      description
+        "The administrator contact information for the system.
+
+         A server implementation MAY map this leaf to the sysContact
+         MIB object.  Such an implementation needs to use some
+         mechanism to handle the differences in size and characters
+         allowed between this leaf and sysContact.  The definition of
+         such a mechanism is outside the scope of this document.";
+      reference
+        "RFC 3418: Management Information Base (MIB) for the
+                   Simple Network Management Protocol (SNMP)
+                   SNMPv2-MIB.sysContact";
+    }
+    leaf hostname {
+      type inet:domain-name;
+     description
+       "The name of the host.  This name can be a single domain
+        label or the fully qualified domain name of the host.";
+    }
+    leaf location {
+      type string;
+      description
+        "The system location.
+
+         A server implementation MAY map this leaf to the sysLocation
+         MIB object.  Such an implementation needs to use some
+         mechanism to handle the differences in size and characters
+         allowed between this leaf and sysLocation.  The definition
+         of such a mechanism is outside the scope of this document.";
+      reference
+        "RFC 3418: Management Information Base (MIB) for the
+                   Simple Network Management Protocol (SNMP)
+                   SNMPv2-MIB.sysLocation";
+    }
+
+    container clock {
+      description
+        "Configuration of the system date and time properties.";
+
+      choice timezone {
+        description
+          "The system time zone information.";
+
+        case timezone-name {
+          if-feature timezone-name;
+          leaf timezone-name {
+            type timezone-name;
+            description
+              "The TZ database name to use for the system, such
+               as 'Europe/Stockholm'.";
+          }
+        }
+        case timezone-utc-offset {
+          leaf timezone-utc-offset {
+            type int16 {
+              range "-1500 .. 1500";
+            }
+            units "minutes";
+            description
+              "The number of minutes to add to UTC time to
+               identify the time zone for this system.  For example,
+               'UTC - 8:00 hours' would be represented as '-480'.
+               Note that automatic daylight saving time adjustment
+               is not provided if this object is used.";
+          }
+        }
+      }
+    }
+
+    container ntp {
+      if-feature ntp;
+      presence
+        "Enables the NTP client unless the 'enabled' leaf
+         (which defaults to 'true') is set to 'false'";
+      description
+        "Configuration of the NTP client.";
+
+      leaf enabled {
+        type boolean;
+        default true;
+        description
+          "Indicates that the system should attempt to
+           synchronize the system clock with an NTP server
+           from the 'ntp/server' list.";
+      }
+      list server {
+        key name;
+        description
+          "List of NTP servers to use for system clock
+           synchronization.  If '/system/ntp/enabled'
+           is 'true', then the system will attempt to
+           contact and utilize the specified NTP servers.";
+
+        leaf name {
+          type string;
+          description
+            "An arbitrary name for the NTP server.";
+        }
+        choice transport {
+          mandatory true;
+          description
+            "The transport-protocol-specific parameters for this
+             server.";
+
+          case udp {
+            container udp {
+              description
+                "Contains UDP-specific configuration parameters
+                 for NTP.";
+              leaf address {
+                type inet:host;
+                mandatory true;
+                description
+                  "The address of the NTP server.";
+              }
+              leaf port {
+                if-feature ntp-udp-port;
+                type inet:port-number;
+                default 123;
+                description
+                  "The port number of the NTP server.";
+              }
+            }
+          }
+        }
+        leaf association-type {
+          type enumeration {
+            enum server {
+              description
+                "Use client association mode.  This device
+                 will not provide synchronization to the
+                 configured NTP server.";
+            }
+            enum peer {
+              description
+                "Use symmetric active association mode.
+                 This device may provide synchronization
+                 to the configured NTP server.";
+            }
+            enum pool {
+              description
+                "Use client association mode with one or
+                 more of the NTP servers found by DNS
+                 resolution of the domain name given by
+                 the 'address' leaf.  This device will not
+                 provide synchronization to the servers.";
+            }
+          }
+          default server;
+          description
+            "The desired association type for this NTP server.";
+        }
+        leaf iburst {
+          type boolean;
+          default false;
+          description
+            "Indicates whether this server should enable burst
+             synchronization or not.";
+        }
+        leaf prefer {
+          type boolean;
+          default false;
+          description
+            "Indicates whether this server should be preferred
+             or not.";
+        }
+      }
+    }
+
+    container dns-resolver {
+      description
+        "Configuration of the DNS resolver.";
+
+      leaf-list search {
+        type inet:domain-name;
+        ordered-by user;
+        description
+          "An ordered list of domains to search when resolving
+           a host name.";
+      }
+      list server {
+        key name;
+        ordered-by user;
+        description
+          "List of the DNS servers that the resolver should query.
+
+           When the resolver is invoked by a calling application, it
+           sends the query to the first name server in this list.  If
+           no response has been received within 'timeout' seconds,
+           the resolver continues with the next server in the list.
+           If no response is received from any server, the resolver
+           continues with the first server again.  When the resolver
+           has traversed the list 'attempts' times without receiving
+           any response, it gives up and returns an error to the
+           calling application.
+
+           Implementations MAY limit the number of entries in this
+           list.";
+
+        leaf name {
+          type string;
+          description
+            "An arbitrary name for the DNS server.";
+        }
+        choice transport {
+          mandatory true;
+          description
+            "The transport-protocol-specific parameters for this
+             server.";
+
+          case udp-and-tcp {
+            container udp-and-tcp {
+              description
+                "Contains UDP- and TCP-specific configuration
+                 parameters for DNS.";
+              reference
+                "RFC 1035: Domain Names - Implementation and
+                           Specification
+                 RFC 5966: DNS Transport over TCP - Implementation
+                           Requirements";
+
+              leaf address {
+                type inet:ip-address;
+                mandatory true;
+                description
+                  "The address of the DNS server.";
+              }
+              leaf port {
+                if-feature dns-udp-tcp-port;
+                type inet:port-number;
+                default 53;
+                description
+                  "The UDP and TCP port number of the DNS server.";
+              }
+            }
+          }
+        }
+      }
+      container options {
+        description
+          "Resolver options.  The set of available options has been
+           limited to those that are generally available across
+           different resolver implementations and generally useful.";
+        leaf timeout {
+          type uint8 {
+            range "1..max";
+          }
+          units "seconds";
+          default "5";
+          description
+            "The amount of time the resolver will wait for a
+             response from each remote name server before
+             retrying the query via a different name server.";
+        }
+        leaf attempts {
+          type uint8 {
+            range "1..max";
+          }
+          default "2";
+          description
+            "The number of times the resolver will send a query to
+             all of its name servers before giving up and returning
+             an error to the calling application.";
+        }
+      }
+    }
+
+    container radius {
+      if-feature radius;
+
+      description
+        "Configuration of the RADIUS client.";
+
+      list server {
+        key name;
+        ordered-by user;
+        description
+          "List of RADIUS servers used by the device.
+
+           When the RADIUS client is invoked by a calling
+           application, it sends the query to the first server in
+           this list.  If no response has been received within
+           'timeout' seconds, the client continues with the next
+           server in the list.  If no response is received from any
+           server, the client continues with the first server again.
+           When the client has traversed the list 'attempts' times
+           without receiving any response, it gives up and returns an
+           error to the calling application.";
+
+        leaf name {
+          type string;
+          description
+            "An arbitrary name for the RADIUS server.";
+        }
+        choice transport {
+          mandatory true;
+          description
+            "The transport-protocol-specific parameters for this
+             server.";
+
+          case udp {
+            container udp {
+              description
+                "Contains UDP-specific configuration parameters
+                 for RADIUS.";
+              leaf address {
+                type inet:host;
+                mandatory true;
+                description
+                  "The address of the RADIUS server.";
+              }
+
+              leaf authentication-port {
+                type inet:port-number;
+                default "1812";
+                description
+                  "The port number of the RADIUS server.";
+              }
+              leaf shared-secret {
+                type string;
+                mandatory true;
+                nacm:default-deny-all;
+                description
+                  "The shared secret, which is known to both the
+                   RADIUS client and server.";
+                reference
+                  "RFC 2865: Remote Authentication Dial In User
+                             Service (RADIUS)";
+              }
+            }
+          }
+        }
+        leaf authentication-type {
+          type identityref {
+            base radius-authentication-type;
+          }
+          default radius-pap;
+          description
+            "The authentication type requested from the RADIUS
+             server.";
+        }
+      }
+      container options {
+        description
+          "RADIUS client options.";
+
+        leaf timeout {
+          type uint8 {
+            range "1..max";
+          }
+          units "seconds";
+          default "5";
+          description
+            "The number of seconds the device will wait for a
+             response from each RADIUS server before trying with a
+             different server.";
+        }
+
+        leaf attempts {
+          type uint8 {
+            range "1..max";
+          }
+          default "2";
+          description
+            "The number of times the device will send a query to
+             all of its RADIUS servers before giving up.";
+        }
+      }
+    }
+
+    container authentication {
+      nacm:default-deny-write;
+      if-feature authentication;
+
+       description
+         "The authentication configuration subtree.";
+
+       leaf-list user-authentication-order {
+         type identityref {
+           base authentication-method;
+         }
+         must '(. != "sys:radius" or ../../radius/server)' {
+           error-message
+             "When 'radius' is used, a RADIUS server"
+           + " must be configured.";
+           description
+             "When 'radius' is used as an authentication method,
+              a RADIUS server must be configured.";
+         }
+         ordered-by user;
+
+         description
+           "When the device authenticates a user with a password,
+            it tries the authentication methods in this leaf-list in
+            order.  If authentication with one method fails, the next
+            method is used.  If no method succeeds, the user is
+            denied access.
+
+            An empty user-authentication-order leaf-list still allows
+            authentication of users using mechanisms that do not
+            involve a password.
+
+            If the 'radius-authentication' feature is advertised by
+            the NETCONF server, the 'radius' identity can be added to
+            this list.
+
+            If the 'local-users' feature is advertised by the
+            NETCONF server, the 'local-users' identity can be
+            added to this list.";
+       }
+
+       list user {
+         if-feature local-users;
+         key name;
+         description
+           "The list of local users configured on this device.";
+
+         leaf name {
+           type string;
+           description
+            "The user name string identifying this entry.";
+         }
+         leaf password {
+           type ianach:crypt-hash;
+           description
+             "The password for this entry.";
+         }
+         list authorized-key {
+           key name;
+           description
+             "A list of public SSH keys for this user.  These keys
+              are allowed for SSH authentication, as described in
+              RFC 4253.";
+           reference
+             "RFC 4253: The Secure Shell (SSH) Transport Layer
+                        Protocol";
+
+           leaf name {
+             type string;
+             description
+               "An arbitrary name for the SSH key.";
+           }
+
+           leaf algorithm {
+             type string;
+             mandatory true;
+             description
+               "The public key algorithm name for this SSH key.
+
+                Valid values are the values in the IANA 'Secure Shell
+                (SSH) Protocol Parameters' registry, Public Key
+                Algorithm Names.";
+             reference
+               "IANA 'Secure Shell (SSH) Protocol Parameters'
+                registry, Public Key Algorithm Names";
+           }
+           leaf key-data {
+             type binary;
+             mandatory true;
+             description
+               "The binary public key data for this SSH key, as
+                specified by RFC 4253, Section 6.6, i.e.:
+
+                  string    certificate or public key format
+                            identifier
+                  byte[n]   key/certificate data.";
+             reference
+               "RFC 4253: The Secure Shell (SSH) Transport Layer
+                          Protocol";
+           }
+         }
+       }
+     }
+  }
+
+  /*
+   * Operational state data nodes
+   */
+
+  container system-state {
+    config false;
+    description
+      "System group operational state.";
+
+    container platform {
+      description
+        "Contains vendor-specific information for
+         identifying the system platform and operating system.";
+      reference
+        "IEEE Std 1003.1-2008 - sys/utsname.h";
+
+      leaf os-name {
+        type string;
+        description
+          "The name of the operating system in use -
+           for example, 'Linux'.";
+        reference
+          "IEEE Std 1003.1-2008 - utsname.sysname";
+      }
+      leaf os-release {
+        type string;
+        description
+          "The current release level of the operating
+           system in use.  This string MAY indicate
+           the OS source code revision.";
+        reference
+          "IEEE Std 1003.1-2008 - utsname.release";
+      }
+      leaf os-version {
+        type string;
+        description
+          "The current version level of the operating
+           system in use.  This string MAY indicate
+           the specific OS build date and target variant
+           information.";
+        reference
+          "IEEE Std 1003.1-2008 - utsname.version";
+      }
+      leaf machine {
+        type string;
+        description
+          "A vendor-specific identifier string representing
+           the hardware in use.";
+        reference
+          "IEEE Std 1003.1-2008 - utsname.machine";
+      }
+    }
+
+    container clock {
+      description
+        "Monitoring of the system date and time properties.";
+
+      leaf current-datetime {
+        type yang:date-and-time;
+        description
+          "The current system date and time.";
+      }
+
+      leaf boot-datetime {
+        type yang:date-and-time;
+        description
+          "The system date and time when the system last restarted.";
+      }
+    }
+  }
+
+  rpc set-current-datetime {
+    nacm:default-deny-all;
+    description
+      "Set the /system-state/clock/current-datetime leaf
+       to the specified value.
+
+       If the system is using NTP (i.e., /system/ntp/enabled
+       is set to 'true'), then this operation will fail with
+       error-tag 'operation-failed' and error-app-tag value of
+       'ntp-active'.";
+    input {
+      leaf current-datetime {
+        type yang:date-and-time;
+        mandatory true;
+        description
+          "The current system date and time.";
+      }
+    }
+  }
+
+  rpc system-restart {
+    nacm:default-deny-all;
+    description
+      "Request that the entire system be restarted immediately.
+       A server SHOULD send an rpc reply to the client before
+       restarting the system.";
+  }
+
+  rpc system-shutdown {
+    nacm:default-deny-all;
+    description
+      "Request that the entire system be shut down immediately.
+       A server SHOULD send an rpc reply to the client before
+       shutting down the system.";
+  }
+
+}
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/ietf-yang-types.yang b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/ietf-yang-types.yang
new file mode 100644
index 0000000..20a3ef0
--- /dev/null
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/ietf-yang-types.yang
@@ -0,0 +1,435 @@
+module ietf-yang-types {
+
+  namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types";
+  prefix "yang";
+
+  organization
+   "IETF NETMOD (NETCONF Data Modeling Language) Working Group";
+
+  contact
+   "WG Web:   <http://tools.ietf.org/wg/netmod/>
+    WG List:  <mailto:netmod@ietf.org>
+    WG Chair: David Kessens
+              <mailto:david.kessens@nsn.com>
+    WG Chair: Juergen Schoenwaelder
+              <mailto:j.schoenwaelder@jacobs-university.de>
+    Editor:   Juergen Schoenwaelder
+              <mailto:j.schoenwaelder@jacobs-university.de>";
+
+  description
+   "This module contains a collection of generally useful derived
+    YANG data types.
+    Copyright (c) 2013 IETF Trust and the persons identified as
+    authors of the code.  All rights reserved.
+    Redistribution and use in source and binary forms, with or
+    without modification, is permitted pursuant to, and subject
+    to the license terms contained in, the Simplified BSD License
+    set forth in Section 4.c of the IETF Trust's Legal Provisions
+    Relating to IETF Documents
+    (http://trustee.ietf.org/license-info).
+    This version of this YANG module is part of RFC 6991; see
+    the RFC itself for full legal notices.";
+
+  revision 2013-07-15 {
+    description
+     "This revision adds the following new data types:
+      - yang-identifier
+      - hex-string
+      - uuid
+      - dotted-quad";
+    reference
+     "RFC 6991: Common YANG Data Types";
+  }
+
+  revision 2010-09-24 {
+    description
+     "Initial revision.";
+    reference
+     "RFC 6021: Common YANG Data Types";
+  }
+
+  /*** collection of counter and gauge types ***/
+
+  typedef counter32 {
+    type uint32;
+    description
+     "The counter32 type represents a non-negative integer
+      that monotonically increases until it reaches a
+      maximum value of 2^32-1 (4294967295 decimal), when it
+      wraps around and starts increasing again from zero.
+      Counters have no defined 'initial' value, and thus, a
+      single value of a counter has (in general) no information
+      content.  Discontinuities in the monotonically increasing
+      value normally occur at re-initialization of the
+      management system, and at other times as specified in the
+      description of a schema node using this type.  If such
+      other times can occur, for example, the creation of
+      a schema node of type counter32 at times other than
+      re-initialization, then a corresponding schema node
+      should be defined, with an appropriate type, to indicate
+      the last discontinuity.
+      The counter32 type should not be used for configuration
+      schema nodes.  A default statement SHOULD NOT be used in
+      combination with the type counter32.
+      In the value set and its semantics, this type is equivalent
+      to the Counter32 type of the SMIv2.";
+    reference
+     "RFC 2578: Structure of Management Information Version 2
+                (SMIv2)";
+  }
+
+  typedef zero-based-counter32 {
+    type yang:counter32;
+    default "0";
+    description
+     "The zero-based-counter32 type represents a counter32
+      that has the defined 'initial' value zero.
+      A schema node of this type will be set to zero (0) on creation
+      and will thereafter increase monotonically until it reaches
+      a maximum value of 2^32-1 (4294967295 decimal), when it
+      wraps around and starts increasing again from zero.
+      Provided that an application discovers a new schema node
+      of this type within the minimum time to wrap, it can use the
+      'initial' value as a delta.  It is important for a management
+      station to be aware of this minimum time and the actual time
+      between polls, and to discard data if the actual time is too
+      long or there is no defined minimum time.
+      In the value set and its semantics, this type is equivalent
+      to the ZeroBasedCounter32 textual convention of the SMIv2.";
+    reference
+      "RFC 4502: Remote Network Monitoring Management Information
+                 Base Version 2";
+  }
+
+  typedef counter64 {
+    type uint64;
+    description
+     "The counter64 type represents a non-negative integer
+      that monotonically increases until it reaches a
+      maximum value of 2^64-1 (18446744073709551615 decimal),
+      when it wraps around and starts increasing again from zero.
+      Counters have no defined 'initial' value, and thus, a
+      single value of a counter has (in general) no information
+      content.  Discontinuities in the monotonically increasing
+      value normally occur at re-initialization of the
+      management system, and at other times as specified in the
+      description of a schema node using this type.  If such
+      other times can occur, for example, the creation of
+      a schema node of type counter64 at times other than
+      re-initialization, then a corresponding schema node
+      should be defined, with an appropriate type, to indicate
+      the last discontinuity.
+      The counter64 type should not be used for configuration
+      schema nodes.  A default statement SHOULD NOT be used in
+      combination with the type counter64.
+      In the value set and its semantics, this type is equivalent
+      to the Counter64 type of the SMIv2.";
+    reference
+     "RFC 2578: Structure of Management Information Version 2
+                (SMIv2)";
+  }
+
+  typedef zero-based-counter64 {
+    type yang:counter64;
+    default "0";
+    description
+     "The zero-based-counter64 type represents a counter64 that
+      has the defined 'initial' value zero.
+      A schema node of this type will be set to zero (0) on creation
+      and will thereafter increase monotonically until it reaches
+      a maximum value of 2^64-1 (18446744073709551615 decimal),
+      when it wraps around and starts increasing again from zero.
+      Provided that an application discovers a new schema node
+      of this type within the minimum time to wrap, it can use the
+      'initial' value as a delta.  It is important for a management
+      station to be aware of this minimum time and the actual time
+      between polls, and to discard data if the actual time is too
+      long or there is no defined minimum time.
+      In the value set and its semantics, this type is equivalent
+      to the ZeroBasedCounter64 textual convention of the SMIv2.";
+    reference
+     "RFC 2856: Textual Conventions for Additional High Capacity
+                Data Types";
+  }
+
+  typedef gauge32 {
+    type uint32;
+    description
+     "The gauge32 type represents a non-negative integer, which
+      may increase or decrease, but shall never exceed a maximum
+      value, nor fall below a minimum value.  The maximum value
+      cannot be greater than 2^32-1 (4294967295 decimal), and
+      the minimum value cannot be smaller than 0.  The value of
+      a gauge32 has its maximum value whenever the information
+      being modeled is greater than or equal to its maximum
+      value, and has its minimum value whenever the information
+      being modeled is smaller than or equal to its minimum value.
+      If the information being modeled subsequently decreases
+      below (increases above) the maximum (minimum) value, the
+      gauge32 also decreases (increases).
+      In the value set and its semantics, this type is equivalent
+      to the Gauge32 type of the SMIv2.";
+    reference
+     "RFC 2578: Structure of Management Information Version 2
+                (SMIv2)";
+  }
+
+  typedef gauge64 {
+    type uint64;
+    description
+     "The gauge64 type represents a non-negative integer, which
+      may increase or decrease, but shall never exceed a maximum
+      value, nor fall below a minimum value.  The maximum value
+      cannot be greater than 2^64-1 (18446744073709551615), and
+      the minimum value cannot be smaller than 0.  The value of
+      a gauge64 has its maximum value whenever the information
+      being modeled is greater than or equal to its maximum
+      value, and has its minimum value whenever the information
+      being modeled is smaller than or equal to its minimum value.
+      If the information being modeled subsequently decreases
+      below (increases above) the maximum (minimum) value, the
+      gauge64 also decreases (increases).
+      In the value set and its semantics, this type is equivalent
+      to the CounterBasedGauge64 SMIv2 textual convention defined
+      in RFC 2856";
+    reference
+     "RFC 2856: Textual Conventions for Additional High Capacity
+                Data Types";
+  }
+
+  /*** collection of identifier-related types ***/
+
+  typedef object-identifier {
+    type string {
+      pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))'
+            + '(\.(0|([1-9]\d*)))*';
+    }
+    description
+     "The object-identifier type represents administratively
+      assigned names in a registration-hierarchical-name tree.
+      Values of this type are denoted as a sequence of numerical
+      non-negative sub-identifier values.  Each sub-identifier
+      value MUST NOT exceed 2^32-1 (4294967295).  Sub-identifiers
+      are separated by single dots and without any intermediate
+      whitespace.
+      The ASN.1 standard restricts the value space of the first
+      sub-identifier to 0, 1, or 2.  Furthermore, the value space
+      of the second sub-identifier is restricted to the range
+      0 to 39 if the first sub-identifier is 0 or 1.  Finally,
+      the ASN.1 standard requires that an object identifier
+      has always at least two sub-identifiers.  The pattern
+      captures these restrictions.
+      Although the number of sub-identifiers is not limited,
+      module designers should realize that there may be
+      implementations that stick with the SMIv2 limit of 128
+      sub-identifiers.
+      This type is a superset of the SMIv2 OBJECT IDENTIFIER type
+      since it is not restricted to 128 sub-identifiers.  Hence,
+      this type SHOULD NOT be used to represent the SMIv2 OBJECT
+      IDENTIFIER type; the object-identifier-128 type SHOULD be
+      used instead.";
+    reference
+     "ISO9834-1: Information technology -- Open Systems
+      Interconnection -- Procedures for the operation of OSI
+      Registration Authorities: General procedures and top
+      arcs of the ASN.1 Object Identifier tree";
+  }
+
+  typedef object-identifier-128 {
+    type object-identifier {
+      pattern '\d*(\.\d*){1,127}';
+    }
+    description
+     "This type represents object-identifiers restricted to 128
+      sub-identifiers.
+      In the value set and its semantics, this type is equivalent
+      to the OBJECT IDENTIFIER type of the SMIv2.";
+    reference
+     "RFC 2578: Structure of Management Information Version 2
+                (SMIv2)";
+  }
+
+  typedef yang-identifier {
+    type string {
+      length "1..max";
+      pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*';
+      pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*';
+    }
+    description
+      "A YANG identifier string as defined by the 'identifier'
+       rule in Section 12 of RFC 6020.  An identifier must
+       start with an alphabetic character or an underscore
+       followed by an arbitrary sequence of alphabetic or
+       numeric characters, underscores, hyphens, or dots.
+       A YANG identifier MUST NOT start with any possible
+       combination of the lowercase or uppercase character
+       sequence 'xml'.";
+    reference
+      "RFC 6020: YANG - A Data Modeling Language for the Network
+                 Configuration Protocol (NETCONF)";
+  }
+
+  /*** collection of types related to date and time***/
+
+  typedef date-and-time {
+    type string {
+      pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?'
+            + '(Z|[\+\-]\d{2}:\d{2})';
+    }
+    description
+     "The date-and-time type is a profile of the ISO 8601
+      standard for representation of dates and times using the
+      Gregorian calendar.  The profile is defined by the
+      date-time production in Section 5.6 of RFC 3339.
+      The date-and-time type is compatible with the dateTime XML
+      schema type with the following notable exceptions:
+      (a) The date-and-time type does not allow negative years.
+      (b) The date-and-time time-offset -00:00 indicates an unknown
+          time zone (see RFC 3339) while -00:00 and +00:00 and Z
+          all represent the same time zone in dateTime.
+      (c) The canonical format (see below) of data-and-time values
+          differs from the canonical format used by the dateTime XML
+          schema type, which requires all times to be in UTC using
+          the time-offset 'Z'.
+      This type is not equivalent to the DateAndTime textual
+      convention of the SMIv2 since RFC 3339 uses a different
+      separator between full-date and full-time and provides
+      higher resolution of time-secfrac.
+      The canonical format for date-and-time values with a known time
+      zone uses a numeric time zone offset that is calculated using
+      the device's configured known offset to UTC time.  A change of
+      the device's offset to UTC time will cause date-and-time values
+      to change accordingly.  Such changes might happen periodically
+      in case a server follows automatically daylight saving time
+      (DST) time zone offset changes.  The canonical format for
+      date-and-time values with an unknown time zone (usually
+      referring to the notion of local time) uses the time-offset
+      -00:00.";
+    reference
+     "RFC 3339: Date and Time on the Internet: Timestamps
+      RFC 2579: Textual Conventions for SMIv2
+      XSD-TYPES: XML Schema Part 2: Datatypes Second Edition";
+  }
+
+  typedef timeticks {
+    type uint32;
+    description
+     "The timeticks type represents a non-negative integer that
+      represents the time, modulo 2^32 (4294967296 decimal), in
+      hundredths of a second between two epochs.  When a schema
+      node is defined that uses this type, the description of
+      the schema node identifies both of the reference epochs.
+      In the value set and its semantics, this type is equivalent
+      to the TimeTicks type of the SMIv2.";
+    reference
+     "RFC 2578: Structure of Management Information Version 2
+                (SMIv2)";
+  }
+
+  typedef timestamp {
+    type yang:timeticks;
+    description
+     "The timestamp type represents the value of an associated
+      timeticks schema node at which a specific occurrence
+      happened.  The specific occurrence must be defined in the
+      description of any schema node defined using this type.  When
+      the specific occurrence occurred prior to the last time the
+      associated timeticks attribute was zero, then the timestamp
+      value is zero.  Note that this requires all timestamp values
+      to be reset to zero when the value of the associated timeticks
+      attribute reaches 497+ days and wraps around to zero.
+      The associated timeticks schema node must be specified
+      in the description of any schema node using this type.
+      In the value set and its semantics, this type is equivalent
+      to the TimeStamp textual convention of the SMIv2.";
+    reference
+     "RFC 2579: Textual Conventions for SMIv2";
+  }
+
+  /*** collection of generic address types ***/
+
+  typedef phys-address {
+    type string {
+      pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?';
+    }
+
+    description
+     "Represents media- or physical-level addresses represented
+      as a sequence octets, each octet represented by two hexadecimal
+      numbers.  Octets are separated by colons.  The canonical
+      representation uses lowercase characters.
+      In the value set and its semantics, this type is equivalent
+      to the PhysAddress textual convention of the SMIv2.";
+    reference
+     "RFC 2579: Textual Conventions for SMIv2";
+  }
+
+  typedef mac-address {
+    type string {
+      pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}';
+    }
+    description
+     "The mac-address type represents an IEEE 802 MAC address.
+      The canonical representation uses lowercase characters.
+      In the value set and its semantics, this type is equivalent
+      to the MacAddress textual convention of the SMIv2.";
+    reference
+     "IEEE 802: IEEE Standard for Local and Metropolitan Area
+                Networks: Overview and Architecture
+      RFC 2579: Textual Conventions for SMIv2";
+  }
+
+  /*** collection of XML-specific types ***/
+
+  typedef xpath1.0 {
+    type string;
+    description
+     "This type represents an XPATH 1.0 expression.
+      When a schema node is defined that uses this type, the
+      description of the schema node MUST specify the XPath
+      context in which the XPath expression is evaluated.";
+    reference
+     "XPATH: XML Path Language (XPath) Version 1.0";
+  }
+
+  /*** collection of string types ***/
+
+  typedef hex-string {
+    type string {
+      pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?';
+    }
+    description
+     "A hexadecimal string with octets represented as hex digits
+      separated by colons.  The canonical representation uses
+      lowercase characters.";
+  }
+
+  typedef uuid {
+    type string {
+      pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-'
+            + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}';
+    }
+    description
+     "A Universally Unique IDentifier in the string representation
+      defined in RFC 4122.  The canonical representation uses
+      lowercase characters.
+      The following is an example of a UUID in string representation:
+      f81d4fae-7dec-11d0-a765-00a0c91e6bf6
+      ";
+    reference
+     "RFC 4122: A Universally Unique IDentifier (UUID) URN
+                Namespace";
+  }
+
+  typedef dotted-quad {
+    type string {
+      pattern
+        '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'
+      + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';
+    }
+    description
+      "An unsigned 32-bit number expressed in the dotted-quad
+       notation, i.e., four octets written as decimal numbers
+       and separated with the '.' (full stop) character.";
+  }
+}
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/o-ran-hardware@2019-07-03.yang b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/o-ran-hardware@2019-07-03.yang
new file mode 100644
index 0000000..ec6b359
--- /dev/null
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/o-ran-hardware@2019-07-03.yang
@@ -0,0 +1,271 @@
+module o-ran-hardware {
+  yang-version 1.1;
+  namespace "urn:o-ran:hardware:1.0";
+  prefix "o-ran-hw";
+
+  import ietf-hardware {
+    prefix hw;
+  }
+  import iana-hardware {
+    prefix ianahw;
+  }
+
+  organization "O-RAN Alliance";
+
+  contact
+    "www.o-ran.org";
+
+  description
+    "This module defines the YANG definitions for managng the O-RAN hardware.
+
+     Copyright 2019 the O-RAN Alliance.
+
+     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
+     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+     IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+     ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+     LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+     CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+     SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+     INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+     POSSIBILITY OF SUCH DAMAGE.
+
+     Redistribution and use in source and binary forms, with or without
+     modification, are permitted provided that the following conditions are met:
+
+     * Redistributions of source code must retain the above copyright notice,
+     this list of conditions and the above disclaimer.
+     * Redistributions in binary form must reproduce the above copyright notice,
+     this list of conditions and the above disclaimer in the documentation
+     and/or other materials provided with the distribution.
+     * Neither the Members of the O-RAN Alliance nor the names of its
+     contributors may be used to endorse or promote products derived from
+     this software without specific prior written permission.";
+
+   revision "2019-07-03" {
+    description
+      "version 1.1.0
+
+      1) added new identities to accommodate cross working group use of
+      o-ran-hardware and assoicated set of augmentations that are backwards
+      compatible to version 1.0.0";
+
+    reference "ORAN-WG4.M.0-v01.00";
+   }
+
+  revision "2019-02-04" {
+   description
+     "version 1.0.0
+
+     1) imported model from xRAN
+     2) changed namespace and reference from xran to o-ran";
+
+   reference "ORAN-WG4.M.0-v01.00";
+  }
+
+  feature ENERGYSAVING {
+    description
+      "Indicates that the Radio Unit supports energy saving state.";
+  }
+
+  // identity statements
+  identity O-RAN-RADIO {
+    base ianahw:module;
+    description
+      "Module used as it represents a self-contained sub-system
+      used in /hw:/hardware/hw:component/hw:class to represent
+      an O-RAN RU";
+  }
+
+  identity O-RAN-HW-COMPONENT {
+    base ianahw:module;
+    description
+      "Module used as it represents a self-contained sub-system
+      used in /hw:/hardware/hw:component/hw:class to represent
+      any O-RAN hardware component";
+  }
+
+  identity O-DU-COMPONENT {
+    base O-RAN-HW-COMPONENT;
+    description
+      "Used in /hw:/hardware/hw:component/hw:class to represent
+      any O-RAN defined O-DU hardware component";
+  }
+
+  identity O-RU-COMPONENT {
+    base O-RAN-HW-COMPONENT;
+    description
+      "Used in /hw:/hardware/hw:component/hw:class to represent
+      any O-RAN defined O-RU hardware component, including a stand-alone
+      O-RU or an O-RU component integrated into a multi-module system.";
+  }
+
+  // typedef statements
+  typedef energysaving-state {
+    type enumeration {
+      enum UNKNOWN {
+        description "The Radio Unit is unable to report energy saving state.";
+      }
+      enum SLEEPING {
+        description
+          "The Radio Unit is in a sleep state. The NETCONF management plane
+           connection is functioning. Other functions and hardware which are
+           not needed for management plane may be in energy saving mode.";
+      }
+      enum AWAKE {
+        description
+          "The Radio Unit is not in an energy saving state.";
+      }
+    }
+    description
+      "new typedef since ietf-hardware only covers pwer-state
+      for redundancy purposes and not power saving operations.";
+  }
+
+  typedef availability-type {
+    type enumeration {
+      enum UNKNOWN {
+        description "The Radio Unit is unable to report its availability state.";
+      }
+      enum NORMAL {
+        description
+          "The equipment is functioning correctly.";
+      }
+      enum DEGRADED {
+        description
+          "The equipment may be reporting a major alarm or may be reporting a critical
+           alarm that is only impacting one or more subcomponent, but where the
+           equipment's implementation permit it to continue operation (server traffic)
+           in a degraded state.
+
+           Used for example, when the equipment has M identical sub-components and
+           when a critical alarm is imapcting only N subcomponents, where N<M.";
+      }
+      enum FAULTY {
+        description
+          "The (sub-)components impacted by the critical alarm(s) impact the
+          ability of the equipment to continue operation (serve traffic).";
+      }
+    }
+    description
+      "Equipment's availability-state is derived by matching active faults
+       and their impact to module's operation and enables an equipment to indicate
+       that even though it may have one or more critical alarms, it can continue
+       to serve traffic.";
+  }
+
+  // common WG4 and croos-WG augmentations using O-RAN-RADIO identity
+
+  augment "/hw:hardware/hw:component" {
+    when "(derived-from-or-self(hw:class, 'o-ran-hw:O-RAN-RADIO')) or
+    (derived-from-or-self(hw:class, 'o-ran-hw:O-RAN-HW-COMPONENT'))";
+    description "New O-RAN parameters for o-ran hardware";
+
+    container label-content {
+      config false;
+      description
+        "Which set of attributes are printed on the Radio Unit's label";
+      leaf model-name {
+        type boolean;
+        description
+          "indicates whether model-name is included on the equipment's label";
+      }
+      leaf serial-number {
+        type boolean;
+        description
+          "indicates whether serial number is included on the equipment's label";
+      }
+    }
+    leaf product-code {
+      type string;
+      config false;
+      mandatory true;
+      description
+        "O-RAN term that is distinct from model-name in ietf-hardware.";
+    }
+    leaf energy-saving-enabled {
+      if-feature "ENERGYSAVING";
+      type boolean;
+      config true;
+      default false;
+      description
+        "This parameter can enable O-RAN unit to be switched to energy
+         saving mode.
+         TRUE indicates to switch the energy saving mode.
+         FALSE indicates to cancel the energy saving mode.
+         At the energy saving mode, all power of whole O-RAN unit becomes
+         lowest level whereas M-plane is still available";
+    }
+  }
+
+  augment "/hw:hardware/hw:component" {
+    when "(derived-from-or-self(hw:class, 'o-ran-hw:O-RAN-RADIO')) or
+    (derived-from-or-self(hw:class, 'ianahw:port')) or
+    (derived-from-or-self(hw:class, 'o-ran-hw:O-RAN-HW-COMPONENT'))";
+    description "New O-RAN parameters for o-ran naming";
+    leaf o-ran-name {
+      type leafref {
+        path "/hw:hardware/hw:component/hw:name";
+      }
+      must "re-match(current(),'[a-zA-Z0-9][a-zA-Z0-9\\.\\-_]{0,253}[a-zA-Z0-9]')" {
+        error-message "Name must match pattern and length.";
+      }
+      mandatory true;
+      description
+        "O-RAN name needed to bind and match with the name of hw element,
+        to be compliant with O-RAN naming convention.";
+    }
+  }
+
+  augment "/hw:hardware/hw:component/hw:state"  {
+    when "(derived-from-or-self(../hw:class, 'o-ran-hw:O-RAN-RADIO')) or
+    (derived-from-or-self(../hw:class, 'o-ran-hw:O-RAN-HW-COMPONENT'))";
+    description
+      "new O-RAN defined state";
+    leaf power-state {
+      if-feature "ENERGYSAVING";
+      type energysaving-state;
+      config false;
+      description
+        "The current power saving state for this component.
+        Note - hw:/hardware/compnent/state/standby-state defined in RFC 4268 is
+        used for redundancy purposes and not power saving operations.";
+    }
+    leaf availability-state {
+      type availability-type;
+      config false;
+      description
+        "Equipment's availability-state is derived by matching active faults
+         and their impact to module's operation and enables an equipment to indicate
+         that even though it may have one or more critical alarms, it can continue
+         to serve traffic.";
+    }
+  }
+
+
+// augmentations to Notifications
+
+  augment "/hw:hardware-state-oper-enabled"  {
+    description "new availability state";
+    leaf availability-state {
+      type leafref {
+        path "/hw:hardware/hw:component/hw:state/o-ran-hw:availability-state";
+      }
+      description
+        "The availability-state of the O-RU.";
+    }
+  }
+
+  augment "/hw:hardware-state-oper-disabled"  {
+    description "new availability state";
+    leaf availability-state {
+      type leafref {
+        path "/hw:hardware/hw:component/hw:state/o-ran-hw:availability-state";
+      }
+      description
+        "The availability-state of the O-RU.";
+    }
+  }
+}
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/onap-system.xml b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/onap-system.xml
new file mode 100644
index 0000000..3fb45c2
--- /dev/null
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/onap-system.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system xmlns="urn:ietf:params:xml:ns:yang:ietf-system">
+    <clock>
+        <timezone-name>UTC</timezone-name>
+    </clock>
+    <name xmlns="urn:onap:system">NTS_FUNCTION_TYPE_O_RAN_FH-0</name>
+    <web-ui xmlns="urn:onap:system">http://172.18.0.3:8181/odlux/index.html#/configuration/NTS_FUNCTION_TYPE_O_RAN_FH-0</web-ui>
+    <contact>O-RAN-SC SIM project</contact>
+    <hostname>NTS_FUNCTION_TYPE_O_RAN_FH-0</hostname>
+    <location>Open Wireless Lab</location>
+    <ntp>
+        <enabled>false</enabled>
+    </ntp>
+</system>                                                                                                                             
+         
\ No newline at end of file
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/onap-system.yang b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/onap-system.yang
new file mode 100644
index 0000000..3e19429
--- /dev/null
+++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/onap-system.yang
@@ -0,0 +1,59 @@
+module onap-system {
+  yang-version 1.1;
+  namespace "urn:onap:system";
+  prefix os;
+
+  import ietf-inet-types {
+    prefix inet;
+  }
+  import ietf-system {
+    prefix sys;
+  }
+
+  organization
+    "ONAP - Open Network Automation Platform";
+  contact
+    "Web: <https://www.onap.org>
+     Editors:
+        Alex Stancu <mailto:alexandru.stancu@highstreet-technologies.com>
+        Adrian Lita <mailto:adrian.lita@highstreet-technologies.com>
+        Martin Skorupski <mailto:martin.skorupski@highstreet-technologies.com>";
+  description
+    "This module augments ietf-system with ONAP details.
+
+     Copyright 2020 the O-RAN Alliance.
+
+     Licensed under the Apache License, Version 2.0 (the 'License');
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an 'AS IS' BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.";
+
+  revision 2020-10-26 {
+    description
+      "Initial revision for the ietf-system augmentation for ONAP.";
+    reference
+      "https://jira.onap.org/browse/SDNC-1396";
+  }
+
+  augment "/sys:system" {
+    leaf name {
+      type string;
+      description
+        "The name of the system.";
+    }
+    leaf web-ui {
+      type inet:uri;
+      description
+        "The URI of the system Web UI.";
+    }
+    description
+      "Enhancing the system information.";
+  }
+}
diff --git a/sdnr/wt/devicemanager-onap/adapter-manager/feature/pom.xml b/sdnr/wt/devicemanager-onap/adapter-manager/feature/pom.xml
index 9cea31a..c581fbc 100644
--- a/sdnr/wt/devicemanager-onap/adapter-manager/feature/pom.xml
+++ b/sdnr/wt/devicemanager-onap/adapter-manager/feature/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/devicemanager-onap/adapter-manager/installer/pom.xml b/sdnr/wt/devicemanager-onap/adapter-manager/installer/pom.xml
index 08646f9..ac67cb0 100755
--- a/sdnr/wt/devicemanager-onap/adapter-manager/installer/pom.xml
+++ b/sdnr/wt/devicemanager-onap/adapter-manager/installer/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/devicemanager-onap/adapter-manager/model/pom.xml b/sdnr/wt/devicemanager-onap/adapter-manager/model/pom.xml
index 895ac6d..dd531e6 100644
--- a/sdnr/wt/devicemanager-onap/adapter-manager/model/pom.xml
+++ b/sdnr/wt/devicemanager-onap/adapter-manager/model/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/devicemanager-onap/adapter-manager/pom.xml b/sdnr/wt/devicemanager-onap/adapter-manager/pom.xml
index dca308b..a6d0ffb 100755
--- a/sdnr/wt/devicemanager-onap/adapter-manager/pom.xml
+++ b/sdnr/wt/devicemanager-onap/adapter-manager/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/devicemanager-onap/adapter-manager/provider/pom.xml b/sdnr/wt/devicemanager-onap/adapter-manager/provider/pom.xml
index 4c93509..7c6d388 100644
--- a/sdnr/wt/devicemanager-onap/adapter-manager/provider/pom.xml
+++ b/sdnr/wt/devicemanager-onap/adapter-manager/provider/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/devicemanager-onap/onf12/feature/pom.xml b/sdnr/wt/devicemanager-onap/onf12/feature/pom.xml
index 8f31c4b..13f6b7f 100644
--- a/sdnr/wt/devicemanager-onap/onf12/feature/pom.xml
+++ b/sdnr/wt/devicemanager-onap/onf12/feature/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/devicemanager-onap/onf12/installer/pom.xml b/sdnr/wt/devicemanager-onap/onf12/installer/pom.xml
index 09d11e0..9a81fcb 100755
--- a/sdnr/wt/devicemanager-onap/onf12/installer/pom.xml
+++ b/sdnr/wt/devicemanager-onap/onf12/installer/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/devicemanager-onap/onf12/model/pom.xml b/sdnr/wt/devicemanager-onap/onf12/model/pom.xml
index 2f05d28..108883d 100644
--- a/sdnr/wt/devicemanager-onap/onf12/model/pom.xml
+++ b/sdnr/wt/devicemanager-onap/onf12/model/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/devicemanager-onap/onf12/pom.xml b/sdnr/wt/devicemanager-onap/onf12/pom.xml
index 414d9ea..a2ec498 100755
--- a/sdnr/wt/devicemanager-onap/onf12/pom.xml
+++ b/sdnr/wt/devicemanager-onap/onf12/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/pom.xml b/sdnr/wt/devicemanager-onap/onf12/provider/pom.xml
index cd56f5a..9c2982f 100644
--- a/sdnr/wt/devicemanager-onap/onf12/provider/pom.xml
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/WrapperPTPModelRev170208.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/WrapperPTPModelRev170208.java
index a0813ee..81e7d85 100644
--- a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/WrapperPTPModelRev170208.java
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/WrapperPTPModelRev170208.java
@@ -29,6 +29,7 @@
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ptp.dataset.rev170208.instance.list.PortDsList;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ptp.dataset.rev170208.port.ds.entry.PortIdentity;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint16;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -42,7 +43,7 @@
     private static final Logger LOG = LoggerFactory.getLogger(WrapperPTPModelRev170208.class);
 
     protected static final InstanceIdentifier<InstanceList> PTPINSTANCES_IID =
-            InstanceIdentifier.builder(InstanceList.class, new InstanceListKey(1)).build();
+            InstanceIdentifier.builder(InstanceList.class, new InstanceListKey(Uint16.valueOf(1))).build();
 
     /**
      * Query synchronization information out of NE
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/pm/PerformanceDataAirInterface170324Builder.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/pm/PerformanceDataAirInterface170324Builder.java
index d5ca9c3..242e100 100644
--- a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/pm/PerformanceDataAirInterface170324Builder.java
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/pm/PerformanceDataAirInterface170324Builder.java
@@ -1,5 +1,4 @@
 /*
- * ============LICENSE_START========================================================================
  * ONAP : ccsdk feature sdnr wt
  * =================================================================================================
  * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
@@ -46,7 +45,7 @@
 		this.setNodeName(nodeId.getValue());
 		this.setScannerId(pmRecord.getHistoryDataId());
 		this.setTimeStamp(pmRecord.getPeriodEndTime());
-		this.setSuspectIntervalFlag(pmRecord.isSuspectIntervalFlag());
+		this.setSuspectIntervalFlag(pmRecord.requireSuspectIntervalFlag());
 	}
 
 	/**
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/pm/PerformanceDataAirInterface180907Builder.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/pm/PerformanceDataAirInterface180907Builder.java
index 275252f..7faca3c 100644
--- a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/pm/PerformanceDataAirInterface180907Builder.java
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/pm/PerformanceDataAirInterface180907Builder.java
@@ -46,7 +46,7 @@
 		this.setNodeName(nodeId.getValue());
 		this.setScannerId(pmRecord.getHistoryDataId());
 		this.setTimeStamp(pmRecord.getPeriodEndTime());
-		this.setSuspectIntervalFlag(pmRecord.isSuspectIntervalFlag());
+		this.setSuspectIntervalFlag(pmRecord.requireSuspectIntervalFlag());
 	}
 
 	/**
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/pm/PerformanceDataAirInterface181010Builder.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/pm/PerformanceDataAirInterface181010Builder.java
index 0c379b1..6b42bd2 100644
--- a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/pm/PerformanceDataAirInterface181010Builder.java
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/pm/PerformanceDataAirInterface181010Builder.java
@@ -46,7 +46,7 @@
 		this.setNodeName(nodeId.getValue());
 		this.setScannerId(pmRecord.getHistoryDataId());
 		this.setTimeStamp(pmRecord.getPeriodEndTime());
-		this.setSuspectIntervalFlag(pmRecord.isSuspectIntervalFlag());
+		this.setSuspectIntervalFlag(pmRecord.requireSuspectIntervalFlag());
 	}
 
 	/**
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/equipment/test/TestExtendedEquipment.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/equipment/test/TestExtendedEquipment.java
index 20d479e..3ded685 100644
--- a/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/equipment/test/TestExtendedEquipment.java
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/equipment/test/TestExtendedEquipment.java
@@ -26,6 +26,7 @@
 import org.junit.Test;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.WrapperPTPModelRev170208;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.equipment.ExtendedEquipment;
+import org.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapperHelper;
 import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.Equipment;
 import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.EquipmentBuilder;
 import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.UniversalId;
@@ -66,7 +67,7 @@
                 new ManufacturedThingBuilder().setManufacturerProperties(manufacturerProps).setEquipmentType(eqptType)
                         .setEquipmentInstance(eqptInstance).build();
 
-        Equipment equipment = new EquipmentBuilder().setUuid(id).setContainedHolder(holder)
+        Equipment equipment = new EquipmentBuilder().setUuid(id).setContainedHolder(YangToolsMapperHelper.toMap(holder))
                 .setManufacturedThing(manufacturedThing).build();
 
         ExtendedEquipment extEqpt = new ExtendedEquipment(NODEID, "1234567890", equipment, "/var/opt", 3);
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/test/TestWrapperMicrowaveModelRev170324.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/test/TestWrapperMicrowaveModelRev170324.java
index 4049a54..f4a0aae 100644
--- a/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/test/TestWrapperMicrowaveModelRev170324.java
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/test/TestWrapperMicrowaveModelRev170324.java
@@ -32,6 +32,7 @@
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.util.InconsistentPMDataException;
 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.TransactionUtils;
+import org.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapperHelper;
 import org.opendaylight.mdsal.binding.api.DataBroker;
 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
 import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.UniversalId;
@@ -109,7 +110,7 @@
                 Arrays.asList(new CurrentProblemListBuilder().setProblemName("Loss of Signal")
                         .setProblemSeverity(SeverityType.Critical).setSequenceNumber(1).setTimeStamp(null).build());
         airInterfaceCurrentProblems =
-                new AirInterfaceCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build();
+                new AirInterfaceCurrentProblemsBuilder().setCurrentProblemList(YangToolsMapperHelper.toMap(currentProblemList)).build();
 
         mwEthInterfaceIID = InstanceIdentifier.builder(MwEthernetContainerPac.class, new MwEthernetContainerPacKey(uid))
                 .child(EthernetContainerCurrentProblems.class).build();
@@ -120,7 +121,7 @@
                                 .setProblemSeverity(SeverityType.Critical).setSequenceNumber(1).setTimeStamp(null)
                                 .build());
         ethernetContainerCurrentProblems =
-                new EthernetContainerCurrentProblemsBuilder().setCurrentProblemList(ethCurrentProblemsList).build();
+                new EthernetContainerCurrentProblemsBuilder().setCurrentProblemList(YangToolsMapperHelper.toMap(ethCurrentProblemsList)).build();
 
         NodeId nNodeId = new NodeId("nSky");
         when(accessor.getNodeId()).thenReturn(nNodeId);
@@ -189,7 +190,7 @@
                                 .setProblemName("Loss of Payload").setProblemSeverity(SeverityType.Major)
                                 .setSequenceNumber(2).setTimeStamp(null).build());
         TdmContainerCurrentProblems tdmInterfaceCurrentProblems =
-                new TdmContainerCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build();
+                new TdmContainerCurrentProblemsBuilder().setCurrentProblemList(YangToolsMapperHelper.toMap(currentProblemList)).build();
         when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
                 mwEthInterfaceIID)).thenReturn(tdmInterfaceCurrentProblems);
 
@@ -214,7 +215,7 @@
                                 .setProblemName("Loss of Payload").setProblemSeverity(SeverityType.Major)
                                 .setSequenceNumber(2).setTimeStamp(null).build());
         HybridMwStructureCurrentProblems hybridMwStructureCurrentProblems =
-                new HybridMwStructureCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build();
+                new HybridMwStructureCurrentProblemsBuilder().setCurrentProblemList(YangToolsMapperHelper.toMap(currentProblemList)).build();
         when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
                 mwEthInterfaceIID)).thenReturn(hybridMwStructureCurrentProblems);
 
@@ -239,7 +240,7 @@
                                 .setProblemName("Loss of Payload").setProblemSeverity(SeverityType.Major)
                                 .setSequenceNumber(2).setTimeStamp(null).build());
         AirInterfaceDiversityCurrentProblems hybridMwStructureCurrentProblems =
-                new AirInterfaceDiversityCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build();
+                new AirInterfaceDiversityCurrentProblemsBuilder().setCurrentProblemList(YangToolsMapperHelper.toMap(currentProblemList)).build();
         when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
                 mwEthInterfaceIID)).thenReturn(hybridMwStructureCurrentProblems);
 
@@ -264,7 +265,7 @@
                                 .setProblemName("Loss of Payload").setProblemSeverity(SeverityType.Major)
                                 .setSequenceNumber(2).setTimeStamp(null).build());
         PureEthernetStructureCurrentProblems hybridMwStructureCurrentProblems =
-                new PureEthernetStructureCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build();
+                new PureEthernetStructureCurrentProblemsBuilder().setCurrentProblemList(YangToolsMapperHelper.toMap(currentProblemList)).build();
         when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
                 mwEthInterfaceIID)).thenReturn(hybridMwStructureCurrentProblems);
 
@@ -306,9 +307,10 @@
                         new org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.air._interface.historical.performances.g.HistoricalPerformanceDataListBuilder()
                         .setHistoryDataId("123")
                         .setGranularityPeriod(GranularityPeriodType.Period15Min)
-                                .setPerformanceData(performanceData).build());
+                        .setSuspectIntervalFlag(true)
+                        .setPerformanceData(performanceData).build());
         AirInterfaceHistoricalPerformances airHistoricalPerformanceData =
-                new AirInterfaceHistoricalPerformancesBuilder().setHistoricalPerformanceDataList(airHistPMList).build();
+                new AirInterfaceHistoricalPerformancesBuilder().setHistoricalPerformanceDataList(YangToolsMapperHelper.toMap(airHistPMList)).build();
         when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
                 mwAirInterfaceHistoricalPerformanceIID)).thenReturn(airHistoricalPerformanceData);
 
@@ -323,10 +325,11 @@
                 Arrays.asList(
                         new org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.ethernet.container.historical.performances.g.HistoricalPerformanceDataListBuilder()
                         .setHistoryDataId("123")
+                        .setSuspectIntervalFlag(true)
                         .setGranularityPeriod(GranularityPeriodType.Period24Hours)
                                 .setPerformanceData(ethPerformanceData).build());
         EthernetContainerHistoricalPerformances ethContainerHistoricalPerformanceData =
-                new EthernetContainerHistoricalPerformancesBuilder().setHistoricalPerformanceDataList(ethHistPMList)
+                new EthernetContainerHistoricalPerformancesBuilder().setHistoricalPerformanceDataList(YangToolsMapperHelper.toMap(ethHistPMList))
                         .build();
         when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
                 ethContainerIID)).thenReturn(ethContainerHistoricalPerformanceData);
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/test/TestWrapperMicrowaveModelRev180907.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/test/TestWrapperMicrowaveModelRev180907.java
index 078890f..173b973 100644
--- a/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/test/TestWrapperMicrowaveModelRev180907.java
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/test/TestWrapperMicrowaveModelRev180907.java
@@ -32,6 +32,7 @@
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.util.InconsistentPMDataException;
 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.TransactionUtils;
+import org.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapperHelper;
 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
 import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.UniversalId;
 import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.logical.termination.point.g.Lp;
@@ -106,7 +107,7 @@
                 Arrays.asList(new CurrentProblemListBuilder().setProblemName("Loss of Signal")
                         .setProblemSeverity(SeverityType.Critical).setSequenceNumber(1).setTimeStamp(null).build());
         airInterfaceCurrentProblems =
-                new AirInterfaceCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build();
+                new AirInterfaceCurrentProblemsBuilder().setCurrentProblemList(YangToolsMapperHelper.toMap(currentProblemList)).build();
 
         mwEthInterfaceIID = InstanceIdentifier.builder(MwEthernetContainerPac.class, new MwEthernetContainerPacKey(uid))
                 .child(EthernetContainerCurrentProblems.class).build();
@@ -117,7 +118,7 @@
                                 .setProblemSeverity(SeverityType.Critical).setSequenceNumber(1).setTimeStamp(null)
                                 .build());
         ethernetContainerCurrentProblems =
-                new EthernetContainerCurrentProblemsBuilder().setCurrentProblemList(ethCurrentProblemsList).build();
+                new EthernetContainerCurrentProblemsBuilder().setCurrentProblemList(YangToolsMapperHelper.toMap(ethCurrentProblemsList)).build();
 
         NodeId nNodeId = new NodeId("nSky");
         when(accessor.getNodeId()).thenReturn(nNodeId);
@@ -185,7 +186,7 @@
                                 .setProblemName("Loss of Payload").setProblemSeverity(SeverityType.Major)
                                 .setSequenceNumber(2).setTimeStamp(null).build());
         TdmContainerCurrentProblems tdmInterfaceCurrentProblems =
-                new TdmContainerCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build();
+                new TdmContainerCurrentProblemsBuilder().setCurrentProblemList(YangToolsMapperHelper.toMap(currentProblemList)).build();
         when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
                 mwEthInterfaceIID)).thenReturn(tdmInterfaceCurrentProblems);
 
@@ -210,7 +211,7 @@
                                 .setProblemName("Loss of Payload").setProblemSeverity(SeverityType.Major)
                                 .setSequenceNumber(2).setTimeStamp(null).build());
         HybridMwStructureCurrentProblems hybridMwStructureCurrentProblems =
-                new HybridMwStructureCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build();
+                new HybridMwStructureCurrentProblemsBuilder().setCurrentProblemList(YangToolsMapperHelper.toMap(currentProblemList)).build();
         when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
                 mwEthInterfaceIID)).thenReturn(hybridMwStructureCurrentProblems);
 
@@ -235,7 +236,7 @@
                                 .setProblemName("Loss of Payload").setProblemSeverity(SeverityType.Major)
                                 .setSequenceNumber(2).setTimeStamp(null).build());
         AirInterfaceDiversityCurrentProblems hybridMwStructureCurrentProblems =
-                new AirInterfaceDiversityCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build();
+                new AirInterfaceDiversityCurrentProblemsBuilder().setCurrentProblemList(YangToolsMapperHelper.toMap(currentProblemList)).build();
         when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
                 mwEthInterfaceIID)).thenReturn(hybridMwStructureCurrentProblems);
 
@@ -260,7 +261,7 @@
                                 .setProblemName("Loss of Payload").setProblemSeverity(SeverityType.Major)
                                 .setSequenceNumber(2).setTimeStamp(null).build());
         PureEthernetStructureCurrentProblems hybridMwStructureCurrentProblems =
-                new PureEthernetStructureCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build();
+                new PureEthernetStructureCurrentProblemsBuilder().setCurrentProblemList(YangToolsMapperHelper.toMap(currentProblemList)).build();
         when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
                 mwEthInterfaceIID)).thenReturn(hybridMwStructureCurrentProblems);
 
@@ -302,9 +303,10 @@
                         new org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.air._interface.historical.performances.g.HistoricalPerformanceDataListBuilder()
                         .setHistoryDataId("123")
                         .setGranularityPeriod(GranularityPeriodType.Period15Min)
+                        .setSuspectIntervalFlag(true)
                                 .setPerformanceData(performanceData).build());
         AirInterfaceHistoricalPerformances airHistoricalPerformanceData =
-                new AirInterfaceHistoricalPerformancesBuilder().setHistoricalPerformanceDataList(airHistPMList).build();
+                new AirInterfaceHistoricalPerformancesBuilder().setHistoricalPerformanceDataList(YangToolsMapperHelper.toMap(airHistPMList)).build();
         when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
                 mwAirInterfaceHistoricalPerformanceIID)).thenReturn(airHistoricalPerformanceData);
 
@@ -320,9 +322,10 @@
                         new org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.ethernet.container.historical.performances.g.HistoricalPerformanceDataListBuilder()
                         .setHistoryDataId("123")
                         .setGranularityPeriod(GranularityPeriodType.Period24Hours)
+                        .setSuspectIntervalFlag(true)
                                 .setPerformanceData(ethPerformanceData).build());
         EthernetContainerHistoricalPerformances ethContainerHistoricalPerformanceData =
-                new EthernetContainerHistoricalPerformancesBuilder().setHistoricalPerformanceDataList(ethHistPMList)
+                new EthernetContainerHistoricalPerformancesBuilder().setHistoricalPerformanceDataList(YangToolsMapperHelper.toMap(ethHistPMList))
                         .build();
         when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
                 ethContainerIID)).thenReturn(ethContainerHistoricalPerformanceData);
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/test/TestWrapperMicrowaveModelRev181010.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/test/TestWrapperMicrowaveModelRev181010.java
index 51e9dae..c282e1a 100644
--- a/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/test/TestWrapperMicrowaveModelRev181010.java
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/test/TestWrapperMicrowaveModelRev181010.java
@@ -32,8 +32,11 @@
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.util.InconsistentPMDataException;
 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.TransactionUtils;
+import org.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapperHelper;
+import org.onap.ccsdk.features.sdnr.wt.yang.mapper.mapperextensions.YangtoolsMapDesirializer;
 import org.opendaylight.mdsal.binding.api.DataBroker;
 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.Yang;
 import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.UniversalId;
 import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.logical.termination.point.g.Lp;
 import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.logical.termination.point.g.LpBuilder;
@@ -110,7 +113,7 @@
                 Arrays.asList(new CurrentProblemListBuilder().setProblemName("Loss of Signal")
                         .setProblemSeverity(SeverityType.Critical).setSequenceNumber(1).setTimeStamp(null).build());
         airInterfaceCurrentProblems =
-                new AirInterfaceCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build();
+                new AirInterfaceCurrentProblemsBuilder().setCurrentProblemList(YangToolsMapperHelper.toMap(currentProblemList)).build();
 
         mwEthInterfaceIID = InstanceIdentifier.builder(MwEthernetContainerPac.class, new MwEthernetContainerPacKey(uid))
                 .child(EthernetContainerCurrentProblems.class).build();
@@ -121,7 +124,7 @@
                                 .setProblemSeverity(SeverityType.Critical).setSequenceNumber(1).setTimeStamp(null)
                                 .build());
         ethernetContainerCurrentProblems =
-                new EthernetContainerCurrentProblemsBuilder().setCurrentProblemList(ethCurrentProblemsList).build();
+                new EthernetContainerCurrentProblemsBuilder().setCurrentProblemList(YangToolsMapperHelper.toMap(ethCurrentProblemsList)).build();
 
         NodeId nNodeId = new NodeId("nSky");
         when(accessor.getNodeId()).thenReturn(nNodeId);
@@ -190,7 +193,7 @@
                                 .setProblemName("Loss of Payload").setProblemSeverity(SeverityType.Major)
                                 .setSequenceNumber(2).setTimeStamp(null).build());
         TdmContainerCurrentProblems tdmInterfaceCurrentProblems =
-                new TdmContainerCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build();
+                new TdmContainerCurrentProblemsBuilder().setCurrentProblemList(YangToolsMapperHelper.toMap(currentProblemList)).build();
         when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
                 mwEthInterfaceIID)).thenReturn(tdmInterfaceCurrentProblems);
 
@@ -215,7 +218,7 @@
                                 .setProblemName("Loss of Payload").setProblemSeverity(SeverityType.Major)
                                 .setSequenceNumber(2).setTimeStamp(null).build());
         HybridMwStructureCurrentProblems hybridMwStructureCurrentProblems =
-                new HybridMwStructureCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build();
+                new HybridMwStructureCurrentProblemsBuilder().setCurrentProblemList(YangToolsMapperHelper.toMap(currentProblemList)).build();
         when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
                 mwEthInterfaceIID)).thenReturn(hybridMwStructureCurrentProblems);
 
@@ -240,7 +243,7 @@
                                 .setProblemName("Loss of Payload").setProblemSeverity(SeverityType.Major)
                                 .setSequenceNumber(2).setTimeStamp(null).build());
         AirInterfaceDiversityCurrentProblems hybridMwStructureCurrentProblems =
-                new AirInterfaceDiversityCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build();
+                new AirInterfaceDiversityCurrentProblemsBuilder().setCurrentProblemList(YangToolsMapperHelper.toMap(currentProblemList)).build();
         when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
                 mwEthInterfaceIID)).thenReturn(hybridMwStructureCurrentProblems);
 
@@ -265,7 +268,7 @@
                                 .setProblemName("Loss of Payload").setProblemSeverity(SeverityType.Major)
                                 .setSequenceNumber(2).setTimeStamp(null).build());
         PureEthernetStructureCurrentProblems hybridMwStructureCurrentProblems =
-                new PureEthernetStructureCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build();
+                new PureEthernetStructureCurrentProblemsBuilder().setCurrentProblemList(YangToolsMapperHelper.toMap(currentProblemList)).build();
         when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
                 mwEthInterfaceIID)).thenReturn(hybridMwStructureCurrentProblems);
 
@@ -306,9 +309,10 @@
                         new org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.air._interface.historical.performances.g.HistoricalPerformanceDataListBuilder()
                         .setHistoryDataId("123")
                         .setGranularityPeriod(GranularityPeriodType.Period15Min)
+                        .setSuspectIntervalFlag(true)
                                 .setPerformanceData(performanceData).build());
         AirInterfaceHistoricalPerformances airHistoricalPerformanceData =
-                new AirInterfaceHistoricalPerformancesBuilder().setHistoricalPerformanceDataList(airHistPMList).build();
+                new AirInterfaceHistoricalPerformancesBuilder().setHistoricalPerformanceDataList(YangToolsMapperHelper.toMap(airHistPMList)).build();
         when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
                 mwAirInterfaceHistoricalPerformanceIID)).thenReturn(airHistoricalPerformanceData);
 
@@ -324,9 +328,10 @@
                         new org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.ethernet.container.historical.performances.g.HistoricalPerformanceDataListBuilder()
                         .setHistoryDataId("123")
                         .setGranularityPeriod(GranularityPeriodType.Period24Hours)
+                        .setSuspectIntervalFlag(true)
                                 .setPerformanceData(ethPerformanceData).build());
         EthernetContainerHistoricalPerformances ethContainerHistoricalPerformanceData =
-                new EthernetContainerHistoricalPerformancesBuilder().setHistoricalPerformanceDataList(ethHistPMList)
+                new EthernetContainerHistoricalPerformancesBuilder().setHistoricalPerformanceDataList(YangToolsMapperHelper.toMap(ethHistPMList))
                         .build();
         when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
                 ethContainerIID)).thenReturn(ethContainerHistoricalPerformanceData);
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/test/TestWrapperNoPmData.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/test/TestWrapperNoPmData.java
index 1cda871..9e330cb 100644
--- a/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/test/TestWrapperNoPmData.java
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/test/TestWrapperNoPmData.java
@@ -41,7 +41,7 @@
         Lp lp = new LpBuilder().setUuid(new UniversalId("NodeUUID")).build();
         //Build empty, without PerformanceData
         HistoricalPerformanceDataList pmRecord =
-                new HistoricalPerformanceDataListBuilder().setHistoryDataId("1").build();
+                new HistoricalPerformanceDataListBuilder().setSuspectIntervalFlag(true).setHistoryDataId("1").build();
         AirInterfaceConfiguration airConfiguration = new AirInterfaceConfigurationBuilder().build();
 
         @SuppressWarnings("unused")
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/test/TestWrapperPTPModelRev170208.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/test/TestWrapperPTPModelRev170208.java
index 2adc248..a35e756 100644
--- a/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/test/TestWrapperPTPModelRev170208.java
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/test/TestWrapperPTPModelRev170208.java
@@ -27,6 +27,7 @@
 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.Capabilities;
 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.TransactionUtils;
+import org.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapperHelper;
 import org.opendaylight.mdsal.binding.api.DataBroker;
 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ptp.dataset.rev170208.InstanceList;
@@ -65,9 +66,9 @@
         List<PortDsList> portDsList =
                 Arrays.asList(new PortDsListBuilder().setPortNumber(portNumber).setPortIdentity(portIdentity).build());
         InstanceList instanceList =
-                new InstanceListBuilder().setInstanceNumber(Uint16.valueOf(1)).setPortDsList(portDsList).build();
+                new InstanceListBuilder().setInstanceNumber(Uint16.valueOf(1)).setPortDsList(YangToolsMapperHelper.toMap(portDsList)).build();
         InstanceIdentifier<InstanceList> PTPINSTANCES_IID =
-                InstanceIdentifier.builder(InstanceList.class, new InstanceListKey(1)).build();
+                InstanceIdentifier.builder(InstanceList.class, new InstanceListKey(Uint16.valueOf(1))).build();
         when(netconfAccessor.getTransactionUtils().readData(netconfAccessor.getDataBroker(),
                 LogicalDatastoreType.OPERATIONAL, PTPINSTANCES_IID)).thenReturn(instanceList);
     }
diff --git a/sdnr/wt/devicemanager-onap/onf14/feature/pom.xml b/sdnr/wt/devicemanager-onap/onf14/feature/pom.xml
index 861eb77..8483588 100644
--- a/sdnr/wt/devicemanager-onap/onf14/feature/pom.xml
+++ b/sdnr/wt/devicemanager-onap/onf14/feature/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/devicemanager-onap/onf14/installer/pom.xml b/sdnr/wt/devicemanager-onap/onf14/installer/pom.xml
index b0ffb9e..81b98ac 100755
--- a/sdnr/wt/devicemanager-onap/onf14/installer/pom.xml
+++ b/sdnr/wt/devicemanager-onap/onf14/installer/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/devicemanager-onap/onf14/model/pom.xml b/sdnr/wt/devicemanager-onap/onf14/model/pom.xml
index 8eb16c0..f93f5cd 100644
--- a/sdnr/wt/devicemanager-onap/onf14/model/pom.xml
+++ b/sdnr/wt/devicemanager-onap/onf14/model/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/devicemanager-onap/onf14/pom.xml b/sdnr/wt/devicemanager-onap/onf14/pom.xml
index fced5d8..3d47217 100755
--- a/sdnr/wt/devicemanager-onap/onf14/pom.xml
+++ b/sdnr/wt/devicemanager-onap/onf14/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/pom.xml b/sdnr/wt/devicemanager-onap/onf14/provider/pom.xml
index 58db0ee..3a6522e 100644
--- a/sdnr/wt/devicemanager-onap/onf14/provider/pom.xml
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
@@ -51,7 +51,7 @@
         <buildtime>${maven.build.timestamp} UTC</buildtime>
         <databaseport>49400</databaseport>
     </properties>
-
+    
     <dependencies>
         <!-- begin for testing -->
         <dependency>
@@ -86,6 +86,7 @@
         <dependency>
             <groupId>org.opendaylight.netconf</groupId>
             <artifactId>sal-netconf-connector</artifactId>
+            <version>2.0.4</version>
             <scope>provided</scope>
         </dependency>
         <dependency>
@@ -107,6 +108,34 @@
                 <filtering>true</filtering>
             </resource>
         </resources>
+        <pluginManagement><plugins>
+	        <plugin>
+          <groupId>org.opendaylight.yangtools</groupId>
+          <artifactId>yang-maven-plugin</artifactId>
+          <version>7.0.9</version>
+          <executions>
+            <execution>
+              <id>binding</id>
+              <phase>none</phase>
+              <goals>
+                <goal>generate-sources</goal>
+              </goals>
+              <configuration>
+                <inspectDependencies>true</inspectDependencies>
+              </configuration>
+            </execution>
+          </executions>
+          <dependencies>
+            <dependency>
+              <groupId>org.opendaylight.mdsal</groupId>
+              <artifactId>mdsal-binding-java-api-generator</artifactId>
+              <version>8.0.6</version>
+              <scope>compile</scope>
+            </dependency>
+          </dependencies>
+        </plugin>
+	      </plugins>
+	    </pluginManagement>
         <plugins>
             <plugin>
                 <groupId>org.jacoco</groupId>
@@ -120,6 +149,46 @@
                     </excludes>
                 </configuration>
             </plugin>
+                  <plugin>
+        <artifactId>maven-enforcer-plugin</artifactId>
+        <version>3.0.0</version>
+        <executions>
+          <execution>
+            <id>enforce-maven</id>
+            <goals>
+              <goal>enforce</goal>
+            </goals>
+            <configuration>
+              <rules>
+                <requireJavaVersion>
+                  <version>11</version>
+                </requireJavaVersion>
+                <requireMavenVersion>
+                  <version>[3.5.0,)</version>
+                </requireMavenVersion>
+              </rules>
+            </configuration>
+          </execution>
+          <execution>
+            <id>enforce-banned-dependencies</id>
+            <goals>
+              <goal>enforce</goal>
+            </goals>
+            <configuration>
+              <rules>
+                <bannedDependencies>
+                  <message>Please always use mockito-core instead of mockito-all (see https://bugs.opendaylight.org/show_bug.cgi?id=7662), and spotbugs:annotations instead of findbugs:annotations</message>
+                  <excludes>
+                    <exclude>org.mockito:mockito-all</exclude>
+                    <exclude>com.google.code.findbugs:annotations</exclude>
+                  </excludes>
+                </bannedDependencies>
+              </rules>
+              <fail>false</fail>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
         </plugins>
     </build>
 </project>
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/DeviceManagerOnf14Impl.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/DeviceManagerOnf14Impl.java
similarity index 94%
rename from sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/DeviceManagerOnf14Impl.java
rename to sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/DeviceManagerOnf14Impl.java
index 5c57054..a974f4b 100644
--- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/DeviceManagerOnf14Impl.java
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/DeviceManagerOnf14Impl.java
@@ -15,7 +15,7 @@
  * the License.
  * ============LICENSE_END==========================================================================
  */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl;
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl;
 
 import org.onap.ccsdk.features.sdnr.wt.common.database.HtDatabaseClient;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.factory.FactoryRegistration;
@@ -35,7 +35,7 @@
 
     private HtDatabaseClient htDatabaseClient;
     private Boolean devicemanagerInitializationOk = false;
-    private FactoryRegistration<Onf14NetworkElementFactory> resOnf;
+    private FactoryRegistration<Onf14DomNetworkElementFactory> resOnf;
 
     // Blueprint begin
     public DeviceManagerOnf14Impl() {
@@ -51,8 +51,7 @@
 
         LOG.info("Session Initiated start {}", APPLICATION_NAME);
 
-        resOnf = netconfNetworkElementService.registerBindingNetworkElementFactory(new Onf14NetworkElementFactory());
-
+        resOnf = netconfNetworkElementService.registerBindingNetworkElementFactory(new Onf14DomNetworkElementFactory());
 
         netconfNetworkElementService.writeToEventLog(APPLICATION_NAME, "startup", "done");
         this.devicemanagerInitializationOk = true;
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/Onf14DomAirInterfaceNotificationListener.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/Onf14DomAirInterfaceNotificationListener.java
new file mode 100644
index 0000000..f72158e
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/Onf14DomAirInterfaceNotificationListener.java
@@ -0,0 +1,168 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk feature sdnr wt
+ * ================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl;
+
+import org.eclipse.jdt.annotation.NonNull;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.dataprovider.InternalDataModelSeverity;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DMDOMUtility;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DevicemanagerQNames;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor;
+import org.opendaylight.mdsal.dom.api.DOMNotification;
+import org.opendaylight.mdsal.dom.api.DOMNotificationListener;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogEntity;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SourceType;
+import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class Onf14DomAirInterfaceNotificationListener implements DOMNotificationListener {
+
+    private static final Logger log = LoggerFactory.getLogger(Onf14DomAirInterfaceNotificationListener.class);
+
+    private final NetconfDomAccessor netconfDomAccessor;
+    private final DeviceManagerServiceProvider serviceProvider;
+
+    public Onf14DomAirInterfaceNotificationListener(NetconfDomAccessor netconfDomAccessor,
+            DeviceManagerServiceProvider serviceProvider) {
+        this.netconfDomAccessor = netconfDomAccessor;
+        this.serviceProvider = serviceProvider;
+    }
+
+    @Override
+    public void onNotification(@NonNull DOMNotification domNotification) {
+        if (domNotification.getType()
+                .equals(Absolute.of(Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_CREATE_NOTIFICATION))) {
+            onObjectCreateNotification(domNotification);
+        } else if (domNotification.getType()
+                .equals(Absolute.of(Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_AVC_NOTIFICATION))) {
+            onObjectAVCNotification(domNotification);
+        } else if (domNotification.getType()
+                .equals(Absolute.of(Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION))) {
+            onObjectProblemNotification(domNotification);
+        } else if (domNotification.getType()
+                .equals(Absolute.of(Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_DELETE_NOTIFICATION))) {
+            onObjectDeletionNotification(domNotification);
+        }
+    }
+
+    private void onObjectCreateNotification(@NonNull DOMNotification domNotification) {
+
+        ContainerNode cn = domNotification.getBody();
+
+        EventlogBuilder eventlogBuilder = new EventlogBuilder();
+        eventlogBuilder.setNodeId(netconfDomAccessor.getNodeId().getValue())
+                .setAttributeName(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_CREATE_NOTIFICATION_OBJECT_TYPE))
+                .setCounter(Integer.parseInt(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_CREATE_NOTIFICATION_COUNTER)))
+                .setNewValue("created")
+                .setObjectId(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_CREATE_NOTIFICATION_OBJECT_ID_REF))
+                .setSourceType(SourceType.Netconf).setTimestamp(new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_CREATE_NOTIFICATION_TIMESTAMP)));
+
+        serviceProvider.getDataProvider().writeEventLog(eventlogBuilder.build());
+        serviceProvider.getWebsocketService().sendNotification(domNotification, netconfDomAccessor.getNodeId(),
+                Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_CREATE_NOTIFICATION,
+                new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_CREATE_NOTIFICATION_TIMESTAMP)));
+        log.debug("onObjectCreationNotification log entry written");
+    }
+
+    private void onObjectAVCNotification(@NonNull DOMNotification domNotification) {
+
+        ContainerNode cn = domNotification.getBody();
+        EventlogBuilder eventlogBuilder = new EventlogBuilder();
+        eventlogBuilder.setNodeId(netconfDomAccessor.getNodeId().getValue())
+                .setAttributeName(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_AVC_NOTIFICATION_ATTRIBUTE_NAME))
+                .setCounter(Integer.parseInt(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_AVC_NOTIFICATION_COUNTER)))
+                .setNewValue(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_AVC_NOTIFICATION_NEW_VALUE))
+                .setObjectId(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_AVC_NOTIFICATION_OBJECT_ID_REF))
+                .setSourceType(SourceType.Netconf).setTimestamp(new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_AVC_NOTIFICATION_TIMESTAMP)));
+
+        serviceProvider.getDataProvider().writeEventLog(eventlogBuilder.build());
+        serviceProvider.getWebsocketService().sendNotification(domNotification, netconfDomAccessor.getNodeId(),
+                Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_AVC_NOTIFICATION, new DateAndTime(Onf14DMDOMUtility
+                        .getLeafValue(cn, Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_AVC_NOTIFICATION_TIMESTAMP)));
+        log.debug("onAttributeValueChangedNotification log entry written");
+    }
+
+    private void onObjectProblemNotification(@NonNull DOMNotification domNotification) {
+
+        ContainerNode cn = domNotification.getBody();
+        FaultlogEntity faultAlarm =
+                new FaultlogBuilder()
+                        .setObjectId(Onf14DMDOMUtility.getLeafValue(cn,
+                                Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_OBJECT_ID_REF))
+                        .setProblem(Onf14DMDOMUtility.getLeafValue(cn,
+                                Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_PROBLEM))
+                        .setSourceType(SourceType.Netconf)
+                        .setTimestamp(new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn,
+                                Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_TIMESTAMP)))
+                        .setNodeId(this.netconfDomAccessor.getNodeId().getValue())
+                        .setSeverity(InternalDataModelSeverity.mapSeverity(Onf14DMDOMUtility.getLeafValue(cn,
+                                        Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_SEVERITY)))
+                        .setCounter(Integer.parseInt(Onf14DMDOMUtility.getLeafValue(cn,
+                                Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_COUNTER)))
+                        .build();
+
+        serviceProvider.getFaultService().faultNotification(faultAlarm);
+        serviceProvider.getWebsocketService().sendNotification(domNotification, netconfDomAccessor.getNodeId(),
+                Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION,
+                new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_TIMESTAMP)));
+    }
+
+    private void onObjectDeletionNotification(@NonNull DOMNotification domNotification) {
+
+        ContainerNode cn = domNotification.getBody();
+        EventlogBuilder eventlogBuilder = new EventlogBuilder();
+        eventlogBuilder.setNodeId(netconfDomAccessor.getNodeId().getValue()).setAttributeName("")
+                .setCounter(Integer.parseInt(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_DELETE_NOTIFICATION_COUNTER)))
+                .setNewValue("deleted")
+                .setObjectId(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_DELETE_NOTIFICATION_OBJECT_ID_REF))
+
+                .setSourceType(SourceType.Netconf).setTimestamp(new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_DELETE_NOTIFICATION_TIMESTAMP)));
+
+        serviceProvider.getDataProvider().writeEventLog(eventlogBuilder.build());
+        serviceProvider.getWebsocketService().sendNotification(domNotification, netconfDomAccessor.getNodeId(),
+                Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_DELETE_NOTIFICATION,
+                new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_DELETE_NOTIFICATION_TIMESTAMP)));
+
+        log.debug("onObjectDeletionNotification log entry written");
+    }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/Onf14DomEthernetContainerNotificationListener.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/Onf14DomEthernetContainerNotificationListener.java
new file mode 100644
index 0000000..218ece4
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/Onf14DomEthernetContainerNotificationListener.java
@@ -0,0 +1,151 @@
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl;
+
+import org.eclipse.jdt.annotation.NonNull;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.dataprovider.InternalDataModelSeverity;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DMDOMUtility;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DevicemanagerQNames;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor;
+import org.opendaylight.mdsal.dom.api.DOMNotification;
+import org.opendaylight.mdsal.dom.api.DOMNotificationListener;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogEntity;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SourceType;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
+import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class Onf14DomEthernetContainerNotificationListener implements DOMNotificationListener {
+
+    private static final Logger log = LoggerFactory.getLogger(Onf14DomEthernetContainerNotificationListener.class);
+
+    private final NetconfDomAccessor netconfDomAccessor;
+    private final DeviceManagerServiceProvider serviceProvider;
+
+    public Onf14DomEthernetContainerNotificationListener(NetconfDomAccessor netconfDomAccessor,
+            DeviceManagerServiceProvider serviceProvider) {
+        this.netconfDomAccessor = netconfDomAccessor;
+        this.serviceProvider = serviceProvider;
+    }
+
+    @Override
+    public void onNotification(@NonNull DOMNotification domNotification) {
+        log.debug("Got event of type :: {}", domNotification.getType());
+        if (domNotification.getType()
+                .equals(Absolute.of(Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_CREATE_NOTIFICATION))) {
+            onObjectCreationNotification(domNotification);
+        } else if (domNotification.getType()
+                .equals(Absolute.of(Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_AVC_NOTIFICATION))) {
+            onAttributeValueChangedNotification(domNotification);
+        } else if (domNotification.getType()
+                .equals(Absolute.of(Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION))) {
+            onProblemNotification(domNotification);
+        } else if (domNotification.getType()
+                .equals(Absolute.of(Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_DELETE_NOTIFICATION))) {
+            onObjectDeletionNotification(domNotification);
+        }
+    }
+
+    public void onObjectDeletionNotification(DOMNotification notification) {
+
+        ContainerNode cn = notification.getBody();
+        EventlogBuilder eventlogBuilder = new EventlogBuilder();
+        eventlogBuilder.setNodeId(netconfDomAccessor.getNodeId().getValue()).setAttributeName("")
+                .setCounter(Integer.parseInt(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_DELETE_NOTIFICATION_COUNTER)))
+                .setNewValue("deleted")
+                .setObjectId(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_DELETE_NOTIFICATION_OBJECT_ID_REF))
+
+                .setSourceType(SourceType.Netconf).setTimestamp(new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_DELETE_NOTIFICATION_TIMESTAMP)));
+        serviceProvider.getDataProvider().writeEventLog(eventlogBuilder.build());
+        serviceProvider.getNotificationService().deletionNotification(netconfDomAccessor.getNodeId(),
+                Integer.parseInt(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_DELETE_NOTIFICATION_COUNTER)),
+                new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_DELETE_NOTIFICATION_TIMESTAMP)),
+                Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_DELETE_NOTIFICATION_OBJECT_ID_REF));
+
+        log.debug("onObjectDeletionNotification log entry written");
+    }
+
+    public void onProblemNotification(DOMNotification notification) {
+
+        ContainerNode cn = notification.getBody();
+        FaultlogEntity faultAlarm = new FaultlogBuilder()
+                .setObjectId(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION_OBJECT_ID_REF))
+                .setProblem(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION_PROBLEM))
+                .setTimestamp(new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION_TIMESTAMP)))
+                .setNodeId(this.netconfDomAccessor.getNodeId().getValue()).setSourceType(SourceType.Netconf)
+                .setSeverity(InternalDataModelSeverity.mapSeverity(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION_SEVERITY)))
+                .setCounter(Integer.parseInt(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION_COUNTER)))
+                .build();
+        serviceProvider.getFaultService().faultNotification(faultAlarm);
+        serviceProvider.getWebsocketService()
+                .sendNotification(notification, netconfDomAccessor.getNodeId(),
+                        Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION_OBJECT_ID_REF,
+                        new DateAndTime(cn.childByArg(new NodeIdentifier(
+                                Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION_TIMESTAMP))
+                                .body().toString()));
+
+    }
+
+    public void onAttributeValueChangedNotification(DOMNotification notification) {
+
+        ContainerNode cn = notification.getBody();
+        EventlogBuilder eventlogBuilder = new EventlogBuilder();
+        eventlogBuilder.setNodeId(netconfDomAccessor.getNodeId().getValue())
+                .setAttributeName(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_AVC_NOTIFICATION_ATTRIBUTE_NAME))
+                .setCounter(Integer.parseInt(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION_COUNTER)))
+                .setNewValue(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_AVC_NOTIFICATION_NEW_VALUE))
+                .setObjectId(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_AVC_NOTIFICATION_OBJECT_ID_REF))
+                .setSourceType(SourceType.Netconf).setTimestamp(new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_AVC_NOTIFICATION_TIMESTAMP)));
+        serviceProvider.getDataProvider().writeEventLog(eventlogBuilder.build());
+        serviceProvider.getWebsocketService().sendNotification(notification, netconfDomAccessor.getNodeId(),
+                Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_AVC_NOTIFICATION,
+                new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_AVC_NOTIFICATION_TIMESTAMP)));
+
+        log.debug("onAttributeValueChangedNotification log entry written");
+    }
+
+    public void onObjectCreationNotification(DOMNotification notification) {
+
+        ContainerNode cn = notification.getBody();
+        EventlogBuilder eventlogBuilder = new EventlogBuilder();
+        eventlogBuilder.setNodeId(netconfDomAccessor.getNodeId().getValue())
+                .setAttributeName(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_CREATE_NOTIFICATION_OBJECT_ID_REF))
+                .setCounter(Integer.parseInt(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_CREATE_NOTIFICATION_COUNTER)))
+                .setNewValue("created")
+                .setObjectId(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_CREATE_NOTIFICATION_OBJECT_ID_REF))
+
+                .setSourceType(SourceType.Netconf).setTimestamp(new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_CREATE_NOTIFICATION_TIMESTAMP)));
+        serviceProvider.getDataProvider().writeEventLog(eventlogBuilder.build());
+        serviceProvider.getWebsocketService().sendNotification(notification, netconfDomAccessor.getNodeId(),
+                Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_CREATE_NOTIFICATION,
+                new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_CREATE_NOTIFICATION_TIMESTAMP)));
+
+        log.debug("onObjectCreationNotification log entry written");
+    }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/Onf14DomNetworkElement.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/Onf14DomNetworkElement.java
new file mode 100644
index 0000000..56834a1
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/Onf14DomNetworkElement.java
@@ -0,0 +1,163 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl;
+
+import java.util.Map;
+import java.util.Optional;
+import org.eclipse.jdt.annotation.NonNull;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElement;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElementService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.dataprovider.Onf14DomToInternalDataModel;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.equipment.Onf14DomEquipmentManager;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.interfaces.Onf14DomInterfacePacManager;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DevicemanagerQNames;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NotificationService;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.netconf.streams.Stream;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.netconf.streams.StreamKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.NetworkElementConnectionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.NetworkElementDeviceType;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Representation of ONF Core model 1.4 device Top level element is "ControlConstruct" (replaces "NetworkElement" of
+ * older ONF Version) NOTE:
+ */
+public class Onf14DomNetworkElement implements NetworkElement {
+
+    private static final Logger log = LoggerFactory.getLogger(Onf14DomNetworkElement.class);
+
+    protected static final YangInstanceIdentifier TOPLEVELEQUIPMENT_IID =
+            YangInstanceIdentifier.builder().node(Onf14DevicemanagerQNames.CORE_MODEL_CONTROL_CONSTRUCT_CONTAINER)
+                    .node(Onf14DevicemanagerQNames.CORE_MODEL_CC_TOP_LEVEL_EQPT).build();
+
+    private final NetconfDomAccessor netconfDomAccessor;
+    private final DataProvider databaseService;
+    private final @NonNull FaultService faultService;
+    private final @NonNull NotificationService notificationService;
+
+    private final Onf14DomToInternalDataModel onf14Mapper;
+
+    private final @NonNull Onf14DomEquipmentManager equipmentManager;
+    private final @NonNull Onf14DomInterfacePacManager interfacePacManager;
+    private final @NonNull String namespaceRevision;
+
+    public Onf14DomNetworkElement(NetconfDomAccessor netconfDomAccessor, DeviceManagerServiceProvider serviceProvider,
+            String namespaceRevision) {
+        log.info("Create {}", Onf14DomNetworkElement.class.getSimpleName());
+        this.netconfDomAccessor = netconfDomAccessor;
+        this.databaseService = serviceProvider.getDataProvider();
+        this.notificationService = serviceProvider.getNotificationService();
+        this.faultService = serviceProvider.getFaultService();
+        this.namespaceRevision = namespaceRevision;
+        this.onf14Mapper = new Onf14DomToInternalDataModel();
+        this.equipmentManager = new Onf14DomEquipmentManager(netconfDomAccessor, databaseService, onf14Mapper);
+        this.interfacePacManager = new Onf14DomInterfacePacManager(netconfDomAccessor, serviceProvider);
+
+    }
+
+    /**
+     * reading the inventory (CoreModel 1.4 Equipment Model) and adding it to the DB
+     */
+    public void initialReadFromNetworkElement() {
+        log.info("Calling read equipment");
+        // Read complete device tree
+        readEquipmentData();
+
+        // Read fault data and subscribe for notifications
+        interfacePacManager.register();
+
+        int problems = faultService.removeAllCurrentProblemsOfNode(netconfDomAccessor.getNodeId());
+        log.debug("Removed all {} problems from database at registration", problems);
+
+    }
+
+    /**
+     * @param nNode set core-model-capability
+     */
+    public void setCoreModel() {
+        NetworkElementConnectionBuilder eb = new NetworkElementConnectionBuilder();
+        eb.setCoreModelCapability(namespaceRevision);
+        databaseService.updateNetworkConnection22(eb.build(), netconfDomAccessor.getNodeId().getValue());
+    }
+
+    @Override
+    public void register() {
+        // Set core-model revision value in "core-model-capability" field
+        setCoreModel();
+        initialReadFromNetworkElement();
+
+        if (netconfDomAccessor.isNotificationsRFC5277Supported()) {
+            // Output notification streams to LOG
+            Map<StreamKey, Stream> streams = netconfDomAccessor.getNotificationStreamsAsMap();
+            log.info("Available notifications streams: {}", streams);
+            // Register to default stream
+            netconfDomAccessor.invokeCreateSubscription();
+        }
+    }
+
+    @Override
+    public void deregister() {}
+
+    @Override
+    public NodeId getNodeId() {
+        return netconfDomAccessor.getNodeId();
+    }
+
+    @Override
+    public <L extends NetworkElementService> Optional<L> getService(Class<L> clazz) {
+        return Optional.empty();
+    }
+
+    @Override
+    public void warmstart() {}
+
+    @Override
+    public Optional<NetconfAccessor> getAcessor() {
+        return Optional.of(netconfDomAccessor);
+    }
+
+    @Override
+    public NetworkElementDeviceType getDeviceType() {
+        return NetworkElementDeviceType.Wireless;
+    }
+
+    private void readEquipmentData() {
+        Optional<NormalizedNode> topLevelEquipment = readTopLevelEquipment(netconfDomAccessor);
+        log.info("Top level equipment data is {}", topLevelEquipment.isPresent() ? topLevelEquipment.get() : null);
+        if (topLevelEquipment.isPresent()) {
+            equipmentManager.setEquipmentData(topLevelEquipment.get());
+        }
+
+    }
+
+    private Optional<NormalizedNode> readTopLevelEquipment(NetconfDomAccessor netconfDomAccessor) {
+        log.info("Reading Top level equipment data");
+        return netconfDomAccessor.readDataNode(LogicalDatastoreType.CONFIGURATION, TOPLEVELEQUIPMENT_IID);
+    }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/Onf14NetworkElementFactory.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/Onf14DomNetworkElementFactory.java
similarity index 66%
rename from sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/Onf14NetworkElementFactory.java
rename to sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/Onf14DomNetworkElementFactory.java
index ecf53a1..b47f56d 100644
--- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/Onf14NetworkElementFactory.java
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/Onf14DomNetworkElementFactory.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START========================================================================
  * ONAP : ccsdk feature sdnr wt
  * =================================================================================================
- * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * Copyright (C) 2022 highstreet technologies GmbH Intellectual Property. All rights reserved.
  * =================================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
  * in compliance with the License. You may obtain a copy of the License at
@@ -16,51 +16,39 @@
  * ============LICENSE_END==========================================================================
  */
 
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl;
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl;
 
 import java.util.Optional;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.factory.NetworkElementFactory;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElement;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DevicemanagerQNames;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.Capabilities;
 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
-import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.ControlConstruct;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class Onf14NetworkElementFactory implements NetworkElementFactory {
+public class Onf14DomNetworkElementFactory implements NetworkElementFactory {
 
-    private static final Logger log = LoggerFactory.getLogger(Onf14NetworkElementFactory.class);
-    private Optional<Onf14Configuration> configuration = Optional.empty();
+    private static final Logger log = LoggerFactory.getLogger(Onf14DomNetworkElementFactory.class);
 
     @Override
     public Optional<NetworkElement> create(NetconfAccessor accessor, DeviceManagerServiceProvider serviceProvider) {
 
         Optional<NetworkElement> ne = Optional.empty();
         Capabilities capabilities = accessor.getCapabilites();
-        if (capabilities.isSupportingNamespace(ControlConstruct.QNAME)) {
-            String namespaceRevision = capabilities.getRevisionForNamespace(ControlConstruct.QNAME);
+        if (capabilities.isSupportingNamespace(Onf14DevicemanagerQNames.CORE_MODEL_CONTROL_CONSTRUCT_CONTAINER)) {
+            String namespaceRevision = capabilities.getRevisionForNamespace(Onf14DevicemanagerQNames.CORE_MODEL_CONTROL_CONSTRUCT_CONTAINER);
 
-            if (configuration.isPresent() && configuration.get().isUseDomApiEnabled()) {
                 Optional<NetconfDomAccessor> domAccessor = accessor.getNetconfDomAccessor();
                 if (domAccessor.isPresent()) {
                     ne = Optional.of(new Onf14DomNetworkElement(domAccessor.get(), serviceProvider, namespaceRevision));
                 }
-            } else {
-                Optional<NetconfBindingAccessor> bindingAccessor = accessor.getNetconfBindingAccessor();
-                if (bindingAccessor.isPresent()) {
-                    ne = Optional.of(new Onf14NetworkElement(bindingAccessor.get(), serviceProvider));
-                }
-            }
+         
             log.info("Create device:{}", ne.isPresent() ? ne.get().getClass().getSimpleName() : "not");
         }
         return ne;
     }
 
-    @Override
-    public void init(DeviceManagerServiceProvider serviceProvider) {
-        configuration = Optional.of(new Onf14Configuration(serviceProvider.getConfigurationFileRepresentation()));
-    }
 }
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/Onf14DomWireInterfaceNotificationListener.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/Onf14DomWireInterfaceNotificationListener.java
new file mode 100644
index 0000000..5d148d3
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/Onf14DomWireInterfaceNotificationListener.java
@@ -0,0 +1,145 @@
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl;
+
+import org.eclipse.jdt.annotation.NonNull;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.dataprovider.InternalDataModelSeverity;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DMDOMUtility;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DevicemanagerQNames;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor;
+import org.opendaylight.mdsal.dom.api.DOMNotification;
+import org.opendaylight.mdsal.dom.api.DOMNotificationListener;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogEntity;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SourceType;
+import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class Onf14DomWireInterfaceNotificationListener implements DOMNotificationListener {
+
+    private static final Logger log = LoggerFactory.getLogger(Onf14DomWireInterfaceNotificationListener.class);
+
+    private final NetconfDomAccessor netconfDomAccessor;
+    private final DeviceManagerServiceProvider serviceProvider;
+
+    public Onf14DomWireInterfaceNotificationListener(NetconfDomAccessor netconfDomAccessor,
+            DeviceManagerServiceProvider serviceProvider) {
+        this.netconfDomAccessor = netconfDomAccessor;
+        this.serviceProvider = serviceProvider;
+    }
+
+    @Override
+    public void onNotification(@NonNull DOMNotification domNotification) {
+        log.debug("Got event of type :: {}", domNotification.getType());
+        if (domNotification.getType()
+                .equals(Absolute.of(Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_CREATE_NOTIFICATION))) {
+            onObjectCreationNotification(domNotification);
+        } else if (domNotification.getType()
+                .equals(Absolute.of(Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_AVC_NOTIFICATION))) {
+            onAttributeValueChangedNotification(domNotification);
+        } else if (domNotification.getType()
+                .equals(Absolute.of(Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION))) {
+            onProblemNotification(domNotification);
+        } else if (domNotification.getType()
+                .equals(Absolute.of(Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_DELETE_NOTIFICATION))) {
+            onObjectDeletionNotification(domNotification);
+        }
+    }
+
+    public void onObjectDeletionNotification(DOMNotification notification) {
+
+        ContainerNode cn = notification.getBody();
+        EventlogBuilder eventlogBuilder = new EventlogBuilder();
+        eventlogBuilder.setNodeId(netconfDomAccessor.getNodeId().getValue()).setAttributeName("")
+                .setCounter(Integer.parseInt(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_DELETE_NOTIFICATION_COUNTER)))
+                .setNewValue("deleted")
+                .setObjectId(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_DELETE_NOTIFICATION_OBJECT_ID_REF))
+                .setSourceType(SourceType.Netconf).setTimestamp(new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_DELETE_NOTIFICATION_TIMESTAMP)));
+        serviceProvider.getDataProvider().writeEventLog(eventlogBuilder.build());
+        serviceProvider.getWebsocketService().sendNotification(notification, netconfDomAccessor.getNodeId(),
+                Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_DELETE_NOTIFICATION,
+                new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_DELETE_NOTIFICATION_TIMESTAMP)));
+
+        log.debug("onObjectDeletionNotification log entry written");
+    }
+
+    public void onProblemNotification(DOMNotification notification) {
+
+        ContainerNode cn = notification.getBody();
+        FaultlogEntity faultAlarm =
+                new FaultlogBuilder()
+                        .setObjectId(Onf14DMDOMUtility.getLeafValue(cn,
+                                Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_OBJECT_ID_REF))
+                        .setProblem(Onf14DMDOMUtility.getLeafValue(cn,
+                                Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_PROBLEM))
+                        .setTimestamp(new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn,
+                                Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_TIMESTAMP)))
+                        .setNodeId(this.netconfDomAccessor.getNodeId().getValue()).setSourceType(SourceType.Netconf)
+                        .setSeverity(InternalDataModelSeverity.mapSeverity(Onf14DMDOMUtility.getLeafValue(cn,
+                                        Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_SEVERITY)))
+                        .setCounter(Integer.parseInt(Onf14DMDOMUtility.getLeafValue(cn,
+                                Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_COUNTER)))
+                        .build();
+        serviceProvider.getFaultService().faultNotification(faultAlarm);
+        serviceProvider.getWebsocketService().sendNotification(notification, netconfDomAccessor.getNodeId(),
+                Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION,
+                new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_TIMESTAMP)));
+
+    }
+
+    public void onAttributeValueChangedNotification(DOMNotification notification) {
+
+        ContainerNode cn = notification.getBody();
+        EventlogBuilder eventlogBuilder = new EventlogBuilder();
+        eventlogBuilder.setNodeId(netconfDomAccessor.getNodeId().getValue())
+                .setAttributeName(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_AVC_NOTIFICATION_ATTRIBUTE_NAME))
+                .setCounter(Integer.parseInt(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_COUNTER)))
+                .setNewValue(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_AVC_NOTIFICATION_NEW_VALUE))
+                .setObjectId(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_OBJECT_ID_REF))
+                .setSourceType(SourceType.Netconf).setTimestamp(new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_TIMESTAMP)));
+        serviceProvider.getDataProvider().writeEventLog(eventlogBuilder.build());
+        serviceProvider.getWebsocketService().sendNotification(notification, netconfDomAccessor.getNodeId(),
+                Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_AVC_NOTIFICATION,
+                new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_TIMESTAMP)));
+
+        log.debug("onAttributeValueChangedNotification log entry written");
+    }
+
+    public void onObjectCreationNotification(DOMNotification notification) {
+
+        ContainerNode cn = notification.getBody();
+        EventlogBuilder eventlogBuilder = new EventlogBuilder();
+        eventlogBuilder.setNodeId(netconfDomAccessor.getNodeId().getValue())
+                .setAttributeName(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_CREATE_NOTIFICATION_OBJECT_TYPE))
+                .setCounter(Integer.parseInt(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_COUNTER)))
+                .setNewValue("created")
+                .setObjectId(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_OBJECT_ID_REF))
+
+                .setSourceType(SourceType.Netconf).setTimestamp(new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_TIMESTAMP)));
+        serviceProvider.getDataProvider().writeEventLog(eventlogBuilder.build());
+        serviceProvider.getWebsocketService().sendNotification(notification, netconfDomAccessor.getNodeId(),
+                Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_CREATE_NOTIFICATION,
+                new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn,
+                        Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_TIMESTAMP)));
+
+        log.debug("onObjectCreationNotification log entry written");
+    }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/dataprovider/InternalDataModelSeverity.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/dataprovider/InternalDataModelSeverity.java
new file mode 100644
index 0000000..6d31d73
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/dataprovider/InternalDataModelSeverity.java
@@ -0,0 +1,46 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2022 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.dataprovider;
+
+import java.util.Map;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class InternalDataModelSeverity {
+
+    private static Logger log = LoggerFactory.getLogger(InternalDataModelSeverity.class);
+    private static final Map<String, SeverityType> SEVERITYMAP =
+            Map.of("SEVERITY_TYPE_MAJOR", SeverityType.Major, "SEVERITY_TYPE_CRITICAL", SeverityType.Critical,
+                    "SEVERITY_TYPE_MINOR", SeverityType.Minor, "SEVERITY_TYPE_WARNING", SeverityType.Warning);
+
+    public static SeverityType mapSeverity(String severity) {
+        log.debug("Severity is - {}", severity);
+        SeverityType res = null;
+        if (severity != null) {
+            res = SEVERITYMAP.get(severity);
+        }
+        return res == null ? SeverityType.NonAlarmed : res;
+    }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/dataprovider/Onf14DomToInternalDataModel.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/dataprovider/Onf14DomToInternalDataModel.java
new file mode 100644
index 0000000..8a75bbc
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/dataprovider/Onf14DomToInternalDataModel.java
@@ -0,0 +1,126 @@
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.dataprovider;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Objects;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DMDOMUtility;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DevicemanagerQNames;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.InventoryBuilder;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+import org.opendaylight.yangtools.yang.common.Uint32;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
+import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
+import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
+import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class Onf14DomToInternalDataModel {
+    private static final Logger LOG = LoggerFactory.getLogger(Onf14DomToInternalDataModel.class);
+
+    public Inventory getInternalEquipment(NodeId nodeId, MapEntryNode currentEq, MapEntryNode parentEq,
+            long treeLevel) {
+
+        Objects.requireNonNull(nodeId);
+        Objects.requireNonNull(currentEq);
+
+        InventoryBuilder inventoryBuilder = new InventoryBuilder();
+        String parentUuid = parentEq != null ? Onf14DMDOMUtility.getUuidFromEquipment(parentEq) : "None";
+
+        // General
+        inventoryBuilder.setNodeId(nodeId.getValue());
+        inventoryBuilder.setTreeLevel(Uint32.valueOf(treeLevel));
+        inventoryBuilder.setUuid(Onf14DMDOMUtility.getUuidFromEquipment(currentEq));
+        inventoryBuilder.setParentUuid(parentUuid);
+
+        List<String> containedHolderKeyList = new ArrayList<>();
+        MapNode containedHolderMap = (MapNode) currentEq
+                .childByArg(new NodeIdentifier(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_CONTAINED_HOLDER));
+        if (containedHolderMap != null) {
+            Collection<MapEntryNode> containedHolderCollection = containedHolderMap.body();
+            for (MapEntryNode holder : containedHolderCollection) {
+                String occupyingFru = Onf14DMDOMUtility.getLeafValue(holder,
+                        Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_OCCUPYING_FRU);
+
+                if (occupyingFru != null) {
+                    containedHolderKeyList.add(occupyingFru);
+                }
+            }
+        }
+        inventoryBuilder.setContainedHolder(containedHolderKeyList);
+
+        // actual-equipment
+        ContainerNode actualEquipment = (ContainerNode) currentEq
+                .childByArg(new NodeIdentifier(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQUIPMENT));
+        if (actualEquipment != null) {
+            ContainerNode manThing = (ContainerNode) actualEquipment
+                    .childByArg(new NodeIdentifier(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_MANUFACTURED_THING));
+            if (manThing != null) {
+                // Manufacturer properties
+                ContainerNode props = (ContainerNode) manThing
+                        .childByArg(new NodeIdentifier(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_MANUFACTURER_PROPS));
+                if (props != null) {
+                    inventoryBuilder.setManufacturerName(Onf14DMDOMUtility.getLeafValue(props,
+                            Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_MANUFACTURER_NAME));
+
+                    inventoryBuilder.setManufacturerIdentifier(Onf14DMDOMUtility.getLeafValue(props,
+                            Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_MANUFACTURER_ID));
+
+                } else {
+                    LOG.debug("manufacturer-properties is not present in Equipment with uuid={}",
+                            Onf14DMDOMUtility.getUuidFromEquipment(currentEq));
+                }
+
+                // Equipment instance
+                ContainerNode equipmentInstance = (ContainerNode) manThing.childByArg(
+                        new NodeIdentifier(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_INSTANCE));
+                if (equipmentInstance != null) {
+                    inventoryBuilder.setSerial(Onf14DMDOMUtility.getLeafValue(equipmentInstance,
+                            Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_INSTANCE_SERIAL_NUM));
+
+                    inventoryBuilder.setDate(Onf14DMDOMUtility.getLeafValue(equipmentInstance,
+                            Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_INSTANCE_MANUFACTURED_DATE));
+
+                } else {
+                    LOG.debug("equipment-instance is not present in Equipment with uuid={}",
+                            Onf14DMDOMUtility.getUuidFromEquipment(currentEq));
+                }
+
+                // Equipment type
+                ContainerNode equipmentType = (ContainerNode) manThing.childByArg(
+                        new NodeIdentifier(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE));
+                if (equipmentType != null) {
+                    inventoryBuilder.setVersion(Onf14DMDOMUtility.getLeafValue(equipmentType,
+                            Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE_VERSION));
+
+                    inventoryBuilder.setDescription(Onf14DMDOMUtility.getLeafValue(equipmentType,
+                            Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE_DESCRIPTION));
+
+                    inventoryBuilder.setPartTypeId(Onf14DMDOMUtility.getLeafValue(equipmentType,
+                            Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE_PART_TYPE_ID));
+
+                    inventoryBuilder.setModelIdentifier(Onf14DMDOMUtility.getLeafValue(equipmentType,
+
+                            Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE_MODEL_ID));
+
+                    inventoryBuilder.setTypeName(Onf14DMDOMUtility.getLeafValue(equipmentType,
+                            Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE_TYPE_NAME));
+
+                } else {
+                    LOG.debug("equipment-type is not present in Equipment with uuid={}",
+                            Onf14DMDOMUtility.getUuidFromEquipment(currentEq));
+                }
+            } else {
+                LOG.debug("manufactured-thing is not present in Equipment with uuid={}",
+                        Onf14DMDOMUtility.getUuidFromEquipment(currentEq));
+            }
+        } else {
+            LOG.debug("actual-equipment is not present in Equipment with uuid={}",
+                    Onf14DMDOMUtility.getUuidFromEquipment(currentEq));
+        }
+
+        return inventoryBuilder.build();
+    }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/equipment/Onf14DomEquipmentManager.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/equipment/Onf14DomEquipmentManager.java
new file mode 100644
index 0000000..8f7a448
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/equipment/Onf14DomEquipmentManager.java
@@ -0,0 +1,171 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.equipment;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Objects;
+import java.util.Optional;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.dataprovider.Onf14DomToInternalDataModel;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DMDOMUtility;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DevicemanagerQNames;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.InstanceIdentifierBuilder;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
+import org.opendaylight.yangtools.yang.data.api.schema.LeafSetEntryNode;
+import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
+import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
+import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class Onf14DomEquipmentManager {
+
+    private static final Logger log = LoggerFactory.getLogger(Onf14DomEquipmentManager.class);
+    private static final int EQUIPMENTROOTLEVEL = 0;
+
+    private final NetconfDomAccessor netconfDomAccessor;
+    private final DataProvider databaseService;
+    private final Onf14DomToInternalDataModel onf14Mapper;
+    private final List<String> equipmentUuidList;
+
+    public Onf14DomEquipmentManager(NetconfDomAccessor netconfDomAccessor, DataProvider databaseService,
+            Onf14DomToInternalDataModel onf14Mapper) {
+        super();
+        this.netconfDomAccessor = Objects.requireNonNull(netconfDomAccessor);
+        this.databaseService = Objects.requireNonNull(databaseService);
+        this.onf14Mapper = Objects.requireNonNull(onf14Mapper);
+
+        this.equipmentUuidList = new ArrayList<>();
+    }
+
+    public List<String> getEquipmentUuidList() {
+        return equipmentUuidList;
+    }
+
+    private List<Inventory> collectEquipment(List<Inventory> list, MapEntryNode currentEq, MapEntryNode parentEq,
+            long treeLevel) {
+
+        // if the Equipment UUID is already in the list, it was already processed
+        // needed for solving possible circular dependencies
+        if (equipmentUuidList.contains(Onf14DMDOMUtility.getUuidFromEquipment(currentEq))) {
+            log.debug("Not adding equipment with uuid {} because it was aleady added...",
+                    Onf14DMDOMUtility.getUuidFromEquipment(currentEq));
+            return list;
+        }
+
+        // we add this to our internal list, such that we avoid circular dependencies
+        equipmentUuidList.add(Onf14DMDOMUtility.getUuidFromEquipment(currentEq));
+        log.debug("Adding equipment with uuid {} to the database...",
+                Onf14DMDOMUtility.getUuidFromEquipment(currentEq));
+
+        // we add our current equipment to the database
+        list.add(onf14Mapper.getInternalEquipment(netconfDomAccessor.getNodeId(), currentEq, parentEq, treeLevel));
+
+        // we iterate the kids of our current equipment and add them to the database
+        // recursively
+        // the actual reference is here:
+        // /core-model:control-construct/equipment/contained-holder/occupying-fru
+
+        MapNode containedHolderMap = (MapNode) currentEq
+                .childByArg(new NodeIdentifier(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_CONTAINED_HOLDER));
+        if (containedHolderMap != null) {
+            Collection<MapEntryNode> containedHolderCollection = containedHolderMap.body();
+            for (MapEntryNode holder : containedHolderCollection) {
+                String occupyingFru = Onf14DMDOMUtility.getLeafValue(holder,
+                        Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_OCCUPYING_FRU);
+
+                if (occupyingFru != null) {
+                    Optional<NormalizedNode> childEq = readEquipmentInstance(netconfDomAccessor, occupyingFru);
+                    if (childEq.isPresent()) {
+                        // current becomes parent and tree level increases by 1
+                        collectEquipment(list, (MapEntryNode) childEq.get(), currentEq, treeLevel + 1);
+                    }
+                }
+            }
+        }
+
+        return list;
+    }
+
+    // public methods
+    /**
+     * Set all equipment data from controlConstruct into database and into this manager.
+     *
+     * @param controlConstruct with complete device data
+     */
+    public void setEquipmentData(NormalizedNode controlConstruct) {
+        Objects.requireNonNull(controlConstruct);
+
+        // the top-level-equipment list contains the root objects of the Equipment Model
+        log.debug("Getting list of topLevelEquipment for mountpoint {}", netconfDomAccessor.getNodeId());
+        // adding all root Equipment objects to the DB
+        List<Inventory> inventoryList = new ArrayList<>();
+        for (String uuid : getTopLevelEquipment(controlConstruct)) {
+            Optional<NormalizedNode> equipment = readEquipmentInstance(netconfDomAccessor, uuid);
+            MapEntryNode equipmentEntry = (MapEntryNode) equipment.get();
+            if (equipmentEntry != null) {
+                collectEquipment(inventoryList, equipmentEntry, null, EQUIPMENTROOTLEVEL);
+            }
+        }
+        this.databaseService.writeInventory(netconfDomAccessor.getNodeId().getValue(), inventoryList);
+
+    }
+
+    private List<String> getTopLevelEquipment(NormalizedNode transformedInput) {
+        List<String> topLvlEqptList = new ArrayList<>();
+        Collection<?> topLevelEqptListColl = (Collection<?>) transformedInput.body();
+        Iterator<?> childEntryItr = topLevelEqptListColl.iterator();
+        while (childEntryItr.hasNext()) {
+            LeafSetEntryNode<?> childEntryNode = (LeafSetEntryNode<?>) childEntryItr.next();
+            topLvlEqptList.add((String) childEntryNode.body());
+        }
+        return topLvlEqptList;
+    }
+
+    /**
+     * @param accessData to access device
+     * @param equipmentUuid uuid of equipment to be read
+     * @return Optional Equipment
+     */
+    private Optional<NormalizedNode> readEquipmentInstance(NetconfDomAccessor accessData, String equipmentUuid) {
+
+        log.info("DBRead Get equipment from mountpoint {} for uuid {}", accessData.getNodeId().getValue(),
+                equipmentUuid);
+
+        InstanceIdentifierBuilder equipmentIIDBuilder = YangInstanceIdentifier.builder()
+                .node(Onf14DevicemanagerQNames.CORE_MODEL_CONTROL_CONSTRUCT_CONTAINER)
+                .node(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT)
+                .nodeWithKey(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT,
+                        QName.create(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT, "uuid").intern(), equipmentUuid);
+
+        return accessData.readDataNode(LogicalDatastoreType.CONFIGURATION, equipmentIIDBuilder.build());
+    }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/interfaces/Onf14DomInterfacePacManager.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/interfaces/Onf14DomInterfacePacManager.java
new file mode 100644
index 0000000..eed6f5d
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/interfaces/Onf14DomInterfacePacManager.java
@@ -0,0 +1,458 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2022 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.interfaces;
+
+import com.google.common.collect.Sets;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Objects;
+import java.util.Optional;
+import org.eclipse.jdt.annotation.NonNull;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.Onf14DomAirInterfaceNotificationListener;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.Onf14DomEthernetContainerNotificationListener;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.Onf14DomWireInterfaceNotificationListener;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.dataprovider.InternalDataModelSeverity;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Debug;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DMDOMUtility;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DevicemanagerQNames;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.FaultData;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.InstanceIdentifierBuilder;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
+import org.opendaylight.yangtools.yang.data.api.schema.AugmentationNode;
+import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
+import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
+import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/*
+* Notifications streams provided by device NTSSim ONF14
+* Stream{getName=StreamNameType{_value=nc-notifications}, isReplaySupport=true, augmentation=[]},
+* Stream{getName=StreamNameType{_value=hybrid-mw-structure-2-0}, isReplaySupport=true, augmentation=[]},
+* Stream{getName=StreamNameType{_value=vlan-interface-1-0}, isReplaySupport=true, augmentation=[]},
+* Stream{getName=StreamNameType{_value=tdm-container-2-0}, isReplaySupport=true, augmentation=[]},
+* Stream{getName=StreamNameType{_value=ethernet-container-2-0}, isReplaySupport=true, augmentation=[]},
+* Stream{getName=StreamNameType{_value=ietf-yang-library}, isReplaySupport=false, augmentation=[]},
+* Stream{getDescription=Default NETCONF stream containing all the Event Notifications., getName=StreamNameType{_value=NETCONF}, isReplaySupport=true, augmentation=[]},
+* Stream{getName=StreamNameType{_value=vlan-fd-1-0}, isReplaySupport=true, augmentation=[]},
+* Stream{getName=StreamNameType{_value=wire-interface-2-0}, isReplaySupport=true, augmentation=[]},
+* Stream{getName=StreamNameType{_value=mac-fd-1-0}, isReplaySupport=true, augmentation=[]},
+* Stream{getName=StreamNameType{_value=co-channel-profile-1-0}, isReplaySupport=true, augmentation=[]},
+* Stream{getName=StreamNameType{_value=mac-interface-1-0}, isReplaySupport=true, augmentation=[]},
+* Stream{getName=StreamNameType{_value=ietf-keystore}, isReplaySupport=true, augmentation=[]},
+* Stream{getName=StreamNameType{_value=pure-ethernet-structure-2-0}, isReplaySupport=true, augmentation=[]},
+* Stream{getName=StreamNameType{_value=ietf-netconf-notifications}, isReplaySupport=true, augmentation=[]},
+* Stream{getName=StreamNameType{_value=mac-fc-1-0}, isReplaySupport=true, augmentation=[]},
+* Stream{getName=StreamNameType{_value=wred-profile-1-0}, isReplaySupport=true, augmentation=[]},
+* Stream{getName=StreamNameType{_value=air-interface-2-0}, isReplaySupport=true, augmentation=[]},
+* Stream{getName=StreamNameType{_value=ip-interface-1-0}, isReplaySupport=true, augmentation=[]},
+* Stream{getName=StreamNameType{_value=qos-profile-1-0}, isReplaySupport=true, augmentation=[]},
+* Stream{getName=StreamNameType{_value=vlan-fc-1-0}, isReplaySupport=true, augmentation=[]},
+* Stream{getName=StreamNameType{_value=l-3vpn-profile-1-0}, isReplaySupport=true, augmentation=[]}]
+*/
+
+public class Onf14DomInterfacePacManager {
+
+    private static final Logger log = LoggerFactory.getLogger(Onf14DomInterfacePacManager.class);
+
+    private static final YangInstanceIdentifier LTP_IID =
+            YangInstanceIdentifier.builder().node(Onf14DevicemanagerQNames.CORE_MODEL_CONTROL_CONSTRUCT_CONTAINER)
+                    .node(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP).build();
+
+    private final NetconfDomAccessor netconfDomAccessor;
+    private final @NonNull DeviceManagerServiceProvider serviceProvider;
+
+    // air interface related members
+    private final List<TechnologySpecificPacKeys> airInterfaceList = new ArrayList<>();
+    @NonNull
+    private final Onf14DomAirInterfaceNotificationListener airInterfaceNotificationListener;
+
+    // ethernet container related members
+    private final List<TechnologySpecificPacKeys> ethernetContainerList = new ArrayList<>();
+    @NonNull
+    private final Onf14DomEthernetContainerNotificationListener ethernetContainerNotificationListener;
+
+    // wire interface related members
+    private final List<TechnologySpecificPacKeys> wireInterfaceList = new ArrayList<>();
+    @NonNull
+    private final Onf14DomWireInterfaceNotificationListener wireInterfaceNotificationListener;
+
+    private final @NonNull FaultService faultService;
+
+    public Onf14DomInterfacePacManager(@NonNull NetconfDomAccessor netconfDomAccessor,
+            @NonNull DeviceManagerServiceProvider serviceProvider) {
+
+        this.netconfDomAccessor = Objects.requireNonNull(netconfDomAccessor);
+        this.serviceProvider = Objects.requireNonNull(serviceProvider);
+        this.faultService = Objects.requireNonNull(serviceProvider.getFaultService());
+
+        this.airInterfaceNotificationListener =
+                new Onf14DomAirInterfaceNotificationListener(netconfDomAccessor, serviceProvider);
+        this.ethernetContainerNotificationListener =
+                new Onf14DomEthernetContainerNotificationListener(netconfDomAccessor, serviceProvider);
+        this.wireInterfaceNotificationListener =
+                new Onf14DomWireInterfaceNotificationListener(netconfDomAccessor, serviceProvider);
+    }
+
+    public void register() {
+        // storing all the LTP UUIDs internally, for later usage, for air-interface and
+        // ethernet-container and wire-interface
+        readKeys();
+        readAndWriteInterfaceCurrentProblems();
+        registerForNotifications();
+    }
+
+    private void readAndWriteInterfaceCurrentProblems() {
+        // Read all fault data
+        FaultData resultList = new FaultData();
+        int problems;
+        readAllAirInterfaceCurrentProblems(resultList);
+        problems = resultList.size();
+        log.debug("NETCONF read air interface current problems completed. Got back {} problems.", problems);
+
+        readAllEhernetContainerCurrentProblems(resultList);
+        problems = resultList.size() - problems;
+        log.debug("NETCONF read current problems completed. Got back {} problems.", problems);
+
+        readAllWireInterfaceCurrentProblems(resultList);
+        problems = resultList.size();
+        log.debug("NETCONF read wire interface current problems completed. Got back {} problems.", problems);
+
+        faultService.initCurrentProblemStatus(netconfDomAccessor.getNodeId(), resultList);
+        log.debug("DB write current problems completed");
+
+    }
+
+    private void readKeys() {
+        Optional<NormalizedNode> ltpData = readLtpData(netconfDomAccessor);
+        log.info("LTP Data is - {}", ltpData);
+        if (ltpData.isPresent()) {
+            log.debug("In readKeys - ltpData = {}", ltpData.get());
+
+            MapNode ccLtp = (MapNode) ltpData.get();
+            if (ccLtp != null) {
+                log.debug("Iterating the LTP list for node {}", netconfDomAccessor.getNodeId().getValue());
+                Collection<MapEntryNode> ltpList = ccLtp.body();
+
+                // iterating all the Logical Termination Point list
+                for (MapEntryNode ltp : ltpList) {
+                    MapNode lpList = (MapNode) ltp
+                            .childByArg(new NodeIdentifier(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_LAYER_PROTOCOL));
+                    // the Layer Protocol list should contain only one item, since we have an 1:1
+                    // relationship between the LTP and the LP
+                    if (lpList != null && lpList.size() != 1) {
+                        log.debug("Layer protocol has no 1:1 relationship with the LTP.");
+                        return;
+                    }
+                    // accessing the LP, which should be only 1
+                    Collection<MapEntryNode> lp = lpList.body();
+                    for (MapEntryNode lpEntry : lp) {
+                        String layerProtocolName = Onf14DMDOMUtility.getLeafValue(lpEntry,
+
+                                Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_LAYER_PROTOCOL_NAME);
+                        if (layerProtocolName != null) {
+                            // if the LTP has an airInterface technology extension, the layer protocol name
+                            // is air-layer
+                            if (layerProtocolName.contains("LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER")) {
+                                TechnologySpecificPacKeys airInterfaceKey = new TechnologySpecificPacKeys(
+                                        Onf14DMDOMUtility.getLeafValue(ltp,
+                                                Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_UUID),
+                                        Onf14DMDOMUtility.getLeafValue(lpEntry,
+                                                Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_LAYER_PROTOCOL_LOCAL_ID));
+                                airInterfaceList.add(airInterfaceKey);
+                                log.debug("Adding Ltp with uuid {} and local-id {} to the air-interface list",
+                                        Onf14DMDOMUtility.getLeafValue(ltp,
+                                                Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_UUID),
+                                        Onf14DMDOMUtility.getLeafValue(lpEntry,
+                                                Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_LAYER_PROTOCOL_LOCAL_ID));
+                            }
+                            // if the LTP has an ethernetContainier technology extension, the layer protocol
+                            // name is ethernet-container-layer
+                            else if (layerProtocolName.contains("LAYER_PROTOCOL_NAME_TYPE_ETHERNET_CONTAINER_LAYER")) {
+                                TechnologySpecificPacKeys ethernetContainerKey = new TechnologySpecificPacKeys(
+                                        Onf14DMDOMUtility.getLeafValue(ltp,
+                                                Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_UUID),
+                                        Onf14DMDOMUtility.getLeafValue(lpEntry,
+                                                Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_LAYER_PROTOCOL_LOCAL_ID));
+                                ethernetContainerList.add(ethernetContainerKey);
+                                log.debug("Adding Ltp with uuid {} and local-id {} to the ethernet-container list",
+                                        Onf14DMDOMUtility.getLeafValue(ltp,
+                                                Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_UUID),
+                                        Onf14DMDOMUtility.getLeafValue(lpEntry,
+                                                Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_LAYER_PROTOCOL_LOCAL_ID));
+                            } else if (layerProtocolName.contains("LAYER_PROTOCOL_NAME_TYPE_WIRE_LAYER")) {
+                                TechnologySpecificPacKeys wireInterfaceKey = new TechnologySpecificPacKeys(
+                                        Onf14DMDOMUtility.getLeafValue(ltp,
+                                                Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_UUID),
+                                        Onf14DMDOMUtility.getLeafValue(lpEntry,
+                                                Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_LAYER_PROTOCOL_LOCAL_ID));
+                                wireInterfaceList.add(wireInterfaceKey);
+                                log.debug("Adding Ltp with uuid {} and local-id {} to the wire-interface list",
+                                        Onf14DMDOMUtility.getLeafValue(ltp,
+                                                Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_UUID),
+                                        Onf14DMDOMUtility.getLeafValue(lpEntry,
+                                                Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_LAYER_PROTOCOL_LOCAL_ID));
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+
+    private void readAllAirInterfaceCurrentProblems(FaultData resultList) {
+
+        int idxStart; // Start index for debug messages
+
+        for (TechnologySpecificPacKeys key : airInterfaceList) {
+            idxStart = resultList.size();
+
+            readAirInterfaceCurrentProblemForLtp(key.getLtpUuid(), key.getLocalId(), resultList);
+            Debug.debugResultList(key.getLtpUuid(), resultList, idxStart);
+        }
+    }
+
+    private void readAllEhernetContainerCurrentProblems(FaultData resultList) {
+
+        int idxStart; // Start index for debug messages
+
+        for (TechnologySpecificPacKeys key : ethernetContainerList) {
+            idxStart = resultList.size();
+
+            readEthernetContainerCurrentProblemForLtp(key.getLtpUuid(), key.getLocalId(), resultList);
+            Debug.debugResultList(key.getLtpUuid(), resultList, idxStart);
+        }
+    }
+
+    private void readAllWireInterfaceCurrentProblems(FaultData resultList) {
+
+        int idxStart; // Start index for debug messages
+
+        for (TechnologySpecificPacKeys key : wireInterfaceList) {
+            idxStart = resultList.size();
+
+            readWireInterfaceCurrentProblemForLtp(key.getLtpUuid(), key.getLocalId(), resultList);
+            Debug.debugResultList(key.getLtpUuid(), resultList, idxStart);
+        }
+    }
+
+    private void readAirInterfaceCurrentProblemForLtp(String ltpUuid, String localId, FaultData resultList) {
+
+        log.info("DBRead Get current problems for class {} from mountpoint {} for LTP uuid {} and local-id {}",
+                Onf14DevicemanagerQNames.AIR_INTERFACE_2_0_MODULE, netconfDomAccessor.getNodeId().getValue(), ltpUuid,
+                localId);
+
+        // constructing the IID needs the augmentation exposed by the air-interface-2-0
+        // model
+
+        InstanceIdentifierBuilder layerProtocolIID =
+                YangInstanceIdentifier.builder().node(Onf14DevicemanagerQNames.CORE_MODEL_CONTROL_CONSTRUCT_CONTAINER)
+                        .node(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP)
+                        .nodeWithKey(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP,
+                                QName.create(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP, "uuid").intern(), ltpUuid)
+                        .node(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_LAYER_PROTOCOL)
+                        .nodeWithKey(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_LAYER_PROTOCOL, QName
+                                .create(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_LAYER_PROTOCOL, "local-id").intern(),
+                                localId);
+
+        @NonNull
+        AugmentationIdentifier airInterfacePacIID = YangInstanceIdentifier.AugmentationIdentifier
+                .create(Sets.newHashSet(Onf14DevicemanagerQNames.AIR_INTERFACE_PAC));
+
+        InstanceIdentifierBuilder augmentedAirInterfacePacIID =
+                YangInstanceIdentifier.builder(layerProtocolIID.build()).node(airInterfacePacIID);
+
+        // reading all the current-problems list for this specific LTP and LP
+        Optional<NormalizedNode> airInterfacePacDataOpt =
+                netconfDomAccessor.readDataNode(LogicalDatastoreType.OPERATIONAL, augmentedAirInterfacePacIID.build());
+
+        if (airInterfacePacDataOpt.isPresent()) {
+            AugmentationNode airInterfacePacData = (AugmentationNode) airInterfacePacDataOpt.get();
+
+            MapNode airInterfaceCurrentProblemsList = (MapNode) airInterfacePacData
+                    .childByArg(new NodeIdentifier(Onf14DevicemanagerQNames.AIR_INTERFACE_CURRENT_PROBLEMS_LIST));
+            if (airInterfaceCurrentProblemsList != null) {
+                Collection<MapEntryNode> airInterfaceProblemsCollection = airInterfaceCurrentProblemsList.body();
+                for (MapEntryNode airInterfaceProblem : airInterfaceProblemsCollection) {
+                    resultList.add(netconfDomAccessor.getNodeId(),
+                            Integer.parseInt(Onf14DMDOMUtility.getLeafValue(airInterfaceProblem,
+                                    Onf14DevicemanagerQNames.AIR_INTERFACE_CURRENT_PROBLEMS_SEQ_NO)),
+                            new DateAndTime(Onf14DMDOMUtility.getLeafValue(airInterfaceProblem,
+                                    Onf14DevicemanagerQNames.AIR_INTERFACE_CURRENT_PROBLEMS_TIMESTAMP)),
+                            ltpUuid,
+                            Onf14DMDOMUtility.getLeafValue(airInterfaceProblem,
+                                    Onf14DevicemanagerQNames.AIR_INTERFACE_CURRENT_PROBLEMS_PROBLEM_NAME),
+                            InternalDataModelSeverity.mapSeverity(Onf14DMDOMUtility.getLeafValue(airInterfaceProblem,
+                                    Onf14DevicemanagerQNames.AIR_INTERFACE_CURRENT_PROBLEMS_PROBLEM_SEVERITY)));
+                }
+            } else {
+                log.debug("DBRead Id {} empty CurrentProblemList", ltpUuid);
+            }
+        }
+    }
+
+    private void readEthernetContainerCurrentProblemForLtp(String ltpUuid, String localId, FaultData resultList) {
+
+        log.info(
+                "DBRead Get current problems for Ethernet Container from mountpoint {} for LTP uuid {} and local-id {}",
+                netconfDomAccessor.getNodeId().getValue(), ltpUuid, localId);
+
+        // constructing the IID needs the augmentation exposed by the
+        // ethernet-container-2-0 model
+        InstanceIdentifierBuilder layerProtocolIID =
+                YangInstanceIdentifier.builder().node(Onf14DevicemanagerQNames.CORE_MODEL_CONTROL_CONSTRUCT_CONTAINER)
+                        .node(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP)
+                        .nodeWithKey(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP,
+                                QName.create(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP, "uuid").intern(), ltpUuid)
+                        .node(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_LAYER_PROTOCOL)
+                        .nodeWithKey(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_LAYER_PROTOCOL, QName
+                                .create(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_LAYER_PROTOCOL, "local-id").intern(),
+                                localId);
+
+        @NonNull
+        AugmentationIdentifier ethernetContainerIID = YangInstanceIdentifier.AugmentationIdentifier
+                .create(Sets.newHashSet(Onf14DevicemanagerQNames.ETHERNET_CONTAINER_PAC));
+
+        InstanceIdentifierBuilder augmentedEthernetContainerConfigurationIID =
+                YangInstanceIdentifier.builder(layerProtocolIID.build()).node(ethernetContainerIID);
+
+        // reading all the current-problems list for this specific LTP and LP
+        Optional<NormalizedNode> etherntContainerConfigurationOpt = netconfDomAccessor
+                .readDataNode(LogicalDatastoreType.OPERATIONAL, augmentedEthernetContainerConfigurationIID.build());
+
+        if (etherntContainerConfigurationOpt.isPresent()) {
+            AugmentationNode etherntContainerConfiguration = (AugmentationNode) etherntContainerConfigurationOpt.get();
+            MapNode ethernetContainerCurrentProblemsList = (MapNode) etherntContainerConfiguration
+                    .childByArg(new NodeIdentifier(Onf14DevicemanagerQNames.ETHERNET_CONTAINER_CURRENT_PROBLEMS_LIST));
+            if (ethernetContainerCurrentProblemsList != null) {
+                Collection<MapEntryNode> ethernetContainerProblemsCollection =
+                        ethernetContainerCurrentProblemsList.body();
+                for (MapEntryNode ethernetContainerProblem : ethernetContainerProblemsCollection) {
+                    resultList.add(netconfDomAccessor.getNodeId(),
+                            Integer.parseInt(Onf14DMDOMUtility.getLeafValue(ethernetContainerProblem,
+                                    Onf14DevicemanagerQNames.ETHERNET_CONTAINER_CURRENT_PROBLEMS_SEQ_NO)),
+                            new DateAndTime(Onf14DMDOMUtility.getLeafValue(ethernetContainerProblem,
+                                    Onf14DevicemanagerQNames.ETHERNET_CONTAINER_CURRENT_PROBLEMS_TIMESTAMP)),
+                            ltpUuid,
+                            Onf14DMDOMUtility.getLeafValue(ethernetContainerProblem,
+                                    Onf14DevicemanagerQNames.ETHERNET_CONTAINER_CURRENT_PROBLEMS_PROBLEM_NAME),
+                            InternalDataModelSeverity.mapSeverity(Onf14DMDOMUtility.getLeafValue(
+                                    ethernetContainerProblem,
+                                    Onf14DevicemanagerQNames.ETHERNET_CONTAINER_CURRENT_PROBLEMS_PROBLEM_SEVERITY)));
+                }
+            } else {
+                log.debug("DBRead Id {} empty CurrentProblemList", ltpUuid);
+            }
+        }
+
+    }
+
+    private void readWireInterfaceCurrentProblemForLtp(String ltpUuid, String localId, FaultData resultList) {
+
+        log.info("DBRead Get current problems for Wire Interface from mountpoint {} for LTP uuid {} and local-id {}",
+                netconfDomAccessor.getNodeId().getValue(), ltpUuid, localId);
+
+        // constructing the IID needs the augmentation exposed by the wire-interface-2-0
+        // model
+        InstanceIdentifierBuilder layerProtocolIID =
+                YangInstanceIdentifier.builder().node(Onf14DevicemanagerQNames.CORE_MODEL_CONTROL_CONSTRUCT_CONTAINER)
+                        .node(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP)
+                        .nodeWithKey(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP,
+                                QName.create(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP, "uuid").intern(), ltpUuid)
+                        .node(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_LAYER_PROTOCOL)
+                        .nodeWithKey(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_LAYER_PROTOCOL, QName
+                                .create(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_LAYER_PROTOCOL, "local-id").intern(),
+                                localId);
+
+        @NonNull
+        AugmentationIdentifier wireInterfacePacIID = YangInstanceIdentifier.AugmentationIdentifier
+                .create(Sets.newHashSet(Onf14DevicemanagerQNames.WIRE_INTERFACE_PAC));
+
+        InstanceIdentifierBuilder augmentedWireInterfaceConfigurationIID =
+                YangInstanceIdentifier.builder(layerProtocolIID.build()).node(wireInterfacePacIID);
+
+        // reading all the current-problems list for this specific LTP and LP
+        Optional<NormalizedNode> wireInterfaceConfigurationOpt = netconfDomAccessor
+                .readDataNode(LogicalDatastoreType.OPERATIONAL, augmentedWireInterfaceConfigurationIID.build());
+
+        if (wireInterfaceConfigurationOpt.isPresent()) {
+            AugmentationNode wireInterfaceConfiguration = (AugmentationNode) wireInterfaceConfigurationOpt.get();
+            MapNode wireInterfaceCurrentProblemsList = (MapNode) wireInterfaceConfiguration
+                    .childByArg(new NodeIdentifier(Onf14DevicemanagerQNames.WIRE_INTERFACE_CURRENT_PROBLEMS_LIST));
+            if (wireInterfaceCurrentProblemsList != null) {
+                Collection<MapEntryNode> wireInterfaceProblemsCollection = wireInterfaceCurrentProblemsList.body();
+                for (MapEntryNode wireInterfaceProblem : wireInterfaceProblemsCollection) {
+                    resultList.add(netconfDomAccessor.getNodeId(),
+                            Integer.parseInt(Onf14DMDOMUtility.getLeafValue(wireInterfaceProblem,
+                                    Onf14DevicemanagerQNames.WIRE_INTERFACE_CURRENT_PROBLEMS_SEQ_NO)),
+                            new DateAndTime(Onf14DMDOMUtility.getLeafValue(wireInterfaceProblem,
+                                    Onf14DevicemanagerQNames.WIRE_INTERFACE_CURRENT_PROBLEMS_TIMESTAMP)),
+                            ltpUuid,
+                            Onf14DMDOMUtility.getLeafValue(wireInterfaceProblem,
+                                    Onf14DevicemanagerQNames.WIRE_INTERFACE_CURRENT_PROBLEMS_PROBLEM_NAME),
+                            InternalDataModelSeverity.mapSeverity(Onf14DMDOMUtility.getLeafValue(wireInterfaceProblem,
+                                            Onf14DevicemanagerQNames.WIRE_INTERFACE_CURRENT_PROBLEMS_PROBLEM_SEVERITY)));
+                }
+            } else {
+                log.debug("DBRead Id {} empty CurrentProblemList", ltpUuid);
+            }
+        }
+
+    }
+
+    private void registerForNotifications() {
+        QName[] airInterfaceNotifications = {Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_CREATE_NOTIFICATION,
+                Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_AVC_NOTIFICATION,
+                Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_DELETE_NOTIFICATION,
+                Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION};
+        netconfDomAccessor.doRegisterNotificationListener(airInterfaceNotificationListener, airInterfaceNotifications);
+
+        QName[] ethernetContainerNotifications =
+                {Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_CREATE_NOTIFICATION,
+                        Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_AVC_NOTIFICATION,
+                        Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_DELETE_NOTIFICATION,
+                        Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION};
+        netconfDomAccessor.doRegisterNotificationListener(ethernetContainerNotificationListener,
+                ethernetContainerNotifications);
+
+        QName[] wireInterfaceNotifications = {Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_CREATE_NOTIFICATION,
+                Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_AVC_NOTIFICATION,
+                Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_DELETE_NOTIFICATION,
+                Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION};
+        netconfDomAccessor.doRegisterNotificationListener(wireInterfaceNotificationListener,
+                wireInterfaceNotifications);
+    }
+
+    public Optional<NormalizedNode> readLtpData(NetconfDomAccessor netconfDomAccessor) {
+        log.info("Reading Logical Termination Point data");
+        return netconfDomAccessor.readDataNode(LogicalDatastoreType.CONFIGURATION, LTP_IID);
+    }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/TechnologySpecificPacKeys.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/interfaces/TechnologySpecificPacKeys.java
similarity index 78%
rename from sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/TechnologySpecificPacKeys.java
rename to sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/interfaces/TechnologySpecificPacKeys.java
index 552ba66..3fcc332 100644
--- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/TechnologySpecificPacKeys.java
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/interfaces/TechnologySpecificPacKeys.java
@@ -19,24 +19,23 @@
  * ============LICENSE_END=========================================================
  *
  */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.interfaces;
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.interfaces;
 
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.UniversalId;
 
 /**
  * Defining a structure that can map the LP local-id and its corresponding LTP uuid
  */
-class TechnologySpecificPacKeys {
+public class TechnologySpecificPacKeys {
 
-    private UniversalId ltpUuid;
+    private String ltpUuid;
     private String localId;
 
-    public TechnologySpecificPacKeys(UniversalId uuid, String lId) {
+    public TechnologySpecificPacKeys(String uuid, String lId) {
         this.ltpUuid = uuid;
         this.localId = lId;
     }
 
-    public UniversalId getLtpUuid() {
+    public String getLtpUuid() {
         return ltpUuid;
     }
 
@@ -44,7 +43,7 @@
         return localId;
     }
 
-    public void setLtpUuid(UniversalId uuid) {
+    public void setLtpUuid(String uuid) {
         this.ltpUuid = uuid;
     }
 
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/util/Debug.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/util/Debug.java
similarity index 96%
rename from sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/util/Debug.java
rename to sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/util/Debug.java
index efa3cf1..978c71e 100644
--- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/util/Debug.java
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/util/Debug.java
@@ -19,7 +19,7 @@
  * ============LICENSE_END=========================================================
  *
  */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.util;
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util;
 
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.FaultData;
 import org.slf4j.Logger;
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/util/Onf14DMDOMUtility.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/util/Onf14DMDOMUtility.java
new file mode 100644
index 0000000..1cae567
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/util/Onf14DMDOMUtility.java
@@ -0,0 +1,77 @@
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util;
+
+import com.google.common.base.VerifyException;
+import java.time.Instant;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import org.opendaylight.mdsal.dom.api.DOMEvent;
+import org.opendaylight.mdsal.dom.api.DOMNotification;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
+import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild;
+import org.opendaylight.yangtools.yang.data.api.schema.DataContainerNode;
+import org.opendaylight.yangtools.yang.data.api.schema.LeafNode;
+import org.opendaylight.yangtools.yang.data.api.schema.LeafSetEntryNode;
+import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class Onf14DMDOMUtility {
+
+    public static final Logger LOG = LoggerFactory.getLogger(Onf14DMDOMUtility.class);
+
+    private Onf14DMDOMUtility() {}
+
+    public static String getLeafValue(DataContainerNode componentEntry, QName leafQName) {
+        NodeIdentifier leafNodeIdentifier = new NodeIdentifier(leafQName);
+        try {
+            LeafNode<?> optLeafNode = (LeafNode<?>) componentEntry.getChildByArg(leafNodeIdentifier);
+            if (optLeafNode.body() instanceof QName) {
+                LOG.debug("Leaf is of type QName"); //Ex: ImmutableLeafNode{identifier=(urn:onf:yang:air-interface-2-0?revision=2020-01-21)severity, body=(urn:onf:yang:air-interface-2-0?revision=2020-01-21)SEVERITY_TYPE_MAJOR}
+                String severity_ = optLeafNode.body().toString();
+                return severity_.substring(severity_.indexOf(')')+1); //Any other solution??
+            }
+            return optLeafNode.body().toString();
+        } catch (VerifyException ve) {
+            LOG.debug("Leaf with QName {} not found", leafQName);
+            return null;
+        }
+    }
+
+    public static List<String> getLeafListValue(DataContainerNode componentEntry, QName leafListQName) {
+        List<String> containsChildList = new ArrayList<>();
+        try {
+            DataContainerChild childSet = componentEntry.getChildByArg(new NodeIdentifier(leafListQName));
+            Collection<?> childEntry = (Collection<?>) childSet.body();
+            Iterator<?> childEntryItr = childEntry.iterator();
+            while (childEntryItr.hasNext()) {
+                LeafSetEntryNode<?> childEntryNode = (LeafSetEntryNode<?>) childEntryItr.next();
+                containsChildList.add(childEntryNode.body().toString());
+            }
+        } catch (VerifyException ve) {
+            LOG.debug("Child for {} does not exist", leafListQName);
+        }
+        return containsChildList;
+    }
+
+    public static String getUuidFromEquipment(MapEntryNode equipment) {
+        LOG.debug("Equipment Identifier is {}", equipment.getIdentifier());
+        NodeIdentifierWithPredicates componentKey = equipment.getIdentifier(); // list key
+        LOG.debug("Key Name is - {}", componentKey.keySet());
+        LOG.debug("Key Value is - {}",
+                componentKey.getValue(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_GLOBAL_CLASS_UUID));
+
+        return componentKey.getValue(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_GLOBAL_CLASS_UUID).toString();
+    }
+
+    public static Instant getNotificationInstant(DOMNotification notification) {
+        if (notification instanceof DOMEvent) {
+            return ((DOMEvent) notification).getEventInstant();
+        } else {
+            return Instant.now();
+        }
+    }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/util/Onf14DevicemanagerQNames.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/util/Onf14DevicemanagerQNames.java
new file mode 100644
index 0000000..58abf02
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/util/Onf14DevicemanagerQNames.java
@@ -0,0 +1,251 @@
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util;
+
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
+
+public class Onf14DevicemanagerQNames {
+    public static final QNameModule CORE_MODEL_1_4_MODULE =
+            QNameModule.create(XMLNamespace.of("urn:onf:yang:core-model-1-4"), Revision.of("2019-11-27"));
+    public static final QName CORE_MODEL_CONTROL_CONSTRUCT_CONTAINER =
+            QName.create(CORE_MODEL_1_4_MODULE, "control-construct");
+    public static final QName CORE_MODEL_CC_TOP_LEVEL_EQPT = QName.create(CORE_MODEL_1_4_MODULE, "top-level-equipment");
+    public static final QName CORE_MODEL_CC_EQPT = QName.create(CORE_MODEL_1_4_MODULE, "equipment");
+    public static final QName CORE_MODEL_CC_EQPT_GLOBAL_CLASS_UUID = QName.create(CORE_MODEL_1_4_MODULE, "uuid");
+    public static final QName CORE_MODEL_CC_EQPT_ACTUAL_EQUIPMENT =
+            QName.create(CORE_MODEL_1_4_MODULE, "actual-equipment");
+    public static final QName CORE_MODEL_CC_EQPT_CONTAINED_HOLDER =
+            QName.create(CORE_MODEL_1_4_MODULE, "contained-holder");
+    public static final QName CORE_MODEL_CC_EQPT_OCCUPYING_FRU = QName.create(CORE_MODEL_1_4_MODULE, "occupying-fru");
+    public static final QName CORE_MODEL_CC_EQPT_MANUFACTURED_THING =
+            QName.create(CORE_MODEL_1_4_MODULE, "manufactured-thing");
+    public static final QName CORE_MODEL_CC_EQPT_MANUFACTURER_PROPS =
+            QName.create(CORE_MODEL_1_4_MODULE, "manufacturer-properties");
+    public static final QName CORE_MODEL_CC_EQPT_MANUFACTURER_NAME =
+            QName.create(CORE_MODEL_1_4_MODULE, "manufacturer-name");
+    public static final QName CORE_MODEL_CC_EQPT_MANUFACTURER_ID =
+            QName.create(CORE_MODEL_1_4_MODULE, "manufacturer-identifier");
+    public static final QName CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_INSTANCE =
+            QName.create(CORE_MODEL_1_4_MODULE, "equipment-instance");
+    public static final QName CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_INSTANCE_SERIAL_NUM =
+            QName.create(CORE_MODEL_1_4_MODULE, "serial-number");
+    public static final QName CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_INSTANCE_MANUFACTURED_DATE =
+            QName.create(CORE_MODEL_1_4_MODULE, "manufactured-date");
+    public static final QName CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE =
+            QName.create(CORE_MODEL_1_4_MODULE, "equipment-type");
+    public static final QName CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE_VERSION =
+            QName.create(CORE_MODEL_1_4_MODULE, "version");
+    public static final QName CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE_DESCRIPTION =
+            QName.create(CORE_MODEL_1_4_MODULE, "description");
+    public static final QName CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE_MODEL_ID =
+            QName.create(CORE_MODEL_1_4_MODULE, "model-identifier");
+    public static final QName CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE_PART_TYPE_ID =
+            QName.create(CORE_MODEL_1_4_MODULE, "part-type-identifier");
+    public static final QName CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE_TYPE_NAME =
+            QName.create(CORE_MODEL_1_4_MODULE, "type-name");
+
+
+    public static final QName CORE_MODEL_CC_LTP = QName.create(CORE_MODEL_1_4_MODULE, "logical-termination-point");
+    public static final QName CORE_MODEL_CC_LTP_LAYER_PROTOCOL = QName.create(CORE_MODEL_1_4_MODULE, "layer-protocol");
+    public static final QName CORE_MODEL_CC_LTP_LAYER_PROTOCOL_NAME =
+            QName.create(CORE_MODEL_1_4_MODULE, "layer-protocol-name");
+    public static final QName CORE_MODEL_CC_LTP_LAYER_PROTOCOL_LOCAL_ID =
+            QName.create(CORE_MODEL_1_4_MODULE, "local-id");
+    public static final QName CORE_MODEL_CC_LTP_UUID = QName.create(CORE_MODEL_1_4_MODULE, "uuid");
+
+    //Interface Notifications - common fields
+    private static String COUNTER = "counter";
+    private static String OBJECT_ID_REF = "object-id-ref";
+    private static String TIMESTAMP = "timestamp";
+    // Air-interface
+    public static final QNameModule AIR_INTERFACE_2_0_MODULE =
+            QNameModule.create(XMLNamespace.of("urn:onf:yang:air-interface-2-0"), Revision.of("2020-01-21"));
+    public static final QName AIR_INTERFACE_PAC = QName.create(AIR_INTERFACE_2_0_MODULE, "air-interface-pac");
+    public static final QName AIR_INTERFACE_CURRENT_PROBLEMS =
+            QName.create(AIR_INTERFACE_2_0_MODULE, "air-interface-current-problems");
+    public static final QName AIR_INTERFACE_CURRENT_PROBLEMS_LIST =
+            QName.create(AIR_INTERFACE_2_0_MODULE, "current-problem-list");
+    public static final QName AIR_INTERFACE_CURRENT_PROBLEMS_SEQ_NO =
+            QName.create(AIR_INTERFACE_2_0_MODULE, "sequence-number");
+    public static final QName AIR_INTERFACE_CURRENT_PROBLEMS_TIMESTAMP =
+            QName.create(AIR_INTERFACE_2_0_MODULE, TIMESTAMP);
+    public static final QName AIR_INTERFACE_CURRENT_PROBLEMS_PROBLEM_NAME =
+            QName.create(AIR_INTERFACE_2_0_MODULE, "problem-name");
+    public static final QName AIR_INTERFACE_CURRENT_PROBLEMS_PROBLEM_SEVERITY =
+            QName.create(AIR_INTERFACE_2_0_MODULE, "problem-severity");
+    // Creation notification
+    public static final QName AIR_INTERFACE_OBJECT_CREATE_NOTIFICATION =
+            QName.create(AIR_INTERFACE_2_0_MODULE, "object-creation-notification");
+    public static final QName AIR_INTERFACE_OBJECT_CREATE_NOTIFICATION_OBJECT_TYPE =
+            QName.create(AIR_INTERFACE_2_0_MODULE, "object-type");
+    public static final QName AIR_INTERFACE_OBJECT_CREATE_NOTIFICATION_COUNTER =
+            QName.create(AIR_INTERFACE_2_0_MODULE, COUNTER);
+    public static final QName AIR_INTERFACE_OBJECT_CREATE_NOTIFICATION_TIMESTAMP =
+            QName.create(AIR_INTERFACE_2_0_MODULE, TIMESTAMP);
+    public static final QName AIR_INTERFACE_OBJECT_CREATE_NOTIFICATION_OBJECT_ID_REF =
+            QName.create(AIR_INTERFACE_2_0_MODULE, OBJECT_ID_REF);
+    //AVC notification
+    public static final QName AIR_INTERFACE_OBJECT_AVC_NOTIFICATION =
+            QName.create(AIR_INTERFACE_2_0_MODULE, "attribute-value-changed-notification");
+    public static final QName AIR_INTERFACE_OBJECT_AVC_NOTIFICATION_COUNTER =
+            QName.create(AIR_INTERFACE_2_0_MODULE, COUNTER);
+    public static final QName AIR_INTERFACE_OBJECT_AVC_NOTIFICATION_TIMESTAMP =
+            QName.create(AIR_INTERFACE_2_0_MODULE, TIMESTAMP);
+    public static final QName AIR_INTERFACE_OBJECT_AVC_NOTIFICATION_OBJECT_ID_REF =
+            QName.create(AIR_INTERFACE_2_0_MODULE, OBJECT_ID_REF);
+    public static final QName AIR_INTERFACE_OBJECT_AVC_NOTIFICATION_ATTRIBUTE_NAME =
+            QName.create(AIR_INTERFACE_2_0_MODULE, "attribute-name");
+    public static final QName AIR_INTERFACE_OBJECT_AVC_NOTIFICATION_NEW_VALUE =
+            QName.create(AIR_INTERFACE_2_0_MODULE, "new-value");
+    //problem notification
+    public static final QName AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION =
+            QName.create(AIR_INTERFACE_2_0_MODULE, "problem-notification");
+    public static final QName AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_OBJECT_ID_REF =
+            QName.create(AIR_INTERFACE_2_0_MODULE, OBJECT_ID_REF);
+    public static final QName AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_PROBLEM =
+            QName.create(AIR_INTERFACE_2_0_MODULE, "problem");
+    public static final QName AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_SEVERITY =
+            QName.create(AIR_INTERFACE_2_0_MODULE, "severity");
+    public static final QName AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_COUNTER =
+            QName.create(AIR_INTERFACE_2_0_MODULE, COUNTER);
+    public static final QName AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_TIMESTAMP =
+            QName.create(AIR_INTERFACE_2_0_MODULE, TIMESTAMP);
+    // Delete notification
+    public static final QName AIR_INTERFACE_OBJECT_DELETE_NOTIFICATION =
+            QName.create(AIR_INTERFACE_2_0_MODULE, "object-deletion-notification");
+    public static final QName AIR_INTERFACE_OBJECT_DELETE_NOTIFICATION_COUNTER =
+            QName.create(AIR_INTERFACE_2_0_MODULE, COUNTER);
+    public static final QName AIR_INTERFACE_OBJECT_DELETE_NOTIFICATION_OBJECT_ID_REF =
+            QName.create(AIR_INTERFACE_2_0_MODULE, OBJECT_ID_REF);
+    public static final QName AIR_INTERFACE_OBJECT_DELETE_NOTIFICATION_TIMESTAMP =
+            QName.create(AIR_INTERFACE_2_0_MODULE, TIMESTAMP);
+
+    // Ethernet interface
+    public static final QNameModule ETHERNET_CONTAINER_2_0_MODULE =
+            QNameModule.create(XMLNamespace.of("urn:onf:yang:ethernet-container-2-0"), Revision.of("2020-01-21"));
+    public static final QName ETHERNET_CONTAINER_PAC =
+            QName.create(ETHERNET_CONTAINER_2_0_MODULE, "ethernet-container-pac");
+    public static final QName ETHERNET_CONTAINER_CURRENT_PROBLEMS =
+            QName.create(ETHERNET_CONTAINER_2_0_MODULE, "ethernet-container-current-problems");
+    public static final QName ETHERNET_CONTAINER_CURRENT_PROBLEMS_LIST =
+            QName.create(ETHERNET_CONTAINER_2_0_MODULE, "current-problem-list");
+    public static final QName ETHERNET_CONTAINER_CURRENT_PROBLEMS_SEQ_NO =
+            QName.create(ETHERNET_CONTAINER_2_0_MODULE, "sequence-number");
+    public static final QName ETHERNET_CONTAINER_CURRENT_PROBLEMS_TIMESTAMP =
+            QName.create(ETHERNET_CONTAINER_2_0_MODULE, TIMESTAMP);
+    public static final QName ETHERNET_CONTAINER_CURRENT_PROBLEMS_PROBLEM_NAME =
+            QName.create(ETHERNET_CONTAINER_2_0_MODULE, "problem-name");
+    public static final QName ETHERNET_CONTAINER_CURRENT_PROBLEMS_PROBLEM_SEVERITY =
+            QName.create(ETHERNET_CONTAINER_2_0_MODULE, "problem-severity");
+    // Creation notification
+    public static final QName ETHERNET_CONTAINER_OBJECT_CREATE_NOTIFICATION =
+            QName.create(ETHERNET_CONTAINER_2_0_MODULE, "object-creation-notification");
+    public static final QName ETHERNET_CONTAINER_OBJECT_CREATE_NOTIFICATION_OBJECT_TYPE =
+            QName.create(ETHERNET_CONTAINER_2_0_MODULE, "object-type");
+    public static final QName ETHERNET_CONTAINER_OBJECT_CREATE_NOTIFICATION_COUNTER =
+            QName.create(ETHERNET_CONTAINER_2_0_MODULE, COUNTER);
+    public static final QName ETHERNET_CONTAINER_OBJECT_CREATE_NOTIFICATION_TIMESTAMP =
+            QName.create(ETHERNET_CONTAINER_2_0_MODULE, TIMESTAMP);
+    public static final QName ETHERNET_CONTAINER_OBJECT_CREATE_NOTIFICATION_OBJECT_ID_REF =
+            QName.create(ETHERNET_CONTAINER_2_0_MODULE, OBJECT_ID_REF);
+    //AVC notification
+    public static final QName ETHERNET_CONTAINER_OBJECT_AVC_NOTIFICATION =
+            QName.create(ETHERNET_CONTAINER_2_0_MODULE, "attribute-value-changed-notification");
+    public static final QName ETHERNET_CONTAINER_OBJECT_AVC_NOTIFICATION_COUNTER =
+            QName.create(ETHERNET_CONTAINER_2_0_MODULE, COUNTER);
+    public static final QName ETHERNET_CONTAINER_OBJECT_AVC_NOTIFICATION_TIMESTAMP =
+            QName.create(ETHERNET_CONTAINER_2_0_MODULE, TIMESTAMP);
+    public static final QName ETHERNET_CONTAINER_OBJECT_AVC_NOTIFICATION_OBJECT_ID_REF =
+            QName.create(ETHERNET_CONTAINER_2_0_MODULE, OBJECT_ID_REF);
+    public static final QName ETHERNET_CONTAINER_OBJECT_AVC_NOTIFICATION_ATTRIBUTE_NAME =
+            QName.create(ETHERNET_CONTAINER_2_0_MODULE, "attribute-name");
+    public static final QName ETHERNET_CONTAINER_OBJECT_AVC_NOTIFICATION_NEW_VALUE =
+            QName.create(ETHERNET_CONTAINER_2_0_MODULE, "new-value");
+    //problem notification
+    public static final QName ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION =
+            QName.create(ETHERNET_CONTAINER_2_0_MODULE, "problem-notification");
+    public static final QName ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION_OBJECT_ID_REF =
+            QName.create(ETHERNET_CONTAINER_2_0_MODULE, OBJECT_ID_REF);
+    public static final QName ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION_PROBLEM =
+            QName.create(ETHERNET_CONTAINER_2_0_MODULE, "problem");
+    public static final QName ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION_SEVERITY =
+            QName.create(ETHERNET_CONTAINER_2_0_MODULE, "severity");
+    public static final QName ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION_COUNTER =
+            QName.create(ETHERNET_CONTAINER_2_0_MODULE, COUNTER);
+    public static final QName ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION_TIMESTAMP =
+            QName.create(ETHERNET_CONTAINER_2_0_MODULE, TIMESTAMP);
+    // Delete notification
+    public static final QName ETHERNET_CONTAINER_OBJECT_DELETE_NOTIFICATION =
+            QName.create(ETHERNET_CONTAINER_2_0_MODULE, "object-deletion-notification");
+    public static final QName ETHERNET_CONTAINER_OBJECT_DELETE_NOTIFICATION_COUNTER =
+            QName.create(ETHERNET_CONTAINER_2_0_MODULE, COUNTER);
+    public static final QName ETHERNET_CONTAINER_OBJECT_DELETE_NOTIFICATION_OBJECT_ID_REF =
+            QName.create(ETHERNET_CONTAINER_2_0_MODULE, OBJECT_ID_REF);
+    public static final QName ETHERNET_CONTAINER_OBJECT_DELETE_NOTIFICATION_TIMESTAMP =
+            QName.create(ETHERNET_CONTAINER_2_0_MODULE, TIMESTAMP);
+
+    //Wire interface
+    public static final QNameModule WIRE_INTERFACE_2_0_MODULE =
+            QNameModule.create(XMLNamespace.of("urn:onf:yang:wire-interface-2-0"), Revision.of("2020-01-23"));
+    public static final QName WIRE_INTERFACE_PAC = QName.create(WIRE_INTERFACE_2_0_MODULE, "wire-interface-pac");
+    public static final QName WIRE_INTERFACE_CURRENT_PROBLEMS =
+            QName.create(WIRE_INTERFACE_2_0_MODULE, "wire-interface-current-problems");
+    public static final QName WIRE_INTERFACE_CURRENT_PROBLEMS_LIST =
+            QName.create(WIRE_INTERFACE_2_0_MODULE, "current-problem-list");
+    public static final QName WIRE_INTERFACE_CURRENT_PROBLEMS_SEQ_NO =
+            QName.create(WIRE_INTERFACE_2_0_MODULE, "sequence-number");
+    public static final QName WIRE_INTERFACE_CURRENT_PROBLEMS_TIMESTAMP =
+            QName.create(WIRE_INTERFACE_2_0_MODULE, TIMESTAMP);
+    public static final QName WIRE_INTERFACE_CURRENT_PROBLEMS_PROBLEM_NAME =
+            QName.create(WIRE_INTERFACE_2_0_MODULE, "problem-name");
+    public static final QName WIRE_INTERFACE_CURRENT_PROBLEMS_PROBLEM_SEVERITY =
+            QName.create(WIRE_INTERFACE_2_0_MODULE, "problem-severity");
+    // Creation notification
+    public static final QName WIRE_INTERFACE_OBJECT_CREATE_NOTIFICATION =
+            QName.create(WIRE_INTERFACE_2_0_MODULE, "object-creation-notification");
+    public static final QName WIRE_INTERFACE_OBJECT_CREATE_NOTIFICATION_OBJECT_TYPE =
+            QName.create(WIRE_INTERFACE_2_0_MODULE, "object-type");
+    public static final QName WIRE_INTERFACE_OBJECT_CREATE_NOTIFICATION_COUNTER =
+            QName.create(WIRE_INTERFACE_2_0_MODULE, COUNTER);
+    public static final QName WIRE_INTERFACE_OBJECT_CREATE_NOTIFICATION_TIMESTAMP =
+            QName.create(WIRE_INTERFACE_2_0_MODULE, TIMESTAMP);
+    public static final QName WIRE_INTERFACE_OBJECT_CREATE_NOTIFICATION_OBJECT_ID_REF =
+            QName.create(WIRE_INTERFACE_2_0_MODULE, OBJECT_ID_REF);
+    //AVC notification
+    public static final QName WIRE_INTERFACE_OBJECT_AVC_NOTIFICATION =
+            QName.create(WIRE_INTERFACE_2_0_MODULE, "attribute-value-changed-notification");
+    public static final QName WIRE_INTERFACE_OBJECT_AVC_NOTIFICATION_COUNTER =
+            QName.create(WIRE_INTERFACE_2_0_MODULE, COUNTER);
+    public static final QName WIRE_INTERFACE_OBJECT_AVC_NOTIFICATION_TIMESTAMP =
+            QName.create(WIRE_INTERFACE_2_0_MODULE, TIMESTAMP);
+    public static final QName WIRE_INTERFACE_OBJECT_AVC_NOTIFICATION_OBJECT_ID_REF =
+            QName.create(WIRE_INTERFACE_2_0_MODULE, OBJECT_ID_REF);
+    public static final QName WIRE_INTERFACE_OBJECT_AVC_NOTIFICATION_ATTRIBUTE_NAME =
+            QName.create(WIRE_INTERFACE_2_0_MODULE, "attribute-name");
+    public static final QName WIRE_INTERFACE_OBJECT_AVC_NOTIFICATION_NEW_VALUE =
+            QName.create(WIRE_INTERFACE_2_0_MODULE, "new-value");
+    //problem notification
+    public static final QName WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION =
+            QName.create(WIRE_INTERFACE_2_0_MODULE, "problem-notification");
+    public static final QName WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_OBJECT_ID_REF =
+            QName.create(WIRE_INTERFACE_2_0_MODULE, OBJECT_ID_REF);
+    public static final QName WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_PROBLEM =
+            QName.create(WIRE_INTERFACE_2_0_MODULE, "problem");
+    public static final QName WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_SEVERITY =
+            QName.create(WIRE_INTERFACE_2_0_MODULE, "severity");
+    public static final QName WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_COUNTER =
+            QName.create(WIRE_INTERFACE_2_0_MODULE, COUNTER);
+    public static final QName WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_TIMESTAMP =
+            QName.create(WIRE_INTERFACE_2_0_MODULE, TIMESTAMP);
+    // Delete notification
+    public static final QName WIRE_INTERFACE_OBJECT_DELETE_NOTIFICATION =
+            QName.create(WIRE_INTERFACE_2_0_MODULE, "object-deletion-notification");
+    public static final QName WIRE_INTERFACE_OBJECT_DELETE_NOTIFICATION_COUNTER =
+            QName.create(WIRE_INTERFACE_2_0_MODULE, COUNTER);
+    public static final QName WIRE_INTERFACE_OBJECT_DELETE_NOTIFICATION_OBJECT_ID_REF =
+            QName.create(WIRE_INTERFACE_2_0_MODULE, OBJECT_ID_REF);
+    public static final QName WIRE_INTERFACE_OBJECT_DELETE_NOTIFICATION_TIMESTAMP =
+            QName.create(WIRE_INTERFACE_2_0_MODULE, TIMESTAMP);
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/Onf14Configuration.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/Onf14Configuration.java
deleted file mode 100644
index 8396e8d..0000000
--- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/Onf14Configuration.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt
- * =================================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl;
-
-import org.onap.ccsdk.features.sdnr.wt.common.configuration.Configuration;
-import org.onap.ccsdk.features.sdnr.wt.common.configuration.ConfigurationFileRepresentation;
-
-public class Onf14Configuration implements Configuration {
-
-    private static final String SECTION_MARKER_DMONF = "dmonf14";
-
-    private static final String DEFAULT_VALUE_ENABLED = "${SDNR_ONF14_USEDOMAPI}";
-    private static final String PROPERTY_KEY_USEDOMAPI = "useDomApi";
-
-    private final ConfigurationFileRepresentation configuration;
-
-    public Onf14Configuration(ConfigurationFileRepresentation configuration) {
-        this.configuration = configuration;
-        this.configuration.addSection(SECTION_MARKER_DMONF);
-        defaults();
-    }
-
-    public boolean isUseDomApiEnabled() {
-
-        return configuration.getPropertyBoolean(SECTION_MARKER_DMONF, PROPERTY_KEY_USEDOMAPI);
-    }
-
-    @Override
-    public String getSectionName() {
-        return SECTION_MARKER_DMONF;
-    }
-
-    @Override
-    public void defaults() {
-        //Add default if not available
-        configuration.setPropertyIfNotAvailable(SECTION_MARKER_DMONF, PROPERTY_KEY_USEDOMAPI, DEFAULT_VALUE_ENABLED);
-    }
-
-}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/Onf14DomNetworkElement.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/Onf14DomNetworkElement.java
deleted file mode 100644
index 177f25e..0000000
--- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/Onf14DomNetworkElement.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt
- * =================================================================================================
- * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-import org.eclipse.jdt.annotation.NonNull;
-import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElement;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElementService;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.dataprovider.Onf14ToInternalDataModel;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.equipment.Onf14DomEquipmentManager;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.interfaces.Onf14DomInterfacePacManager;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NotificationService;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.FaultData;
-import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
-import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor;
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.netconf.streams.Stream;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.netconf.streams.StreamKey;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.ControlConstruct;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.UniversalId;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.control.construct.Equipment;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.NetworkElementConnectionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.NetworkElementDeviceType;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Representation of ONF Core model 1.4 device Top level element is "ControlConstruct" (replaces "NetworkElement" of
- * older ONF Version) NOTE: This class is still under development due to unmet dependencies (especially the ones related
- * to DOM notifications) in ODL. Once the dependencies are complete, this class will replace the ONF14NetworkElement
- */
-public class Onf14DomNetworkElement implements NetworkElement {
-
-    private static final Logger log = LoggerFactory.getLogger(Onf14DomNetworkElement.class);
-
-    //    protected static final InstanceIdentifier<ControlConstruct> CONTROLCONSTRUCT_IID =
-    //            InstanceIdentifier.builder(ControlConstruct.class).build();
-    protected static final YangInstanceIdentifier CONTROLCONSTRUCT_IID =
-            YangInstanceIdentifier.builder().node(ControlConstruct.QNAME).build();
-
-    private final NetconfDomAccessor netconfDomAccessor;
-    private final DataProvider databaseService;
-    private final @NonNull FaultService faultService;
-    private final @NonNull NotificationService notificationService;
-
-    private final Onf14ToInternalDataModel onf14Mapper;
-
-    private final @NonNull Onf14DomEquipmentManager equipmentManager;
-    private final @NonNull Onf14DomInterfacePacManager interfacePacManager;
-    private final @NonNull String namespaceRevision;
-
-    private boolean experimental;
-
-
-    public Onf14DomNetworkElement(NetconfDomAccessor netconfDomAccessor, DeviceManagerServiceProvider serviceProvider,
-            String namespaceRevision) {
-        log.info("Create {}", Onf14DomNetworkElement.class.getSimpleName());
-        this.netconfDomAccessor = netconfDomAccessor;
-        this.databaseService = serviceProvider.getDataProvider();
-        this.notificationService = serviceProvider.getNotificationService();
-        this.faultService = serviceProvider.getFaultService();
-        this.namespaceRevision = namespaceRevision;
-        this.onf14Mapper = new Onf14ToInternalDataModel();
-        this.equipmentManager = new Onf14DomEquipmentManager(netconfDomAccessor, databaseService, onf14Mapper);
-
-        this.interfacePacManager = new Onf14DomInterfacePacManager(netconfDomAccessor, serviceProvider);
-        this.experimental = false;
-    }
-
-    /**
-     * reading the inventory (CoreModel 1.4 Equipment Model) and adding it to the DB
-     */
-    public void initialReadFromNetworkElement() {
-
-        //Read complete device tree
-        Optional<ControlConstruct> oControlConstruct = readControlConstruct(netconfDomAccessor);
-
-        if (oControlConstruct.isPresent()) {
-            ControlConstruct controlConstruct = oControlConstruct.get();
-
-            equipmentManager.setEquipmentData(controlConstruct);
-
-            //-- Start for experimental purpose
-            if (experimental) {
-                log.warn("Experimental code activated");
-                for (UniversalId uuid : equipmentManager.getEquipmentUuidList()) {
-                    log.info("Read data with id {}", uuid);
-                    Optional<Equipment> res1 = equipmentManager.readEquipmentInstance(netconfDomAccessor, uuid);
-                    log.info("Res1: {}", res1.isPresent() ? res1.get() : "No data1");
-
-                    /*List<DataObject> res2 = equipmentManager.readEquipmentList(netconfDomAccessor);
-                    log.info("Res2: {}", res2.isPresent() ? res2.get() : "No data2");*/
-
-                    equipmentManager.readTopLevelEquipment(netconfDomAccessor);
-                    //Do it only once for test purpose and break
-                    break;
-                }
-                List<DataObject> res2 = equipmentManager.readEquipmentList(netconfDomAccessor);
-                //log.info("Res2: {}", res2.isPresent() ? res2.get() : "No data2");
-                for (DataObject dobj : res2) {
-                    Equipment eqpt = (Equipment) dobj;
-                    log.info("Equipment local ID is : {}", eqpt.getLocalId());
-                }
-
-                equipmentManager.readTopLevelEquipment(netconfDomAccessor);
-            }
-            //-- End for experimental purpose
-
-            // storing all the LTP UUIDs internally, for later usage, for air-interface and ethernet-container
-            interfacePacManager.readKeys(controlConstruct);
-
-            // Read all fault data
-            FaultData resultList = new FaultData();
-
-            int problems = faultService.removeAllCurrentProblemsOfNode(netconfDomAccessor.getNodeId());
-            log.debug("Removed all {} problems from database at registration", problems);
-
-            interfacePacManager.readAllAirInterfaceCurrentProblems(netconfDomAccessor, controlConstruct, resultList);
-            problems = resultList.size();
-            log.debug("NETCONF read air interface current problems completed. Got back {} problems.", problems);
-            /*
-            readAllEhernetContainerCurrentProblems(resultList);
-            problems = resultList.size() - problems;
-            log.debug("NETCONF read current problems completed. Got back {} problems.", resultList.size());
-
-            readAllWireInterfaceCurrentProblems(resultList);
-            problems = resultList.size();
-            log.debug("NETCONF read wire interface current problems completed. Got back {} problems.", problems);
-            */
-            faultService.initCurrentProblemStatus(netconfDomAccessor.getNodeId(), resultList);
-            log.debug("DB write current problems completed");
-        }
-    }
-
-    /**
-     * @param nNode set core-model-capability
-     */
-    public void setCoreModel() {
-        NetworkElementConnectionBuilder eb = new NetworkElementConnectionBuilder();
-        eb.setCoreModelCapability(namespaceRevision);
-        databaseService.updateNetworkConnection22(eb.build(), netconfDomAccessor.getNodeId().getValue());
-    }
-
-    @Override
-    public void register() {
-        // Set core-model revision value in "core-model-capability" field
-        setCoreModel();
-        initialReadFromNetworkElement();
-
-        if (netconfDomAccessor.isNotificationsRFC5277Supported()) {
-            // register listener
-            interfacePacManager.subscribeNotifications();
-            // Output notification streams to LOG
-            Map<StreamKey, Stream> streams = netconfDomAccessor.getNotificationStreamsAsMap();
-            log.info("Available notifications streams: {}", streams);
-            // Register to default stream
-            netconfDomAccessor.invokeCreateSubscription();
-        }
-    }
-
-    @Override
-    public void deregister() {}
-
-
-    @Override
-    public NodeId getNodeId() {
-        return netconfDomAccessor.getNodeId();
-    }
-
-    @Override
-    public <L extends NetworkElementService> Optional<L> getService(Class<L> clazz) {
-        return Optional.empty();
-    }
-
-    @Override
-    public void warmstart() {}
-
-    @Override
-    public Optional<NetconfAccessor> getAcessor() {
-        return Optional.of(netconfDomAccessor);
-    }
-
-    @Override
-    public NetworkElementDeviceType getDeviceType() {
-        return NetworkElementDeviceType.Wireless;
-    }
-
-    private static Optional<ControlConstruct> readControlConstruct(NetconfDomAccessor netconfDomAccessor) {
-        return netconfDomAccessor.readData(LogicalDatastoreType.CONFIGURATION, CONTROLCONSTRUCT_IID,
-                ControlConstruct.class);
-    }
-
-
-
-}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/Onf14NetworkElement.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/Onf14NetworkElement.java
deleted file mode 100644
index 4a23b6b..0000000
--- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/Onf14NetworkElement.java
+++ /dev/null
@@ -1,552 +0,0 @@
-/*
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt
- * =================================================================================================
- * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.Optional;
-import org.eclipse.jdt.annotation.NonNull;
-import org.eclipse.jdt.annotation.Nullable;
-import org.onap.ccsdk.features.sdnr.wt.common.YangHelper;
-import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElement;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElementService;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.dataprovider.Onf14ToInternalDataModel;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.interfaces.Onf14AirInterface;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.interfaces.Onf14AirInterfaceNotificationListener;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.interfaces.Onf14EthernetContainer;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.interfaces.Onf14EthernetContainerNotificationListener;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.interfaces.Onf14WireInterface;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.interfaces.Onf14WireInterfaceNotificationListener;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.FaultData;
-import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.Capabilities;
-import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
-import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.LAYERPROTOCOLNAMETYPEAIRLAYER;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.air._interface.lp.spec.AirInterfacePac;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.air._interface.pac.AirInterfaceCurrentProblems;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.ControlConstruct;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.LAYERPROTOCOLNAMETYPE;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.UniversalId;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.control.construct.Equipment;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.control.construct.EquipmentKey;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.control.construct.LogicalTerminationPoint;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.control.construct.LogicalTerminationPointKey;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.equipment.ContainedHolder;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.logical.termination.point.LayerProtocol;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.logical.termination.point.LayerProtocolKey;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.LAYERPROTOCOLNAMETYPEETHERNETCONTAINERLAYER;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.ethernet.container.lp.spec.EthernetContainerPac;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.ethernet.container.pac.EthernetContainerCurrentProblems;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.LAYERPROTOCOLNAMETYPEWIRELAYER;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.wire._interface.lp.spec.WireInterfacePac;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.wire._interface.pac.WireInterfaceCurrentProblems;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.NetworkElementConnectionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.NetworkElementDeviceType;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
-import org.opendaylight.yangtools.concepts.ListenerRegistration;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.binding.NotificationListener;
-import org.opendaylight.yangtools.yang.common.QName;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Repesentation of ONF Core model 1.4 device Top level element is "ControlConstruct" (replaces "NetworkElement" of
- * older ONF Version)
- */
-public class Onf14NetworkElement implements NetworkElement {
-
-    private static final Logger log = LoggerFactory.getLogger(Onf14NetworkElement.class);
-
-    protected static final InstanceIdentifier<ControlConstruct> CONTROLCONSTRUCT_IID =
-            InstanceIdentifier.builder(ControlConstruct.class).build();
-
-    private static final int EQUIPMENTROOTLEVEL = 0;
-
-    private final NetconfBindingAccessor netconfAccessor;
-    private final DataProvider databaseService;
-    private final Onf14ToInternalDataModel onf14Mapper;
-    @NonNull
-    private final FaultService faultService;
-
-    // for storing the Equipment UUIDs that are inserted in the DB
-    private final List<String> equipmentUuidList = new ArrayList<>();
-
-    // air interface related members
-    private final List<TechnologySpecificPacKeys> airInterfaceList = new ArrayList<>();
-    @SuppressWarnings("unused")
-    private ListenerRegistration<NotificationListener> airInterfaceNotificationListenerHandler;
-    @NonNull
-    private final Onf14AirInterfaceNotificationListener airInterfaceNotificationListener;
-
-    // ethernet container related members
-    private final List<TechnologySpecificPacKeys> ethernetContainerList = new ArrayList<>();
-    @SuppressWarnings("unused")
-    private ListenerRegistration<NotificationListener> etherneContainerNotificationListenerHandler;
-    @NonNull
-    private final Onf14EthernetContainerNotificationListener ethernetContainerNotificationListener;
-
-    // wire interface related members
-    private final List<TechnologySpecificPacKeys> wireInterfaceList = new ArrayList<>();
-    @SuppressWarnings("unused")
-    private ListenerRegistration<NotificationListener> wireInterfaceNotificationListenerHandler;
-    @NonNull
-    private final Onf14WireInterfaceNotificationListener wireInterfaceNotificationListener;
-
-    Onf14NetworkElement(NetconfBindingAccessor netconfAccess, DeviceManagerServiceProvider serviceProvider) {
-        log.info("Create {}", Onf14NetworkElement.class.getSimpleName());
-        this.netconfAccessor = netconfAccess;
-        this.databaseService = serviceProvider.getDataProvider();
-        this.faultService = serviceProvider.getFaultService();
-        this.onf14Mapper = new Onf14ToInternalDataModel();
-        this.airInterfaceNotificationListenerHandler = null;
-        this.airInterfaceNotificationListener =
-                new Onf14AirInterfaceNotificationListener(netconfAccess, serviceProvider);
-        this.etherneContainerNotificationListenerHandler = null;
-        ethernetContainerNotificationListener =
-                new Onf14EthernetContainerNotificationListener(netconfAccess, serviceProvider);
-        this.wireInterfaceNotificationListenerHandler = null;
-        wireInterfaceNotificationListener = new Onf14WireInterfaceNotificationListener(netconfAccess, serviceProvider);
-    }
-
-    public void initialReadFromNetworkElement() {
-
-        // reading the inventory (CoreModel 1.4 Equipment Model) and adding it to the DB
-        readEquipmentData();
-
-        var resultList = new FaultData();
-
-        int problems = faultService.removeAllCurrentProblemsOfNode(netconfAccessor.getNodeId());
-        log.debug("Removed all {} problems from database at registration", problems);
-
-        readAllAirInterfaceCurrentProblems(resultList);
-        problems = resultList.size();
-        log.debug("NETCONF read air interface current problems completed. Got back {} problems.", problems);
-
-        readAllEhernetContainerCurrentProblems(resultList);
-        problems = resultList.size() - problems;
-        log.debug("NETCONF read current problems completed. Got back {} problems.", resultList.size());
-
-        readAllWireInterfaceCurrentProblems(resultList);
-        problems = resultList.size();
-        log.debug("NETCONF read wire interface current problems completed. Got back {} problems.", problems);
-
-        faultService.initCurrentProblemStatus(netconfAccessor.getNodeId(), resultList);
-        log.debug("DB write current problems completed");
-
-    }
-
-    public void readAllAirInterfaceCurrentProblems(FaultData resultList) {
-
-        int idxStart; // Start index for debug messages
-
-        for (TechnologySpecificPacKeys key : airInterfaceList) {
-            idxStart = resultList.size();
-
-            readAirInterfaceCurrentProblemForLtp(key.getLtpUuid(), key.getLocalId(), resultList);
-            debugResultList(key.getLtpUuid().getValue(), resultList, idxStart);
-        }
-    }
-
-    public void readAllEhernetContainerCurrentProblems(FaultData resultList) {
-
-        int idxStart; // Start index for debug messages
-
-        for (TechnologySpecificPacKeys key : ethernetContainerList) {
-            idxStart = resultList.size();
-
-            readEthernetConainerCurrentProblemForLtp(key.getLtpUuid(), key.getLocalId(), resultList);
-            debugResultList(key.getLtpUuid().getValue(), resultList, idxStart);
-        }
-    }
-
-    public void readAllWireInterfaceCurrentProblems(FaultData resultList) {
-
-        int idxStart; // Start index for debug messages
-
-        for (TechnologySpecificPacKeys key : wireInterfaceList) {
-            idxStart = resultList.size();
-
-            readWireInterfaceCurrentProblemForLtp(key.getLtpUuid(), key.getLocalId(), resultList);
-            debugResultList(key.getLtpUuid().getValue(), resultList, idxStart);
-        }
-    }
-
-    /**
-     * @param nNode set core-model-capability
-     */
-    public void setCoreModel(@NonNull NetconfNode nNode) {
-        NetworkElementConnectionBuilder eb = new NetworkElementConnectionBuilder();
-        log.info("In setCoreModel for Onf14NetworkElement");
-        String namespaceRevision;
-        QName QNAME_COREMODEL14 = QName.create("urn:onf:yang:core-model-1-4", "2019-11-27", "core-model-1-4").intern();
-
-        Capabilities availableCapabilities = Capabilities.getAvailableCapabilities(nNode);
-        namespaceRevision = availableCapabilities.getRevisionForNamespace(QNAME_COREMODEL14);
-        log.info("In setCoreModel for Onf14NetworkElement- namespaceRevision = " + namespaceRevision);
-        if (Capabilities.isNamespaceSupported(namespaceRevision)) {
-            eb.setCoreModelCapability(namespaceRevision);
-        } else {
-            eb.setCoreModelCapability("Unsupported");
-        }
-        databaseService.updateNetworkConnection22(eb.build(), netconfAccessor.getNodeId().getValue());
-    }
-
-    @Override
-    public void register() {
-        // Set core-model revision value in "core-model-capability" field
-        setCoreModel(netconfAccessor.getNetconfNode());
-        initialReadFromNetworkElement();
-
-        // Register netconf stream
-        airInterfaceNotificationListenerHandler =
-                netconfAccessor.doRegisterNotificationListener(airInterfaceNotificationListener);
-        etherneContainerNotificationListenerHandler =
-                netconfAccessor.doRegisterNotificationListener(ethernetContainerNotificationListener);
-        wireInterfaceNotificationListenerHandler =
-                netconfAccessor.doRegisterNotificationListener(wireInterfaceNotificationListener);
-        // Register to default (NETCONF) stream
-        netconfAccessor.registerNotificationsStream();
-    }
-
-    @Override
-    public void deregister() {}
-
-
-    @Override
-    public NodeId getNodeId() {
-        return netconfAccessor.getNodeId();
-    }
-
-    @Override
-    public <L extends NetworkElementService> Optional<L> getService(Class<L> clazz) {
-        return Optional.empty();
-    }
-
-    @Override
-    public void warmstart() {}
-
-    @Override
-    public Optional<NetconfAccessor> getAcessor() {
-        return Optional.of(netconfAccessor);
-    }
-
-    @Override
-    public NetworkElementDeviceType getDeviceType() {
-        return NetworkElementDeviceType.Wireless;
-    }
-
-    private void readEquipmentData() {
-
-        Optional<ControlConstruct> controlConstruct = readControlConstruct(netconfAccessor);
-
-        if (controlConstruct.isPresent()) {
-            // the top-level-equipment list contains the root objects of the Equipment Model
-            log.debug("Getting list of topLevelEquipment for mountpoint {}", netconfAccessor.getNodeId());
-            @Nullable
-            List<UniversalId> topLevelEquipment = controlConstruct.get().getTopLevelEquipment();
-
-            if (topLevelEquipment != null) {
-                List<Inventory> inventoryList = new ArrayList<>();
-                for (UniversalId uuid : topLevelEquipment) {
-                    log.debug("Got back topLevelEquipment with uuid {}", uuid.getValue());
-
-                    // adding all root Equipment objects to the DB
-                    @Nullable
-                    Equipment equipmentInstance = readEquipmentInstance(netconfAccessor, uuid);
-                    if (equipmentInstance != null) {
-                        // recursively adding the root equipment and all its children into the DB
-                        collectEquipment(inventoryList, equipmentInstance, null, EQUIPMENTROOTLEVEL);
-                    }
-                }
-                this.databaseService.writeInventory(this.netconfAccessor.getNodeId().getValue(), inventoryList);
-            }
-        }
-
-        // storing all the LTP UUIDs internally, for later usage, for air-interface and ethernet-container
-        readKeys(controlConstruct);
-    }
-
-    private List<Inventory> collectEquipment(List<Inventory> list, Equipment currentEq, Equipment parentEq,
-            long treeLevel) {
-
-        // if the Equipment UUID is already in the list, it was already processed
-        // needed for solving possible circular dependencies
-        if (equipmentUuidList.contains(currentEq.getUuid().getValue())) {
-            log.debug("Not adding equipment with uuid {} because it was aleady added...",
-                    currentEq.getUuid().getValue());
-            return list;
-        }
-
-        // we add this to our internal list, such that we avoid circular dependencies
-        equipmentUuidList.add(currentEq.getUuid().getValue());
-        log.debug("Adding equipment with uuid {} to the database...", currentEq.getUuid().getValue());
-
-        // we add our current equipment to the database
-        list.add(onf14Mapper.getInternalEquipment(netconfAccessor.getNodeId(), currentEq, parentEq, treeLevel));
-
-        // we iterate the kids of our current equipment and add them to the database recursively
-        // the actual reference is here: /core-model:control-construct/equipment/contained-holder/occupying-fru
-        @NonNull
-        Collection<ContainedHolder> holderList = YangHelper.getCollection(currentEq.nonnullContainedHolder());
-
-        for (ContainedHolder holder : holderList) {
-            @Nullable
-            UniversalId occupyingFru = holder.getOccupyingFru();
-            if (occupyingFru != null) {
-                @Nullable
-                Equipment childEq = readEquipmentInstance(netconfAccessor, occupyingFru);
-
-                if (childEq != null) {
-                    // current becomes parent and tree level increases by 1
-                    collectEquipment(list, childEq, currentEq, treeLevel + 1);
-                }
-            }
-        }
-        return list;
-    }
-
-    private void readKeys(Optional<ControlConstruct> controlConstruct) {
-
-        if (controlConstruct.isPresent()) {
-            @NonNull
-            Collection<LogicalTerminationPoint> ltpList =
-                    YangHelper.getCollection(controlConstruct.get().nonnullLogicalTerminationPoint());
-            log.debug("Iterating the LTP list for node {}", netconfAccessor.getNodeId().getValue());
-
-            // iterating all the Logical Termination Point list
-            for (LogicalTerminationPoint ltp : ltpList) {
-                @NonNull
-                List<LayerProtocol> lpList = YangHelper.getList(ltp.nonnullLayerProtocol());
-                // the Layer Protocol list should contain only one item, since we have an 1:1 relationship between the LTP and the LP
-                if (lpList.size() != 1) {
-                    log.debug("Layer protocol has no 1:1 relationship with the LTP.");
-                    return;
-                }
-                // accessing the LP, which should be only 1
-                LayerProtocol lp = lpList.get(0);
-                @Nullable
-                Class<? extends LAYERPROTOCOLNAMETYPE> layerProtocolName = lp.getLayerProtocolName();
-                if (layerProtocolName != null) {
-                    // if the LTP has an airInterface technology extension, the layer protocol name is air-layer
-                    if (layerProtocolName.getTypeName().equals(LAYERPROTOCOLNAMETYPEAIRLAYER.class.getName())) {
-                        TechnologySpecificPacKeys airInterfaceKey =
-                                new TechnologySpecificPacKeys(ltp.getUuid(), lp.getLocalId());
-                        airInterfaceList.add(airInterfaceKey);
-                        log.debug("Adding Ltp with uuid {} and local-id {} to the air-interface list",
-                                ltp.getUuid().getValue(), lp.getLocalId());
-                    }
-                    // if the LTP has an ethernetContainier technology extension, the layer protocol name is ethernet-container-layer
-                    else if (layerProtocolName.getTypeName().equals(LAYERPROTOCOLNAMETYPEETHERNETCONTAINERLAYER.class
-                            .getName())) {
-                        TechnologySpecificPacKeys ethernetContainerKey =
-                                new TechnologySpecificPacKeys(ltp.getUuid(), lp.getLocalId());
-                        ethernetContainerList.add(ethernetContainerKey);
-                        log.debug("Adding Ltp with uuid {} and local-id {} to the ethernet-contatinier list",
-                                ltp.getUuid().getValue(), lp.getLocalId());
-                    } else if (layerProtocolName.getTypeName().equals(LAYERPROTOCOLNAMETYPEWIRELAYER.class.getName())) {
-                        TechnologySpecificPacKeys wireInterfaceKey =
-                                new TechnologySpecificPacKeys(ltp.getUuid(), lp.getLocalId());
-                        wireInterfaceList.add(wireInterfaceKey);
-                        log.debug("Adding Ltp with uuid {} and local-id {} to the wire-interface list",
-                                ltp.getUuid().getValue(), lp.getLocalId());
-                    }
-                }
-            }
-        }
-    }
-
-    private void readAirInterfaceCurrentProblemForLtp(UniversalId ltpUuid, String localId, FaultData resultList) {
-
-        final Class<AirInterfacePac> clazzPac = AirInterfacePac.class;
-
-        log.info("DBRead Get current problems for class {} from mountpoint {} for LTP uuid {} and local-id {}",
-                clazzPac.getSimpleName(), netconfAccessor.getNodeId().getValue(), ltpUuid.getValue(), localId);
-
-        // constructing the IID needs the augmentation exposed byy the air-interface-2-0 model
-        InstanceIdentifier<AirInterfaceCurrentProblems> airInterfaceCurrentProblem_IID = InstanceIdentifier
-                .builder(ControlConstruct.class)
-                .child(LogicalTerminationPoint.class, new LogicalTerminationPointKey(ltpUuid))
-                .child(LayerProtocol.class, new LayerProtocolKey(localId))
-                .augmentation(
-                        org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.LayerProtocol1.class)
-                .child(AirInterfacePac.class).child(AirInterfaceCurrentProblems.class).build();
-
-        // reading all the current-problems list for this specific LTP and LP
-        AirInterfaceCurrentProblems problems = netconfAccessor.getTransactionUtils().readData(
-                netconfAccessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL, airInterfaceCurrentProblem_IID);
-
-        if (problems == null) {
-            log.debug("DBRead Id {} no AirInterfaceCurrentProblems", ltpUuid);
-        } else if (problems.getCurrentProblemList() == null) {
-            log.debug("DBRead Id {} empty CurrentProblemList", ltpUuid);
-        } else {
-            for (org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.air._interface.current.problems.CurrentProblemList problem : YangHelper
-                    .getCollection(problems.nonnullCurrentProblemList())) {
-                resultList.add(netconfAccessor.getNodeId(), (int) problem.getSequenceNumber(), problem.getTimestamp(),
-                        ltpUuid.getValue(), problem.getProblemName(),
-                        Onf14AirInterface.mapSeverity(problem.getProblemSeverity()));
-            }
-        }
-    }
-
-    private void readEthernetConainerCurrentProblemForLtp(UniversalId ltpUuid, String localId, FaultData resultList) {
-
-        final Class<EthernetContainerPac> clazzPac = EthernetContainerPac.class;
-
-        log.info("DBRead Get current problems for class {} from mountpoint {} for LTP uuid {} and local-id {}",
-                clazzPac.getSimpleName(), netconfAccessor.getNodeId().getValue(), ltpUuid.getValue(), localId);
-
-        // constructing the IID needs the augmentation exposed by the ethernet-container-2-0 model
-        InstanceIdentifier<EthernetContainerCurrentProblems> etherneContainerCurrentProblem_IID = InstanceIdentifier
-                .builder(ControlConstruct.class)
-                .child(LogicalTerminationPoint.class, new LogicalTerminationPointKey(ltpUuid))
-                .child(LayerProtocol.class, new LayerProtocolKey(localId))
-                .augmentation(
-                        org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.LayerProtocol1.class)
-                .child(EthernetContainerPac.class).child(EthernetContainerCurrentProblems.class).build();
-
-        // reading all the current-problems list for this specific LTP and LP
-        EthernetContainerCurrentProblems problems = netconfAccessor.getTransactionUtils().readData(
-                netconfAccessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL, etherneContainerCurrentProblem_IID);
-
-        if (problems == null) {
-            log.debug("DBRead Id {} no EthernetContainerCurrentProblems", ltpUuid);
-        } else if (problems.getCurrentProblemList() == null) {
-            log.debug("DBRead Id {} empty CurrentProblemList", ltpUuid);
-        } else {
-            for (org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.ethernet.container.current.problems.CurrentProblemList problem : YangHelper
-                    .getCollection(problems.nonnullCurrentProblemList())) {
-                resultList.add(netconfAccessor.getNodeId(), (int) problem.getSequenceNumber(), problem.getTimestamp(),
-                        ltpUuid.getValue(), problem.getProblemName(),
-                        Onf14EthernetContainer.mapSeverity(problem.getProblemSeverity()));
-            }
-        }
-    }
-
-    private void readWireInterfaceCurrentProblemForLtp(UniversalId ltpUuid, String localId, FaultData resultList) {
-
-        final Class<WireInterfacePac> clazzPac = WireInterfacePac.class;
-
-        log.info("DBRead Get current problems for class {} from mountpoint {} for LTP uuid {} and local-id {}",
-                clazzPac.getSimpleName(), netconfAccessor.getNodeId().getValue(), ltpUuid.getValue(), localId);
-
-        // constructing the IID needs the augmentation exposed by the wire-interface-2-0 model
-        InstanceIdentifier<WireInterfaceCurrentProblems> wireInterfaceCurrentProblem_IID = InstanceIdentifier
-                .builder(ControlConstruct.class)
-                .child(LogicalTerminationPoint.class, new LogicalTerminationPointKey(ltpUuid))
-                .child(LayerProtocol.class, new LayerProtocolKey(localId))
-                .augmentation(
-                        org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.LayerProtocol1.class)
-                .child(WireInterfacePac.class).child(WireInterfaceCurrentProblems.class).build();
-
-        // reading all the current-problems list for this specific LTP and LP
-        WireInterfaceCurrentProblems problems = netconfAccessor.getTransactionUtils().readData(
-                netconfAccessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL, wireInterfaceCurrentProblem_IID);
-
-        if (problems == null) {
-            log.debug("DBRead Id {} no WireInterfaceCurrentProblems", ltpUuid);
-        } else if (problems.getCurrentProblemList() == null) {
-            log.debug("DBRead Id {} empty CurrentProblemList", ltpUuid);
-        } else {
-            for (org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.wire._interface.current.problems.CurrentProblemList problem : YangHelper
-                    .getCollection(problems.nonnullCurrentProblemList())) {
-                resultList.add(netconfAccessor.getNodeId(), (int) problem.getSequenceNumber(), problem.getTimestamp(),
-                        ltpUuid.getValue(), problem.getProblemName(),
-                        Onf14WireInterface.mapSeverity(problem.getProblemSeverity()));
-            }
-        }
-    }
-
-    private Optional<ControlConstruct> readControlConstruct(NetconfBindingAccessor netconfAccessor) {
-        return Optional.ofNullable(netconfAccessor.getTransactionUtils().readData(netconfAccessor.getDataBroker(),
-                LogicalDatastoreType.CONFIGURATION, CONTROLCONSTRUCT_IID));
-    }
-
-    private @Nullable Equipment readEquipmentInstance(NetconfBindingAccessor accessData, UniversalId equipmentUuid) {
-
-        final Class<?> clazzPac = Equipment.class;
-
-        log.info("DBRead Get equipment for class {} from mountpoint {} for uuid {}", clazzPac.getSimpleName(),
-                accessData.getNodeId().getValue(), equipmentUuid.getValue());
-
-        InstanceIdentifier<Equipment> equipmentIID = InstanceIdentifier.builder(ControlConstruct.class)
-                .child(Equipment.class, new EquipmentKey(equipmentUuid)).build();
-
-        return accessData.getTransactionUtils().readData(accessData.getDataBroker(), LogicalDatastoreType.CONFIGURATION,
-                equipmentIID);
-    }
-
-    // defining a structure that can map the LP local-id and its corresponding LTP uuid
-    private class TechnologySpecificPacKeys {
-
-        private UniversalId ltpUuid;
-        private String localId;
-
-        public TechnologySpecificPacKeys(UniversalId uuid, String lId) {
-            this.ltpUuid = uuid;
-            this.localId = lId;
-        }
-
-        public UniversalId getLtpUuid() {
-            return ltpUuid;
-        }
-
-        public String getLocalId() {
-            return localId;
-        }
-
-        @SuppressWarnings("unused")
-        public void setLtpUuid(UniversalId uuid) {
-            this.ltpUuid = uuid;
-        }
-
-        @SuppressWarnings("unused")
-        public void setLocalId(String lId) {
-            this.localId = lId;
-        }
-    }
-
-
-    /**
-     * LOG the newly added problems of the interface pac
-     *
-     * @param idxStart
-     * @param uuid
-     * @param resultList
-     */
-    private void debugResultList(String uuid, FaultData resultList, int idxStart) {
-        StringBuilder sb = new StringBuilder();
-        int idx = 0;
-        for (int t = idxStart; t < resultList.size(); t++) {
-            sb.append(idx++);
-            sb.append(":{");
-            sb.append(resultList.get(t));
-            sb.append('}');
-        }
-        log.debug("Found problems {} {}", uuid, sb);
-    }
-
-}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/dataprovider/InternalDataModelSeverity.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/dataprovider/InternalDataModelSeverity.java
deleted file mode 100644
index 97395f4..0000000
--- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/dataprovider/InternalDataModelSeverity.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * ONAP : ccsdk features
- * ================================================================================
- * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
- * All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- *
- */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.dataprovider;
-
-import java.util.Map;
-import org.eclipse.jdt.annotation.Nullable;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPECRITICAL;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPEMAJOR;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPEMINOR;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPEWARNING;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType;
-import org.opendaylight.yangtools.yang.binding.BaseIdentity;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class InternalDataModelSeverity {
-
-    @SuppressWarnings("unused")
-    private static final Logger LOG = LoggerFactory.getLogger(InternalDataModelSeverity.class);
-
-    private static final Map<String, SeverityType> SEVERITYMAP = Map.of(
-            SEVERITYTYPEMAJOR.class.getSimpleName(), SeverityType.Major,
-            SEVERITYTYPECRITICAL.class.getSimpleName(), SeverityType.Critical,
-            SEVERITYTYPEMINOR.class.getSimpleName(), SeverityType.Minor,
-            SEVERITYTYPEWARNING.class.getSimpleName(), SeverityType.Warning);
-
-    public static SeverityType mapSeverity(@Nullable Class<? extends BaseIdentity> severity) {
-        SeverityType res = null;
-        if (severity != null) {
-            String severityName = severity.getSimpleName();
-            res = severityName != null ? SEVERITYMAP.get(severity.getSimpleName()) : null;
-        }
-        return res == null ? SeverityType.NonAlarmed : res;
-    }
-
-}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/dataprovider/Onf14ToInternalDataModel.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/dataprovider/Onf14ToInternalDataModel.java
deleted file mode 100644
index 52436da..0000000
--- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/dataprovider/Onf14ToInternalDataModel.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt
- * =================================================================================================
- * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.dataprovider;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.Objects;
-import org.eclipse.jdt.annotation.NonNull;
-import org.eclipse.jdt.annotation.Nullable;
-import org.onap.ccsdk.features.sdnr.wt.common.YangHelper;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.Equipment;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.EquipmentInstance;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.EquipmentType;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.ManufacturedThing;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.ManufacturerProperties;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.UniversalId;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.equipment.ActualEquipment;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.equipment.ContainedHolder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.InventoryBuilder;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
-import org.opendaylight.yangtools.yang.common.Uint32;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * @author alexs
- *
- */
-public class Onf14ToInternalDataModel {
-
-    private static final Logger LOG = LoggerFactory.getLogger(Onf14ToInternalDataModel.class);
-
-    public Inventory getInternalEquipment(NodeId nodeId, Equipment currentEq, Equipment parentEq, long treeLevel) {
-
-        Objects.requireNonNull(nodeId);
-        Objects.requireNonNull(currentEq);
-
-        InventoryBuilder inventoryBuilder = new InventoryBuilder();
-        String parentUuid = parentEq != null ? parentEq.getUuid().getValue() : "None";
-
-        @Nullable
-        ActualEquipment component = currentEq.getActualEquipment();
-        if (component != null) {
-            // General
-            inventoryBuilder.setNodeId(nodeId.getValue());
-            inventoryBuilder.setTreeLevel(Uint32.valueOf(treeLevel));
-            inventoryBuilder.setUuid(currentEq.getUuid().getValue());
-            inventoryBuilder.setParentUuid(parentUuid);
-
-            List<String> containedHolderKeyList = new ArrayList<String>();
-            @NonNull
-            Collection<ContainedHolder> containedHolderList =
-                    YangHelper.getCollection(currentEq.nonnullContainedHolder());
-            for (ContainedHolder holder : containedHolderList) {
-                @Nullable
-                UniversalId occupyingFru = holder.getOccupyingFru();
-
-                if (occupyingFru != null) {
-                    containedHolderKeyList.add(occupyingFru.getValue());
-                }
-            }
-            inventoryBuilder.setContainedHolder(containedHolderKeyList);
-
-            @Nullable
-            ManufacturedThing manThing = component.getManufacturedThing();
-            if (manThing != null) {
-                // Manufacturer properties
-                @Nullable
-                ManufacturerProperties manProp = manThing.getManufacturerProperties();
-                if (manProp != null) {
-                    inventoryBuilder.setManufacturerName(manProp.getManufacturerName());
-                    inventoryBuilder.setManufacturerIdentifier(manProp.getManufacturerIdentifier());
-                } else {
-                    LOG.debug("manufacturer-properties is not present in Equipment with uuid={}",
-                            currentEq.getUuid().getValue());
-                }
-
-                // Equipment instance
-                @Nullable
-                EquipmentInstance eqInstance = manThing.getEquipmentInstance();
-                if (eqInstance != null) {
-                    inventoryBuilder.setSerial(eqInstance.getSerialNumber());
-                    inventoryBuilder.setDate(eqInstance.getManufactureDate().getValue());
-                } else {
-                    LOG.debug("equipment-instance is not present in Equipment with uuid={}",
-                            currentEq.getUuid().getValue());
-                }
-
-                // Equipment type
-                @Nullable
-                EquipmentType eqType = manThing.getEquipmentType();
-                if (eqType != null) {
-                    inventoryBuilder.setVersion(eqType.getVersion());
-                    inventoryBuilder.setDescription(eqType.getDescription());
-                    inventoryBuilder.setPartTypeId(eqType.getPartTypeIdentifier());
-                    inventoryBuilder.setModelIdentifier(eqType.getModelIdentifier());
-                    inventoryBuilder.setTypeName(eqType.getTypeName());
-                } else {
-                    LOG.debug("equipment-type is not present in Equipment with uuid={}",
-                            currentEq.getUuid().getValue());
-                }
-            } else {
-                LOG.debug("manufactured-thing is not present in Equipment with uuid={}",
-                        currentEq.getUuid().getValue());
-            }
-        } else {
-            LOG.debug("actual-equipment is not present in Equipment with uuid={}", currentEq.getUuid().getValue());
-        }
-
-        return inventoryBuilder.build();
-    }
-
-}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/equipment/Onf14DomEquipmentManager.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/equipment/Onf14DomEquipmentManager.java
deleted file mode 100644
index 092ad4a..0000000
--- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/equipment/Onf14DomEquipmentManager.java
+++ /dev/null
@@ -1,265 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * ONAP : ccsdk features
- * ================================================================================
- * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
- * All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- *
- */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.equipment;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Optional;
-import java.util.stream.Collectors;
-import org.eclipse.jdt.annotation.NonNull;
-import org.eclipse.jdt.annotation.Nullable;
-import org.onap.ccsdk.features.sdnr.wt.common.YangHelper;
-import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.dataprovider.Onf14ToInternalDataModel;
-import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor;
-import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer;
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.ControlConstruct;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.UniversalId;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.control.construct.Equipment;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.control.construct.EquipmentKey;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.equipment.ContainedHolder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory;
-import org.opendaylight.yangtools.util.UnmodifiableCollection;
-import org.opendaylight.yangtools.yang.binding.CodeHelpers;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.InstanceIdentifierBuilder;
-import org.opendaylight.yangtools.yang.data.api.schema.LeafSetEntryNode;
-import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class Onf14DomEquipmentManager {
-
-
-    // constants
-    private static final Logger log = LoggerFactory.getLogger(Onf14DomEquipmentManager.class);
-    private static final int EQUIPMENTROOTLEVEL = 0;
-    // end of constants
-
-    // variables
-    private final NetconfDomAccessor netconfDomAccessor;
-    private final DataProvider databaseService;
-    private final Onf14ToInternalDataModel onf14Mapper;
-    // for storing the Equipment UUIDs that are inserted in the DB
-    private final List<UniversalId> equipmentUuidList;
-    // end of variables
-    private final BindingNormalizedNodeSerializer serializer;
-
-    // constructors
-    public Onf14DomEquipmentManager(NetconfDomAccessor netconfDomAccessor, DataProvider databaseService,
-            Onf14ToInternalDataModel onf14Mapper) {
-        super();
-        this.netconfDomAccessor = Objects.requireNonNull(netconfDomAccessor);
-        this.databaseService = Objects.requireNonNull(databaseService);
-        this.onf14Mapper = Objects.requireNonNull(onf14Mapper);
-        this.serializer = Objects.requireNonNull(netconfDomAccessor.getBindingNormalizedNodeSerializer());
-
-        this.equipmentUuidList = new ArrayList<>();
-    }
-    // end of constructors
-
-    // getters and setters
-    public List<UniversalId> getEquipmentUuidList() {
-        return equipmentUuidList;
-    }
-    // end of getters and setters
-
-    // private methods
-    private List<Inventory> collectEquipment(List<Inventory> list, Equipment currentEq, Equipment parentEq,
-            long treeLevel, Map<EquipmentKey, Equipment> equipmentMap, EquipmentKey equipmentKey) {
-        Objects.requireNonNull(list);
-        if (currentEq == null) {
-            log.info("Ignore empty equipment with key {}", equipmentKey);
-            return list;
-        }
-
-        // if the Equipment UUID is already in the list, it was already processed
-        // needed for solving possible circular dependencies
-        if (equipmentUuidList.contains(currentEq.getUuid())) {
-            log.debug("Not adding equipment with uuid {} because it was aleady added...",
-                    currentEq.getUuid().getValue());
-            return list;
-        }
-
-        // we add this to our internal list, such that we avoid circular dependencies
-        equipmentUuidList.add(currentEq.getUuid());
-        log.debug("Adding equipment with uuid {} to the database...", currentEq.getUuid().getValue());
-
-        // we add our current equipment to the database
-        list.add(onf14Mapper.getInternalEquipment(netconfDomAccessor.getNodeId(), currentEq, parentEq, treeLevel));
-
-        // we iterate the kids of our current equipment and add them to the database recursively
-        // the actual reference is here: /core-model:control-construct/equipment/contained-holder/occupying-fru
-        for (ContainedHolder holder : YangHelper.getCollection(currentEq.nonnullContainedHolder())) {
-            @Nullable
-            UniversalId occupyingFru = holder.getOccupyingFru();
-            if (occupyingFru != null) {
-                equipmentKey = new EquipmentKey(occupyingFru);
-                collectEquipment(list, equipmentMap.get(equipmentKey), currentEq, treeLevel + 1, equipmentMap,
-                        equipmentKey);
-            }
-        }
-        return list;
-    }
-    // end of private methods
-
-    // public methods
-    /**
-     * Set all equipment data from controlConstruct into database and into this manager.
-     *
-     * @param controlConstruct with complete device data
-     */
-    public void setEquipmentData(ControlConstruct controlConstruct) {
-        Objects.requireNonNull(controlConstruct);
-
-        // the top-level-equipment list contains the root objects of the Equipment Model
-        log.debug("Getting list of topLevelEquipment for mountpoint {}", netconfDomAccessor.getNodeId());
-        // adding all root Equipment objects to the DB
-        for (UniversalId uuid : CodeHelpers.nonnull(controlConstruct.getTopLevelEquipment())) {
-            log.debug("Got back topLevelEquipment with uuid {}", uuid.getValue());
-            EquipmentKey equipmentKey = new EquipmentKey(uuid);
-
-            // adding all root Equipment objects to the DB
-            Map<EquipmentKey, Equipment> equipmentMap = controlConstruct.nonnullEquipment();
-            // recursively adding the root equipment and all its children into the DB
-            List<Inventory> dbInventory = collectEquipment(new ArrayList<>(), equipmentMap.get(equipmentKey), null,
-                    EQUIPMENTROOTLEVEL, equipmentMap, equipmentKey);
-            this.databaseService.writeInventory(netconfDomAccessor.getNodeId().getValue(), dbInventory);
-        }
-    }
-
-    /**
-     * Experimental see section in {@link #Onf14DomNetworkElement.initialReadFromNetworkElement()}
-     * Read one equipment from device
-     *
-     * @param accessData to access device
-     * @param equipmentUuid uuid of equipment to be read
-     * @return Optional Equipment
-     */
-    public Optional<Equipment> readEquipmentInstance(NetconfDomAccessor accessData, UniversalId equipmentUuid) {
-
-        final Class<?> clazzPac = Equipment.class;
-
-        log.info("DBRead Get equipment for class {} from mountpoint {} for uuid {}", clazzPac.getSimpleName(),
-                accessData.getNodeId().getValue(), equipmentUuid.getValue());
-
-        InstanceIdentifierBuilder equipmentIIDBuilder =
-                YangInstanceIdentifier.builder().node(ControlConstruct.QNAME).node(Equipment.QNAME).nodeWithKey(
-                        Equipment.QNAME, QName.create(Equipment.QNAME, "uuid").intern(), equipmentUuid.getValue());
-
-        return accessData.readData(LogicalDatastoreType.CONFIGURATION, equipmentIIDBuilder.build(), Equipment.class);
-    }
-
-    /**
-     * Experimental see section in {@link #Onf14DomNetworkElement.initialReadFromNetworkElement()}
-     * Read one equipment list from device.
-     *
-     * @param accessData to access device
-     * @param equipmentUuid uuid of equipment to be read
-     * @return Optional Equipment
-     */
-    public List<DataObject> readEquipmentList(NetconfDomAccessor accessData) {
-        log.info("DBRead Get equipment-list for mountpoint {} ", accessData.getNodeId().getValue());
-
-        InstanceIdentifierBuilder equipmentIIDBuilder =
-                YangInstanceIdentifier.builder().node(ControlConstruct.QNAME).node(Equipment.QNAME);
-
-        InstanceIdentifierBuilder equipmentIIDBuilderOnly = YangInstanceIdentifier.builder().node(Equipment.QNAME);
-
-        Optional<NormalizedNode<?, ?>> oData =
-                accessData.readDataNode(LogicalDatastoreType.CONFIGURATION, equipmentIIDBuilder.build());
-        if (oData.isPresent()) {
-            NormalizedNode<?, ?> data = oData.get();
-
-            log.debug("convertNormalizedNode data identifier: {} data nodetype: {}", data.getIdentifier(),
-                    data.getNodeType());
-            final List<DataObject> mapEntries1 = ((MapNode) data).getValue().stream().map(mapEntryNode -> {
-                final YangInstanceIdentifier mapEntryPath =
-                        equipmentIIDBuilderOnly.build().node(mapEntryNode.getIdentifier());
-                return serializer.fromNormalizedNode(mapEntryPath, mapEntryNode).getValue();
-            }).collect(Collectors.toList());
-            return mapEntries1;
-        } else {
-            log.warn("Device does not provide any equipment");
-            return Collections.emptyList();
-        }
-    }
-
-    /**
-     * Experimental see section in {@link #Onf14DomNetworkElement.initialReadFromNetworkElement()}
-     * Read one equipment list from device
-     *
-     * @param accessData to access device
-     * @param equipmentUuid uuid of equipment to be read
-     * @return Optional Equipment
-     */
-    public void readTopLevelEquipment(NetconfDomAccessor accessData) {
-
-        log.info("DBRead Get top-level-equipment for mountpoint {}", accessData.getNodeId().getValue());
-
-        InstanceIdentifierBuilder equipmentIIDBuilder = YangInstanceIdentifier.builder().node(ControlConstruct.QNAME)
-                .node(QName.create(ControlConstruct.QNAME, "top-level-equipment"));
-
-        Optional<NormalizedNode<?, ?>> oData =
-                accessData.readDataNode(LogicalDatastoreType.CONFIGURATION, equipmentIIDBuilder.build());
-        log.info("Checking for existence of data");
-        if (oData.isPresent()) {
-            log.info("data exists");
-            NormalizedNode<?, ?> data = oData.get();
-            Object value = data.getValue();
-            log.info("DataNode: {} {}", data.getNodeType(), data.getIdentifier());
-            if (value != null) {
-                log.info("DataNode value: {} {}", value.getClass().getName(), value);
-                if (value instanceof UnmodifiableCollection) {
-                    @SuppressWarnings("unchecked")
-                    UnmodifiableCollection<LeafSetEntryNode<String>> topLevelEquipmentCollection =
-                            (UnmodifiableCollection<LeafSetEntryNode<String>>) value;
-                    @NonNull
-                    Iterator<LeafSetEntryNode<String>> it = topLevelEquipmentCollection.iterator();
-                    while (it.hasNext()) {
-                        LeafSetEntryNode<String> topLevelEquipmentUuid = it.next();
-                        if (topLevelEquipmentUuid != null) {
-                            log.info("LeafSetEntryNode: {} {} {}", topLevelEquipmentUuid.getValue(),
-                                    topLevelEquipmentUuid.getNodeType(),
-                                    topLevelEquipmentUuid.getValue().getClass().getName());
-                        }
-                    }
-                }
-            }
-        }
-    }
-    // end of public methods
-
-    // static methods
-    // end of static methods
-
-    // private classes
-    // end of private classes
-}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14AirInterface.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14AirInterface.java
deleted file mode 100644
index 2d0d3c5..0000000
--- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14AirInterface.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt
- * =================================================================================================
- * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.interfaces;
-
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.dataprovider.InternalDataModelSeverity;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.SEVERITYTYPE;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * @author alexs
- *
- */
-public class Onf14AirInterface {
-
-    @SuppressWarnings("unused")
-    private static final Logger LOG = LoggerFactory.getLogger(Onf14AirInterface.class);
-
-    public static SeverityType mapSeverity(
-            Class<? extends SEVERITYTYPE> severity) {
-        return InternalDataModelSeverity.mapSeverity(severity);
-    }
-}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14AirInterfaceNotificationListener.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14AirInterfaceNotificationListener.java
deleted file mode 100644
index 1f3f309..0000000
--- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14AirInterfaceNotificationListener.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * ONAP : ccsdk feature sdnr wt
- * ================================================================================
- * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
- * All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- *
- */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.interfaces;
-
-import java.util.HashMap;
-import java.util.Map;
-import org.eclipse.jdt.annotation.NonNull;
-import org.eclipse.jdt.annotation.Nullable;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
-import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
-import org.opendaylight.mdsal.dom.api.DOMNotification;
-import org.opendaylight.mdsal.dom.api.DOMNotificationListener;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.AirInterface20Listener;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.AttributeValueChangedNotification;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.ObjectCreationNotification;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.ObjectDeletionNotification;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.ProblemNotification;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.SEVERITYTYPE;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.SEVERITYTYPECRITICAL;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.SEVERITYTYPEMAJOR;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.SEVERITYTYPEMINOR;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.SEVERITYTYPENONALARMED;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.SEVERITYTYPEWARNING;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogEntity;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SourceType;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class Onf14AirInterfaceNotificationListener implements AirInterface20Listener, DOMNotificationListener {
-
-    private static final Logger log = LoggerFactory.getLogger(Onf14AirInterfaceNotificationListener.class);
-
-    private final NetconfAccessor netconfAccessor;
-    private final DeviceManagerServiceProvider serviceProvider;
-
-    private static final Map<Class<? extends SEVERITYTYPE>,SeverityType> severityMap = initSeverityMap();
-
-    public Onf14AirInterfaceNotificationListener(NetconfAccessor netconfAccessor,
-            DeviceManagerServiceProvider serviceProvider) {
-        this.netconfAccessor = netconfAccessor;
-        this.serviceProvider = serviceProvider;
-    }
-
-    private static Map<Class<? extends SEVERITYTYPE>, SeverityType> initSeverityMap() {
-        Map<Class<? extends SEVERITYTYPE>, SeverityType> map = new HashMap<>();
-        map.put(SEVERITYTYPECRITICAL.class,SeverityType.Critical);
-        map.put(SEVERITYTYPEMAJOR.class,SeverityType.Major);
-        map.put(SEVERITYTYPEMINOR.class,SeverityType.Minor);
-        map.put(SEVERITYTYPEWARNING.class,SeverityType.Warning);
-        map.put(SEVERITYTYPENONALARMED.class,SeverityType.NonAlarmed);
-        return map;
-    }
-
-    @Override
-    public void onObjectDeletionNotification(ObjectDeletionNotification notification) {
-        log.debug("Got event of type :: {}", ObjectDeletionNotification.class.getSimpleName());
-
-        EventlogBuilder eventlogBuilder = new EventlogBuilder();
-        eventlogBuilder.setNodeId(netconfAccessor.getNodeId().getValue()).setAttributeName("")
-                .setCounter(notification.getCounter()).setNewValue("deleted")
-                .setObjectId(notification.getObjectIdRef().getValue()).setSourceType(SourceType.Netconf)
-                .setTimestamp(notification.getTimestamp());
-        serviceProvider.getDataProvider().writeEventLog(eventlogBuilder.build());
-        serviceProvider.getWebsocketService().sendNotification(notification, netconfAccessor.getNodeId(),
-                ObjectDeletionNotification.QNAME, notification.getTimestamp());
-
-        log.debug("onObjectDeletionNotification log entry written");
-    }
-
-    @Override
-    public void onProblemNotification(ProblemNotification notification) {
-        log.debug("Got event of type :: {}", ProblemNotification.class.getSimpleName());
-        FaultlogEntity faultAlarm = new FaultlogBuilder().setObjectId(notification.getObjectIdRef().getValue())
-                .setProblem(notification.getProblem()).setSourceType(SourceType.Netconf)
-                .setTimestamp(notification.getTimestamp())
-                .setNodeId(this.netconfAccessor.getNodeId().getValue())
-                .setSeverity(mapSeverity(notification.getSeverity())).setCounter(notification.getCounter())
-                .build();
-        serviceProvider.getFaultService().faultNotification(faultAlarm);
-        serviceProvider.getWebsocketService().sendNotification(notification, netconfAccessor.getNodeId(),
-                ProblemNotification.QNAME, notification.getTimestamp());
-
-    }
-
-    private SeverityType mapSeverity(@Nullable Class<? extends SEVERITYTYPE> severity) {
-        return severityMap.getOrDefault(severity,SeverityType.NonAlarmed);
-    }
-
-    @Override
-    public void onAttributeValueChangedNotification(AttributeValueChangedNotification notification) {
-        log.debug("Got event of type :: {}", AttributeValueChangedNotification.class.getSimpleName());
-
-        EventlogBuilder eventlogBuilder = new EventlogBuilder();
-        eventlogBuilder.setNodeId(netconfAccessor.getNodeId().getValue())
-                .setAttributeName(notification.getAttributeName()).setCounter(notification.getCounter())
-                .setNewValue(notification.getNewValue()).setObjectId(notification.getObjectIdRef().getValue())
-                .setSourceType(SourceType.Netconf).setTimestamp(notification.getTimestamp());
-        serviceProvider.getDataProvider().writeEventLog(eventlogBuilder.build());
-        serviceProvider.getWebsocketService().sendNotification(notification, netconfAccessor.getNodeId(),
-                AttributeValueChangedNotification.QNAME, notification.getTimestamp());
-        log.debug("onAttributeValueChangedNotification log entry written");
-    }
-
-    @Override
-    public void onObjectCreationNotification(ObjectCreationNotification notification) {
-        log.debug("Got event of type :: {}", ObjectCreationNotification.class.getSimpleName());
-
-        EventlogBuilder eventlogBuilder = new EventlogBuilder();
-        eventlogBuilder.setNodeId(netconfAccessor.getNodeId().getValue()).setAttributeName(notification.getObjectType())
-                .setCounter(notification.getCounter()).setNewValue("created")
-                .setObjectId(notification.getObjectIdRef().getValue()).setSourceType(SourceType.Netconf)
-                .setTimestamp(notification.getTimestamp());
-        serviceProvider.getDataProvider().writeEventLog(eventlogBuilder.build());
-        serviceProvider.getWebsocketService().sendNotification(notification, netconfAccessor.getNodeId(),
-                ObjectCreationNotification.QNAME, notification.getTimestamp());
-        log.debug("onObjectCreationNotification log entry written");
-    }
-
-    @Override
-    public void onNotification(@NonNull DOMNotification notification) {
-
-    }
-
-}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14DomInterfacePacManager.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14DomInterfacePacManager.java
deleted file mode 100644
index 422f6b0..0000000
--- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14DomInterfacePacManager.java
+++ /dev/null
@@ -1,419 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * ONAP : ccsdk features
- * ================================================================================
- * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
- * All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- *
- */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.interfaces;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import org.eclipse.jdt.annotation.NonNull;
-import org.eclipse.jdt.annotation.Nullable;
-import org.onap.ccsdk.features.sdnr.wt.common.YangHelper;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.equipment.Onf14DomEquipmentManager;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.util.Debug;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.FaultData;
-import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor;
-import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer;
-import org.opendaylight.mdsal.dom.api.DOMNotification;
-import org.opendaylight.mdsal.dom.api.DOMNotificationListener;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.AttributeValueChangedNotification;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.LAYERPROTOCOLNAMETYPEAIRLAYER;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.LayerProtocol1;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.ObjectCreationNotification;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.ObjectDeletionNotification;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.ProblemNotification;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.air._interface.lp.spec.AirInterfacePac;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.air._interface.pac.AirInterfaceCurrentProblems;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.ControlConstruct;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.LAYERPROTOCOLNAMETYPE;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.UniversalId;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.control.construct.LogicalTerminationPoint;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.control.construct.LogicalTerminationPointKey;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.logical.termination.point.LayerProtocol;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.logical.termination.point.LayerProtocolKey;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.LAYERPROTOCOLNAMETYPEETHERNETCONTAINERLAYER;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.LAYERPROTOCOLNAMETYPEWIRELAYER;
-import org.opendaylight.yangtools.yang.binding.Notification;
-import org.opendaylight.yangtools.yang.common.QName;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/*
-* Notifications streams provided by device NTSSim ONF14
-* Stream{getName=StreamNameType{_value=nc-notifications}, isReplaySupport=true, augmentation=[]},
-* Stream{getName=StreamNameType{_value=hybrid-mw-structure-2-0}, isReplaySupport=true, augmentation=[]},
-* Stream{getName=StreamNameType{_value=vlan-interface-1-0}, isReplaySupport=true, augmentation=[]},
-* Stream{getName=StreamNameType{_value=tdm-container-2-0}, isReplaySupport=true, augmentation=[]},
-* Stream{getName=StreamNameType{_value=ethernet-container-2-0}, isReplaySupport=true, augmentation=[]},
-* Stream{getName=StreamNameType{_value=ietf-yang-library}, isReplaySupport=false, augmentation=[]},
-* Stream{getDescription=Default NETCONF stream containing all the Event Notifications., getName=StreamNameType{_value=NETCONF}, isReplaySupport=true, augmentation=[]},
-* Stream{getName=StreamNameType{_value=vlan-fd-1-0}, isReplaySupport=true, augmentation=[]},
-* Stream{getName=StreamNameType{_value=wire-interface-2-0}, isReplaySupport=true, augmentation=[]},
-* Stream{getName=StreamNameType{_value=mac-fd-1-0}, isReplaySupport=true, augmentation=[]},
-* Stream{getName=StreamNameType{_value=co-channel-profile-1-0}, isReplaySupport=true, augmentation=[]},
-* Stream{getName=StreamNameType{_value=mac-interface-1-0}, isReplaySupport=true, augmentation=[]},
-* Stream{getName=StreamNameType{_value=ietf-keystore}, isReplaySupport=true, augmentation=[]},
-* Stream{getName=StreamNameType{_value=pure-ethernet-structure-2-0}, isReplaySupport=true, augmentation=[]},
-* Stream{getName=StreamNameType{_value=ietf-netconf-notifications}, isReplaySupport=true, augmentation=[]},
-* Stream{getName=StreamNameType{_value=mac-fc-1-0}, isReplaySupport=true, augmentation=[]},
-* Stream{getName=StreamNameType{_value=wred-profile-1-0}, isReplaySupport=true, augmentation=[]},
-* Stream{getName=StreamNameType{_value=air-interface-2-0}, isReplaySupport=true, augmentation=[]},
-* Stream{getName=StreamNameType{_value=ip-interface-1-0}, isReplaySupport=true, augmentation=[]},
-* Stream{getName=StreamNameType{_value=qos-profile-1-0}, isReplaySupport=true, augmentation=[]},
-* Stream{getName=StreamNameType{_value=vlan-fc-1-0}, isReplaySupport=true, augmentation=[]},
-* Stream{getName=StreamNameType{_value=l-3vpn-profile-1-0}, isReplaySupport=true, augmentation=[]}]
-*/
-
-public class Onf14DomInterfacePacManager implements DOMNotificationListener {
-
-    // constants
-    private static final Logger log = LoggerFactory.getLogger(Onf14DomEquipmentManager.class);
-    // end of constants
-
-    // variables
-    private final NetconfDomAccessor netconfDomAccessor;
-    private final @NonNull DeviceManagerServiceProvider serviceProvider;
-
-    // air interface related members
-    private final List<TechnologySpecificPacKeys> airInterfaceList = new ArrayList<TechnologySpecificPacKeys>();
-    private @NonNull final Onf14AirInterfaceNotificationListener airInterfaceNotificationListener;
-
-    // ethernet container related members
-    private final List<TechnologySpecificPacKeys> ethernetContainerList = new ArrayList<TechnologySpecificPacKeys>();
-    private @NonNull final Onf14EthernetContainerNotificationListener ethernetContainerNotificationListener;
-
-    // wire interface related members
-    private final List<TechnologySpecificPacKeys> wireInterfaceList = new ArrayList<TechnologySpecificPacKeys>();
-    private @NonNull final Onf14WireInterfaceNotificationListener wireInterfaceNotificationListener;
-    private @NonNull final BindingNormalizedNodeSerializer serializer;
-    // end of variables
-
-
-    // constructors
-    public Onf14DomInterfacePacManager(@NonNull NetconfDomAccessor netconfDomAccessor,
-            @NonNull DeviceManagerServiceProvider serviceProvider) {
-
-        this.netconfDomAccessor = Objects.requireNonNull(netconfDomAccessor);
-        this.serviceProvider = Objects.requireNonNull(serviceProvider);
-        this.serializer = Objects.requireNonNull(netconfDomAccessor.getBindingNormalizedNodeSerializer());
-
-        this.airInterfaceNotificationListener =
-                new Onf14AirInterfaceNotificationListener(netconfDomAccessor, serviceProvider);
-        this.ethernetContainerNotificationListener =
-                new Onf14EthernetContainerNotificationListener(netconfDomAccessor, serviceProvider);
-        this.wireInterfaceNotificationListener =
-                new Onf14WireInterfaceNotificationListener(netconfDomAccessor, serviceProvider);
-    }
-    // end of constructors
-
-    // getters and setters
-    // end of getters and setters
-
-    // private methods
-    // end of private methods
-
-    // public methods
-    public void readAllAirInterfaceCurrentProblems(NetconfDomAccessor netconfDomAccessor,
-            ControlConstruct controlConstruct, FaultData resultList) {
-
-        int idxStart; // Start index for debug messages
-
-        for (TechnologySpecificPacKeys key : airInterfaceList) {
-            idxStart = resultList.size();
-
-            readAirInterfaceCurrentProblemForLtp(netconfDomAccessor, controlConstruct, key.getLtpUuid(),
-                    key.getLocalId(), resultList);
-            Debug.debugResultList(key.getLtpUuid().getValue(), resultList, idxStart);
-        }
-    }
-
-    /*
-    public void readAllEhernetContainerCurrentProblems(FaultData resultList) {
-
-        int idxStart; // Start index for debug messages
-
-        for (TechnologySpecificPacKeys key : ethernetContainerList) {
-            idxStart = resultList.size();
-
-            readEthernetConainerCurrentProblemForLtp(key.getLtpUuid(), key.getLocalId(), resultList);
-            debugResultList(key.getLtpUuid().getValue(), resultList, idxStart);
-        }
-    }
-
-    public void readAllWireInterfaceCurrentProblems(FaultData resultList) {
-
-        int idxStart; // Start index for debug messages
-
-        for (TechnologySpecificPacKeys key : wireInterfaceList) {
-            idxStart = resultList.size();
-
-            readWireInterfaceCurrentProblemForLtp(key.getLtpUuid(), key.getLocalId(), resultList);
-            debugResultList(key.getLtpUuid().getValue(), resultList, idxStart);
-        }
-    }*/
-    public void readKeys(ControlConstruct controlConstruct) {
-
-        @NonNull
-        Collection<LogicalTerminationPoint> ltpList =
-                YangHelper.getCollection(controlConstruct.nonnullLogicalTerminationPoint());
-        log.debug("Iterating the LTP list for node {}", netconfDomAccessor.getNodeId().getValue());
-
-        // iterating all the Logical Termination Point list
-        for (LogicalTerminationPoint ltp : ltpList) {
-            @NonNull
-            List<LayerProtocol> lpList = YangHelper.getList(ltp.nonnullLayerProtocol());
-            // the Layer Protocol list should contain only one item, since we have an 1:1 relationship between the LTP and the LP
-            if (lpList.size() != 1) {
-                log.debug("Layer protocol has no 1:1 relationship with the LTP.");
-                return;
-            }
-            // accessing the LP, which should be only 1
-            LayerProtocol lp = lpList.get(0);
-            @Nullable
-            Class<? extends LAYERPROTOCOLNAMETYPE> layerProtocolName = lp.getLayerProtocolName();
-            if (layerProtocolName != null) {
-                // if the LTP has an airInterface technology extension, the layer protocol name is air-layer
-                if (layerProtocolName.getTypeName().equals(LAYERPROTOCOLNAMETYPEAIRLAYER.class.getName())) {
-                    TechnologySpecificPacKeys airInterfaceKey =
-                            new TechnologySpecificPacKeys(ltp.getUuid(), lp.getLocalId());
-                    airInterfaceList.add(airInterfaceKey);
-                    log.debug("Adding Ltp with uuid {} and local-id {} to the air-interface list",
-                            ltp.getUuid().getValue(), lp.getLocalId());
-                }
-                // if the LTP has an ethernetContainier technology extension, the layer protocol name is ethernet-container-layer
-                else if (layerProtocolName.getTypeName().equals(LAYERPROTOCOLNAMETYPEETHERNETCONTAINERLAYER.class
-                        .getName())) {
-                    TechnologySpecificPacKeys ethernetContainerKey =
-                            new TechnologySpecificPacKeys(ltp.getUuid(), lp.getLocalId());
-                    ethernetContainerList.add(ethernetContainerKey);
-                    log.debug("Adding Ltp with uuid {} and local-id {} to the ethernet-contatinier list",
-                            ltp.getUuid().getValue(), lp.getLocalId());
-                } else if (layerProtocolName.getTypeName().equals(LAYERPROTOCOLNAMETYPEWIRELAYER.class.getName())) {
-                    TechnologySpecificPacKeys wireInterfaceKey =
-                            new TechnologySpecificPacKeys(ltp.getUuid(), lp.getLocalId());
-                    wireInterfaceList.add(wireInterfaceKey);
-                    log.debug("Adding Ltp with uuid {} and local-id {} to the wire-interface list",
-                            ltp.getUuid().getValue(), lp.getLocalId());
-                }
-            }
-        }
-    }
-
-    private static void readAirInterfaceCurrentProblemForLtp(NetconfDomAccessor netconfDomAccessor,
-            ControlConstruct controlConstruct, UniversalId ltpUuid, String localId, FaultData resultList) {
-
-        final Class<AirInterfacePac> clazzPac = AirInterfacePac.class;
-
-        log.info("DBRead Get current problems for class {} from mountpoint {} for LTP uuid {} and local-id {}",
-                clazzPac.getSimpleName(), netconfDomAccessor.getNodeId().getValue(), ltpUuid.getValue(), localId);
-
-        // constructing the IID needs the augmentation exposed byy the air-interface-2-0 model
-        //        InstanceIdentifier<AirInterfaceCurrentProblems> airInterfaceCurrentProblem_IID = InstanceIdentifier
-        //                .builder(ControlConstruct.class)
-        //                .child(LogicalTerminationPoint.class, new LogicalTerminationPointKey(ltpUuid))
-        //                .child(LayerProtocol.class, new LayerProtocolKey(localId))
-        //                .augmentation(
-        //                        org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.LayerProtocol1.class)
-        //                .child(AirInterfacePac.class)
-        //                .child(AirInterfaceCurrentProblems.class).build();
-        /*
-        final YangInstanceIdentifier airInterfaceCurrentProblem_IID =
-                YangInstanceIdentifier.builder().node(ControlConstruct.QNAME)
-                        .nodeWithKey(LogicalTerminationPoint.QNAME,
-                                QName.create(LogicalTerminationPoint.QNAME, "logical-termination-point-key").intern(),
-                                ltpUuid.getValue())
-                        .nodeWithKey(LayerProtocol.QNAME,
-                                QName.create(LayerProtocol.QNAME, "layer-protocol-key").intern(), localId)
-                        //.node(org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.LayerProtocol1.QNAME)
-                        .node(AirInterfacePac.QNAME).node(AirInterfaceCurrentProblems.QNAME).build();
-
-        // reading all the current-problems list for this specific LTP and LP
-        AirInterfaceCurrentProblems problems =
-                 netconfDomAccessor.readData(LogicalDatastoreType.OPERATIONAL, airInterfaceCurrentProblem_IID);
-         */
-
-        @NonNull
-        Map<LogicalTerminationPointKey, LogicalTerminationPoint> ltpMap =
-                controlConstruct.nonnullLogicalTerminationPoint();
-        LogicalTerminationPoint ltp = ltpMap.get(new LogicalTerminationPointKey(ltpUuid));
-        if (ltp != null) {
-            @NonNull
-            Map<LayerProtocolKey, LayerProtocol> lpMap = ltp.nonnullLayerProtocol();
-            LayerProtocol lp = lpMap.get(new LayerProtocolKey(localId));
-            @Nullable
-            LayerProtocol1 lp1 = lp.augmentation(
-                    org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.LayerProtocol1.class);
-            if (lp1 != null) {
-                @Nullable
-                AirInterfacePac airInterfacePack = lp1.getAirInterfacePac();
-                if (airInterfacePack != null) {
-                    @Nullable
-                    AirInterfaceCurrentProblems cp = airInterfacePack.getAirInterfaceCurrentProblems();
-                    if (cp == null) {
-                        log.debug("DBRead Id {} no AirInterfaceCurrentProblems", ltpUuid);
-                    } else {
-                        for (org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.air._interface.current.problems.CurrentProblemList problem : YangHelper
-                                .getCollection(cp.nonnullCurrentProblemList())) {
-                            resultList.add(netconfDomAccessor.getNodeId(), (int) problem.getSequenceNumber(),
-                                    problem.getTimestamp(), ltpUuid.getValue(), problem.getProblemName(),
-                                    Onf14AirInterface.mapSeverity(problem.getProblemSeverity()));
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-    @Override
-    public void onNotification(@NonNull DOMNotification domNotification) {
-        @Nullable
-        Notification notification =
-                serializer.fromNormalizedNodeNotification(domNotification.getType(), domNotification.getBody());
-        if (notification instanceof ProblemNotification) {
-            ProblemNotification problemNotification = (ProblemNotification) notification;
-            log.debug("DOM ProblemNotification: {}", problemNotification);
-            airInterfaceNotificationListener.onProblemNotification(problemNotification);
-        } else if (notification instanceof AttributeValueChangedNotification) {
-            AttributeValueChangedNotification attributeValueChangeNotification =
-                    (AttributeValueChangedNotification) notification;
-            log.debug("DOM AttributeValueChangedNotification: {}", attributeValueChangeNotification);
-            airInterfaceNotificationListener.onAttributeValueChangedNotification(attributeValueChangeNotification);
-        } else if (notification instanceof ObjectDeletionNotification) {
-            ObjectDeletionNotification objectDeletionNotification = (ObjectDeletionNotification) notification;
-            log.debug("DOM ObjectDeletionNotification: {}", objectDeletionNotification);
-            airInterfaceNotificationListener.onObjectDeletionNotification(objectDeletionNotification);
-        } else if (notification instanceof ObjectCreationNotification) {
-            ObjectCreationNotification objectCreationNotification = (ObjectCreationNotification) notification;
-            log.debug("DOM ObjectDeletionNotification: {}", objectCreationNotification);
-            airInterfaceNotificationListener.onObjectCreationNotification(objectCreationNotification);
-        } else {
-            log.warn("DOM Notification ignored: {}", domNotification);
-        }
-    }
-
-    /**
-     * Register notifications to handle
-     */
-    public void subscribeNotifications() {
-        QName[] notifications = { ObjectCreationNotification.QNAME, ObjectDeletionNotification.QNAME,
-                AttributeValueChangedNotification.QNAME, ProblemNotification.QNAME };
-        netconfDomAccessor.doRegisterNotificationListener(this, notifications);
-    }
-
-    /*
-    private void readEthernetConainerCurrentProblemForLtp(UniversalId ltpUuid, String localId, FaultData resultList) {
-
-        final Class<EthernetContainerPac> clazzPac = EthernetContainerPac.class;
-
-        log.info("DBRead Get current problems for class {} from mountpoint {} for LTP uuid {} and local-id {}",
-                clazzPac.getSimpleName(), netconfDomAccessor.getNodeId().getValue(), ltpUuid.getValue(), localId);
-
-        // constructing the IID needs the augmentation exposed by the ethernet-container-2-0 model
-        //        InstanceIdentifier<EthernetContainerCurrentProblems> etherneContainerCurrentProblem_IID = InstanceIdentifier
-        //                .builder(ControlConstruct.class)
-        //                .child(LogicalTerminationPoint.class, new LogicalTerminationPointKey(ltpUuid))
-        //                .child(LayerProtocol.class, new LayerProtocolKey(localId))
-        //                .augmentation(
-        //                        org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.LayerProtocol1.class)
-        //                .child(EthernetContainerPac.class).child(EthernetContainerCurrentProblems.class).build();
-        final YangInstanceIdentifier etherneContainerCurrentProblem_IID =
-                YangInstanceIdentifier.builder().node(ControlConstruct.QNAME)
-                        .nodeWithKey(LogicalTerminationPoint.QNAME,
-                                QName.create(LogicalTerminationPoint.QNAME, "logical-termination-point-key").intern(),
-                                ltpUuid.getValue())
-                        .nodeWithKey(LayerProtocol.QNAME,
-                                QName.create(LayerProtocol.QNAME, "layer-protocol-key").intern(), localId)
-                        //.node(org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.LayerProtocol1.QNAME)
-                        .node(EthernetContainerPac.QNAME).node(EthernetContainerCurrentProblems.QNAME).build();
-
-        // reading all the current-problems list for this specific LTP and LP
-        EthernetContainerCurrentProblems problems =
-                netconfDomAccessor.readData(LogicalDatastoreType.OPERATIONAL, etherneContainerCurrentProblem_IID);
-
-        if (problems == null) {
-            log.debug("DBRead Id {} no EthernetContainerCurrentProblems", ltpUuid);
-        } else if (problems.getCurrentProblemList() == null) {
-            log.debug("DBRead Id {} empty CurrentProblemList", ltpUuid);
-        } else {
-            for (org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.ethernet.container.current.problems.CurrentProblemList problem : YangHelper
-                    .getCollection(problems.nonnullCurrentProblemList())) {
-                resultList.add(netconfDomAccessor.getNodeId(), (int) problem.getSequenceNumber(),
-                        problem.getTimestamp(), ltpUuid.getValue(), problem.getProblemName(),
-                        Onf14EthernetContainer.mapSeverity(problem.getProblemSeverity()));
-            }
-        }
-    }
-
-    private void readWireInterfaceCurrentProblemForLtp(UniversalId ltpUuid, String localId, FaultData resultList) {
-
-        final Class<WireInterfacePac> clazzPac = WireInterfacePac.class;
-
-        log.info("DBRead Get current problems for class {} from mountpoint {} for LTP uuid {} and local-id {}",
-                clazzPac.getSimpleName(), netconfDomAccessor.getNodeId().getValue(), ltpUuid.getValue(), localId);
-
-        // constructing the IID needs the augmentation exposed by the wire-interface-2-0 model
-        //        InstanceIdentifier<WireInterfaceCurrentProblems> wireInterfaceCurrentProblem_IID = InstanceIdentifier
-        //                .builder(ControlConstruct.class)
-        //                .child(LogicalTerminationPoint.class, new LogicalTerminationPointKey(ltpUuid))
-        //                .child(LayerProtocol.class, new LayerProtocolKey(localId))
-        //                .augmentation(
-        //                        org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.LayerProtocol1.class)
-        //                .child(WireInterfacePac.class).child(WireInterfaceCurrentProblems.class).build();
-        final YangInstanceIdentifier wireInterfaceCurrentProblem_IID =
-                YangInstanceIdentifier.builder().node(ControlConstruct.QNAME)
-                        .nodeWithKey(LogicalTerminationPoint.QNAME,
-                                QName.create(LogicalTerminationPoint.QNAME, "logical-termination-point-key").intern(),
-                                ltpUuid.getValue())
-                        .nodeWithKey(LayerProtocol.QNAME,
-                                QName.create(LayerProtocol.QNAME, "layer-protocol-key").intern(), localId)
-                        //.node(org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.LayerProtocol1.QNAME)
-                        .node(WireInterfacePac.QNAME).node(WireInterfaceCurrentProblems.QNAME).build();
-
-        // reading all the current-problems list for this specific LTP and LP
-        WireInterfaceCurrentProblems problems =
-                netconfDomAccessor.readData(LogicalDatastoreType.OPERATIONAL, wireInterfaceCurrentProblem_IID);
-
-        if (problems == null) {
-            log.debug("DBRead Id {} no WireInterfaceCurrentProblems", ltpUuid);
-        } else if (problems.getCurrentProblemList() == null) {
-            log.debug("DBRead Id {} empty CurrentProblemList", ltpUuid);
-        } else {
-            for (org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.wire._interface.current.problems.CurrentProblemList problem : YangHelper
-                    .getCollection(problems.nonnullCurrentProblemList())) {
-                resultList.add(netconfDomAccessor.getNodeId(), (int) problem.getSequenceNumber(),
-                        problem.getTimestamp(), ltpUuid.getValue(), problem.getProblemName(),
-                        Onf14WireInterface.mapSeverity(problem.getProblemSeverity()));
-            }
-        }
-    }
-    */
-
-    // end of public methods
-
-    // static methods
-    // end of static methods
-
-    // private classes
-    // end of private classes
-}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14EthernetContainer.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14EthernetContainer.java
deleted file mode 100644
index f976995..0000000
--- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14EthernetContainer.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt
- * =================================================================================================
- * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.interfaces;
-
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.dataprovider.InternalDataModelSeverity;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.SEVERITYTYPE;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * @author alexs
- *
- */
-public class Onf14EthernetContainer {
-
-    @SuppressWarnings("unused")
-    private static final Logger LOG = LoggerFactory.getLogger(Onf14EthernetContainer.class);
-
-    public static SeverityType mapSeverity(
-            Class<? extends SEVERITYTYPE> severity) {
-        return InternalDataModelSeverity.mapSeverity(severity);
-    }
-
-}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14EthernetContainerNotificationListener.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14EthernetContainerNotificationListener.java
deleted file mode 100644
index b76572b..0000000
--- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14EthernetContainerNotificationListener.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * ONAP : ccsdk feature sdnr wt
- * ================================================================================
- * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
- * All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- *
- */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.interfaces;
-
-import java.util.HashMap;
-import java.util.Map;
-import org.eclipse.jdt.annotation.Nullable;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
-import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.AttributeValueChangedNotification;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.EthernetContainer20Listener;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.ObjectCreationNotification;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.ObjectDeletionNotification;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.ProblemNotification;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.SEVERITYTYPE;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.SEVERITYTYPECRITICAL;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.SEVERITYTYPEMAJOR;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.SEVERITYTYPEMINOR;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.SEVERITYTYPENONALARMED;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.SEVERITYTYPEWARNING;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogEntity;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SourceType;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class Onf14EthernetContainerNotificationListener implements EthernetContainer20Listener {
-
-    private static final Logger log = LoggerFactory.getLogger(Onf14EthernetContainerNotificationListener.class);
-
-    private final NetconfAccessor netconfAccessor;
-    private final DeviceManagerServiceProvider serviceProvider;
-
-    private static final Map<Class<? extends SEVERITYTYPE>, SeverityType> severityMap = initSeverityMap();
-
-    public Onf14EthernetContainerNotificationListener(NetconfAccessor netconfAccessor,
-            DeviceManagerServiceProvider serviceProvider) {
-        this.netconfAccessor = netconfAccessor;
-        this.serviceProvider = serviceProvider;
-    }
-
-    private static Map<Class<? extends SEVERITYTYPE>, SeverityType> initSeverityMap() {
-        Map<Class<? extends SEVERITYTYPE>, SeverityType> map = new HashMap<>();
-        map.put(SEVERITYTYPECRITICAL.class, SeverityType.Critical);
-        map.put(SEVERITYTYPEMAJOR.class, SeverityType.Major);
-        map.put(SEVERITYTYPEMINOR.class, SeverityType.Minor);
-        map.put(SEVERITYTYPEWARNING.class, SeverityType.Warning);
-        map.put(SEVERITYTYPENONALARMED.class, SeverityType.NonAlarmed);
-        return map;
-    }
-
-    @Override
-    public void onObjectDeletionNotification(ObjectDeletionNotification notification) {
-        log.debug("Got event of type :: {}", ObjectDeletionNotification.class.getSimpleName());
-
-        EventlogBuilder eventlogBuilder = new EventlogBuilder();
-        eventlogBuilder.setNodeId(netconfAccessor.getNodeId().getValue()).setAttributeName("")
-                .setCounter(notification.getCounter().intValue()).setNewValue("deleted")
-                .setObjectId(notification.getObjectIdRef().getValue()).setSourceType(SourceType.Netconf)
-                .setTimestamp(notification.getTimestamp());
-        serviceProvider.getDataProvider().writeEventLog(eventlogBuilder.build());
-        serviceProvider.getNotificationService().deletionNotification(netconfAccessor.getNodeId(),
-                notification.getCounter().intValue(), notification.getTimestamp(),
-                notification.getObjectIdRef().getValue());
-
-        log.debug("onObjectDeletionNotification log entry written");
-    }
-
-    @Override
-    public void onProblemNotification(ProblemNotification notification) {
-        log.debug("Got event of type :: {}", ProblemNotification.class.getSimpleName());
-        FaultlogEntity faultAlarm = new FaultlogBuilder().setObjectId(notification.getObjectIdRef().getValue())
-                .setProblem(notification.getProblem()).setTimestamp(notification.getTimestamp())
-                .setNodeId(this.netconfAccessor.getNodeId().getValue()).setSourceType(SourceType.Netconf)
-                .setSeverity(mapSeverity(notification.getSeverity())).setCounter(notification.getCounter().intValue())
-                .build();
-        serviceProvider.getFaultService().faultNotification(faultAlarm);
-        serviceProvider.getWebsocketService().sendNotification(notification, netconfAccessor.getNodeId(),
-                ProblemNotification.QNAME, notification.getTimestamp());
-
-    }
-
-    private SeverityType mapSeverity(@Nullable Class<? extends SEVERITYTYPE> severity) {
-        return severityMap.getOrDefault(severity, SeverityType.NonAlarmed);
-    }
-
-    @Override
-    public void onAttributeValueChangedNotification(AttributeValueChangedNotification notification) {
-        log.debug("Got event of type :: {}", AttributeValueChangedNotification.class.getSimpleName());
-
-        EventlogBuilder eventlogBuilder = new EventlogBuilder();
-        eventlogBuilder.setNodeId(netconfAccessor.getNodeId().getValue())
-                .setAttributeName(notification.getAttributeName()).setCounter(notification.getCounter().intValue())
-                .setNewValue(notification.getNewValue()).setObjectId(notification.getObjectIdRef().getValue())
-                .setSourceType(SourceType.Netconf).setTimestamp(notification.getTimestamp());
-        serviceProvider.getDataProvider().writeEventLog(eventlogBuilder.build());
-        serviceProvider.getWebsocketService().sendNotification(notification, netconfAccessor.getNodeId(),
-                AttributeValueChangedNotification.QNAME, notification.getTimestamp());
-
-        log.debug("onAttributeValueChangedNotification log entry written");
-    }
-
-    @Override
-    public void onObjectCreationNotification(ObjectCreationNotification notification) {
-        log.debug("Got event of type :: {}", ObjectCreationNotification.class.getSimpleName());
-
-        EventlogBuilder eventlogBuilder = new EventlogBuilder();
-        eventlogBuilder.setNodeId(netconfAccessor.getNodeId().getValue()).setAttributeName(notification.getObjectType())
-                .setCounter(notification.getCounter().intValue()).setNewValue("created")
-                .setObjectId(notification.getObjectIdRef().getValue()).setSourceType(SourceType.Netconf)
-                .setTimestamp(notification.getTimestamp());
-        serviceProvider.getDataProvider().writeEventLog(eventlogBuilder.build());
-        serviceProvider.getWebsocketService().sendNotification(notification, netconfAccessor.getNodeId(),
-                ObjectCreationNotification.QNAME, notification.getTimestamp());
-
-        log.debug("onObjectCreationNotification log entry written");
-    }
-
-
-}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14WireInterface.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14WireInterface.java
deleted file mode 100644
index acb262f..0000000
--- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14WireInterface.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt
- * =================================================================================================
- * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.interfaces;
-
-import org.eclipse.jdt.annotation.Nullable;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.dataprovider.InternalDataModelSeverity;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPE;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * @author alexs
- *
- */
-public class Onf14WireInterface {
-
-    @SuppressWarnings("unused")
-    private static final Logger LOG = LoggerFactory.getLogger(Onf14WireInterface.class);
-
-    public static SeverityType mapSeverity(@Nullable Class<? extends SEVERITYTYPE> severity) {
-        return InternalDataModelSeverity.mapSeverity(severity);
-    }
-
-}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14WireInterfaceNotificationListener.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14WireInterfaceNotificationListener.java
deleted file mode 100644
index 6848e67..0000000
--- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14WireInterfaceNotificationListener.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * ONAP : ccsdk feature sdnr wt
- * ================================================================================
- * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
- * All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- *
- */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.interfaces;
-
-import java.util.HashMap;
-import java.util.Map;
-import org.eclipse.jdt.annotation.Nullable;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
-import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.AttributeValueChangedNotification;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.ObjectCreationNotification;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.ObjectDeletionNotification;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.ProblemNotification;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPE;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPECRITICAL;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPEMAJOR;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPEMINOR;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPENONALARMED;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPEWARNING;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.WireInterface20Listener;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogEntity;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SourceType;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class Onf14WireInterfaceNotificationListener implements WireInterface20Listener {
-
-    private static final Logger log = LoggerFactory.getLogger(Onf14WireInterfaceNotificationListener.class);
-
-    private final NetconfAccessor netconfAccessor;
-    private final DeviceManagerServiceProvider serviceProvider;
-
-    private static final Map<Class<? extends SEVERITYTYPE>,SeverityType> severityMap = initSeverityMap();
-
-    public Onf14WireInterfaceNotificationListener(NetconfAccessor netconfAccessor,
-            DeviceManagerServiceProvider serviceProvider) {
-        this.netconfAccessor = netconfAccessor;
-        this.serviceProvider = serviceProvider;
-    }
-
-    private static Map<Class<? extends SEVERITYTYPE>, SeverityType> initSeverityMap() {
-        Map<Class<? extends SEVERITYTYPE>, SeverityType> map = new HashMap<>();
-        map.put(SEVERITYTYPECRITICAL.class,SeverityType.Critical);
-        map.put(SEVERITYTYPEMAJOR.class,SeverityType.Major);
-        map.put(SEVERITYTYPEMINOR.class,SeverityType.Minor);
-        map.put(SEVERITYTYPEWARNING.class,SeverityType.Warning);
-        map.put(SEVERITYTYPENONALARMED.class,SeverityType.NonAlarmed);
-        return map;
-    }
-
-    @Override
-    public void onObjectDeletionNotification(ObjectDeletionNotification notification) {
-        log.debug("Got event of type :: {}", ObjectDeletionNotification.class.getSimpleName());
-
-        EventlogBuilder eventlogBuilder = new EventlogBuilder();
-        eventlogBuilder.setNodeId(netconfAccessor.getNodeId().getValue())
-        .setAttributeName("")
-        .setCounter(notification.getCounter())
-        .setNewValue("deleted")
-        .setObjectId(notification.getObjectIdRef().getValue())
-        .setSourceType(SourceType.Netconf)
-        .setTimestamp(notification.getTimestamp());
-        serviceProvider.getDataProvider().writeEventLog(eventlogBuilder.build());
-        serviceProvider.getWebsocketService().sendNotification(notification, netconfAccessor.getNodeId(),
-                ObjectDeletionNotification.QNAME, notification.getTimestamp());
-
-        log.debug("onObjectDeletionNotification log entry written");
-    }
-
-    @Override
-    public void onProblemNotification(ProblemNotification notification) {
-        log.debug("Got event of type :: {}", ProblemNotification.class.getSimpleName());
-        FaultlogEntity faultAlarm = new FaultlogBuilder().setObjectId(notification.getObjectIdRef().getValue())
-                .setProblem(notification.getProblem()).setTimestamp(notification.getTimestamp())
-                .setNodeId(this.netconfAccessor.getNodeId().getValue()).setSourceType(SourceType.Netconf)
-                .setSeverity(mapSeverity(notification.getSeverity())).setCounter(notification.getCounter())
-                .build();
-        serviceProvider.getFaultService().faultNotification(faultAlarm);
-        serviceProvider.getWebsocketService().sendNotification( notification, netconfAccessor.getNodeId(),
-                ProblemNotification.QNAME, notification.getTimestamp());
-
-    }
-
-    private SeverityType mapSeverity(@Nullable Class<? extends SEVERITYTYPE> severity) {
-        return severityMap.getOrDefault(severity,SeverityType.NonAlarmed);
-    }
-
-    @Override
-    public void onAttributeValueChangedNotification(AttributeValueChangedNotification notification) {
-        log.debug("Got event of type :: {}", AttributeValueChangedNotification.class.getSimpleName());
-
-        EventlogBuilder eventlogBuilder = new EventlogBuilder();
-        eventlogBuilder.setNodeId(netconfAccessor.getNodeId().getValue())
-        .setAttributeName(notification.getAttributeName())
-        .setCounter(notification.getCounter())
-        .setNewValue(notification.getNewValue())
-        .setObjectId(notification.getObjectIdRef().getValue())
-        .setSourceType(SourceType.Netconf)
-        .setTimestamp(notification.getTimestamp());
-        serviceProvider.getDataProvider().writeEventLog(eventlogBuilder.build());
-        serviceProvider.getWebsocketService().sendNotification(notification, netconfAccessor.getNodeId(),
-                AttributeValueChangedNotification.QNAME, notification.getTimestamp());
-
-
-        log.debug("onAttributeValueChangedNotification log entry written");
-    }
-
-    @Override
-    public void onObjectCreationNotification(ObjectCreationNotification notification) {
-        log.debug("Got event of type :: {}", ObjectCreationNotification.class.getSimpleName());
-
-        EventlogBuilder eventlogBuilder = new EventlogBuilder();
-        eventlogBuilder.setNodeId(netconfAccessor.getNodeId().getValue())
-        .setAttributeName(notification.getObjectType())
-        .setCounter(notification.getCounter())
-        .setNewValue("created")
-        .setObjectId(notification.getObjectIdRef().getValue())
-        .setSourceType(SourceType.Netconf)
-        .setTimestamp(notification.getTimestamp());
-        serviceProvider.getDataProvider().writeEventLog(eventlogBuilder.build());
-        serviceProvider.getWebsocketService().sendNotification(notification, netconfAccessor.getNodeId(),
-                ObjectCreationNotification.QNAME, notification.getTimestamp());
-
-        log.debug("onObjectCreationNotification log entry written");
-    }
-
-}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/Control.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/Control.java
deleted file mode 100644
index fc4de91..0000000
--- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/Control.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt
- * =================================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.yang;
-
-public class Control {
-
-    public class MaxAlarmStatusChanges {
-
-    }
-
-}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/OperatorState.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/OperatorState.java
deleted file mode 100644
index 9b516bb..0000000
--- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/OperatorState.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt
- * =================================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.yang;
-
-public enum OperatorState {
-
-}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/Resource.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/Resource.java
deleted file mode 100644
index 7966c1c..0000000
--- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/Resource.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt
- * =================================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.yang;
-
-public class Resource {
-
-}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/ResourceMatch.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/ResourceMatch.java
deleted file mode 100644
index c7e9103..0000000
--- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/ResourceMatch.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt
- * =================================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.yang;
-
-public class ResourceMatch {
-
-}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/SeverityWithClear.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/SeverityWithClear.java
deleted file mode 100644
index 1b39bf9..0000000
--- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/SeverityWithClear.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt
- * =================================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.yang;
-
-public enum SeverityWithClear {
-
-}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/package-info.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/package-info.java
deleted file mode 100644
index 0769687..0000000
--- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/package-info.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt
- * =================================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.yang;
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml
index 0be8007..38c9e15 100644
--- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml
@@ -31,7 +31,7 @@
                interface="org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NetconfNetworkElementService"/>
 
     <bean id="provider"
-          class="org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.DeviceManagerOnf14Impl"
+          class="org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.DeviceManagerOnf14Impl"
           init-method="init" destroy-method="close">
         <property name="netconfNetworkElementService" ref="netconfNetworkElementService"/>
     </bean>
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14AirInterfaceNotificationListener.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14AirInterfaceNotificationListener.java
deleted file mode 100644
index b9f1c21..0000000
--- a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14AirInterfaceNotificationListener.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt
- * =================================================================================================
- * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14;
-
-import org.eclipse.jdt.annotation.NonNull;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.Mockito;
-import org.mockito.invocation.InvocationOnMock;
-import org.mockito.stubbing.Answer;
-import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.interfaces.Onf14AirInterfaceNotificationListener;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NotificationService;
-import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
-import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.AttributeValueChangedNotification;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.ObjectCreationNotification;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.ObjectDeletionNotification;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.ProblemNotification;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.SEVERITYTYPE;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.SEVERITYTYPECRITICAL;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.SEVERITYTYPEMAJOR;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.SEVERITYTYPEMINOR;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.SEVERITYTYPENONALARMED;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.SEVERITYTYPEWARNING;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.UniversalId;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
-
-public class TestOnf14AirInterfaceNotificationListener extends Mockito {
-    private NetconfBindingAccessor accessor;
-    private NodeId nodeId;
-    private DeviceManagerServiceProvider serviceProvider;
-    private FaultService faultService;
-    private DataProvider databaseService;
-    private NotificationService notificationService;
-
-    private ObjectDeletionNotification deletionNotif;
-    private ObjectCreationNotification creationNotif;
-    private ProblemNotification problemNotif;
-    private AttributeValueChangedNotification attrValChangedNotif;
-    private @NonNull WebsocketManagerService websocketService;
-
-    @Before
-    public void init() {
-        accessor = mock(NetconfBindingAccessor.class);
-        nodeId = mock(NodeId.class);
-        serviceProvider = mock(DeviceManagerServiceProvider.class);
-        faultService = mock(FaultService.class);
-        databaseService = mock(DataProvider.class);
-        notificationService = mock(NotificationService.class);
-        websocketService = mock(WebsocketManagerService.class);
-
-        problemNotif = mock(ProblemNotification.class);
-        deletionNotif = mock(ObjectDeletionNotification.class);
-        creationNotif = mock(ObjectCreationNotification.class);
-        attrValChangedNotif = mock(AttributeValueChangedNotification.class);
-
-        when(accessor.getNodeId()).thenReturn(nodeId);
-        when(problemNotif.getCounter()).thenReturn(10);
-        when(problemNotif.getTimestamp()).thenReturn(new DateAndTime("2020-02-05T12:30:45.283Z"));
-        when(problemNotif.getObjectIdRef()).thenReturn(new UniversalId("12345678-0123-0abc-abcd-0123456789AB"));
-        when(problemNotif.getProblem()).thenReturn("modulationIsDownShifted");
-
-        when(attrValChangedNotif.getAttributeName()).thenReturn("12345678-0123-2345-abcd-0123456789AB");
-        when(attrValChangedNotif.getCounter()).thenReturn(20);
-        when(attrValChangedNotif.getNewValue()).thenReturn("new-value");
-        when(attrValChangedNotif.getObjectIdRef()).thenReturn(new UniversalId("12345678-0123-1234-abcd-0123456789AB"));
-        when(attrValChangedNotif.getTimestamp()).thenReturn(new DateAndTime("2020-02-05T12:30:45.283Z"));
-
-        when(creationNotif.getObjectType()).thenReturn("air-interface-name");
-        when(creationNotif.getCounter()).thenReturn(20);
-        when(creationNotif.getObjectIdRef()).thenReturn(new UniversalId("12345678-0123-1234-abcd-0123456789AB"));
-        when(creationNotif.getTimestamp()).thenReturn(new DateAndTime("2020-02-05T12:30:45.283Z"));
-
-        when(deletionNotif.getCounter()).thenReturn(20);
-        when(deletionNotif.getObjectIdRef()).thenReturn(new UniversalId("12345678-0123-1234-abcd-0123456789AB"));
-        when(deletionNotif.getTimestamp()).thenReturn(new DateAndTime("2020-02-05T12:30:45.283Z"));
-
-        when(serviceProvider.getFaultService()).thenReturn(faultService);
-        when(serviceProvider.getDataProvider()).thenReturn(databaseService);
-        when(serviceProvider.getNotificationService()).thenReturn(notificationService);
-        when(serviceProvider.getWebsocketService()).thenReturn(websocketService);
-    }
-
-    @Test
-    public void testOtherNotif() {
-        Onf14AirInterfaceNotificationListener notifListener =
-                new Onf14AirInterfaceNotificationListener(accessor, serviceProvider);
-
-        notifListener.onObjectDeletionNotification(deletionNotif);
-        notifListener.onObjectCreationNotification(creationNotif);
-        notifListener.onAttributeValueChangedNotification(attrValChangedNotif);
-    }
-
-    @Test
-    public void testProblemNotifCritical() {
-        Onf14AirInterfaceNotificationListener notifListener =
-                new Onf14AirInterfaceNotificationListener(accessor, serviceProvider);
-
-        when(problemNotif.getSeverity()).thenAnswer(new Answer<Class<? extends SEVERITYTYPE>>() {
-            @Override
-            public Class<? extends SEVERITYTYPE> answer(InvocationOnMock invocation) throws Throwable {
-                return SEVERITYTYPECRITICAL.class;
-            }
-        });
-
-        notifListener.onProblemNotification(problemNotif);
-    }
-
-    @Test
-    public void testProblemNotifMajor() {
-        Onf14AirInterfaceNotificationListener notifListener =
-                new Onf14AirInterfaceNotificationListener(accessor, serviceProvider);
-
-        when(problemNotif.getSeverity()).thenAnswer(new Answer<Class<? extends SEVERITYTYPE>>() {
-            @Override
-            public Class<? extends SEVERITYTYPE> answer(InvocationOnMock invocation) throws Throwable {
-                return SEVERITYTYPEMAJOR.class;
-            }
-        });
-
-        notifListener.onProblemNotification(problemNotif);
-    }
-
-    @Test
-    public void testProblemNotifMinor() {
-        Onf14AirInterfaceNotificationListener notifListener =
-                new Onf14AirInterfaceNotificationListener(accessor, serviceProvider);
-
-        when(problemNotif.getSeverity()).thenAnswer(new Answer<Class<? extends SEVERITYTYPE>>() {
-            @Override
-            public Class<? extends SEVERITYTYPE> answer(InvocationOnMock invocation) throws Throwable {
-                return SEVERITYTYPEMINOR.class;
-            }
-        });
-
-        notifListener.onProblemNotification(problemNotif);
-    }
-
-    @Test
-    public void testProblemNotifWarning() {
-        Onf14AirInterfaceNotificationListener notifListener =
-                new Onf14AirInterfaceNotificationListener(accessor, serviceProvider);
-
-        when(problemNotif.getSeverity()).thenAnswer(new Answer<Class<? extends SEVERITYTYPE>>() {
-            @Override
-            public Class<? extends SEVERITYTYPE> answer(InvocationOnMock invocation) throws Throwable {
-                return SEVERITYTYPEWARNING.class;
-            }
-        });
-
-        notifListener.onProblemNotification(problemNotif);
-    }
-
-    @Test
-    public void testProblemNotifNonalarmed() {
-        Onf14AirInterfaceNotificationListener notifListener =
-                new Onf14AirInterfaceNotificationListener(accessor, serviceProvider);
-
-        when(problemNotif.getSeverity()).thenAnswer(new Answer<Class<? extends SEVERITYTYPE>>() {
-            @Override
-            public Class<? extends SEVERITYTYPE> answer(InvocationOnMock invocation) throws Throwable {
-                return SEVERITYTYPENONALARMED.class;
-            }
-        });
-
-        notifListener.onProblemNotification(problemNotif);
-    }
-
-    @Test
-    public void testProblemNotifNull() {
-        Onf14AirInterfaceNotificationListener notifListener =
-                new Onf14AirInterfaceNotificationListener(accessor, serviceProvider);
-
-        when(problemNotif.getSeverity()).thenReturn(null);
-
-        notifListener.onProblemNotification(problemNotif);
-    }
-
-}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14DomInterfacePacManager.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14DomInterfacePacManager.java
deleted file mode 100644
index e0384e7..0000000
--- a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14DomInterfacePacManager.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * ONAP : ccsdk features
- * ================================================================================
- * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
- * All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- *
- */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Optional;
-import org.eclipse.jdt.annotation.NonNull;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnitRunner;
-import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.interfaces.Onf14DomInterfacePacManager;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
-import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor;
-import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService;
-import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer;
-import org.opendaylight.mdsal.dom.api.DOMNotification;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.AttributeValueChangedNotification;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.LAYERPROTOCOLNAMETYPEAIRLAYER;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.ObjectCreationNotification;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.ObjectDeletionNotification;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.ProblemNotification;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.ControlConstruct;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.UniversalId;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.control.construct.LogicalTerminationPoint;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.control.construct.LogicalTerminationPointBuilder;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.control.construct.LogicalTerminationPointKey;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.logical.termination.point.LayerProtocol;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.logical.termination.point.LayerProtocolBuilder;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.logical.termination.point.LayerProtocolKey;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.LAYERPROTOCOLNAMETYPEETHERNETCONTAINERLAYER;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.LAYERPROTOCOLNAMETYPEWIRELAYER;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
-
-@RunWith(MockitoJUnitRunner.class)
-public class TestOnf14DomInterfacePacManager {
-
-    private static String NODEIDSTRING = "nSky";
-
-    @Mock
-    NetconfDomAccessor netconfDomAccessor;
-    @Mock
-    DeviceManagerServiceProvider serviceProvider;
-    @Mock
-    ControlConstruct controlConstruct;
-    @Mock
-    BindingNormalizedNodeSerializer bindingNormalizedNodeSerializer;
-    @Mock
-    FaultService faultService;
-    @Mock
-    WebsocketManagerService websocketService;
-    @Mock
-    DataProvider databaseService;
-
-    Onf14DomInterfacePacManager domPacManager;
-    NodeId nodeId = new NodeId(NODEIDSTRING);
-
-    @Before
-    public void init() {
-        when(netconfDomAccessor.getNodeId()).thenReturn(nodeId);
-        when(netconfDomAccessor.getBindingNormalizedNodeSerializer()).thenReturn(bindingNormalizedNodeSerializer);
-        when(serviceProvider.getFaultService()).thenReturn(faultService);
-        when(serviceProvider.getWebsocketService()).thenReturn(websocketService);
-        when(serviceProvider.getDataProvider()).thenReturn(databaseService);
-
-        domPacManager = new Onf14DomInterfacePacManager(netconfDomAccessor, serviceProvider);
-
-        UniversalId uuid = new UniversalId("0Aabcdef-0abc-0cfD-0abC-0123456789AB");
-        @NonNull Map<LogicalTerminationPointKey, LogicalTerminationPoint> lptMap = new HashMap<LogicalTerminationPointKey, LogicalTerminationPoint>();
-        var lpMap = new HashMap<LayerProtocolKey, LayerProtocol>();
-
-        LayerProtocol lp = new LayerProtocolBuilder().setLayerProtocolName(LAYERPROTOCOLNAMETYPEAIRLAYER.class).setLocalId("TESTAIRLAYER").build();
-        LayerProtocolKey lpKey = new LayerProtocolKey("AIRPROTOCOL");
-        lpMap.put(lpKey, lp);
-        LogicalTerminationPoint ltp = new LogicalTerminationPointBuilder().setLayerProtocol(lpMap).setUuid(uuid).build();
-        UniversalId ltpUuid = new UniversalId("1Aabcdef-1abc-1cfD-1abc-0123456789AB");
-        LogicalTerminationPointKey ltpKey = new LogicalTerminationPointKey(ltpUuid);
-
-        lptMap.put(ltpKey, ltp);
-
-        lp = new LayerProtocolBuilder().setLayerProtocolName(LAYERPROTOCOLNAMETYPEETHERNETCONTAINERLAYER.class).setLocalId("TESTETHCONTAINERLAYER").build();
-        lpKey = new LayerProtocolKey("ETHERNETCONTAINERPROTOCOL");
-        lpMap = new HashMap<LayerProtocolKey, LayerProtocol>();
-        lpMap.put(lpKey, lp);
-        ltp = new LogicalTerminationPointBuilder().setLayerProtocol(lpMap).setUuid(uuid).build();
-        ltpUuid = new UniversalId("1Aabcdef-1abc-1cfD-1abc-0123456789BC");
-        ltpKey = new LogicalTerminationPointKey(ltpUuid);
-
-        lptMap.put(ltpKey, ltp);
-
-        lp = new LayerProtocolBuilder().setLayerProtocolName(LAYERPROTOCOLNAMETYPEWIRELAYER.class).setLocalId("TESTWIRELAYER").build();
-        lpKey = new LayerProtocolKey("WIREPROTOCOL");
-        lpMap = new HashMap<LayerProtocolKey, LayerProtocol>();
-        lpMap.put(lpKey, lp);
-        ltp = new LogicalTerminationPointBuilder().setLayerProtocol(lpMap).setUuid(uuid).build();
-        ltpUuid = new UniversalId("1Aabcdef-1abc-1cfD-1abc-0123456789CD");
-        ltpKey = new LogicalTerminationPointKey(ltpUuid);
-
-        lptMap.put(ltpKey, ltp);
-
-        when(Optional.of(controlConstruct).get().nonnullLogicalTerminationPoint()).thenReturn(lptMap);
-    }
-
-    @Test
-    public void test() {
-        domPacManager.readKeys(controlConstruct);
-    }
-
-    @Test
-    public void testProblemNotification() {
-        DOMNotification domNotif = mock(DOMNotification.class);
-        ProblemNotification problemNotif = mock(ProblemNotification.class);
-        when(bindingNormalizedNodeSerializer.fromNormalizedNodeNotification(domNotif.getType(), domNotif.getBody())).thenReturn(problemNotif);
-        when(problemNotif.getCounter()).thenReturn(10);
-        when(problemNotif.getTimestamp()).thenReturn(new DateAndTime("2020-02-05T12:30:45.283Z"));
-        when(problemNotif.getObjectIdRef()).thenReturn(new UniversalId("12345678-0123-0abc-abcd-0123456789AB"));
-        when(problemNotif.getProblem()).thenReturn("modulationIsDownShifted");
-
-        domPacManager.onNotification(domNotif);
-    }
-
-    @Test
-    public void testAVCNotification() {
-        DOMNotification domNotif = mock(DOMNotification.class);
-        AttributeValueChangedNotification attrValChangedNotif = mock(AttributeValueChangedNotification.class);
-        when(bindingNormalizedNodeSerializer.fromNormalizedNodeNotification(domNotif.getType(), domNotif.getBody())).thenReturn(attrValChangedNotif);
-        when(attrValChangedNotif.getAttributeName()).thenReturn("12345678-0123-2345-abcd-0123456789AB");
-        when(attrValChangedNotif.getCounter()).thenReturn(20);
-        when(attrValChangedNotif.getNewValue()).thenReturn("new-value");
-        when(attrValChangedNotif.getObjectIdRef()).thenReturn(new UniversalId("12345678-0123-1234-abcd-0123456789AB"));
-        when(attrValChangedNotif.getTimestamp()).thenReturn(new DateAndTime("2020-02-05T12:30:45.283Z"));
-        domPacManager.onNotification(domNotif);
-    }
-
-    @Test
-    public void testObjectDeletionNotification() {
-        DOMNotification domNotif = mock(DOMNotification.class);
-        ObjectDeletionNotification deletionNotif = mock(ObjectDeletionNotification.class);
-        when(bindingNormalizedNodeSerializer.fromNormalizedNodeNotification(domNotif.getType(), domNotif.getBody())).thenReturn(deletionNotif);
-        when(deletionNotif.getCounter()).thenReturn(20);
-        when(deletionNotif.getObjectIdRef()).thenReturn(new UniversalId("12345678-0123-1234-abcd-0123456789AB"));
-        when(deletionNotif.getTimestamp()).thenReturn(new DateAndTime("2020-02-05T12:30:45.283Z"));
-        domPacManager.onNotification(domNotif);
-    }
-
-    @Test
-    public void testObjectCreationNotification() {
-        DOMNotification domNotif = mock(DOMNotification.class);
-        ObjectCreationNotification creationNotif = mock(ObjectCreationNotification.class);
-        when(bindingNormalizedNodeSerializer.fromNormalizedNodeNotification(domNotif.getType(), domNotif.getBody())).thenReturn(creationNotif);
-        when(creationNotif.getObjectType()).thenReturn("air-interface-name");
-        when(creationNotif.getCounter()).thenReturn(20);
-        when(creationNotif.getObjectIdRef()).thenReturn(new UniversalId("12345678-0123-1234-abcd-0123456789AB"));
-        when(creationNotif.getTimestamp()).thenReturn(new DateAndTime("2020-02-05T12:30:45.283Z"));
-        domPacManager.onNotification(domNotif);
-    }
-
-}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14EthernetContainerNotificationListener.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14EthernetContainerNotificationListener.java
deleted file mode 100644
index 09e44f4..0000000
--- a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14EthernetContainerNotificationListener.java
+++ /dev/null
@@ -1,197 +0,0 @@
-/*
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt
- * =================================================================================================
- * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.Mockito;
-import org.mockito.invocation.InvocationOnMock;
-import org.mockito.stubbing.Answer;
-import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.interfaces.Onf14EthernetContainerNotificationListener;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NotificationService;
-import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
-import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.UniversalId;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.AttributeValueChangedNotification;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.ObjectCreationNotification;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.ObjectDeletionNotification;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.ProblemNotification;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.SEVERITYTYPE;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.SEVERITYTYPECRITICAL;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.SEVERITYTYPEMAJOR;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.SEVERITYTYPEMINOR;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.SEVERITYTYPENONALARMED;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.SEVERITYTYPEWARNING;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
-
-public class TestOnf14EthernetContainerNotificationListener extends Mockito {
-    private NetconfBindingAccessor accessor;
-    private NodeId nodeId;
-    private DeviceManagerServiceProvider serviceProvider;
-    private FaultService faultService;
-    private DataProvider databaseService;
-    private NotificationService notificationService;
-
-    private ObjectDeletionNotification deletionNotif;
-    private ObjectCreationNotification creationNotif;
-    private ProblemNotification problemNotif;
-    private AttributeValueChangedNotification attrValChangedNotif;
-    private WebsocketManagerService websocketService;
-
-    @Before
-    public void init() {
-        accessor = mock(NetconfBindingAccessor.class);
-        nodeId = mock(NodeId.class);
-        serviceProvider = mock(DeviceManagerServiceProvider.class);
-        faultService = mock(FaultService.class);
-        databaseService = mock(DataProvider.class);
-        notificationService = mock(NotificationService.class);
-        websocketService = mock(WebsocketManagerService.class);
-
-        problemNotif = mock(ProblemNotification.class);
-        deletionNotif = mock(ObjectDeletionNotification.class);
-        creationNotif = mock(ObjectCreationNotification.class);
-        attrValChangedNotif = mock(AttributeValueChangedNotification.class);
-
-        when(accessor.getNodeId()).thenReturn(nodeId);
-        when(problemNotif.getCounter()).thenReturn(10L);
-        when(problemNotif.getTimestamp()).thenReturn(new DateAndTime("2020-02-05T12:30:45.283Z"));
-        when(problemNotif.getObjectIdRef()).thenReturn(new UniversalId("12345678-0123-0abc-abcd-0123456789AB"));
-        when(problemNotif.getProblem()).thenReturn("modulationIsDownShifted");
-
-        when(attrValChangedNotif.getAttributeName()).thenReturn("12345678-0123-2345-abcd-0123456789AB");
-        when(attrValChangedNotif.getCounter()).thenReturn(20L);
-        when(attrValChangedNotif.getNewValue()).thenReturn("new-value");
-        when(attrValChangedNotif.getObjectIdRef()).thenReturn(new UniversalId("12345678-0123-1234-abcd-0123456789AB"));
-        when(attrValChangedNotif.getTimestamp()).thenReturn(new DateAndTime("2020-02-05T12:30:45.283Z"));
-
-        when(creationNotif.getObjectType()).thenReturn("air-interface-name");
-        when(creationNotif.getCounter()).thenReturn(20L);
-        when(creationNotif.getObjectIdRef()).thenReturn(new UniversalId("12345678-0123-1234-abcd-0123456789AB"));
-        when(creationNotif.getTimestamp()).thenReturn(new DateAndTime("2020-02-05T12:30:45.283Z"));
-
-        when(deletionNotif.getCounter()).thenReturn(20L);
-        when(deletionNotif.getObjectIdRef()).thenReturn(new UniversalId("12345678-0123-1234-abcd-0123456789AB"));
-        when(deletionNotif.getTimestamp()).thenReturn(new DateAndTime("2020-02-05T12:30:45.283Z"));
-
-        when(serviceProvider.getFaultService()).thenReturn(faultService);
-        when(serviceProvider.getDataProvider()).thenReturn(databaseService);
-        when(serviceProvider.getNotificationService()).thenReturn(notificationService);
-        when(serviceProvider.getWebsocketService()).thenReturn(websocketService);
-    }
-
-    @Test
-    public void testOtherNotif() {
-        Onf14EthernetContainerNotificationListener notifListener =
-                new Onf14EthernetContainerNotificationListener(accessor, serviceProvider);
-
-        notifListener.onObjectDeletionNotification(deletionNotif);
-        notifListener.onObjectCreationNotification(creationNotif);
-        notifListener.onAttributeValueChangedNotification(attrValChangedNotif);
-    }
-
-    @Test
-    public void testProblemNotifCritical() {
-        Onf14EthernetContainerNotificationListener notifListener =
-                new Onf14EthernetContainerNotificationListener(accessor, serviceProvider);
-
-        when(problemNotif.getSeverity()).thenAnswer(new Answer<Class<? extends SEVERITYTYPE>>() {
-            @Override
-            public Class<? extends SEVERITYTYPE> answer(InvocationOnMock invocation) throws Throwable {
-                return SEVERITYTYPECRITICAL.class;
-            }
-        });
-
-        notifListener.onProblemNotification(problemNotif);
-    }
-
-    @Test
-    public void testProblemNotifMajor() {
-        Onf14EthernetContainerNotificationListener notifListener =
-                new Onf14EthernetContainerNotificationListener(accessor, serviceProvider);
-
-        when(problemNotif.getSeverity()).thenAnswer(new Answer<Class<? extends SEVERITYTYPE>>() {
-            @Override
-            public Class<? extends SEVERITYTYPE> answer(InvocationOnMock invocation) throws Throwable {
-                return SEVERITYTYPEMAJOR.class;
-            }
-        });
-
-        notifListener.onProblemNotification(problemNotif);
-    }
-
-    @Test
-    public void testProblemNotifMinor() {
-        Onf14EthernetContainerNotificationListener notifListener =
-                new Onf14EthernetContainerNotificationListener(accessor, serviceProvider);
-
-        when(problemNotif.getSeverity()).thenAnswer(new Answer<Class<? extends SEVERITYTYPE>>() {
-            @Override
-            public Class<? extends SEVERITYTYPE> answer(InvocationOnMock invocation) throws Throwable {
-                return SEVERITYTYPEMINOR.class;
-            }
-        });
-
-        notifListener.onProblemNotification(problemNotif);
-    }
-
-    @Test
-    public void testProblemNotifWarning() {
-        Onf14EthernetContainerNotificationListener notifListener =
-                new Onf14EthernetContainerNotificationListener(accessor, serviceProvider);
-
-        when(problemNotif.getSeverity()).thenAnswer(new Answer<Class<? extends SEVERITYTYPE>>() {
-            @Override
-            public Class<? extends SEVERITYTYPE> answer(InvocationOnMock invocation) throws Throwable {
-                return SEVERITYTYPEWARNING.class;
-            }
-        });
-
-        notifListener.onProblemNotification(problemNotif);
-    }
-
-    @Test
-    public void testProblemNotifNonalarmed() {
-        Onf14EthernetContainerNotificationListener notifListener =
-                new Onf14EthernetContainerNotificationListener(accessor, serviceProvider);
-
-        when(problemNotif.getSeverity()).thenAnswer(new Answer<Class<? extends SEVERITYTYPE>>() {
-            @Override
-            public Class<? extends SEVERITYTYPE> answer(InvocationOnMock invocation) throws Throwable {
-                return SEVERITYTYPENONALARMED.class;
-            }
-        });
-
-        notifListener.onProblemNotification(problemNotif);
-    }
-
-    @Test
-    public void testProblemNotifNull() {
-        Onf14EthernetContainerNotificationListener notifListener =
-                new Onf14EthernetContainerNotificationListener(accessor, serviceProvider);
-
-        when(problemNotif.getSeverity()).thenReturn(null);
-
-        notifListener.onProblemNotification(problemNotif);
-    }
-
-}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14NetworkElement.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14NetworkElement.java
deleted file mode 100644
index 0a39913..0000000
--- a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14NetworkElement.java
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt
- * =================================================================================================
- * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-import org.eclipse.jdt.annotation.NonNull;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.Mockito;
-import org.onap.ccsdk.features.sdnr.wt.common.configuration.ConfigurationFileRepresentation;
-import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElement;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.Onf14NetworkElementFactory;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
-import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.Capabilities;
-import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
-import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor;
-import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.TransactionUtils;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.LAYERPROTOCOLNAMETYPEAIRLAYER;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.ControlConstruct;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.UniversalId;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.control.construct.Equipment;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.control.construct.EquipmentKey;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.control.construct.LogicalTerminationPoint;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.control.construct.LogicalTerminationPointBuilder;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.control.construct.LogicalTerminationPointKey;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.logical.termination.point.LayerProtocol;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.logical.termination.point.LayerProtocolBuilder;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.logical.termination.point.LayerProtocolKey;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.LAYERPROTOCOLNAMETYPEETHERNETCONTAINERLAYER;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.LAYERPROTOCOLNAMETYPEWIRELAYER;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-
-public class TestOnf14NetworkElement extends Mockito {
-
-    private static String NODEIDSTRING = "nSky";
-
-    static NetconfBindingAccessor bindingAccessor;
-    static DeviceManagerServiceProvider serviceProvider;
-    static Capabilities capabilities;
-    static DataProvider dataProvider;
-    static FaultService faultService;
-    static DataBroker dataBroker;
-    static TransactionUtils transactionUtils;
-    static ControlConstruct controlConstruct;
-    static Equipment equipment;
-
-    @Before
-    public void init() {
-        capabilities = mock(Capabilities.class);
-        bindingAccessor = mock(NetconfBindingAccessor.class);
-        serviceProvider = mock(DeviceManagerServiceProvider.class);
-
-        NodeId nNodeId = new NodeId("nSky");
-        when(bindingAccessor.getCapabilites()).thenReturn(capabilities);
-        when(bindingAccessor.getNodeId()).thenReturn(nNodeId);
-
-        dataProvider = mock(DataProvider.class);
-        when(serviceProvider.getDataProvider()).thenReturn(dataProvider);
-
-        faultService = mock(FaultService.class);
-        when(serviceProvider.getFaultService()).thenReturn(faultService);
-
-        dataBroker = mock(DataBroker.class);
-        when(bindingAccessor.getDataBroker()).thenReturn(dataBroker);
-
-        controlConstruct = mock(ControlConstruct.class);
-
-        InstanceIdentifier<ControlConstruct> CONTROLCONSTRUCT_IID = InstanceIdentifier.builder(ControlConstruct.class).build();
-        when(bindingAccessor.getTransactionUtils()).thenReturn(mock(TransactionUtils.class));
-        when(bindingAccessor.getTransactionUtils().readData(bindingAccessor.getDataBroker(), LogicalDatastoreType.CONFIGURATION, CONTROLCONSTRUCT_IID)).thenReturn(controlConstruct);
-
-        List<UniversalId> topLevelEqList = null;
-        UniversalId uuid = new UniversalId("0Aabcdef-0abc-0cfD-0abC-0123456789AB");
-        topLevelEqList = Arrays.asList(uuid);
-        when(Optional.of(controlConstruct).get().getTopLevelEquipment()).thenReturn(topLevelEqList);
-
-        InstanceIdentifier<Equipment> equipmentIID = InstanceIdentifier.builder(ControlConstruct.class)
-                .child(Equipment.class, new EquipmentKey(uuid)).build();
-
-        equipment = mock(Equipment.class);
-        when(bindingAccessor.getTransactionUtils().readData(bindingAccessor.getDataBroker(), LogicalDatastoreType.CONFIGURATION,
-                equipmentIID)).thenReturn(equipment);
-        UniversalId eqpUid = new UniversalId("1Aabcdef-1abc-1cfD-1abc-0123456789AB");
-        when(equipment.getUuid()).thenReturn(eqpUid);
-
-        @NonNull Map<LogicalTerminationPointKey, LogicalTerminationPoint> lptMap = new HashMap<LogicalTerminationPointKey, LogicalTerminationPoint>();
-        var lpMap = new HashMap<LayerProtocolKey, LayerProtocol>();
-
-        LayerProtocol lp = new LayerProtocolBuilder().setLayerProtocolName(LAYERPROTOCOLNAMETYPEAIRLAYER.class).setLocalId("TESTAIRLAYER").build();
-        LayerProtocolKey lpKey = new LayerProtocolKey("AIRPROTOCOL");
-        lpMap.put(lpKey, lp);
-        LogicalTerminationPoint ltp = new LogicalTerminationPointBuilder().setLayerProtocol(lpMap).setUuid(uuid).build();
-        UniversalId ltpUuid = new UniversalId("1Aabcdef-1abc-1cfD-1abc-0123456789AB");
-        LogicalTerminationPointKey ltpKey = new LogicalTerminationPointKey(ltpUuid);
-
-        lptMap.put(ltpKey, ltp);
-
-        lp = new LayerProtocolBuilder().setLayerProtocolName(LAYERPROTOCOLNAMETYPEETHERNETCONTAINERLAYER.class).setLocalId("TESTETHCONTAINERLAYER").build();
-        lpKey = new LayerProtocolKey("ETHERNETCONTAINERPROTOCOL");
-        lpMap = new HashMap<LayerProtocolKey, LayerProtocol>();
-        lpMap.put(lpKey, lp);
-        ltp = new LogicalTerminationPointBuilder().setLayerProtocol(lpMap).setUuid(uuid).build();
-        ltpUuid = new UniversalId("1Aabcdef-1abc-1cfD-1abc-0123456789BC");
-        ltpKey = new LogicalTerminationPointKey(ltpUuid);
-
-        lptMap.put(ltpKey, ltp);
-
-        lp = new LayerProtocolBuilder().setLayerProtocolName(LAYERPROTOCOLNAMETYPEWIRELAYER.class).setLocalId("TESTWIRELAYER").build();
-        lpKey = new LayerProtocolKey("WIREPROTOCOL");
-        lpMap = new HashMap<LayerProtocolKey, LayerProtocol>();
-        lpMap.put(lpKey, lp);
-        ltp = new LogicalTerminationPointBuilder().setLayerProtocol(lpMap).setUuid(uuid).build();
-        ltpUuid = new UniversalId("1Aabcdef-1abc-1cfD-1abc-0123456789CD");
-        ltpKey = new LogicalTerminationPointKey(ltpUuid);
-
-        lptMap.put(ltpKey, ltp);
-
-        when(Optional.of(controlConstruct).get().nonnullLogicalTerminationPoint()).thenReturn(lptMap);
-
-    }
-
-    @Test
-    public void testGeneric() {
-        Optional<NetworkElement> onfNe;
-        NodeId nodeId = new NodeId(NODEIDSTRING);
-
-        when(bindingAccessor.getNodeId()).thenReturn(nodeId);
-
-        NetconfDomAccessor domAccessor = mock(NetconfDomAccessor.class);
-        when(domAccessor.getNodeId()).thenReturn(nodeId);
-
-        when(bindingAccessor.getCapabilites().isSupportingNamespace(ControlConstruct.QNAME)).thenReturn(true);
-        when(bindingAccessor.getNetconfBindingAccessor()).thenReturn(Optional.of(bindingAccessor));
-        when(bindingAccessor.getNetconfDomAccessor()).thenReturn(Optional.of(domAccessor));
-
-        ConfigurationFileRepresentation configurationRepresentation = mock(ConfigurationFileRepresentation.class);
-        when(serviceProvider.getConfigurationFileRepresentation()).thenReturn(configurationRepresentation);
-
-        Onf14NetworkElementFactory factory = new Onf14NetworkElementFactory();
-        onfNe = factory.create(bindingAccessor, serviceProvider);
-        assertTrue(onfNe.isPresent());
-
-        onfNe.get().register();
-        onfNe.get().deregister();
-        onfNe.get().getAcessor();
-        onfNe.get().getDeviceType();
-        onfNe.get().warmstart();
-        onfNe.get().getService(null);
-        assertEquals(onfNe.get().getNodeId().getValue(), "nSky");
-    }
-}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14ToInternalDataModel2.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14ToInternalDataModel2.java
deleted file mode 100644
index b0b00d9..0000000
--- a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14ToInternalDataModel2.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt
- * =================================================================================================
- * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14;
-
-import static org.junit.Assert.assertEquals;
-import java.util.HashMap;
-import java.util.Map;
-import org.eclipse.jdt.annotation.NonNull;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.mockito.Mockito;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.dataprovider.Onf14ToInternalDataModel;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.Equipment;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.UniversalId;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.equipment.ActualEquipment;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.equipment.ContainedHolder;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.equipment.ContainedHolderKey;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.equipment.detail.ManufacturedThing;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.manufactured.thing.EquipmentInstance;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.manufactured.thing.EquipmentType;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.manufactured.thing.ManufacturerProperties;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
-
-public class TestOnf14ToInternalDataModel2 extends Mockito {
-
-    private static NodeId nodeId;
-    private static Equipment currentEq;
-    private static Equipment parentEq;
-    private static ActualEquipment component;
-    private static ContainedHolder holder;
-    private static ManufacturedThing manThing;
-    private static ManufacturerProperties manProperties;
-    private static EquipmentInstance eqInstance;
-    private static EquipmentType eqType;
-
-    @BeforeClass
-    public static void init() {
-        nodeId = mock(NodeId.class);
-        currentEq = mock(Equipment.class);
-        parentEq = mock(Equipment.class);
-        component = mock(ActualEquipment.class);
-        holder = mock(ContainedHolder.class);
-        manThing = mock(ManufacturedThing.class);
-        manProperties = mock(ManufacturerProperties.class);
-        eqInstance = mock(EquipmentInstance.class);
-        eqType = mock(EquipmentType.class);
-
-        when(nodeId.getValue()).thenReturn("CoreModel-1-4-node");
-
-        when(component.getLocalId()).thenReturn("actLocalEq");
-        when(currentEq.getUuid()).thenReturn(new UniversalId("0Aabcdef-0abc-0cfD-0abC-0123456789AB"));
-        when(parentEq.getUuid()).thenReturn(new UniversalId("0Aabcdef-0123-0abc-abcd-0123456789AB"));
-
-        @NonNull Map<ContainedHolderKey, ContainedHolder> containedHolderList = new HashMap<>();
-        containedHolderList.put(holder.key(),holder);
-        when(currentEq.nonnullContainedHolder()).thenReturn(containedHolderList);
-
-    }
-
-    @Test
-    public void test1() {
-
-        Onf14ToInternalDataModel model = new Onf14ToInternalDataModel();
-
-        when(currentEq.getActualEquipment()).thenReturn(component);
-        when(holder.getOccupyingFru()).thenReturn(new UniversalId("12345678-0123-0abc-abcd-0123456789AB"));
-        when(component.getManufacturedThing()).thenReturn(manThing);
-        when(manThing.getManufacturerProperties()).thenReturn(manProperties);
-        when(manThing.getEquipmentInstance()).thenReturn(eqInstance);
-        when(eqInstance.getManufactureDate()).thenReturn(new DateAndTime("2020-02-05T12:30:45.283Z"));
-        when(manThing.getEquipmentType()).thenReturn(eqType);
-
-        model.getInternalEquipment(nodeId, currentEq, parentEq, 0);
-        assertEquals(currentEq.getActualEquipment().getLocalId(), "actLocalEq");
-    }
-
-    @Test
-    public void test2() {
-
-        Onf14ToInternalDataModel model = new Onf14ToInternalDataModel();
-
-        when(holder.getOccupyingFru()).thenReturn(null);
-        when(component.getManufacturedThing()).thenReturn(null);
-        when(manThing.getManufacturerProperties()).thenReturn(null);
-        when(manThing.getEquipmentInstance()).thenReturn(null);
-        when(manThing.getEquipmentType()).thenReturn(null);
-
-        model.getInternalEquipment(nodeId, currentEq, null, 0);
-    }
-
-
-    @Test
-    public void test3() {
-        Onf14ToInternalDataModel model = new Onf14ToInternalDataModel();
-
-        when(component.getManufacturedThing()).thenReturn(manThing);
-        when(manThing.getManufacturerProperties()).thenReturn(null);
-        when(manThing.getEquipmentInstance()).thenReturn(null);
-        when(manThing.getEquipmentType()).thenReturn(null);
-
-        model.getInternalEquipment(nodeId, currentEq, null, 0);
-    }
-
-    @Test
-    public void test4() {
-        Onf14ToInternalDataModel model = new Onf14ToInternalDataModel();
-
-        when(currentEq.getActualEquipment()).thenReturn(null);
-        model.getInternalEquipment(nodeId, currentEq, null, 0);
-    }
-}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14WireInterfaceNotificationListener.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14WireInterfaceNotificationListener.java
deleted file mode 100644
index e64847b..0000000
--- a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14WireInterfaceNotificationListener.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt
- * =================================================================================================
- * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14;
-
-import org.eclipse.jdt.annotation.NonNull;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.Mockito;
-import org.mockito.invocation.InvocationOnMock;
-import org.mockito.stubbing.Answer;
-import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.interfaces.Onf14WireInterfaceNotificationListener;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NotificationService;
-import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
-import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.UniversalId;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.AttributeValueChangedNotification;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.ObjectCreationNotification;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.ObjectDeletionNotification;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.ProblemNotification;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPE;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPECRITICAL;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPEMAJOR;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPEMINOR;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPENONALARMED;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPEWARNING;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
-
-public class TestOnf14WireInterfaceNotificationListener extends Mockito {
-    private NetconfBindingAccessor accessor;
-    private NodeId nodeId;
-    private DeviceManagerServiceProvider serviceProvider;
-    private FaultService faultService;
-    private DataProvider databaseService;
-    private NotificationService notificationService;
-
-    private ObjectDeletionNotification deletionNotif;
-    private ObjectCreationNotification creationNotif;
-    private ProblemNotification problemNotif;
-    private AttributeValueChangedNotification attrValChangedNotif;
-    private @NonNull WebsocketManagerService websocketService;
-
-    @Before
-    public void init() {
-        accessor = mock(NetconfBindingAccessor.class);
-        nodeId = mock(NodeId.class);
-        serviceProvider = mock(DeviceManagerServiceProvider.class);
-        faultService = mock(FaultService.class);
-        databaseService = mock(DataProvider.class);
-        notificationService = mock(NotificationService.class);
-        websocketService = mock(WebsocketManagerService.class);
-
-        problemNotif = mock(ProblemNotification.class);
-        deletionNotif = mock(ObjectDeletionNotification.class);
-        creationNotif = mock(ObjectCreationNotification.class);
-        attrValChangedNotif = mock(AttributeValueChangedNotification.class);
-
-        when(accessor.getNodeId()).thenReturn(nodeId);
-        when(problemNotif.getCounter()).thenReturn(10);
-        when(problemNotif.getTimestamp()).thenReturn(new DateAndTime("2020-02-05T12:30:45.283Z"));
-        when(problemNotif.getObjectIdRef()).thenReturn(new UniversalId("12345678-0123-0abc-abcd-0123456789AB"));
-        when(problemNotif.getProblem()).thenReturn("modulationIsDownShifted");
-
-        when(attrValChangedNotif.getAttributeName()).thenReturn("12345678-0123-2345-abcd-0123456789AB");
-        when(attrValChangedNotif.getCounter()).thenReturn(20);
-        when(attrValChangedNotif.getNewValue()).thenReturn("new-value");
-        when(attrValChangedNotif.getObjectIdRef()).thenReturn(new UniversalId("12345678-0123-1234-abcd-0123456789AB"));
-        when(attrValChangedNotif.getTimestamp()).thenReturn(new DateAndTime("2020-02-05T12:30:45.283Z"));
-
-        when(creationNotif.getObjectType()).thenReturn("air-interface-name");
-        when(creationNotif.getCounter()).thenReturn(20);
-        when(creationNotif.getObjectIdRef()).thenReturn(new UniversalId("12345678-0123-1234-abcd-0123456789AB"));
-        when(creationNotif.getTimestamp()).thenReturn(new DateAndTime("2020-02-05T12:30:45.283Z"));
-
-        when(deletionNotif.getCounter()).thenReturn(20);
-        when(deletionNotif.getObjectIdRef()).thenReturn(new UniversalId("12345678-0123-1234-abcd-0123456789AB"));
-        when(deletionNotif.getTimestamp()).thenReturn(new DateAndTime("2020-02-05T12:30:45.283Z"));
-
-        when(serviceProvider.getFaultService()).thenReturn(faultService);
-        when(serviceProvider.getDataProvider()).thenReturn(databaseService);
-        when(serviceProvider.getNotificationService()).thenReturn(notificationService);
-        when(serviceProvider.getWebsocketService()).thenReturn(websocketService);
-    }
-
-    @Test
-    public void testOtherNotif() {
-        Onf14WireInterfaceNotificationListener notifListener =
-                new Onf14WireInterfaceNotificationListener(accessor, serviceProvider);
-
-        notifListener.onObjectDeletionNotification(deletionNotif);
-        notifListener.onObjectCreationNotification(creationNotif);
-        notifListener.onAttributeValueChangedNotification(attrValChangedNotif);
-    }
-
-    @Test
-    public void testProblemNotifCritical() {
-        Onf14WireInterfaceNotificationListener notifListener =
-                new Onf14WireInterfaceNotificationListener(accessor, serviceProvider);
-
-        when(problemNotif.getSeverity()).thenAnswer(new Answer<Class<? extends SEVERITYTYPE>>() {
-            @Override
-            public Class<? extends SEVERITYTYPE> answer(InvocationOnMock invocation) throws Throwable {
-                return SEVERITYTYPECRITICAL.class;
-            }
-        });
-
-        notifListener.onProblemNotification(problemNotif);
-    }
-
-    @Test
-    public void testProblemNotifMajor() {
-        Onf14WireInterfaceNotificationListener notifListener =
-                new Onf14WireInterfaceNotificationListener(accessor, serviceProvider);
-
-        when(problemNotif.getSeverity()).thenAnswer(new Answer<Class<? extends SEVERITYTYPE>>() {
-            @Override
-            public Class<? extends SEVERITYTYPE> answer(InvocationOnMock invocation) throws Throwable {
-                return SEVERITYTYPEMAJOR.class;
-            }
-        });
-
-        notifListener.onProblemNotification(problemNotif);
-    }
-
-    @Test
-    public void testProblemNotifMinor() {
-        Onf14WireInterfaceNotificationListener notifListener =
-                new Onf14WireInterfaceNotificationListener(accessor, serviceProvider);
-
-        when(problemNotif.getSeverity()).thenAnswer(new Answer<Class<? extends SEVERITYTYPE>>() {
-            @Override
-            public Class<? extends SEVERITYTYPE> answer(InvocationOnMock invocation) throws Throwable {
-                return SEVERITYTYPEMINOR.class;
-            }
-        });
-
-        notifListener.onProblemNotification(problemNotif);
-    }
-
-    @Test
-    public void testProblemNotifWarning() {
-        Onf14WireInterfaceNotificationListener notifListener =
-                new Onf14WireInterfaceNotificationListener(accessor, serviceProvider);
-
-        when(problemNotif.getSeverity()).thenAnswer(new Answer<Class<? extends SEVERITYTYPE>>() {
-            @Override
-            public Class<? extends SEVERITYTYPE> answer(InvocationOnMock invocation) throws Throwable {
-                return SEVERITYTYPEWARNING.class;
-            }
-        });
-
-        notifListener.onProblemNotification(problemNotif);
-    }
-
-    @Test
-    public void testProblemNotifNonalarmed() {
-        Onf14WireInterfaceNotificationListener notifListener =
-                new Onf14WireInterfaceNotificationListener(accessor, serviceProvider);
-
-        when(problemNotif.getSeverity()).thenAnswer(new Answer<Class<? extends SEVERITYTYPE>>() {
-            @Override
-            public Class<? extends SEVERITYTYPE> answer(InvocationOnMock invocation) throws Throwable {
-                return SEVERITYTYPENONALARMED.class;
-            }
-        });
-
-        notifListener.onProblemNotification(problemNotif);
-    }
-
-    @Test
-    public void testProblemNotifNull() {
-        Onf14WireInterfaceNotificationListener notifListener =
-                new Onf14WireInterfaceNotificationListener(accessor, serviceProvider);
-
-        when(problemNotif.getSeverity()).thenReturn(null);
-
-        notifListener.onProblemNotification(problemNotif);
-    }
-
-}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestSeverity.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestSeverity.java
deleted file mode 100644
index 686942a..0000000
--- a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestSeverity.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * ONAP : ccsdk features
- * ================================================================================
- * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
- * All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- *
- */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14;
-
-import static org.junit.Assert.assertTrue;
-import org.junit.Test;
-import org.mockito.Mockito;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.interfaces.Onf14AirInterface;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.interfaces.Onf14WireInterface;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType;
-
-public class TestSeverity extends Mockito {
-
-    @Test
-    public void test1_1() {
-        assertTrue(Onf14WireInterface.mapSeverity(
-                org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPECRITICAL.class)
-                .equals(SeverityType.Critical));
-    }
-
-    @Test
-    public void test1_2() {
-        assertTrue(Onf14WireInterface.mapSeverity(
-                org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPEWARNING.class)
-                .equals(SeverityType.Warning));
-    }
-
-    @Test
-    public void test1_3() {
-        assertTrue(Onf14WireInterface.mapSeverity(
-                org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPEMINOR.class)
-                .equals(SeverityType.Minor));
-    }
-
-    @Test
-    public void test1_4() {
-        assertTrue(Onf14WireInterface.mapSeverity(
-                org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPEMAJOR.class)
-                .equals(SeverityType.Major));
-    }
-
-    public void test2_1() {
-        assertTrue(Onf14AirInterface.mapSeverity(
-                org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.SEVERITYTYPECRITICAL.class)
-                .equals(SeverityType.Critical));
-    }
-
-    @Test
-    public void test2_2() {
-        assertTrue(Onf14AirInterface.mapSeverity(
-                org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.SEVERITYTYPEMINOR.class)
-                .equals(SeverityType.Minor));
-    }
-
-    @Test
-    public void test2_3() {
-        assertTrue(Onf14AirInterface.mapSeverity(null).equals(SeverityType.NonAlarmed));
-    }
-
-
-}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestDeviceManagerOnf14Impl.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestDeviceManagerOnf14Impl.java
similarity index 89%
rename from sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestDeviceManagerOnf14Impl.java
rename to sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestDeviceManagerOnf14Impl.java
index 4b69e42..21bbfce 100644
--- a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestDeviceManagerOnf14Impl.java
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestDeviceManagerOnf14Impl.java
@@ -15,14 +15,15 @@
  * the License.
  * ============LICENSE_END==========================================================================
  */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14;
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom;
 
 import java.io.IOException;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.mockito.Mockito;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.DeviceManagerOnf14Impl;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.DeviceManagerOnf14Impl;
+//import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.DeviceManagerOnf14Impl;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NetconfNetworkElementService;
 
 public class TestDeviceManagerOnf14Impl extends Mockito {
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14DomAirInterfaceNotificationListener.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14DomAirInterfaceNotificationListener.java
new file mode 100644
index 0000000..a8e97e1
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14DomAirInterfaceNotificationListener.java
@@ -0,0 +1,157 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom;
+
+import java.time.Instant;
+import org.eclipse.jdt.annotation.NonNull;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.Onf14DomAirInterfaceNotificationListener;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DevicemanagerQNames;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.util.NetconfDeviceNotification;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NotificationService;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor;
+import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
+import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
+import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
+import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
+
+public class TestOnf14DomAirInterfaceNotificationListener extends Mockito {
+    private NetconfDomAccessor accessor;
+    private NodeId nodeId;
+    private DeviceManagerServiceProvider serviceProvider;
+    private FaultService faultService;
+    private DataProvider databaseService;
+    private NotificationService notificationService;
+
+    private @NonNull WebsocketManagerService websocketService;
+
+    @Before
+    public void init() {
+        accessor = mock(NetconfDomAccessor.class);
+        nodeId = mock(NodeId.class);
+        serviceProvider = mock(DeviceManagerServiceProvider.class);
+        faultService = mock(FaultService.class);
+        databaseService = mock(DataProvider.class);
+        notificationService = mock(NotificationService.class);
+        websocketService = mock(WebsocketManagerService.class);
+
+        when(accessor.getNodeId()).thenReturn(nodeId);
+        when(serviceProvider.getFaultService()).thenReturn(faultService);
+        when(serviceProvider.getDataProvider()).thenReturn(databaseService);
+        when(serviceProvider.getNotificationService()).thenReturn(notificationService);
+        when(serviceProvider.getWebsocketService()).thenReturn(websocketService);
+    }
+
+    @Test
+    public void testOtherNotif() {
+        Onf14DomAirInterfaceNotificationListener notifListener =
+                new Onf14DomAirInterfaceNotificationListener(accessor, serviceProvider);
+
+        NetconfDeviceNotification ndn =
+                new NetconfDeviceNotification(createAirInterfaceCreationNotification(), Instant.now());
+        notifListener.onNotification(ndn);
+        ndn = new NetconfDeviceNotification(createAirInterfaceAVCNotification(), Instant.now());
+        notifListener.onNotification(ndn);
+        ndn = new NetconfDeviceNotification(createAirInterfaceDeletionNotification(), Instant.now());
+        notifListener.onNotification(ndn);
+        ndn = new NetconfDeviceNotification(createAirInterfaceProblemNotification(), Instant.now());
+        notifListener.onNotification(ndn);
+    }
+
+    private ContainerNode createAirInterfaceProblemNotification() {
+        return Builders.containerBuilder()
+                .withNodeIdentifier(
+                        NodeIdentifier.create(Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION))
+                .withChild(ImmutableNodes
+                        .leafNode(Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_COUNTER, "47"))
+                .withChild(ImmutableNodes.leafNode(
+                        Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_PROBLEM,
+                        "12345678-0123-2345-abcd-0123456789AB"))
+                .withChild(ImmutableNodes.leafNode(
+                        Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_OBJECT_ID_REF,
+                        "12345678-0123-1234-abcd-0123456789AB"))
+                .withChild(ImmutableNodes.leafNode(
+                        Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_TIMESTAMP,
+                        "2022-02-05T12:30:45.283Z"))
+                .withChild(ImmutableNodes.leafNode(
+                        Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_SEVERITY,
+                        "SEVERITY_TYPE_CRITICAL"))
+                .build();
+    }
+
+    private ContainerNode createAirInterfaceAVCNotification() {
+        return Builders.containerBuilder()
+                .withNodeIdentifier(
+                        NodeIdentifier.create(Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_AVC_NOTIFICATION))
+                .withChild(ImmutableNodes
+                        .leafNode(Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_AVC_NOTIFICATION_COUNTER, "47"))
+                .withChild(ImmutableNodes.leafNode(
+                        Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_AVC_NOTIFICATION_ATTRIBUTE_NAME,
+                        "12345678-0123-2345-abcd-0123456789AB"))
+                .withChild(ImmutableNodes.leafNode(
+                        Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_AVC_NOTIFICATION_NEW_VALUE, "new-value"))
+                .withChild(ImmutableNodes.leafNode(
+                        Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_AVC_NOTIFICATION_OBJECT_ID_REF,
+                        "12345678-0123-1234-abcd-0123456789AB"))
+                .withChild(ImmutableNodes.leafNode(
+                        Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_AVC_NOTIFICATION_TIMESTAMP,
+                        "2022-02-05T12:30:45.283Z"))
+                .build();
+    }
+
+    private ContainerNode createAirInterfaceDeletionNotification() {
+        return Builders.containerBuilder()
+                .withNodeIdentifier(
+                        NodeIdentifier.create(Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_DELETE_NOTIFICATION))
+                .withChild(ImmutableNodes
+                        .leafNode(Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_DELETE_NOTIFICATION_COUNTER, "47"))
+                .withChild(ImmutableNodes.leafNode(
+                        Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_DELETE_NOTIFICATION_TIMESTAMP,
+                        "2022-02-05T12:30:45.283Z"))
+                .withChild(ImmutableNodes.leafNode(
+                        Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_DELETE_NOTIFICATION_OBJECT_ID_REF,
+                        "12345678-0123-1234-abcd-0123456789AB"))
+                .build();
+    }
+
+    private ContainerNode createAirInterfaceCreationNotification() {
+        return Builders.containerBuilder()
+                .withNodeIdentifier(
+                        NodeIdentifier.create(Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_CREATE_NOTIFICATION))
+                .withChild(ImmutableNodes
+                        .leafNode(Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_CREATE_NOTIFICATION_COUNTER, "47"))
+                .withChild(ImmutableNodes.leafNode(
+                        Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_CREATE_NOTIFICATION_OBJECT_TYPE,
+                        "air-interface-name"))
+                .withChild(ImmutableNodes.leafNode(
+                        Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_CREATE_NOTIFICATION_TIMESTAMP,
+                        "2022-02-05T12:30:45.283Z"))
+                .withChild(ImmutableNodes.leafNode(
+                        Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_CREATE_NOTIFICATION_OBJECT_ID_REF,
+                        "12345678-0123-1234-abcd-0123456789AB"))
+                .build();
+    }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14DomEthernetContainerNotificationListener.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14DomEthernetContainerNotificationListener.java
new file mode 100644
index 0000000..c2f7984
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14DomEthernetContainerNotificationListener.java
@@ -0,0 +1,156 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom;
+
+import java.time.Instant;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.Onf14DomEthernetContainerNotificationListener;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DevicemanagerQNames;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.util.NetconfDeviceNotification;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NotificationService;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor;
+import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
+import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
+import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
+import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
+
+public class TestOnf14DomEthernetContainerNotificationListener extends Mockito {
+    private NetconfDomAccessor accessor;
+    private NodeId nodeId;
+    private DeviceManagerServiceProvider serviceProvider;
+    private FaultService faultService;
+    private DataProvider databaseService;
+    private NotificationService notificationService;
+
+    private WebsocketManagerService websocketService;
+
+    @Before
+    public void init() {
+        accessor = mock(NetconfDomAccessor.class);
+        nodeId = mock(NodeId.class);
+        serviceProvider = mock(DeviceManagerServiceProvider.class);
+        faultService = mock(FaultService.class);
+        databaseService = mock(DataProvider.class);
+        notificationService = mock(NotificationService.class);
+        websocketService = mock(WebsocketManagerService.class);
+
+        when(serviceProvider.getFaultService()).thenReturn(faultService);
+        when(serviceProvider.getDataProvider()).thenReturn(databaseService);
+        when(serviceProvider.getNotificationService()).thenReturn(notificationService);
+        when(serviceProvider.getWebsocketService()).thenReturn(websocketService);
+        when(accessor.getNodeId()).thenReturn(nodeId);
+    }
+
+    @Test
+    public void testOtherNotif() {
+        Onf14DomEthernetContainerNotificationListener notifListener =
+                new Onf14DomEthernetContainerNotificationListener(accessor, serviceProvider);
+
+        NetconfDeviceNotification ndn =
+                new NetconfDeviceNotification(createEthernetContainerCreationNotification(), Instant.now());
+        notifListener.onNotification(ndn);
+        ndn = new NetconfDeviceNotification(createEthernetContainerAVCNotification(), Instant.now());
+        notifListener.onNotification(ndn);
+        ndn = new NetconfDeviceNotification(createEthernetContainerDeletionNotification(), Instant.now());
+        notifListener.onNotification(ndn);
+        ndn = new NetconfDeviceNotification(createEthernetContainerProblemNotification(), Instant.now());
+        notifListener.onNotification(ndn);
+    }
+
+    private ContainerNode createEthernetContainerProblemNotification() {
+        return Builders.containerBuilder()
+                .withNodeIdentifier(
+                        NodeIdentifier.create(Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION))
+                .withChild(ImmutableNodes.leafNode(
+                        Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION_COUNTER, "47"))
+                .withChild(ImmutableNodes.leafNode(
+                        Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION_PROBLEM,
+                        "12345678-0123-2345-abcd-0123456789AB"))
+                .withChild(ImmutableNodes.leafNode(
+                        Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION_OBJECT_ID_REF,
+                        "12345678-0123-1234-abcd-0123456789AB"))
+                .withChild(ImmutableNodes.leafNode(
+                        Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION_TIMESTAMP,
+                        "2022-02-05T12:30:45.283Z"))
+                .withChild(ImmutableNodes.leafNode(
+                        Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION_SEVERITY,
+                        "SEVERITY_TYPE_CRITICAL"))
+                .build();
+    }
+
+    private ContainerNode createEthernetContainerAVCNotification() {
+        return Builders.containerBuilder()
+                .withNodeIdentifier(
+                        NodeIdentifier.create(Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_AVC_NOTIFICATION))
+                .withChild(ImmutableNodes
+                        .leafNode(Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_AVC_NOTIFICATION_COUNTER, "47"))
+                .withChild(ImmutableNodes.leafNode(
+                        Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_AVC_NOTIFICATION_ATTRIBUTE_NAME,
+                        "12345678-0123-2345-abcd-0123456789AB"))
+                .withChild(ImmutableNodes.leafNode(
+                        Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_AVC_NOTIFICATION_NEW_VALUE, "new-value"))
+                .withChild(ImmutableNodes.leafNode(
+                        Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_AVC_NOTIFICATION_OBJECT_ID_REF,
+                        "12345678-0123-1234-abcd-0123456789AB"))
+                .withChild(ImmutableNodes.leafNode(
+                        Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_AVC_NOTIFICATION_TIMESTAMP,
+                        "2022-02-05T12:30:45.283Z"))
+                .build();
+    }
+
+    private ContainerNode createEthernetContainerDeletionNotification() {
+        return Builders.containerBuilder()
+                .withNodeIdentifier(
+                        NodeIdentifier.create(Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_DELETE_NOTIFICATION))
+                .withChild(ImmutableNodes
+                        .leafNode(Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_DELETE_NOTIFICATION_COUNTER, "47"))
+                .withChild(ImmutableNodes.leafNode(
+                        Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_DELETE_NOTIFICATION_TIMESTAMP,
+                        "2022-02-05T12:30:45.283Z"))
+                .withChild(ImmutableNodes.leafNode(
+                        Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_DELETE_NOTIFICATION_OBJECT_ID_REF,
+                        "12345678-0123-1234-abcd-0123456789AB"))
+                .build();
+    }
+
+    private ContainerNode createEthernetContainerCreationNotification() {
+        return Builders.containerBuilder()
+                .withNodeIdentifier(
+                        NodeIdentifier.create(Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_CREATE_NOTIFICATION))
+                .withChild(ImmutableNodes
+                        .leafNode(Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_CREATE_NOTIFICATION_COUNTER, "47"))
+                .withChild(ImmutableNodes.leafNode(
+                        Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_CREATE_NOTIFICATION_OBJECT_TYPE,
+                        "ethernet-interface-name"))
+                .withChild(ImmutableNodes.leafNode(
+                        Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_CREATE_NOTIFICATION_TIMESTAMP,
+                        "2022-02-05T12:30:45.283Z"))
+                .withChild(ImmutableNodes.leafNode(
+                        Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_CREATE_NOTIFICATION_OBJECT_ID_REF,
+                        "12345678-0123-1234-abcd-0123456789AB"))
+                .build();
+    }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14DomInterfacePacManager.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14DomInterfacePacManager.java
new file mode 100644
index 0000000..9f54ca5
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14DomInterfacePacManager.java
@@ -0,0 +1,52 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2022 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.util.Optional;
+import javax.xml.stream.XMLStreamException;
+import org.junit.Test;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.interfaces.Onf14DomInterfacePacManager;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DevicemanagerQNames;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.util.Onf14DomTestUtils;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
+import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
+import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.xml.sax.SAXException;
+
+public class TestOnf14DomInterfacePacManager {
+
+    @Test
+    public void test() throws XMLStreamException, URISyntaxException, IOException, SAXException {
+        NetconfDomAccessor netconfDomAccessor = mock(NetconfDomAccessor.class);
+        Onf14DomInterfacePacManager interfacePacMgr = mock(Onf14DomInterfacePacManager.class);
+        ContainerNode cn = (ContainerNode) Onf14DomTestUtils.getNormalizedNodeFromXML();
+        NormalizedNode ltpData = cn.getChildByArg(new NodeIdentifier(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP));
+        when(interfacePacMgr.readLtpData(netconfDomAccessor)).thenReturn(Optional.of(ltpData));
+        interfacePacMgr.register();
+    }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14DomNetworkElement.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14DomNetworkElement.java
similarity index 65%
rename from sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14DomNetworkElement.java
rename to sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14DomNetworkElement.java
index d070706..0d30e4d 100644
--- a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14DomNetworkElement.java
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14DomNetworkElement.java
@@ -1,8 +1,7 @@
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14;
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 import java.util.Optional;
 import org.junit.Before;
@@ -10,26 +9,27 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.junit.MockitoJUnitRunner;
-import org.onap.ccsdk.features.sdnr.wt.common.configuration.ConfigurationFileRepresentation;
 import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElement;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.Onf14Configuration;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.Onf14NetworkElementFactory;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.Onf14DomNetworkElementFactory;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DevicemanagerQNames;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.Capabilities;
 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor;
 import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService;
-import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.ControlConstruct;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 
 @RunWith(MockitoJUnitRunner.class)
 public class TestOnf14DomNetworkElement {
 
     private static String NODEIDSTRING = "nSky";
-
+    private static final YangInstanceIdentifier TOPLEVELEQUIPMENT_IID =
+            YangInstanceIdentifier.builder().node(Onf14DevicemanagerQNames.CORE_MODEL_CONTROL_CONSTRUCT_CONTAINER)
+                    .node(Onf14DevicemanagerQNames.CORE_MODEL_CC_TOP_LEVEL_EQPT).build();
     @Mock
     NetconfDomAccessor netconfDomAccessor;
     @Mock
@@ -46,33 +46,29 @@
     DataProvider databaseService;
     @Mock
     Capabilities capabilities;
-    @Mock
-    BindingNormalizedNodeSerializer bindingNormalizedNodeSerializer;
 
     NodeId nodeId = new NodeId(NODEIDSTRING);
 
     @Before
     public void init() {
 
-        ConfigurationFileRepresentation configurationRepresentation = mock(ConfigurationFileRepresentation.class);
-        when(serviceProvider.getConfigurationFileRepresentation()).thenReturn(configurationRepresentation);
-        Optional<Onf14Configuration> onf14Cfg = Optional.of(new Onf14Configuration(configurationRepresentation));
-        System.out.println(onf14Cfg.isPresent());
-        when(onf14Cfg.get().isUseDomApiEnabled()).thenReturn(true);
         when(netconfDomAccessor.getCapabilites()).thenReturn(capabilities);
-        when(netconfDomAccessor.getCapabilites().isSupportingNamespace(ControlConstruct.QNAME)).thenReturn(true);
+        when(netconfDomAccessor.getCapabilites()
+                .isSupportingNamespace(Onf14DevicemanagerQNames.CORE_MODEL_CONTROL_CONSTRUCT_CONTAINER))
+                        .thenReturn(true);
         when(netconfDomAccessor.getNetconfDomAccessor()).thenReturn(Optional.of(netconfDomAccessor));
-        when(netconfDomAccessor.getBindingNormalizedNodeSerializer()).thenReturn(bindingNormalizedNodeSerializer);
         when(netconfDomAccessor.getNodeId()).thenReturn(nodeId);
         when(serviceProvider.getDataProvider()).thenReturn(dataProvider);
         when(serviceProvider.getFaultService()).thenReturn(faultService);
+        when(netconfDomAccessor.readDataNode(LogicalDatastoreType.CONFIGURATION, TOPLEVELEQUIPMENT_IID))
+                .thenReturn(Optional.empty());
     }
 
     @Test
     public void test() {
         Optional<NetworkElement> onfDomNe;
 
-        Onf14NetworkElementFactory factory = new Onf14NetworkElementFactory();
+        Onf14DomNetworkElementFactory factory = new Onf14DomNetworkElementFactory();
         factory.init(serviceProvider);
         onfDomNe = factory.create(netconfDomAccessor, serviceProvider);
         assertTrue(onfDomNe.isPresent());
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14DomWireInterfaceNotificationListener.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14DomWireInterfaceNotificationListener.java
new file mode 100644
index 0000000..37cd5b4
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14DomWireInterfaceNotificationListener.java
@@ -0,0 +1,157 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom;
+
+import java.time.Instant;
+import org.eclipse.jdt.annotation.NonNull;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.Onf14DomWireInterfaceNotificationListener;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DevicemanagerQNames;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.util.NetconfDeviceNotification;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NotificationService;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor;
+import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
+import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
+import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
+import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
+
+public class TestOnf14DomWireInterfaceNotificationListener extends Mockito {
+    private NetconfDomAccessor accessor;
+    private NodeId nodeId;
+    private DeviceManagerServiceProvider serviceProvider;
+    private FaultService faultService;
+    private DataProvider databaseService;
+    private NotificationService notificationService;
+
+    private @NonNull WebsocketManagerService websocketService;
+
+    @Before
+    public void init() {
+        accessor = mock(NetconfDomAccessor.class);
+        nodeId = mock(NodeId.class);
+        serviceProvider = mock(DeviceManagerServiceProvider.class);
+        faultService = mock(FaultService.class);
+        databaseService = mock(DataProvider.class);
+        notificationService = mock(NotificationService.class);
+        websocketService = mock(WebsocketManagerService.class);
+
+        when(accessor.getNodeId()).thenReturn(nodeId);
+        when(serviceProvider.getFaultService()).thenReturn(faultService);
+        when(serviceProvider.getDataProvider()).thenReturn(databaseService);
+        when(serviceProvider.getNotificationService()).thenReturn(notificationService);
+        when(serviceProvider.getWebsocketService()).thenReturn(websocketService);
+    }
+
+    @Test
+    public void testOtherNotif() {
+        Onf14DomWireInterfaceNotificationListener notifListener =
+                new Onf14DomWireInterfaceNotificationListener(accessor, serviceProvider);
+
+        NetconfDeviceNotification ndn =
+                new NetconfDeviceNotification(createWireInterfaceCreationNotification(), Instant.now());
+        notifListener.onNotification(ndn);
+        ndn = new NetconfDeviceNotification(createWireInterfaceAVCNotification(), Instant.now());
+        notifListener.onNotification(ndn);
+        ndn = new NetconfDeviceNotification(createWireInterfaceDeletionNotification(), Instant.now());
+        notifListener.onNotification(ndn);
+        ndn = new NetconfDeviceNotification(createWireInterfaceProblemNotification(), Instant.now());
+        notifListener.onNotification(ndn);
+    }
+
+    private ContainerNode createWireInterfaceProblemNotification() {
+        return Builders.containerBuilder()
+                .withNodeIdentifier(
+                        NodeIdentifier.create(Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION))
+                .withChild(ImmutableNodes
+                        .leafNode(Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_COUNTER, "47"))
+                .withChild(ImmutableNodes.leafNode(
+                        Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_PROBLEM,
+                        "12345678-0123-2345-abcd-0123456789AB"))
+                .withChild(ImmutableNodes.leafNode(
+                        Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_OBJECT_ID_REF,
+                        "12345678-0123-1234-abcd-0123456789AB"))
+                .withChild(ImmutableNodes.leafNode(
+                        Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_TIMESTAMP,
+                        "2022-02-05T12:30:45.283Z"))
+                .withChild(ImmutableNodes.leafNode(
+                        Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_SEVERITY,
+                        "SEVERITY_TYPE_CRITICAL"))
+                .build();
+    }
+
+    private ContainerNode createWireInterfaceAVCNotification() {
+        return Builders.containerBuilder()
+                .withNodeIdentifier(
+                        NodeIdentifier.create(Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_AVC_NOTIFICATION))
+                .withChild(ImmutableNodes
+                        .leafNode(Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_AVC_NOTIFICATION_COUNTER, "47"))
+                .withChild(ImmutableNodes.leafNode(
+                        Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_AVC_NOTIFICATION_ATTRIBUTE_NAME,
+                        "12345678-0123-2345-abcd-0123456789AB"))
+                .withChild(ImmutableNodes.leafNode(
+                        Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_AVC_NOTIFICATION_NEW_VALUE, "new-value"))
+                .withChild(ImmutableNodes.leafNode(
+                        Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_AVC_NOTIFICATION_OBJECT_ID_REF,
+                        "12345678-0123-1234-abcd-0123456789AB"))
+                .withChild(ImmutableNodes.leafNode(
+                        Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_AVC_NOTIFICATION_TIMESTAMP,
+                        "2022-02-05T12:30:45.283Z"))
+                .build();
+    }
+
+    private ContainerNode createWireInterfaceDeletionNotification() {
+        return Builders.containerBuilder()
+                .withNodeIdentifier(
+                        NodeIdentifier.create(Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_DELETE_NOTIFICATION))
+                .withChild(ImmutableNodes
+                        .leafNode(Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_DELETE_NOTIFICATION_COUNTER, "47"))
+                .withChild(ImmutableNodes.leafNode(
+                        Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_DELETE_NOTIFICATION_TIMESTAMP,
+                        "2022-02-05T12:30:45.283Z"))
+                .withChild(ImmutableNodes.leafNode(
+                        Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_DELETE_NOTIFICATION_OBJECT_ID_REF,
+                        "12345678-0123-1234-abcd-0123456789AB"))
+                .build();
+    }
+
+    private ContainerNode createWireInterfaceCreationNotification() {
+        return Builders.containerBuilder()
+                .withNodeIdentifier(
+                        NodeIdentifier.create(Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_CREATE_NOTIFICATION))
+                .withChild(ImmutableNodes
+                        .leafNode(Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_CREATE_NOTIFICATION_COUNTER, "47"))
+                .withChild(ImmutableNodes.leafNode(
+                        Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_CREATE_NOTIFICATION_OBJECT_TYPE,
+                        "Wire-interface-name"))
+                .withChild(ImmutableNodes.leafNode(
+                        Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_CREATE_NOTIFICATION_TIMESTAMP,
+                        "2022-02-05T12:30:45.283Z"))
+                .withChild(ImmutableNodes.leafNode(
+                        Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_CREATE_NOTIFICATION_OBJECT_ID_REF,
+                        "12345678-0123-1234-abcd-0123456789AB"))
+                .build();
+    }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14NetworkElementFactory.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14NetworkElementFactory.java
similarity index 66%
rename from sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14NetworkElementFactory.java
rename to sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14NetworkElementFactory.java
index 493167a..657b994 100644
--- a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14NetworkElementFactory.java
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14NetworkElementFactory.java
@@ -15,13 +15,11 @@
  * the License.
  * ============LICENSE_END==========================================================================
  */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14;
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom;
 
 import static org.junit.Assert.assertTrue;
-import com.google.common.io.Files;
 import java.io.File;
 import java.io.IOException;
-import java.nio.charset.StandardCharsets;
 import java.util.Optional;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
@@ -29,14 +27,14 @@
 import org.mockito.Mockito;
 import org.onap.ccsdk.features.sdnr.wt.common.configuration.ConfigurationFileRepresentation;
 import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.Onf14NetworkElementFactory;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.Onf14DomNetworkElementFactory;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DevicemanagerQNames;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.Capabilities;
 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor;
-import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer;
-import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.ControlConstruct;
 
 public class TestOnf14NetworkElementFactory extends Mockito {
 
@@ -47,17 +45,9 @@
     private static ConfigurationFileRepresentation configurationRepresentation;
     private static String filename = "test.properties";
 
-    // @formatter:off
-    private static final String TESTCONFIG_CONTENT = "[dmonf14]\n"
-            + "useDomApi=true\n"
-            + "";
-    // @formatter:on
-
-
+  
     @BeforeClass
     public static void init() throws InterruptedException, IOException {
-        Files.asCharSink(new File(filename), StandardCharsets.UTF_8).write(TESTCONFIG_CONTENT);
-        configurationRepresentation = new ConfigurationFileRepresentation(filename);
         capabilities = mock(Capabilities.class);
         accessor = mock(NetconfAccessor.class);
         domAccessor = Optional.of(mock(NetconfDomAccessor.class));
@@ -65,32 +55,24 @@
 
         when(accessor.getCapabilites()).thenReturn(capabilities);
         when(serviceProvider.getDataProvider()).thenReturn(mock(DataProvider.class));
-        when(serviceProvider.getConfigurationFileRepresentation()).thenReturn(configurationRepresentation);
+        when(serviceProvider.getFaultService()).thenReturn(mock(FaultService.class));
+     
     }
 
     @Test
     public void testCreateOnf14Dom() throws Exception {
-        when(accessor.getCapabilites().isSupportingNamespace(ControlConstruct.QNAME)).thenReturn(true);
+        when(accessor.getCapabilites().isSupportingNamespace(Onf14DevicemanagerQNames.CORE_MODEL_CONTROL_CONSTRUCT_CONTAINER)).thenReturn(true);
         when(accessor.getNetconfDomAccessor()).thenReturn(domAccessor);
-        when(domAccessor.get().getBindingNormalizedNodeSerializer()).thenReturn(mock(BindingNormalizedNodeSerializer.class));
-        Onf14NetworkElementFactory factory = new Onf14NetworkElementFactory();
+        Onf14DomNetworkElementFactory factory = new Onf14DomNetworkElementFactory();
         factory.init(serviceProvider);
         assertTrue((factory.create(accessor, serviceProvider)).isPresent());
     }
 
     @Test
-    public void testCreateOnf14Binding() throws Exception {
-        when(accessor.getCapabilites().isSupportingNamespace(ControlConstruct.QNAME)).thenReturn(true);
-        when(accessor.getNetconfBindingAccessor()).thenReturn(Optional.of(mock(NetconfBindingAccessor.class)));
-        Onf14NetworkElementFactory factory = new Onf14NetworkElementFactory();
-        assertTrue(factory.create(accessor, serviceProvider).isPresent());
-    }
-
-    @Test
     public void testCreateNone() throws Exception {
         when(accessor.getNetconfBindingAccessor()).thenReturn(Optional.of(mock(NetconfBindingAccessor.class)));
-        when(accessor.getCapabilites().isSupportingNamespace(ControlConstruct.QNAME)).thenReturn(false);
-        Onf14NetworkElementFactory factory = new Onf14NetworkElementFactory();
+        when(accessor.getCapabilites().isSupportingNamespace(Onf14DevicemanagerQNames.CORE_MODEL_CONTROL_CONSTRUCT_CONTAINER)).thenReturn(false);
+        Onf14DomNetworkElementFactory factory = new Onf14DomNetworkElementFactory();
         assertTrue(factory.create(accessor, serviceProvider).isEmpty());
     }
 
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14ToInternalDataModel2.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14ToInternalDataModel2.java
new file mode 100644
index 0000000..0909829
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14ToInternalDataModel2.java
@@ -0,0 +1,93 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2022 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom;
+
+import static org.junit.Assert.assertEquals;
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import javax.xml.stream.XMLStreamException;
+import org.junit.After;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.dataprovider.Onf14DomToInternalDataModel;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DevicemanagerQNames;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.util.Onf14DomTestUtils;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
+import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
+import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
+import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
+import org.xml.sax.SAXException;
+
+public class TestOnf14ToInternalDataModel2 extends Mockito {
+
+    private static NodeId nodeId;
+
+    @BeforeClass
+    public static void init() {
+        nodeId = mock(NodeId.class);
+    }
+
+    @After
+    public void cleanUp() {
+        Onf14DomTestUtils.cleanup();
+    }
+
+    @Test
+    public void testWithNormalizedNodeFromJson() throws IOException, URISyntaxException {
+
+        Onf14DomToInternalDataModel model = new Onf14DomToInternalDataModel();
+
+        ContainerNode cn = (ContainerNode) Onf14DomTestUtils.getNormalizedNodeFromJson();
+        MapNode equipmentMap =
+                (MapNode) cn.getChildByArg(new NodeIdentifier(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT));
+        List<Inventory> inventoryList = new ArrayList<Inventory>();
+
+        Collection<MapEntryNode> containerMapEntries = equipmentMap.body();
+        for (MapEntryNode mapEntryNode : containerMapEntries) {
+            inventoryList.add(model.getInternalEquipment(new NodeId("nSky"), mapEntryNode, null, 0));
+        }
+        assertEquals("All elements", 1, inventoryList.size());
+
+    }
+
+    @Test
+    public void testWithNormalizedNodeFromXML()
+            throws IOException, URISyntaxException, XMLStreamException, SAXException {
+
+        Onf14DomToInternalDataModel model = new Onf14DomToInternalDataModel();
+
+        ContainerNode cn = (ContainerNode) Onf14DomTestUtils.getNormalizedNodeFromXML();
+        MapNode equipmentMap =
+                (MapNode) cn.getChildByArg(new NodeIdentifier(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT));
+        List<Inventory> inventoryList = new ArrayList<Inventory>();
+
+        Collection<MapEntryNode> containerMapEntries = equipmentMap.body();
+        for (MapEntryNode mapEntryNode : containerMapEntries) {
+            inventoryList.add(model.getInternalEquipment(new NodeId("nSky"), mapEntryNode, null, 0));
+        }
+        assertEquals("All elements", 1, inventoryList.size());
+
+    }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/util/NetconfDeviceNotification.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/util/NetconfDeviceNotification.java
new file mode 100644
index 0000000..c12ca4a
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/util/NetconfDeviceNotification.java
@@ -0,0 +1,40 @@
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.util;
+
+import java.time.Instant;
+import org.opendaylight.mdsal.dom.api.DOMEvent;
+import org.opendaylight.mdsal.dom.api.DOMNotification;
+import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
+
+public class NetconfDeviceNotification implements DOMNotification, DOMEvent {
+    private final ContainerNode content;
+    private final Absolute schemaPath;
+    private final Instant eventTime;
+
+    public NetconfDeviceNotification(final ContainerNode content, final Instant eventTime) {
+        this.content = content;
+        this.eventTime = eventTime;
+        this.schemaPath = Absolute.of(content.getIdentifier().getNodeType());
+    }
+
+    NetconfDeviceNotification(final ContainerNode content, final Absolute schemaPath, final Instant eventTime) {
+        this.content = content;
+        this.eventTime = eventTime;
+        this.schemaPath = schemaPath;
+    }
+
+    @Override
+    public Absolute getType() {
+        return schemaPath;
+    }
+
+    @Override
+    public ContainerNode getBody() {
+        return content;
+    }
+
+    @Override
+    public Instant getEventInstant() {
+        return eventTime;
+    }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/util/Onf14DomTestUtils.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/util/Onf14DomTestUtils.java
new file mode 100644
index 0000000..6dc9b50
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/util/Onf14DomTestUtils.java
@@ -0,0 +1,132 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2021 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.util;
+
+import com.google.gson.stream.JsonReader;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.StringReader;
+import java.net.URISyntaxException;
+import java.nio.charset.StandardCharsets;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import org.opendaylight.yangtools.util.xml.UntrustedXML;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
+import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
+import org.opendaylight.yangtools.yang.data.codec.gson.JSONCodecFactory;
+import org.opendaylight.yangtools.yang.data.codec.gson.JSONCodecFactorySupplier;
+import org.opendaylight.yangtools.yang.data.codec.gson.JsonParserStream;
+import org.opendaylight.yangtools.yang.data.codec.xml.XmlParserStream;
+import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter;
+import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeResult;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
+import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.Inference;
+//import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.Inference; //Yangtool 8.0
+import org.xml.sax.SAXException;
+
+public class Onf14DomTestUtils {
+
+    private static final QNameModule CORE_MODEL_1_4_MODULE =
+            QNameModule.create(XMLNamespace.of("urn:onf:yang:core-model-1-4"), Revision.of("2019-11-27"));
+    private static final QName CORE_MODEL_CONTROL_CONSTRUCT_CONTAINER =
+            QName.create(CORE_MODEL_1_4_MODULE, "control-construct");
+
+    private static EffectiveModelContext schemaContext;
+    private static Inference hwContainerSchema;
+    static JSONCodecFactory lhotkaCodecFactory;
+    private static String streamAsString;
+    private static NormalizedNode transformedInput;
+
+    public static void cleanup() {
+        lhotkaCodecFactory = null;
+        schemaContext = null;
+        hwContainerSchema = null;
+    }
+
+    static String loadTextFile(final File file) throws IOException {
+        final StringBuilder result = new StringBuilder();
+        try (BufferedReader bufReader = new BufferedReader(new FileReader(file, StandardCharsets.UTF_8))) {
+            String line = null;
+            while ((line = bufReader.readLine()) != null) {
+                result.append(line);
+            }
+        }
+        return result.toString();
+    }
+
+
+    public static NormalizedNode getNormalizedNodeFromJson() throws IOException, URISyntaxException {
+        schemaContext = YangParserTestUtils.parseYangResourceDirectory("/");
+        lhotkaCodecFactory = JSONCodecFactorySupplier.DRAFT_LHOTKA_NETMOD_YANG_JSON_02.getShared(schemaContext);
+        streamAsString =
+                loadTextFile(new File(Onf14DomTestUtils.class.getResource("/ControlConstruct-data-test.json").toURI()));
+        final JsonReader reader = new JsonReader(new StringReader(streamAsString));
+
+        NormalizedNodeResult result = new NormalizedNodeResult();
+
+        // StreamWriter which attaches NormalizedNode under parent
+        final NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result);
+
+        // JSON -> StreamWriter parser
+        try (JsonParserStream handler = JsonParserStream.create(streamWriter, lhotkaCodecFactory)) {
+            handler.parse(new JsonReader(new StringReader(streamAsString)));
+        }
+
+        // Finally build the node
+        transformedInput = result.getResult();
+        return transformedInput;
+    }
+
+    public static NormalizedNode getNormalizedNodeFromXML()
+            throws XMLStreamException, URISyntaxException, IOException, SAXException {
+        schemaContext = YangParserTestUtils.parseYangResourceDirectory("/");
+        hwContainerSchema = Inference.ofDataTreePath(schemaContext, CORE_MODEL_CONTROL_CONSTRUCT_CONTAINER);
+        final InputStream resourceAsStream =
+                Onf14DomTestUtils.class.getResourceAsStream("/ControlConstruct-data-test.xml");
+
+        /*
+         * final XMLInputFactory factory = XMLInputFactory.newInstance();
+         * XMLStreamReader reader = factory.createXMLStreamReader(resourceAsStream);
+         */
+        final XMLStreamReader reader = UntrustedXML.createXMLStreamReader(resourceAsStream);
+
+        final NormalizedNodeResult result = new NormalizedNodeResult();
+        final NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result);
+
+        final XmlParserStream xmlParser = XmlParserStream.create(streamWriter, hwContainerSchema);
+        xmlParser.parse(reader);
+
+        xmlParser.flush();
+        xmlParser.close();
+
+        transformedInput = result.getResult();
+        return transformedInput;
+    }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/util/YangParserTestUtils.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/util/YangParserTestUtils.java
new file mode 100644
index 0000000..2f8c835
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/util/YangParserTestUtils.java
@@ -0,0 +1,380 @@
+/*
+ * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.util;
+
+import com.google.common.annotations.Beta;
+import java.io.File;
+import java.io.FileFilter;
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Locale;
+import java.util.ServiceLoader;
+import java.util.Set;
+import java.util.stream.Collectors;
+import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.common.YangConstants;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
+import org.opendaylight.yangtools.yang.parser.api.YangParser;
+import org.opendaylight.yangtools.yang.parser.api.YangParserConfiguration;
+import org.opendaylight.yangtools.yang.parser.api.YangParserException;
+import org.opendaylight.yangtools.yang.parser.api.YangParserFactory;
+import org.opendaylight.yangtools.yang.parser.api.YangSyntaxErrorException;
+import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceRepresentation;
+import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+
+/**
+ * Utility class which provides convenience methods for producing effective schema context based on the supplied
+ * yang/yin sources or paths to these sources.
+ */
+@Beta
+public final class YangParserTestUtils {
+
+    private static final FileFilter YANG_FILE_FILTER = file -> {
+        // Locale keeps SpotBugs happy. It should not matter that much anyway.
+        final String name = file.getName().toLowerCase(Locale.ENGLISH);
+        return name.endsWith(YangConstants.RFC6020_YANG_FILE_EXTENSION) && file.isFile();
+    };
+
+    private static final @NonNull YangParserFactory PARSER_FACTORY;
+
+    static {
+        final Iterator<@NonNull YangParserFactory> it = ServiceLoader.load(YangParserFactory.class).iterator();
+        if (!it.hasNext()) {
+            throw new IllegalStateException("No YangParserFactory found");
+        }
+        PARSER_FACTORY = it.next();
+    }
+
+    private YangParserTestUtils() {
+        // Hidden on purpose
+    }
+
+    /**
+     * Creates a new effective schema context containing the specified YANG source. Statement parser mode is set to
+     * default mode and all YANG features are supported.
+     *
+     * @param resource relative path to the YANG file to be parsed
+     *
+     * @return effective schema context
+     */
+    public static EffectiveModelContext parseYangResource(final String resource) {
+        return parseYangResource(resource, YangParserConfiguration.DEFAULT);
+    }
+
+    /**
+     * Creates a new effective schema context containing the specified YANG source. All YANG features are supported.
+     *
+     * @param resource relative path to the YANG file to be parsed
+     * @param parserMode mode of statement parser
+     * @return effective schema context
+     */
+    public static EffectiveModelContext parseYangResource(final String resource, final YangParserConfiguration config) {
+        return parseYangResource(resource, config, null);
+    }
+
+    /**
+     * Creates a new effective schema context containing the specified YANG source. Statement parser mode is set to
+     * default mode.
+     *
+     * @param resource relative path to the YANG file to be parsed
+     * @param supportedFeatures set of supported features based on which all if-feature statements in the parsed YANG
+     *                          model are resolved
+     * @return effective schema context
+     */
+    public static EffectiveModelContext parseYangResource(final String resource, final Set<QName> supportedFeatures) {
+        return parseYangResource(resource, YangParserConfiguration.DEFAULT, supportedFeatures);
+    }
+
+    /**
+     * Creates a new effective schema context containing the specified YANG source.
+     *
+     * @param resource relative path to the YANG file to be parsed
+     * @param supportedFeatures set of supported features based on which all if-feature statements in the parsed YANG
+     *                          model are resolved
+     * @param parserMode mode of statement parser
+     * @return effective schema context
+     */
+    public static EffectiveModelContext parseYangResource(final String resource, final YangParserConfiguration config,
+            final Set<QName> supportedFeatures) {
+        final YangTextSchemaSource source = YangTextSchemaSource.forResource(YangParserTestUtils.class, resource);
+        return parseYangSources(config, supportedFeatures, source);
+    }
+
+    /**
+     * Creates a new effective schema context containing the specified YANG sources. Statement parser mode is set to
+     * default mode and all YANG features are supported.
+     *
+     * @param files YANG files to be parsed
+     * @return effective schema context
+     */
+    public static EffectiveModelContext parseYangFiles(final File... files) {
+        return parseYangFiles(Arrays.asList(files));
+    }
+
+    /**
+     * Creates a new effective schema context containing the specified YANG sources. Statement parser mode is set to
+     * default mode and all YANG features are supported.
+     *
+     * @param files collection of YANG files to be parsed
+     * @return effective schema context
+     */
+    public static EffectiveModelContext parseYangFiles(final Collection<File> files) {
+        return parseYangFiles(YangParserConfiguration.DEFAULT, files);
+    }
+
+    /**
+     * Creates a new effective schema context containing the specified YANG sources. Statement parser mode is set to
+     * default mode.
+     *
+     * @param supportedFeatures set of supported features based on which all if-feature statements in the parsed YANG
+     *                          models are resolved
+     * @param files YANG files to be parsed
+     * @return effective schema context
+     */
+    public static EffectiveModelContext parseYangFiles(final Set<QName> supportedFeatures, final File... files) {
+        return parseYangFiles(supportedFeatures, Arrays.asList(files));
+    }
+
+    public static EffectiveModelContext parseYangFiles(final Set<QName> supportedFeatures,
+            final Collection<File> files) {
+        return parseYangFiles(supportedFeatures, YangParserConfiguration.DEFAULT, files);
+    }
+
+    /**
+     * Creates a new effective schema context containing the specified YANG sources. All YANG features are supported.
+     *
+     * @param parserMode mode of statement parser
+     * @param files YANG files to be parsed
+     * @return effective schema context
+     */
+    public static EffectiveModelContext parseYangFiles(final YangParserConfiguration config, final File... files) {
+        return parseYangFiles(config, Arrays.asList(files));
+    }
+
+    /**
+     * Creates a new effective schema context containing the specified YANG sources. All YANG features are supported.
+     *
+     * @param parserMode mode of statement parser
+     * @param files collection of YANG files to be parsed
+     * @return effective schema context
+     */
+    public static EffectiveModelContext parseYangFiles(final YangParserConfiguration config,
+            final Collection<File> files) {
+        return parseYangFiles(null, config, files);
+    }
+
+    /**
+     * Creates a new effective schema context containing the specified YANG sources.
+     *
+     * @param supportedFeatures set of supported features based on which all if-feature statements in the parsed YANG
+     *                          models are resolved
+     * @param parserMode mode of statement parser
+     * @param files YANG files to be parsed
+     * @return effective schema context
+     */
+    public static EffectiveModelContext parseYangFiles(final Set<QName> supportedFeatures,
+    		final YangParserConfiguration config, final File... files) {
+        return parseYangFiles(supportedFeatures, config, Arrays.asList(files));
+    }
+
+    /**
+     * Creates a new effective schema context containing the specified YANG sources.
+     *
+     * @param supportedFeatures set of supported features based on which all if-feature statements in the parsed YANG
+     *                          models are resolved
+     * @param parserMode mode of statement parser
+     * @param files YANG files to be parsed
+     * @return effective schema context
+     */
+    public static EffectiveModelContext parseYangFiles(final Set<QName> supportedFeatures,
+    		final YangParserConfiguration config, final Collection<File> files) {
+        return parseSources(config, supportedFeatures,
+            files.stream().map(YangTextSchemaSource::forFile).collect(Collectors.toList()));
+    }
+
+    /**
+     * Creates a new effective schema context containing the specified YANG sources. Statement parser mode is set to
+     * default mode and all YANG features are supported.
+     *
+     * @param resourcePath relative path to the directory with YANG files to be parsed
+     * @return effective schema context
+     */
+    public static EffectiveModelContext parseYangResourceDirectory(final String resourcePath) {
+        return parseYangResourceDirectory(resourcePath, YangParserConfiguration.DEFAULT);
+    }
+
+    /**
+     * Creates a new effective schema context containing the specified YANG sources. All YANG features are supported.
+     *
+     * @param resourcePath relative path to the directory with YANG files to be parsed
+     * @param parserMode mode of statement parser
+     * @return effective schema context
+     */
+    public static EffectiveModelContext parseYangResourceDirectory(final String resourcePath,
+    		final YangParserConfiguration config) {
+        return parseYangResourceDirectory(resourcePath, null, config);
+    }
+
+    /**
+     * Creates a new effective schema context containing the specified YANG sources. Statement parser mode is set to
+     * default mode.
+     *
+     * @param resourcePath relative path to the directory with YANG files to be parsed
+     * @param supportedFeatures set of supported features based on which all if-feature statements in the parsed YANG
+     *                          models are resolved
+     * @return effective schema context
+     */
+    public static EffectiveModelContext parseYangResourceDirectory(final String resourcePath,
+            final Set<QName> supportedFeatures) {
+        return parseYangResourceDirectory(resourcePath, supportedFeatures, YangParserConfiguration.DEFAULT);
+    }
+
+    /**
+     * Creates a new effective schema context containing the specified YANG sources.
+     *
+     * @param resourcePath relative path to the directory with YANG files to be parsed
+     * @param supportedFeatures set of supported features based on which all if-feature statements in the parsed YANG
+     *                          models are resolved
+     * @param parserMode mode of statement parser
+     * @return effective schema context
+     */
+    @SuppressFBWarnings(value = "NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE", justification = "Wrong inferent on listFiles")
+    public static EffectiveModelContext parseYangResourceDirectory(final String resourcePath,
+            final Set<QName> supportedFeatures, final YangParserConfiguration config) {
+        final URI directoryPath;
+        try {
+            directoryPath = YangParserTestUtils.class.getResource(resourcePath).toURI();
+        } catch (URISyntaxException e) {
+            throw new IllegalArgumentException("Failed to open resource " + resourcePath, e);
+        }
+        return parseYangFiles(supportedFeatures, config, new File(directoryPath).listFiles(YANG_FILE_FILTER));
+    }
+
+    /**
+     * Creates a new effective schema context containing the specified YANG sources. Statement parser mode is set to
+     * default mode and all YANG features are supported.
+     *
+     * @param clazz Resource lookup base
+     * @param resources Resource names to be looked up
+     * @return effective schema context
+     */
+    public static EffectiveModelContext parseYangResources(final Class<?> clazz, final String... resources) {
+        return parseYangResources(clazz, Arrays.asList(resources));
+    }
+
+    public static EffectiveModelContext parseYangResources(final Class<?> clazz, final Collection<String> resources) {
+        final List<YangTextSchemaSource> sources = new ArrayList<>(resources.size());
+        for (final String r : resources) {
+            sources.add(YangTextSchemaSource.forResource(clazz, r));
+        }
+        return parseSources(YangParserConfiguration.DEFAULT, null, sources);
+    }
+
+    /**
+     * Creates a new effective schema context containing the specified YANG sources. Statement parser mode is set to
+     * default mode.
+     *
+     * @param yangDirs relative paths to the directories containing YANG files to be parsed
+     * @param yangFiles relative paths to the YANG files to be parsed
+     * @param supportedFeatures set of supported features based on which all if-feature statements in the parsed YANG
+     *                          models are resolved
+     * @return effective schema context
+     */
+    public static EffectiveModelContext parseYangResources(final List<String> yangDirs, final List<String> yangFiles,
+            final Set<QName> supportedFeatures) {
+        return parseYangResources(yangDirs, yangFiles, supportedFeatures, YangParserConfiguration.DEFAULT);
+    }
+
+    /**
+     * Creates a new effective schema context containing the specified YANG sources. All YANG features are supported.
+     *
+     * @param yangResourceDirs relative paths to the directories containing YANG files to be parsed
+     * @param yangResources relative paths to the YANG files to be parsed
+     * @param statementParserMode mode of statement parser
+     * @return effective schema context
+     */
+    public static EffectiveModelContext parseYangResources(final List<String> yangResourceDirs,
+            final List<String> yangResources, final YangParserConfiguration config) {
+        return parseYangResources(yangResourceDirs, yangResources, null, config);
+    }
+
+    /**
+     * Creates a new effective schema context containing the specified YANG sources.
+     *
+     * @param yangResourceDirs relative paths to the directories containing YANG files to be parsed
+     * @param yangResources relative paths to the YANG files to be parsed
+     * @param supportedFeatures set of supported features based on which all if-feature statements in the parsed YANG
+     *                          models are resolved
+     * @param statementParserMode mode of statement parser
+     * @return effective schema context
+     */
+    public static EffectiveModelContext parseYangResources(final List<String> yangResourceDirs,
+            final List<String> yangResources, final Set<QName> supportedFeatures,
+            final YangParserConfiguration config) {
+        final List<File> allYangFiles = new ArrayList<>();
+        for (final String yangDir : yangResourceDirs) {
+            allYangFiles.addAll(getYangFiles(yangDir));
+        }
+
+        for (final String yangFile : yangResources) {
+            try {
+                allYangFiles.add(new File(YangParserTestUtils.class.getResource(yangFile).toURI()));
+            } catch (URISyntaxException e) {
+                throw new IllegalArgumentException("Invalid resource " + yangFile, e);
+            }
+        }
+
+        return parseYangFiles(supportedFeatures, config, allYangFiles);
+    }
+
+    public static EffectiveModelContext parseYangSources(final YangParserConfiguration config,
+            final Set<QName> supportedFeatures, final YangTextSchemaSource... sources) {
+        return parseSources(config, supportedFeatures, Arrays.asList(sources));
+    }
+
+    public static EffectiveModelContext parseSources(final YangParserConfiguration config,
+            final Set<QName> supportedFeatures, final Collection<? extends SchemaSourceRepresentation> sources) {
+        final YangParser parser = PARSER_FACTORY.createParser(config);
+        if (supportedFeatures != null) {
+            parser.setSupportedFeatures(supportedFeatures);
+        }
+
+        try {
+            parser.addSources(sources);
+        } catch (YangSyntaxErrorException e) {
+            throw new IllegalArgumentException("Malformed source", e);
+        } catch (IOException e) {
+            throw new IllegalArgumentException("Failed to read a source", e);
+        }
+
+        try {
+            return parser.buildEffectiveModel();
+        } catch (YangParserException e) {
+            throw new IllegalStateException("Failed to assemble SchemaContext", e);
+        }
+    }
+
+    @SuppressFBWarnings(value = "NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE", justification = "Wrong inferent on listFiles")
+    private static Collection<File> getYangFiles(final String resourcePath) {
+        final URI directoryPath;
+        try {
+            directoryPath = YangParserTestUtils.class.getResource(resourcePath).toURI();
+        } catch (URISyntaxException e) {
+            throw new IllegalArgumentException("Failed to open resource directory " + resourcePath, e);
+        }
+        return Arrays.asList(new File(directoryPath).listFiles(YANG_FILE_FILTER));
+    }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/ControlConstruct-data-test.json b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/ControlConstruct-data-test.json
new file mode 100644
index 0000000..28ee95a
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/ControlConstruct-data-test.json
@@ -0,0 +1,24298 @@
+{
+    "core-model-1-4:control-construct": {
+        "uuid": "8abce474-8da2-a540-b219-2a012779b195",
+        "equipment": [
+            {
+                "uuid": "c942beda-266b-a670-ca1b-e78a3653775b",
+                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                "name": [
+                    {
+                        "value-name": "i76q6kFWyyFWXeHzFcEXII16sPxy2S0lZZDYbjMKRrGGFnfdzT29C38WLxu",
+                        "value": "qm0hdE7pPT9ydHeKXmPofRyJVyxy51lngeFtKEKzqL7Dtdfqz5OHWeiJEQhKRvZZJwltb5UBRT6c6luyqaffpxY3fgF7LxYm"
+                    }
+                ],
+                "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                "contained-holder": [
+                    {
+                        "local-id": "69eIK8tns8xHGAn1rcbfpyeG8mPVkierrs1btuqVuQu3qR4JV7YkFdTFrIBM0P5ja6mDtNqXvVSNEOxsVn",
+                        "expected-holder": {
+                            "environmental-rating": {
+                                "power-rating": {
+                                    "power-rating-name": "WRmN0Z6ISdWZ4ApBJP6Y0S31Jvb",
+                                    "power-rating-value": "jcZ7VdMNcToX6cO2M5wnUClNngO6M0W54V509RNdC32B"
+                                },
+                                "humidity-rating": "Qv2V1hIwDvLTbJx3Fv8tA0ujFHWJKpYsUSgOaYcFlXqwyYAetAz3s3e7K2QmrHHezPUJF6g0VHotFQz8q83Sb9SOcA2vhBJJqvk5tBXoieKX4jXnkS7v1ZbdA6JJHkk8IF5bgVAq9cfdv4APWIdXzg31mEL4Q54yC9KKWca5opbLtDthdG7NW2OjGrfopjXTszEhDOmT6pEr37J8FIVuKCNqV2OcdD6F4KWHqbAos7",
+                                "thermal-rating": {
+                                    "maximum-temperature": "6058108260670861.0",
+                                    "minimum-temperature": "-4624397495984346.0",
+                                    "thermal-rating-name": "oKFD46bC2JaI4kAeHPNGSoKNFTOJZxVfhsTez4ItFS4B4EPLmCs6T4LyXziP654gqPuZL4krXo2TVKFheZf730GSzQzxNwNdl947ehq3FkWs4tBbsQinQQghyPPmdCrzMoySFYVcaRF7d8iFZs3Pbb7JSWX6qhx4F5WcVJoXtV4G4el3zgKKjJl4xj2YAzU7wRjrsHgVvlBzrPu05eKhY6lnhnlJO8QkZ9DjQTfd6QMyF8yDnbMd9ZAie"
+                                }
+                            },
+                            "spatial-properties-of-type": {
+                                "height": "zxCFbasbrFG5HtXrjnkZwYcj7nAmAni9VVOYXg1gVHdv3aWmx8lV7x6eUHsm4KwRxkImtJugjHLmJzI9I34Ps33eKnBGZ7qpj0LEJgVUPGgz8QAQLwF5zAkbXNSOMad5aZCT7xGO5WfdFP3qmAwV2I7ZvRGh1Te3KQWJfuydjNqYDmgZWEMZmLQJCw0vi7y2P",
+                                "width": "MXRcaaZA0uOhlLV0CaLkTgJML1LcVArzpiLzlD2l",
+                                "length": "Quttit5s6ilm1Z02K4PdvpCNac0N6eNWI8q0tnkzxGWyxOsiSivnzZ2J33p9946R"
+                            },
+                            "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                            "name": [
+                                {
+                                    "value-name": "9nnmA3rKb0e4Uu6m632P62p4jT2w2ztbOQppTJ1WBfSvBYSA1Mh0OG47zYwBqZFeHWvAFwphDhEfgoP9a61ZE5654uHmleA2a6vIuUZ83Dnj24l4am3Os2ToosKKycMBahjF3aF7NUqHYDE",
+                                    "value": "0HGkBrA0UcKkooVrGe6"
+                                }
+                            ],
+                            "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                            "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE",
+                            "extension": [
+                                {
+                                    "value-name": "WPzxDTd2GtHB0hES06Yc2N5h5F7Lx2ulJ3SfO6hnrYYr7ub7A1cvO9MLOLoeNTzpOkEviVSJLQ3TdeSNg4iWeWI2H68nRIMG2q3cdVVYDYJQ5CElyO9MDRHkQPzHplfjDivQ5jHJhqzm25zBMJfpsOBawbKNoZ72auSfNzY5SqjUnTn9uvqO",
+                                    "value": "2ZH5JntAuvKQg0EHQBz8MmwxBx16"
+                                }
+                            ],
+                            "position": {
+                                "relative-position": "v6jEM1rgLVV3RPJ32n1zjDo1WrtkTs2hzdNdeetZ2g2TXEOZ1IqclGdh7zu11oaACXNQ38I"
+                            },
+                            "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY",
+                            "local-id": "gF",
+                            "label": [
+                                {
+                                    "value-name": "oDQ4x9DnMhnER3YkuycgKWB1dosLvqmT35PselPSu4pl7nytOKKqzdjMBLx63TSYYzq4U7PhbeCat2EhNoAmtT8WxxVAiFzheRd1Z2i2gMdKPRTC7lQAfYoMnjeFYNO5x26o4gqdUvPBmA5lWVN3LcP8",
+                                    "value": "3OmJurgwpEtxWyrsf3GP82L4POH1vQprwLa04iptWS0KijcxmTmnN0jCG0w4INv6qx7uPoXD8Xnq8sXvdbK033uKV0GwFbC5AJzp7oU7d9xmBmROytOBobdb3THJWkOwVgNVEz2SJAecWX1miHQGS3"
+                                }
+                            ],
+                            "holder-structure": {
+                                "holder-category": "core-model-1-4:HOLDER_CATEGORY_SLOT",
+                                "is-guided": false,
+                                "is-captive": false,
+                                "is-quantised-space": false
+                            },
+                            "address": [
+                                "RXi6iSAOvj4nXDdqdeczKK29D97ljR22Ok975BNAUJXJm29rgeS0YV2t49Pf1J9HWaG1MlByWqabsjCJpvBfqDJmFqty9u75FGYj1rRQR11cdDVC0oSiUtErTZZ2uY01EYkyi3g9Xh"
+                            ]
+                        },
+                        "occupying-fru": "c942beda-266b-a670-ca1b-e78a3653775b",
+                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                        "name": [
+                            {
+                                "value-name": "ssx8U8By0qvksBy54doUIbEwHtV9g",
+                                "value": "OJDdJplkXeCsy5V62SciEUtii3DdcUoSv1Yeibyfp2zX7mW2e0kSUO3dRyiVsGGPzE3RPtYfwp4vMSx0SSLNGGSpeaczJSoiwk2eN0tbipH4ie426HPEfzVuK83l0jDpDxDjq6mIn3MFaII8ipFxZs1BAWWt8rSDRnOhlbZI6Do8dY9vfO36gWHJLvcLPWoGj5PEg"
+                            }
+                        ],
+                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK",
+                        "extension": [
+                            {
+                                "value-name": "OqycqBBcrnx092qKYVCxFI75HT1UTkMACkEUN76euEeDyEowsSVZsVX9OQ3A3I2F2GAIOyWi43ODz411WPTgKQiqGdSJVUhQBJyhhmzmhfRRjSKfzDojlGK2TuDPpUFSv59NrA1JQSs9Cch4IFn3lZX6utVLfsDLxEqZ6rIWb2YFe7JOMZKZYz5k215alAN",
+                                "value": "edSlws9zu7eAeQpSP1RFAP0vIXx3ykWMxGZV09uu8A5fqm77fRNPyFcgCJb238PsGGnHHJbQk85Km4KBNxjl4vtG7FJaNqvlYK2Gu6oOelqtpa45zfqDLUcSrNU65hr32uBwAZcGkC9CF6H6lZCYLOIctviqMKtOe5cGWomhTwTquswHr8GdOgp9LAzqk36q0j6OHs5sQQScipUKpsPeI6nmGXM0SS"
+                            }
+                        ],
+                        "actual-holder": {
+                            "environmental-rating": {
+                                "power-rating": {
+                                    "power-rating-name": "TSpoDFvU2g96tmW",
+                                    "power-rating-value": "kqHY02YmgmzyAj9l3yJy56k0mm6PAV7UdGK5ABrQX0hxcqS7QuGVASVXeUEPHDBUcmZMXqvMjMcv44uUq2P1VDQ1pmIY0kS4yJQv9l9k7lPbic5IeN"
+                                },
+                                "humidity-rating": "9ijbzGTxy5hCD0k01GamFv3RNfOoutZvDjG4RsthpKL3C5VEL5SjtV283QwpcwUHHtMqVfHcSk7up3030KmlyouB600aoUSXfwn2DWfv8mSyhKtavHv3XZw3So68aQYqedsRaHfi47IdJ3n6KT9HKxDuVBv6rtwFGYoIGDTCCBHex5",
+                                "thermal-rating": {
+                                    "maximum-temperature": "-9192647172244746.0",
+                                    "minimum-temperature": "-4767478425937178.0",
+                                    "thermal-rating-name": "bsNCRx30IYF4AiNBatfSz3Y7DAwZNNqZ75tQCwQkmvoOF4pHxwA6sy550B4OgmFfr0X3wNgSawGHAYp7uZ5WpbUqEY6NdD2ED0I9FQTImrpXpG4MF2AX5ufJllwyYrctjMCQCvyRWQOewK04EsTJX8talRIbiMEBr8k3DSMrAAxZdpVRSOBHWWR9NrkY5Yrw6LsBweU6HkXUJSDtG6au2TvIcPGiF7ODTg6hvTn4ddYW5tqEAs0uewcq"
+                                }
+                            },
+                            "spatial-properties-of-type": {
+                                "height": "2U8ENpo5bJCCCBtxXrpYYfioxmEHbVUdH3Rmk8svR47mxsLvTatJpEZP0Do3qig0d7mx7GURK15ilQF708QhMQ6ElmHEFXwKXKaWr4F3YKljs0qk19CFZAccXLIuBeeqZoeilUljwzCZr3js4N03g475PIzqWFINWXXhRjAnS4ejZyE3lwYBA6GpG7IuNqaJn7S6qsmaoAmo80rmoqXYown4DXqioATDILC05YbuypSzhbVFtKDJ",
+                                "width": "SFEQ6W6GIJo",
+                                "length": "dh"
+                            },
+                            "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                            "name": [
+                                {
+                                    "value-name": "ZZnUlg6HvQkx1x106xEjZNfAftn0Km3Jdiwyzu7Wksml",
+                                    "value": "neXMS8Dxo5FJsFlOAW1SsAjXHg91Cv1RJQDtZ81fdyQGdbuF7opsQJhpRqrlNs4oaHS1HLgUj6Ao9X39dkB3VKsM2TZQd3eoCYpjJy6UEGaGv5PIqqLl2604ZRU5V1tpZKJBiPvPny"
+                                }
+                            ],
+                            "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                            "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK",
+                            "extension": [
+                                {
+                                    "value-name": "ZKMc4Ho0aqFHD6RI2rNxNwGkK1g7j5TaHFnMfDMh4jYzhIhj95QOto15phdAn6L4E0QTDuaHO19XJqhKn7qJorOFJ1g60T2ELLpofrYVs",
+                                    "value": "T3p2FF16gpp458Yd6YY9uJUTZ1kPPFWAAeCgTve1VD5SEVXKTNTfwF0nzldoS1Ys7sA0XG1KkZuYUrAG6mNC1OSs15QTYOd68OY6mSQGRlwDEZbLlZfeF7HG4pz36M9es7"
+                                }
+                            ],
+                            "position": {
+                                "relative-position": "hQuRA1mXPXsVgNrNlh34PHXjbq1pX6K7W6QoZcdO1xJ9k2OGcRC1yzlCRm1HkLO8JEoJICxB99Km3q2fhEhI5ukOQlv2ZbaIPyjpaJ0cSCyN2s3c6cU3GeRorfqiqAT80cx3VqfFUNlPfg1dsN80TRgk6Gvp8ox0AW3oeiV95gQcw"
+                            },
+                            "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED",
+                            "local-id": "Qh9YB7w6wEm3FP0Id6T0fQhX3NGcE4umlvdPCJN9ga4VZWv43g4a7d821GexLALY5YNIItJYDFLuC8qxpmHwAPqtoE097D7cCNMcgn2L3N7xNp4cLLAlt0ORxGSEkRIOwn0MK2pFHocuNgzzU1Mn2t6r1YXlHF1eU1SFVacuypZmFqVrrzOt2MM4CJhkhjqbciI0sVu1klfRL2jdBZywElsg4JsdUSpZ",
+                            "label": [
+                                {
+                                    "value-name": "LDkt3C7hE59I40D9NEudvfO6xDueS2JDF3ZBxYKb3TM7Lh9r",
+                                    "value": "vEiKspaXToHV0ls3c3taFwdqic4zdvmJ9Flt4viP"
+                                }
+                            ],
+                            "holder-structure": {
+                                "holder-category": "core-model-1-4:HOLDER_CATEGORY_SLOT",
+                                "is-guided": false,
+                                "is-captive": true,
+                                "is-quantised-space": false
+                            },
+                            "address": [
+                                "AoM62LhFY8V4N2LlZbU2hz3vT2IAUTQu9CA3fKJ5KE9qyVLxYyr77muSpctbXjx6N0aUKTZmp0MPVyfL6GK53fXkjivht2f82h2E2T1rUNhHdwtb458ZkYjE8GNCJ2KDkNamybGsQXaWlv7hA8hV6s"
+                            ]
+                        },
+                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL",
+                        "holder-location": "Xy1G8MdV8bpfkN",
+                        "label": [
+                            {
+                                "value-name": "mebCnoswUIcPOsDo3gT7TA3a8efXSvv7JGB654uRMGyA13Y4cKc5c7flmuaeRydBePzbTW2xCs7DoYAAAMFMTNZ792m1AruOg301RUyufyZDwr565KKZpK6zMkAmM42UZUWRHmdWU4rqwwoB89syLr7xDzLhvNcmI05pmidhfEzL2QeaZzAC0z9v8UNvzRS9RXy58Den9O0bEeevN",
+                                "value": "7Fo8boUQUlHMvqJ3vRzK6Iq6M4d0r"
+                            }
+                        ],
+                        "address": [
+                            "DJw5reYExfy9w0QKAW0WDPAvzlGbg4BTFZZ7ePDDW3Es3u5"
+                        ]
+                    }
+                ],
+                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE",
+                "extension": [
+                    {
+                        "value-name": "WNLNfh4bUZ4pBHVMwv2rNHXr7yVoi59eSUUZ3Y3YP7fqHb45y6wmGtFNUA4cxdiqZch32kTRk8a1be6KduYTPDGJ6KVDP6VPidKdpD4JDeKPlIzycxr22ZD8CrMrxzgHM0UcvZV95yYq8pY",
+                        "value": "OhfQhKRTbvkA4tiRl4VJ3IS18IjhZiuNzJvIlmBxRO7O9hxumsdh2XibxCkoMO3dpzWKNphxdhlmySJMcO46MehbIBAuhDAG4orSNAhTRC7imQ4yF0EjfOmXhWkzsUfwaygX9xQ01YanG7Nl7kwe8TchHoQ9aYykwOhxm0"
+                    }
+                ],
+                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED",
+                "local-id": "AKXMmfqgjj2081f2XmP6b930tbKMFTnfDcTZsb8LvaDD3SF06mZhvUiR5UDCNSRi4CaoOi1jkFOoplgwH7F42XV7KqCxitQf60DMaF5ucLKB61ZN0FJ2uF2eXEE8ZmnXeSJoxGSBrDdpw4",
+                "is-field-replaceable": true,
+                "connector": [
+                    {
+                        "local-id": "07wpeqzDCeErNGQsYiiaCfzpi0iDsCNsCbRIBjm5pSw4q",
+                        "connector-type": "zv6v1FQLb87s9b",
+                        "orientation": "core-model-1-4:CONNECTOR_AND_PIN_ORIENTATION_FEMALE",
+                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                        "name": [
+                            {
+                                "value-name": "woxGy1VZq50AIs4oVGzEh3XD8mnxqNLOcivCjiCBoub6WgmJOWg5ZdA7sXwKDizPsWjE6Nfuhjt6rPHfLXdK3NKvDg7gqGXTugxB4E5dPqbggToTQBwTg8gToo1",
+                                "value": "4YAr7ZU3vR8liktqdRj3kHPBP5m6toNqefRleDgBupWMJq4W9gRuXG5NMrT7HGxWVgh1TyCoXr2yJ7uSflmcUjZGDKNkqdgdtq6fQJDF2xdLwzDLUSYG3PeGA21S79YAr4PhNkOPK1s8A6UnQK3TraAT4tMbuCDWGl5mFU3hNwqgucvkWqdfAF9E8NPvptr5OojlanDYTVen7Jz31MaCsjgs66Xvrgt7FMsP1XFUSL9ZmIUon50Hgg"
+                            }
+                        ],
+                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE",
+                        "extension": [
+                            {
+                                "value-name": "xvPsMJrn3DeWWtNl1tlOR2Ozg0q9kMvJ9dbNOvbS0hGWLuaEXnkPp0gF1GHdkcWmh096ncQnuwb7SlLQIXx8Y",
+                                "value": "FZdmcyr0UI0VOf8ECC3OBV9eDKb2S1Hx0VM4ld5fVX2K5agHEjvf7xtKhxN1ymqzhcvCpsJdiMPnO54thsAoR400BF112rAbwYGNqh0I3PXSN2d4mNkdJcdcS6eMpGXVEvJ5NBFIrvs6pF2LleQ4qV9a1nWq3MeIhXFWycFRH7X6FRJ05rWwm5GnsvGohU6qJDn9H21h1QfGIRyFivbFAKUVfA"
+                            }
+                        ],
+                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY",
+                        "connector": "ir7YPQ2fCxLcwxXGWBi5dKDbClLrh4dzvcqk2szxZcJnBy4y9mve60pId21u6fWCrmWmOoTFsu3427u3lZhsRy24B4qHbmbCI0YooJ4Q5ZM7Yg2j7bDYKGUdCdMNzYhaYgqeRmWXlJWjRZvZ28PEGCRiPwXomfqcnRqedebrP0KHZ7yTgnyWZh7OF451bndyevFkKQLrQn8HvGtLWTHN2GuILzJOWXn3s2n4K8wtvw205nD",
+                        "label": [
+                            {
+                                "value-name": "neZKF75MMS7uT41GPNHG9qtxFqxmGGnVUmysuD68ndu9awPZboFkO0Klq9HZP5UCjs4NYaOloiuyGbpRAWcgXWCf5beNg1pAtlfjv3FLe1bU5AMxxQNmEhBBlQoBRF3c0bwo639k4lf1NTycJeyfv2QQS7kBMfNFqb3xe4JbpYc5JLhkZIzmKi5Cph53wKAPWDe2IX5ZOi4pVeKUWb8Gt5aKmfOLZgANUGIuvNtj5q",
+                                "value": "0ElMswN00SaKfhq08HsWt0wXvjiHhAi96DWy9By1tAEARWs0vMOYMkNavYRMy9WxMK5NlwPG6l9YhBQNgwD2Ijcdh30H4WeQGcwTIdzGyIwHcmusK0msjrGAmy9ruo92sFNaSeQiXf01BmlemHGx8e7vM9W8pXaRDX1n4Jy1YqUsMfG1WeyXtykfH8o65qPAgIYkjodaO7Cseat2gUZJsjZ1rfZpFOZNoP7HdkR1jl"
+                            }
+                        ],
+                        "pin-layout": "dOjTa1wJKlyzAtUuQY6QmrdTu6QRJR0OxjIIc6jWrJo14anU0uCnVI8hOY1pH1e6cOGoUSceBA7GKvsLZX0MF0WlYXKxQQD2wcir4uFxXM5z9qc0ncNUcJf2yRzgA5i6hAxdW4KTJQtS8FTvKGpWhwZHnqXXn7WEzlJvqup9cK1khMH1kYYBuPaJ7",
+                        "role": "3ntP4na2dDo2O71NyoU3qzM3KUa44d87ACWEZYy4CW6qVZ5uoZpGzbJbYLgUYo1ySP4JGCNiqLAlDFH1F7H6aih83p21GVrqDvab7Ptxt3K6As77zGdBQnKTMEMksdLXIV8HCte5oYbYia6JIblyyXjlt5FVaiKK5KrIdxNtoRsGTqquBL2aAen3bURedBYieq0jXGNlp7UaxkE0Xz2xNpsQcj4pN3z1lsk",
+                        "address": [
+                            "5M3ft58CZYSxyB66TBhq3TlY8Nhwaqd7cgmyemaddUKLvIRhj1HfU2dVInjSNwR0F6yTsAYFvAjSj29u3RJQLXDtcWdZl5R0bhLDSJbfju7uw9ZA0IiDxV7JJcJW9AOcSrQCa1RmnQQTZPlRqDnXqmH2yiQIKFUu6C69vPnSG5ExVZhdDEaV0"
+                        ]
+                    }
+                ],
+                "equipment-functional-boundary": "DFZFi1kezWboDZkE3FzhFvKzGTxCIlKd0CLiv5o4TAkwrE3ukCER7oqGiPa0bM53oQeTVCPO4adwOgS0KwSJVah50rX3626uTcgGP",
+                "label": [
+                    {
+                        "value-name": "jPepJH8uNkA1O0rY7GfFFbUNITqfKMb3BpkcZsGME8Nk17b8FiNclAZ4lpb5bm1EElIDGghchXxi4AqBS6OeGNaT5dR8AKN65nJDESQVPfdLHDnzJ3FhQH3VVU4vwJBt6c7C4PxMWCpDgM4RPC1y",
+                        "value": "4leQhBmS4PZgOtdD1ZrDg4L31vKDwaWAo3qFEMyBtpRi"
+                    }
+                ],
+                "external-managed-id": {
+                    "manager-identifier": "nL7shOA2Ok",
+                    "external-managed-uuid": "yVlBdqtwnoCimZ3zfJocY1cqj00lGcL707Idx3BNr65N58mcRCoIEs8Ps1215N05UIikDM74ScRXk693IpLeSM3cF5dKTdQFN0ZqM6mEa6BucCqM231MHWYm247N9XsXXkfKqCg"
+                },
+                "expected-equipment": [
+                    {
+                        "local-id": "5ogMVncCkWcARJDyVgLpJCBx1YnHNkdSIlwwIJ8UxlvgW0GRhs9SWKhXIEFnZK8H5EdGfmAMzX2nYBff3g7R0pPA3mYU66C3CHJS3kwu9rS72ZmXfmO7",
+                        "environmental-rating": {
+                            "power-rating": {
+                                "power-rating-name": "SbCxUE3gjB1d3ZL38Z9ouW5rLcw45P5YSHnMmqUFTNSXNv0Vm1bQXgiAsO",
+                                "power-rating-value": "qvJgnjv1FONcHB4wgro3NpeDemNPHtl7YXfdgK6NqUZ8nVwDeVG1cMwr0c8HFtGEiVRyyYlYKcY77vKliieu4DV4P3Eupk0H8S8yItokyfrFC3TUdZo9Cc5r7JW"
+                            },
+                            "humidity-rating": "WW6WGeugHKs7ZTNBOyn1xE22Q8tXJhmF6sBEGXNfAfnz123HsiBZWDTMLfCnwQ2uaw1QlOXVVknWeiEGA7yxKrboGFL5vFrFbsnp8lk4xH0MZwksDSZgcaESQhPdWhL0J8pSlJWTjOxadRCIKtYWEuGmLwrINcIod78yIWrTD",
+                            "thermal-rating": {
+                                "maximum-temperature": "-7247948325455645.0",
+                                "minimum-temperature": "4209239608997998.5",
+                                "thermal-rating-name": "3VU4BAUwgYFaORDST5k3xKLJOazisrwnmjsPTmm1dTb1CGTvMdqbPcMDedNyEkW0DgQou4qHXtAAatXWyoZfsLTyZy6DKUwf2eExiW67hHzr2pfBNeQ7SBFR2DmMyS2A6y7gm6gDNPXPecq"
+                            }
+                        },
+                        "location": {
+                            "geographical-location": "f828XwBLybRXcsaIZ0jOXNzA8tHU8tTntNvqkZ3SaUPmm0Wm0f2PUBp24YWcrIzVvXdHWhAY3hcq98E2fGR199467SirsKmQzrxnIZlM9x4ixIcMgWNp5Jv4CGvWiJ",
+                            "equipment-location": "YwBCp3J233Rf8rnCwiacXXkPW4iTjPthlXTK0CN3FwaGXqalIkxF9Rv5WFQ7ucoI9hk1L7Wiv6Yto9O6leEv51sTGj03vgLwx5pa5ltsjjNIsuGOIkbFlDzUWrXjIAP7x6iurDXDWCdh6T5O6gujLVdAe2TWCBW2H6w1JlwxYJOWuTLs17MNU"
+                        },
+                        "spatial-properties-of-type": {
+                            "height": "5mR00v5vpPC0NGKNq0ZDQoaa5",
+                            "width": "PVmctrqljiQgG75i8KQKygKxMsNWDSGsF2w9uPuN7c4Fj1XjMF3cOGBA8ooD85XN7uWtbi9iu5YOYN7Cl3O1JhBJxZnFWktWGhhRAi2WnSCexCQSFxTgOmZeemT2zeY7wgZYyTMOLp2a1KVy9GOQ3N492Xbt4aAAirqIccoXt",
+                            "length": "0"
+                        },
+                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                        "physical-characteristics": {
+                            "materials": "NJGeXg2WxjkHdsDqik1UJXBYjUED5D2SeB64R0SgjdXpxsPPEQCn",
+                            "fire-characteristics": "bPgqhxfuF94EN7j72kRDp2as5Nm0cxSne0NnxUSd4WJRV2RXmABDCD5AqjACQkRWkwkSqcXm0G6VAXLWper2RpuhI4LrhunB0HliLiFLQLzqAkeZyGThXfyFkb6tFm4FViPHsmkjZLJzXQrnocElsc0EnZ72d3z0dhHGDURDxs4vinSGsx1MBUqRLpLQkdQyuq67kXCRpzeIO7ggwa274kYHBCxWPnmjNsiZ",
+                            "weight-characeristics": "DG64U0uGESMCi2b9YgRPcJV8wOcXoau1QsXDtrj7c5Cm8FvYWfN0YA0mgcbEeFx58vABOTA0QceYSKOGRuyHWy3dL6RZMhWUMwnshPl82zYMbNk29SB5iEa3LU3pb"
+                        },
+                        "manufactured-thing": {
+                            "operator-augmented-equipment-instance": {
+                                "asset-instance-identifier": "SfXxYr4p7t0pQbLzj5MUMIDjQMPsxcair7PhqLGxeyPXJAoVx3PjLlutZjVwvYOO5"
+                            },
+                            "manufacturer-properties": {
+                                "manufacturer-name": "7OIR33RzFZDwC9Ro2V69WEokuIR9K9eSXXBTSskprPV4YMkSzj2oXiIk1stDBIvrx7khrwGLlCHcg14QkYea9Ou2gXFSx3jW2vdt1U6eoNqEPnm1dAbehxgxvWpURART5WeYIld60vDPKZJQsU4Jkl8P9qB00kLYhRWZ41",
+                                "manufacturer-identifier": "4QQyqs2hgyDWMpkdZZizovyo38lv2YlYG3w6nqfDYTsKaMQ1M8A2D0qG8L32Bh0hkpgIPndO8Fqisgj6oL8TDqAM4vGFMHP76XHVkUBtA2DUaX0rA0keqMSmiy2W7JV5GCT0pulRoZLrODSgv4mVRea1FcXEVTKtnDlEZHvgy8HeDru8vRWeX6fua59XQTq5oLKnk7vK8cYLvlM14I71GnwQkFNaq"
+                            },
+                            "equipment-instance": {
+                                "serial-number": "ELS6pekpUYxIgQpActis3mWg5lzjR75wLPu23OrXEYxVHXnTiGed22t0fVj72gvF5ZI0F9Pk0f7z4ukm2yAXtVXIQgPLwcitb0lJ2aV2p2ttwNIreaoH5lpOt7rZjJknCF6wHTq7VTsjGaKUk0B",
+                                "asset-instance-identifier": "lT6",
+                                "manufacture-date": "2021-07-30T20:01:16Z"
+                            },
+                            "equipment-type": {
+                                "model-identifier": "VoCSZy2YNxswQi1KVVeL35V5gquJC2TpqnhhOk7BJzZrS0bNOpqJmlOCLadfcZEvmNE",
+                                "version": "rMum7OL8NijPku4IgzcClRwrd",
+                                "part-type-identifier": "7MEIlv95olScCaVZvBt8EHfQyLdUzSXywthJYiPmDzqgKd77PA8l9n3H9huA1j0xMh8KAXZ5xpd9Dk8kNgFOEIoFZS7S37hPpqzRnqOMQ2NteWF1ckII26fUQmETuWITe9CBAqgik3DzZis4C2Mw82iQgPBKLbvZl7sNqA5KwAbnSwrmy6KH03pgK11ncwepw",
+                                "type-name": "4O91qFBC2t8mPGssfknxA7ytuCSI2og64p8u4J6Z56lMFFeMZBjzIRV4mNMo33m7kuBh6AgbGtXd8407Fjyg3tkp87Fb21imwMDumLF26u8ey8d",
+                                "description": "5pBM9svZMi4nChwjiWUaOfVMoEBnBClG1Os39QUN8QbK7zVpnPz3WmQkTjAuVN2PCmKDcEqkvtWu2RMhzdlns3AlmaH9XJQr5AWi7nuuIjYD2CUtQ7Riajvwtcy"
+                            },
+                            "operator-augmented-equipment-type": {
+                                "asset-type-identifier": "SpF30Rquwo069qd4jxg0I0MU1gce1aVTrAWskfWQvXWFf1BzzRr9K53Dl8RmiE7K744rbS9GH6dXZPoqGHriMvV0vFmNjupqqlRBe19VZnKQc89KPA3u5YusvQ8Pcx7CLZ5ZSfMJCxzGxIqnbtR8kdBP3Jw88EKTv"
+                            }
+                        },
+                        "name": [
+                            {
+                                "value-name": "vHyRxtPvXT0ECKAO84YzO5tFkiUy71buBJe043o1Ogyj087845AL33qfmdNl6YHHzVAwRQpx6XQ65Y62VGNQKd5YqKbxAS62OyyxoX4uVVsSLzUy7z",
+                                "value": "JNmH57SuHLtJr19Qi7MEUz7MkyzLF82hNoYL"
+                            }
+                        ],
+                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE",
+                        "extension": [
+                            {
+                                "value-name": "4oYdAyxQ2mwPdgF3AYN6Mbgbc5QfCxMHVCUn2s5WGBMTRjXjhCq3Gy7KEXRgmvX98Kwa4t7K4LEN4t6dXo8vXffB46RqCHzCjXEnqD7moD1k60pWoyrdFzOKFya97CDqziN0VMecqgoogOcweEKT5yDKYGM5ipnRzaJvPYH765",
+                                "value": "mLASZ6"
+                            }
+                        ],
+                        "function-enablers": {
+                            "power-state": "GRUgSQ8dvubEDIH5LyThXxjoHwFyfAPVrJcjrcwWGztba2hNA24xzgVgMsH22wPm71Fq64fMvIYFK7lk1hJAxwIcYp61NVfMPUdVQsz"
+                        },
+                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY",
+                        "structure": {
+                            "category": "core-model-1-4:EQUIPMENT_CATEGORY_STAND_ALONE_UNIT"
+                        },
+                        "physical-properties": {
+                            "temperature": "k6LbrpkQtDn3H9bDOtAyYF2w2YOMLxXXDA8W0tMlY9hxas3ZVDpMaradpRR2"
+                        },
+                        "swappability": {
+                            "is-hot-swappable": true
+                        },
+                        "label": [
+                            {
+                                "value-name": "J7XmAyFuIvMHhqBRpf3XGOvPQMu7C7udfjzPSejAB5hToKCNZxDye0fWEJ38Rqm6JVNt273D4cokWS0Oqvewvts1co9VGnThjHLdGGQKTfXH7XnpsBNP48Q9wRW4fQdqxYD5xlPi",
+                                "value": "EZABfRVIFKFNsGbcC7jkkJRbeWIzE02aRuM6lHHSkexEUAQoH9J2Ks5YhNyNNsXEWJD9jc2vqr9c20AB1bvMEACVn2I2uxHq9cAsouPGVYSPQkrKwWwap0XM3xP"
+                            }
+                        ],
+                        "mechanical-functions": {
+                            "rotation-speed": "2pTMo6YpoHZV5IZ3Z5WN1bzIY"
+                        },
+                        "address": [
+                            "VT4zZeReYqpHN6xmdDkIR5aK5geQr96f3bOUhx8fYpPLvm0ISkjJptlmKs4bBbqwe7ivEjLuIA86O8OGsZiRlv65Xa8rdrXry8X4rIz1az7YHOx9NHS8cQ5a16t6xiyXqv1R5sTf105AGCJujuuoksydy1k5bS2CfVlkgezh7ESN9t9kPwI2Y87"
+                        ]
+                    }
+                ],
+                "function-block": [
+                    "XkVMUjd7ZgoVR9tJ8sXP5sL0663s3yK0SyEFJREA7UnQ4Qz4aoU7Ix7Gv28ytLydbcSUVpu2bJLfsckCB6CjvJ01M0z7D8kOc5I8u42FONNg07Kt5mE"
+                ],
+                "actual-equipment": {
+                    "environmental-rating": {
+                        "power-rating": {
+                            "power-rating-name": "3SZMGiFUhMoshIDCg0eR",
+                            "power-rating-value": "cT2Ym0Zppks9jfPCMKLr05IIJkZJyIrCtmtPmk6DFzFYGusk66L63tHMFyn58HIC3"
+                        },
+                        "humidity-rating": "jhvqN2",
+                        "thermal-rating": {
+                            "maximum-temperature": "-1325319967772047.5",
+                            "minimum-temperature": "-2252146517379021.0",
+                            "thermal-rating-name": "xDU7hkzWqyKWEAbqxNS0ltxBRTQchycO37VkjuhKVTyrtCRSpBKK4idO330kt59p4WJnjS7eLyF7aoRzZCcWUhCPdCaGzb5D7H1qr0E5ybcIr3arxmfjDR9QlbpVmmytVzUnAqs8uwJVrTeZ7taCkjlGuKBQY1cMB69"
+                        }
+                    },
+                    "location": {
+                        "geographical-location": "99FYsX04wh86xIytrlquYTgvcbi17gj8pY6RNYObgOhFwP0Pbqj9jsFvDPoC5HCmxA6lyMwGAOm",
+                        "equipment-location": "1rtdbvPiiaCyh3IgIs3RV53DtMFrUMPW6"
+                    },
+                    "spatial-properties-of-type": {
+                        "height": "GWd8gNdSEfmByt4YqjnwyDOPVmHBrZXZV283PlVmBaX1DTZ44eADRgkEu17W0WNNYVRG9E2CGRvkCmg",
+                        "width": "AIjrYvXsw4goS44QRVoSrim09RkLdskNaD6013kxZBWRx0AgNY96hv6ifiWsKggMLeEMiZc9s0TZ0l7Fj8DsECDTUzdxHlbsAQ7SHjT9jM0b77QjglDMXgxKHK9o6cRy2YiB9bKsQCDPKl0SGEwwM38uF9SDlB3grlRAxu2f6F4I05szBYXnT",
+                        "length": "Rr6CWr50zxlrZSNU7Tr4uk1WTCVQRGNB7Td4ca4MHh5z2St1DU57e64ZARHsxm3Ff8Bkix6SObjIVMKyyHGFGCEgteA0AvxQv02Gx8yebRW6vyE3gcAWOf49txa32zLqAN6ZNw5YfUWKstFAFgwmntvI"
+                    },
+                    "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                    "physical-characteristics": {
+                        "materials": "iLF806TbgHfhZj7kqm8jNT5tXciHrBVJeAJezuhPcw63I5o8rwsfhpI6tSOUtJvHbfNCJ5rNtqR3n7cPvwWMNwKgoybJ9GidN5Pp29cwzVzW2DDx9rbWXW5dm8WwOeJukqTmz5K0TkXVXslZUwNJkSXH0T5H8G3k6WyGTjGMvvAsQVjCj7lwRi5K4arcIuoGiWeb7VQCiqX0dgCofYU78ZRc1agJwEqOtERArzdCZ2C4i7ty5nx5fgigiy0Odi",
+                        "fire-characteristics": "1CNzF924SloXB1tSvJJB4VMJpsLMU27OwUfbV98NvoD6i6QNIAgMn3nMn8qa3xYzj5DefD2C1xAjvqYdSfR7a6TxfczaBpBVv61CJVeLsOWY6V3Z2VY41KB8W3apsMkXSezu9F7Ct3sAQnrSahW41q4XtffV1zLLNcfPSmj",
+                        "weight-characeristics": "dM4UCWGId8t6VbNMcDbwmO3l1Jr3mf6A12uDR2d4bH2YSHL4cWsyLvLE6dztsy3mApRjs5nDEhBoZekbbNCOansh"
+                    },
+                    "manufactured-thing": {
+                        "operator-augmented-equipment-instance": {
+                            "asset-instance-identifier": "vcqRn2LFkK5vrcG7HhCEjJFcmheAoJHTN7C21nIe7NBqRixqr24KLCO7T3I9EhUrholiL3oLI03ratStvO5giTf4WP5s70Too7y22XFLPI4ZbWkGDpOVi4R7LXzSXl8dsH7uwM7lvccy0w7DVVr5Racv7MnW7o2z593tWbOjfSRfgQL3E48nedSmZ8i6wkxBus4ivKtKuc"
+                        },
+                        "manufacturer-properties": {
+                            "manufacturer-name": "fmHPSCbtBbnwaKDSBw528qWPad5rQHWXVEEO8P9JSwgU8TFBhKDq2r7dEdEm",
+                            "manufacturer-identifier": "s1pOlJVjvTnQs1oShtTYbnTeGaCYXEHhx66TQT4dErVZtjRKNCAQZt5GvHwlleCTcAE2tA702VZneIZTlzKkUHSpopCB"
+                        },
+                        "equipment-instance": {
+                            "serial-number": "E3NTbuKc33zwyn5T9md81bYFJdRVzpc5sZYvlJIoM9VdxS6yebGgnxNYKEMcWYhgPgM2ZmrDveQ26PAlS9tfG86iFSuBIMJpUnrLJSofY7h5OKiGTDOrLUJqMeTuSDTM0cxCXNRVM0SAKa9vNXWrJyRnMDRw8Ca0GHCDmtz1mjB6uCu9rqsaYcxCPg0XKaXrJsW6Nn79HA835Ccw2FzTR6nyf",
+                            "asset-instance-identifier": "nRqcaaE78su7BbHJeMdjb8QK1zIg7XwuHPGRZdQ7Fl68oNKvsXOD5wnY5574VvqukYlbb4aIpgJF4taoiQ1geg6jddf8JFCVEQ7HU9qbq1QmuTKEBDUQT1166h7HOBDkjC2dLkgblZpHS9l",
+                            "manufacture-date": "2021-07-09T07:06:58Z"
+                        },
+                        "equipment-type": {
+                            "model-identifier": "6kSWyYDrdbvnHTjO8CX0O8okCnVCLJLRVDGttjNHuiWbbf0bJPbqPrKsPx4A9Hj4cZqxjd6Nn2Ry9JJTqNb76VzVsvnB4HygyYGR3MxqPgYQZzBheMolzQ82loviXVyvT6fWTMmAUcqLE22KGi5g86ammxEjt4GebVb4zpwtuW60Q8KxjINrOPN2mjdPoT4zH7vgo1CS",
+                            "version": "oi04ZKOr2Xe6p5l5wHYiUeZ6rTyt3Npk5pgX14g3Tu1brm8XW6gQk7OLSe7W1wgZNwOPsWKdiMoK0wzWuHEOPkszyznsXDjK1ZrlVczdYXPYmpVQ6rxNMZfcqCwf8HZ1GjntvWztLoj7F6QEynjc",
+                            "part-type-identifier": "ISGJD52lKl1z13Vk8DI1z9IG",
+                            "type-name": "R4plPf3HNEcSGpu2i33dQfllYnUZXsoOpN9625FHJSri9VcsQfFzu1UkoHcd1A2in",
+                            "description": "tjH7Qn7xoQqMYkUJZn1C0jEriJYvok9RwRQm6PTnFb9woWffj8RkjoDC7BZnO"
+                        },
+                        "operator-augmented-equipment-type": {
+                            "asset-type-identifier": "E8bx15w7mvPa6kvqWpvHJML4LaDvcYIQ6Ug7ZE7d9WffgCx413DCHoykrbHv2pl0bt0277fg3nobZV71QKDp14JsfqXhQaiTEiWDp3MkqanqXujGeO5fSPz87wpPzzJ5RxI8Aus1wPjmbC2qqZxbG7jOvAv4ae11LK2e6u"
+                        }
+                    },
+                    "name": [
+                        {
+                            "value-name": "Fp1mZ2O6CXLg1iSnyijEkUJhLu7MkyHZYIdPC1OeYrvSJffhxzORlx16T8KeGs5w2jeFcUL3l8VWfa5NBTwWixU4xFieZfC1qQyDCcGPktLAvRf7CLVNbIRIf1Oe8jfz1G4ESKtc57",
+                            "value": "AQTzkxv7AdQasRZy0aNrblvPd7biciWM8IesfJsHOiR82IGUSld4HITUP4cTe1xmJLHQu9xajoidZY7RccNTUzFBvKuKL2YuNFcaGJk0Zv5Yl5Ixhvi"
+                        }
+                    ],
+                    "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                    "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE",
+                    "extension": [
+                        {
+                            "value-name": "f4NPDEpcijr4goNfC4TQrer1oG97yMONQBClgTxy5Zulf9ARemHFA9zQHIQfmE248wqgiXOnOaI3jaUxwu5YvwH46xks3ewbDWrVM7aA9SwlUiKjMP99lQ",
+                            "value": "rfqLjEim96GWSF6lPQR2D1MWGC5PPW393tUe0"
+                        }
+                    ],
+                    "function-enablers": {
+                        "power-state": "Il7w7RB2VaTg"
+                    },
+                    "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY",
+                    "local-id": "C3LFHPF43SXhR5APBMe48H0q4CTPY6PA1s7I9MMcFBuoyW61Ic5RLX9Qr",
+                    "structure": {
+                        "category": "core-model-1-4:EQUIPMENT_CATEGORY_STAND_ALONE_UNIT"
+                    },
+                    "physical-properties": {
+                        "temperature": "NGNYQYqnmV4Kp1k1fRBl4a7BQzh4xMjct6bbWtqapuVOn7QCYjYVtXocpF8Wjr1Mp4PexfoWBbDYitt9Mj48gscFZkuiEnX3rMhY2GNvJqm2LP3p87pgrBWiOiAsxpnYcFO6dtBWLXQwETOMSd3bHRln1WHyd4opBcnGyZvjO"
+                    },
+                    "swappability": {
+                        "is-hot-swappable": true
+                    },
+                    "label": [
+                        {
+                            "value-name": "4YNAIaclcaHRQT1oCegBBmsWramAFEMCus44ugpGq6p8ZjxtpNX01pWkriV6PzAjTEonUNVlMllLES73y4VrlRMM2HKR8l22ZqpM6dZSykv45CZDyU4TDIFxhqgqDjsuBJgHWfzmsXqxzha",
+                            "value": "36THPz66RnouGQY9s7RgmiDOfVdHdnHgmAP31W9SjymRgd0AkJRy2mf9hsQmQxv40k7188MjG0aPd3hxM86GmlQENGSv6nr6AyZIHL2fM44RZepMmnkJAaffRZD"
+                        }
+                    ],
+                    "mechanical-functions": {
+                        "rotation-speed": "U4ekibIzMVXtlOYEubmPaKX2mZPwL54F2a0clAL0nItIwjn1uBQxmFrIxg6id2P75Hjqi5qFNLoc4D5reVYAtpa0x9aKbZSgzbzR8ZoWDE0Hh50o0YQlf1dM2fx57hmGkNptENhhkhZtmZReQIA5BFSDVhI2qWIKJ7dgMuxYLos7gje6TO3mtVZg4Aiuo070ZkgEHNuk4Wkk8yi1eloz9fQ5H8AY1HYST6osLTNPPZ1PxjRDF7cGe2LO"
+                    },
+                    "address": [
+                        "YVOW"
+                    ]
+                },
+                "address": [
+                    "wHqKHKgVK1Z2JnKSxAqJ771wlTWIJxd76ERFo8B19A3SQNDfgVZf2SLnLIYm7bt5HlL6lm7mO27wHKMXxLcsvYP8yFuFJPKq2vonJnCqhJWZlIWSl1kQR2Qpzc4i2GB4cZkNfWdwxanSKcC6dXO4RFliRpBL54I9V2XaQ2zncW7X8JVdyBhp8CISTbDR7lS2fH55KEkOArDBbqOJ2Y1asB2mEy5LLXN1xSY9ob"
+                ]
+            }
+        ],
+        "profile-collection": {
+            "profile": [
+                {
+                    "uuid": "18e43d24-0971-5669-ee67-cba5faa4eabb",
+                    "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                    "qos-profile-1-0:qos-profile-pac": {
+                        "qos-profile-capability": {
+                            "drop-precedence-at-prio-queues-is-avail": true,
+                            "drop-precedence-at-be-queue-is-avail": true,
+                            "available-qos-profile-kind-list": "qos-profile-1-0:QOS_PROFILE_KIND_TYPE_NOT_YET_DEFINED",
+                            "profile-naming-is-avail": true,
+                            "drop-precedence-at-af-queues-is-avail": true,
+                            "available-queue-list": [
+                                "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE3"
+                            ]
+                        },
+                        "qos-profile-configuration": {
+                            "profile-name": "PZkbk7LqVmJSYM7K",
+                            "egress-per-hop-behavior-to-mpls-exp-mapping-list": [
+                                {
+                                    "mapping-number": 24307,
+                                    "value-of-priority-bits": 92,
+                                    "per-hop-behavior": {
+                                        "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_NOT_YET_DEFINED",
+                                        "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_MEDIUM"
+                                    }
+                                }
+                            ],
+                            "egress-per-hop-behavior-to-ip-dscp-mapping-list": [
+                                {
+                                    "mapping-number": 13645,
+                                    "value-of-priority-bits": -10,
+                                    "per-hop-behavior": {
+                                        "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE6",
+                                        "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NONE"
+                                    }
+                                }
+                            ],
+                            "ingress-8021p-to-per-hop-behavior-mapping-list": [
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE6",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_LOW"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE4",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_LOW"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_HIGH"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE3",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NOT_YET_DEFINED"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE2",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_LOW"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE3",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_LOW"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_EXPEDITED_FORWARDING_QUEUE",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NONE"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_LOW"
+                                }
+                            ],
+                            "writing-per-hop-behavior-into-8021p-is-on": true,
+                            "qos-profile-kind": "qos-profile-1-0:QOS_PROFILE_KIND_TYPE_NONE",
+                            "egress-per-hop-behavior-to-8021p-mapping-list": [
+                                {
+                                    "mapping-number": -20269,
+                                    "value-of-priority-bits": -15,
+                                    "per-hop-behavior": {
+                                        "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_NOT_YET_DEFINED",
+                                        "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_HIGH"
+                                    }
+                                }
+                            ],
+                            "ingress-exp-to-per-hop-behavior-mapping-list": [
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE3",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_MEDIUM"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE2",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NOT_YET_DEFINED"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE6",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NOT_YET_DEFINED"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE7",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_LOW"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_EXPEDITED_FORWARDING_QUEUE",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NONE"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NONE"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_MEDIUM"
+                                }
+                            ],
+                            "ingress-ip-dscp-to-per-hop-behavior-mapping-list": [
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE2",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_MEDIUM"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_EXPEDITED_FORWARDING_QUEUE",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NONE"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE4",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_MEDIUM"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_NOT_YET_DEFINED",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_MEDIUM"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_HIGH"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_MEDIUM"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE1",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_MEDIUM"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE6",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_HIGH"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE7",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_HIGH"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE4",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_LOW"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE7",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NOT_YET_DEFINED"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE6",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NOT_YET_DEFINED"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE3",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_LOW"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE3",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_HIGH"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_NOT_YET_DEFINED",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_LOW"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE1",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_HIGH"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_NOT_YET_DEFINED",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_HIGH"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE2",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_LOW"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NOT_YET_DEFINED"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_LOW"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE6",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_MEDIUM"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NONE"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE3",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NONE"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE4",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NONE"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE1",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NONE"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE2",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NONE"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE6",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_LOW"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE7",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_LOW"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE1",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NOT_YET_DEFINED"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_EXPEDITED_FORWARDING_QUEUE",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_HIGH"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE2",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NOT_YET_DEFINED"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_NOT_YET_DEFINED",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NOT_YET_DEFINED"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE3",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NOT_YET_DEFINED"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE6",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NONE"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE4",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NOT_YET_DEFINED"
+                                },
+                                {
+                                    "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_EXPEDITED_FORWARDING_QUEUE",
+                                    "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_MEDIUM"
+                                }
+                            ],
+                            "writing-per-hop-behavior-into-ip-dscp-is-on": false,
+                            "writing-per-hop-behavior-into-mpls-exp-is-on": false
+                        }
+                    },
+                    "profile-name": "core-model-1-4:PROFILE_NAME_TYPE_USER_PROFILE",
+                    "name": [
+                        {
+                            "value-name": "5VNHFFjaA5t6400kijlRiepS46yBCrvHfbhUQA4rFppChpWAAhrSwILsPb3jCrTRCaDsKATiZaUhsIJ2S2VgKyIrJDLd4EX",
+                            "value": "OA9qaUA2Xmbp5UrPWe5GEF8fiTtnpiV5S4nVRYXOc8592oYQDVw9AwpLhK0G2VDMS1HJRwp3wmdqKbgf7NpzbOktqk9s8N60GOBxc0AJeF9YRqeQ5DhgjuJJGL3Oq9O"
+                        }
+                    ],
+                    "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                    "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE",
+                    "extension": [
+                        {
+                            "value-name": "bBrG1gG5s2mlsVc5DqinE1ULHvWn0KebdFR6OpcgrytLlFJR61eKV8nuvcRwW6H2Dr0rIcz2D3NQAoHyiWa5WyzkKqQyopA2IBlrFVtaQ81ixARHo1MlzlxjDfS2EkWfV9ytWTDM1E5q7O7vPLQp6fACukw1Fk",
+                            "value": "stOVqzr4A51T4PSAxEiOCyo62JC3gWjIiZwAyXw1UyMZfEzEi"
+                        }
+                    ],
+                    "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE",
+                    "l-3vpn-profile-1-0:l-3vpn-pac": {
+                        "l-3vpn-configuration": {
+                            "l-3vpn-configuration-list": [
+                                {
+                                    "label-mode": "l-3vpn-profile-1-0:LABEL_MODE_TYPE_PER_ROUTE",
+                                    "route-distinguisher": {
+                                        "vpn-number": 1666408882,
+                                        "loop-back-ip-address": "WNkA70P7x9Z0dh4C9oBvE7GiD3AsqbMnYYX6ZE5wFWoSetvnJ6Sn5qFIu7aUiO98NZ6EDc2j0",
+                                        "as-number": 1319500588,
+                                        "device-identifier-kind": "l-3vpn-profile-1-0:DEVICE_IDENTIFIER_KIND_TYPE_LOOP_BACK_IP_ADDRESS"
+                                    },
+                                    "route-target-export-list": [
+                                        {
+                                            "vpn-number": 1879044886,
+                                            "loop-back-ip-address": "EtU9rxc2gIYKhA11yUGk7ifEpqkWxS93d4cEtpzJ7xto8upygYSn8ZTxhetOYvRbr4HUlgDkGYAOk0eAQ6XYYInfWR4MeNPFJxz4N4gl2R1mJfWzeLpctMrivnWJbMoUjXRY17kVYlhHB58PQxTcckmHAijL4Hxfxo6qoimeDvW6BWNrmG",
+                                            "as-number": 3793699902,
+                                            "device-identifier-kind": "l-3vpn-profile-1-0:DEVICE_IDENTIFIER_KIND_TYPE_NOT_YET_DEFINED"
+                                        }
+                                    ],
+                                    "route-target-import-list": [
+                                        {
+                                            "vpn-number": 3136842246,
+                                            "loop-back-ip-address": "ytuEeJBEgj0nlNx2WGHVElrQnCRNFXrejVKxFm3Vx4bLRINFgutVPMD4omJ3ca9v6MUD0XqxTtaC4XakjDf0pL4F7OAjYCOWoAroyKNjdYWhN6u7BJ7Smcxu07FQBmFZW6fmIVGOTu5yArF33NVpRkTJjzzVV6UJ526NXMBIgzgI0OL3BylkSe3bFu6sBTcGNalKWPk4gsE8gh4JPp3HD6KbBJv4CHKhRX1FMdB2FfbO",
+                                            "as-number": 1088276156,
+                                            "device-identifier-kind": "l-3vpn-profile-1-0:DEVICE_IDENTIFIER_KIND_TYPE_LOOP_BACK_IP_ADDRESS"
+                                        }
+                                    ],
+                                    "address-family": "l-3vpn-profile-1-0:ADDRESS_FAMILY_TYPE_UNKNOWN"
+                                }
+                            ],
+                            "profile-name": "YQpguoPvI1kKzBOcAiIxZqrfq0KyJqDz93Pvjw0TpcDZNsboKMNBceIC7l3QLGhMBYiUnaFMnjD2DPqfteQFkrarM59pLi4nhm9woPiL",
+                            "l-3vpn-description": "WODD6S6cADx1FQFKS5oa9LjnMPLt0plW5YrbIpobUV4ADKcvHAyQdR5SHIlH7HvcxWo8dEj7rnz47MsOe0wkRtcqcpZj6mowaEEni"
+                        },
+                        "l-3vpn-capability": {
+                            "l-3vpn-based-on-ip-v-6-is-avail": false,
+                            "profile-naming-is-avail": false
+                        }
+                    },
+                    "local-id": "6rDvTGoHAysa4G1PSP5JpXN7EVJBsRsqi5V4MjLmR5pNLqCvfzewoUD3HfE966rh3mdPxY4h3t4GLz4S8apx4UsL16M84dhZruPZkL8f64VRDRJM20b6NDKOBwWxC5w3zdUTYU84ZWNCNpgHhrO44qTFOH4qNBmeO80F30B2WhwCGFjX6ZU3hFA6mFw1gK8WT8BW85QXmmz21KR0CDVTivZx2oqi8y71",
+                    "wred-profile-1-0:wred-profile-pac": {
+                        "wred-profile-capability": {
+                            "coloring-is-avail": true,
+                            "gentle-wred-is-avail": true,
+                            "drop-probability-at-threshold-low-is-avail": true,
+                            "available-buffer-size": -1747835285,
+                            "sensitivity-setting-is-avail": true
+                        }
+                    },
+                    "label": [
+                        {
+                            "value-name": "Ppv2hXLvDUumcA49dlqoH1Z",
+                            "value": "M2c431aLixNsvqX8cjmpTqyYDQmlSdJw7NBbGDW"
+                        }
+                    ],
+                    "external-managed-id": {
+                        "manager-identifier": "xSv6QYuIcW0t25SeqF2DDvNQgkl0SluidZgVPKw1HwnJufPMVJhq6Xgnhtf2OJk2IAPqcljLKGm6ObSBM21TZ988CnarZmlzOaZ1",
+                        "external-managed-uuid": "jM8R1eFc68Z09KZiS8N7ae6xrydtxeRITZAUd7YcgPcpz4AjcnjmthTUP7ffd7XY6pKcxJgNqk40owbALuXeMI0tHgINfyLlXopm7F1x06poutRgXOmBon5YvFLKdoXbMnxLUzbMxs31VU9LAweYTjWgZzS4QP7C4Fg"
+                    },
+                    "address": [
+                        "TsswnIkHiuyO4ZLBSG1EF8i6NtX7gfY1zixWSKvb64ZbVLENjxrQFBWkWLs40i6ztDolfTwmXopK13xksQ2ZkYkgBElCWr3hWrDcd1q2pPNqKkK43M3nCfDeTYIIhDZe5CiaEIc3pZm1c65fL8Cno7thYb"
+                    ],
+                    "co-channel-profile-1-0:co-channel-profile-pac": {
+                        "co-channel-profile-capability": {
+                            "number-of-mimo-channels-max": 36,
+                            "xpic-is-avail": true,
+                            "mimo-is-avail": false,
+                            "alic-is-avail": false
+                        }
+                    }
+                }
+            ]
+        },
+        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+        "name": [
+            {
+                "value-name": "ZdR3eJDo3gGM4kEKgCp7kd24Q4tR1TsSYbN4UrsYz0CDl9ftDEBPSvTAzfjs0EcYPZ2KimARm4mz5B3Igwp81jAsyTUyx6onXqZgMz70DuAJ5Djd1Jl2UVukHgK6e8tbqkr4Tr4pVE0S9b62Uj4G7q0OyKUM",
+                "value": "gYaAhemAbDnHDgROeTBpQhw8acHUZtF7jHztOV3ZyrG3zpKFbl4TuB1EFIzE46DfFdAt0EszX1uoie3tr7mWAgA8Q1MU7i2FvC8v8tWXurlMxg8ZomVQCvYtpDfoV93qMcNMxKK13XFAeFzu2ukwSbRhO7F"
+            }
+        ],
+        "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE",
+        "extension": [
+            {
+                "value-name": "iEDLNJBN9u74cX2dhWaqQUsXWkeI4hCeW80BJtgSQfW25Y7eNhEv37kZjzHfQcmEce8VHoGpEuk",
+                "value": "lrP8JtvEsPEDodT7h7DtlLpU2XkGrE9M5YMGjhlM7Rpn4ameh0HCLYpNVJlfnuTksG1MPmqO5H41Sqf1qXw4NVRBE5QTrJ5Uh6yZkQNpxJrhaGbsvHwbugM0lCTMdYyvXYmhG1H6L0nVGqn47MfB21BfvmTIdk5airjZt05eSk1rLgvK2Ce4DHb045I9pGjz7C"
+            }
+        ],
+        "logical-termination-point": [
+            {
+                "uuid": "d3101c51-444d-154e-b534-b8cb7bceb4e6",
+                "embedded-clock": [
+                    {
+                        "local-id": "Oohe2V5CMTJbzW2EK42keRdRDN7gEvHkTRzNEwirh1CQPFuzBoLIfZzLMy1i4JDXA4D6AVxRW2HLH4casYSAPjltSeMOXhDplgwVb3E75dKEhPHCFr4uLpXvDBjtSWK55gSgcwg9KSGTHfvmGzIjQyOm9ZPUOrZTIS1Mg9N02lMBAhQhJyAz6hN88u2OWTzwLBiUCXMwjy0TIQ2rgDSfMGnMahB6aauODMIgCmEVVE",
+                        "run-mode": "core-model-1-4:RUN_MODE_LOCKED",
+                        "phase-aligned-clock": [
+                            "YVeiPwRShBgjzQZvC8Zx7SnUMwm6JiLAdZK2vtNM43XDTX0o5SV5KiRoH5uiofKt7uoCXbhT6ewZ3pf1ha6TlXiUVMcjUXE1j2D95M2b1r34Qi57l30yTa"
+                        ],
+                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                        "encapsulated-casc": [
+                            "4yH4guWFnxFJutGWf9lCTTeqxxHdbk2fTJb157HsEe31IJXXSasEVy4lXEy8YAgRbrLgrsA5GEYgfO60QqEEYAZOepOdZ4W2wHaX1KUAgLQw"
+                        ],
+                        "name": [
+                            {
+                                "value-name": "DuRWLmOS0m7MpofnqqS63wO",
+                                "value": "83Q3YmKtRtpuH5mHstlRJBe9T6gODW0DZIHP4jiNEH9lNnU7Q7YrI4tBbJiGxajpSSeO3xuH6D2L1OSJWQ3wVw0Y7iwEsPVcAa0DzmdxS7jLWbmKUpgPVgFUybr0Smcko5YXj3vbaGWYRbILAZso7ZaGaBGVYLfmQ5c18zdbf196cSKFJ4VQ45w6H51xI9Tqe5rfwEqLyzKKjmh2i4TeahlJeegW"
+                            }
+                        ],
+                        "encompassed-clock": [
+                            "zSzgZS2utSYSlt8xN7dsLeEaUA9zvWk4GUcxEe2ZYSSkdSR1Z4lDaRNXjWoOKJKivOQ12K1TCLdPDWIu0W73NN0ZBoNeZqwmemo96h2A27ix3STVO1YuGQth78n6yUlN8BOfSQHMXZb0S4NyXM2Dun"
+                        ],
+                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT",
+                        "extension": [
+                            {
+                                "value-name": "2PWd7UjmC46WNYDp7dg3WxUYAd9n8VIbDwgCqsYUo5Ib3lB3rR6ngSeR6n66aOhNkyhC0gpgd7r8lU3ME21UUfLSCRZFxgsJGKmySDOXK85521JG3LBXSeQnYH2nXm",
+                                "value": "w6lWQYLNITLGNMhuPUXEN3ma134hTqohpJdfHQVhByPpc7L1TIxyLMIFPMWA5cRuVXJuNwLh4tG8sj1l1zUElub29ZvebeIYbj"
+                            }
+                        ],
+                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED",
+                        "label": [
+                            {
+                                "value-name": "1mu7OJvk9hSA1vUfEWxJHMTRZC55KUlL8PKOqg1rxT1qgVxVK4ErQpaHT8ND28o2X9RfhSGODH6UvDHfzdyiCJZvRM0LUoFJpoQG8wmM6kyBX7QpkoHWZyjQljt7H9J7xzFGY2k4mKxcRntbDa7DIqlVJH",
+                                "value": "iIwh75XNVRZR5Jo9ADCDhEKMf2ZaDGXOgt5orU3mD36JEuK78nKh1n3gpUjVtgJJCG73tbh66nHKSsRSHC9IZ4RgY2bjaM3M"
+                            }
+                        ],
+                        "encapsulated-fc": [
+                            {
+                                "uuid": "bba38854-3ef7-8fd3-458c-05f8d377bc70",
+                                "service-priority": "-9223372036854775808",
+                                "supporting-pc": "OP5BBXVWALVu6lU3AtMjfw1Bb31ycnvScBtNygC02pv0Kp3kKPvRdpspsuXERloWWRBmZdmTDRUf8XsKFXCSeW9Gi7c2sAYgjrCjFQ4aAYpIORllHP5VLfuWmyYG1OWc7qvEgAOQq6rePEzotFc6UG286SO7yCcGUHc291LAZ4GOIgdbVphHXcPVWvVvZ73TGfNQ8y",
+                                "layer-protocol-name": "vlan-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_VLAN_LAYER",
+                                "forwarding-direction": "core-model-1-4:FORWARDING_DIRECTION_OMNIDIRECTIONAL",
+                                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                                "name": [
+                                    {
+                                        "value-name": "7NyTJ04hwItSeAUv50uPDntZeK86xWtEB1qcTmuq4XaapWFvO1cso",
+                                        "value": "jDhjJP7clJ6LVZ7ph3fr6wnLT4"
+                                    }
+                                ],
+                                "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK",
+                                "extension": [
+                                    {
+                                        "value-name": "6vPyQEgVbNyXQX8qVpys6XtIIEAdGG5M3MlMiBHtg8jY5roSQWcOMFwmbYz",
+                                        "value": "xwwsaJetdOWtWfk1yIMgxY4bwsxHjYrQmYiwzpZMdW89bs2K2G0zxXC3h1CAZWq"
+                                    }
+                                ],
+                                "fc-route": "RKMpPoRUhW5ivn28r1D2EnNHgUJvVgWE1B4IZVC8Jzq6XlegmJjS7YzfSbCGrzck2g213x2MYsSNNY42InUHdmO6prEQSQ3UZXN2mPPliz8XqcZ0rMHF0nDpO97yR2kQ08TmXAH71IXrMOres0LsogJ4pRv8TPZLXK8NcHM5hJx4yQa0RVl7b43sNy",
+                                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY",
+                                "configuration-and-switch-control": [
+                                    "rrtgs9E7hrnEBPfvR38QBbXqfGH3t2nMmQ3O0zN90aNBS2YJY6rz9p0hXHkiBI5Xq0LizzrrB7Ut1T5ZRwz1NriL0u3B40zvScNjD7KfeFA"
+                                ],
+                                "local-id": "TJYLU0EFub7cMVriGEEclE62gD6ZKL1",
+                                "lower-level-fc": [
+                                    "9bc11e2d-913a-2fa6-a64f-f01427c75d88"
+                                ],
+                                "fc-switch": [
+                                    {
+                                        "local-id": "aeNQnT8Fs1vHAyPm62ymxZt1kvY0EZVO6AwtlE1Nxwm04bm26UpvLKw6gm6MmTAkm6NHCO",
+                                        "wait-to-restore-time": "-9223372036854775808",
+                                        "profile-proxy": [
+                                            "ul5zBO11VWdhMIc8xyACWndiKLhoDN4809HCYIvLEI2ii7iQxSktgyLSbU8PzcXAlw4bezPKhR2rQ"
+                                        ],
+                                        "control-parameters": {
+                                            "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE",
+                                            "prot-type": "9dZGh6i",
+                                            "hold-off-time": "-9223372036854775808",
+                                            "wait-to-revert-time": "-9223372036854775808",
+                                            "network-scheme-specification": "TXfHbgLGdkgCr7CtaWF8"
+                                        },
+                                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                                        "switch-selection-reason": "core-model-1-4:SWITCH_STATE_REASON_NONE",
+                                        "name": [
+                                            {
+                                                "value-name": "1cJ18NfbT1sgNcMTk1Z6nKyH6wmO03327MV8z3jk4DARPfK2gB8vez4k5i06l30tQNBhQMuVp4M6bp0j09G6IKrF3jDgnDB5j4e9QIW7FJ6Q062S7IZPlqngJ0wYw83PcaQVSN2xo0go7i8eS7Wdpjt1bSZH0Vo45fZXUUniUDy1NGgFO4L5n6",
+                                                "value": "yY68Q1wVYLUNFGaPBNfCAWK8COTH3ROCQMKGF8tDUgirWt9x8o2JcEJGlugol"
+                                            }
+                                        ],
+                                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK",
+                                        "switch-selects-ports": "core-model-1-4:PORT_DIRECTION_OUTPUT",
+                                        "extension": [
+                                            {
+                                                "value-name": "KVljo916OrDtqS2U1Uu75MOf4g8tcoXOba8zj1GZsjsT3mF4913eOKtK0Bd4RaT2kTCvUavmlP7o4EkdGoru0U60oj47mPayIE4COrR9gQxkvRxb7Yx7LDZ1WW0aLaJmGNYu6HvmyUzVE66DXvDA8CtWqt74wIqcngztY4PoRojvnh8cMLMMg7IyAHC6p2bMjKf9OXxxdI2AZ3EDGipOpZn0HZYY29DdTSmAHT7Vt2nkX2",
+                                                "value": "DkesC5HuMGsDAugNf09HIUHvnBKHyMw3ZKvBQ45uLp7dLf1182AQXhdkSX2iCqmtbJWTOTfzafMWuFPCIpkFzpRjnLCRcQkfz88n1nObCt7Z8OBI6OnFd7QsSkj4avjKDjZEHOIb9PahwE0Csfhxm707kbbuzn6cG6JnUrr38BcE748zcpZqpZxJ2J5B6cGEih24IlZIW3f40nvcFu"
+                                            }
+                                        ],
+                                        "prot-type": "ruQCOBjMTe1khy",
+                                        "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE",
+                                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY",
+                                        "configuration-and-switch-control": "ho5CJl2nddhlURxRrKfvOtWD55m7w5cOthi4CcrHhJUcsjVL3b8",
+                                        "internal-configuration-and-switch-control": "E4eK9BJFGVl14v5yHpfZ01",
+                                        "label": [
+                                            {
+                                                "value-name": "S3IuCfD5Sxl2QavZzEgBfs8Y1tkhRFdKJN6d2JiM8wOZGkQfQ6J5rRVscfB3UOFvtMIvnT9wpXvX9l4ZkNWLwR5A6GwTm3gPPRc5KlB1a6QcjUbDA0gYRlzQT5Jf8RWQI8Vklwdou3ANQLjqLrovFPlyUWOVNCLoLyAY4GmqJW5rAoRdI8InXVVKR",
+                                                "value": "FxeiNRQfHMV4cxShYkyIygQ8DF4qpN2Wc8eRRW7yIUuUrn4iHC07SQ8nn4NFRHBWHIFyEMZfzt90IdiiPapz0xWg"
+                                            }
+                                        ],
+                                        "selected-fc-port": [
+                                            {
+                                                "local-id": "T8ZdCk10tlRvPXEXnv2dM25N1yoz2emWmd1Qx2Q1gzoXw3ULqXZ4R4SKu8jxmxtALmqahg3xHsm6ngRF5QJOMBqhKKOY99zUvZXM80bPkxVHGNeDvYkirKr3u72EgBqDsfiA8lisL52rKgWgegqG1RJnYLT6ecJHrT9zfj20p4j9cfhroHZpyAMweyCsKe1b73LemF6DBpNNxW6VEXc4yYtMo568b8kbbXppuw35NIKkEJ7aGjf6aISyFZH",
+                                                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                                                "name": [
+                                                    {
+                                                        "value-name": "ZTU2QbrcHu9v4LHJuPL3801iAUR8LqRKjLM1W5dwAmTw7A7uhTpqTqAmcruXRlz2Yd3Uj8iTubhuEpQVi7l3xWpCfTzZ6114eXRx51isdAORZEMhD0c2OCEVn6Mm7GqlD9TAb32gDQ7umLLZDY2jsGfHM13LHm7cvSNyVHOryVVMzzE4pGoJeDqTwuE6QDid",
+                                                        "value": "XMbFAC5opRPQnTf3hYaUhVjLrpt5zGkxkv4VZ1bhS078Tf335dPm08ZspspZ1Jod7s06tbfd3nlPCpSHuH4vI3P7o66hPmuOOvN9y2fCpsrTJbBeSxBAsiAIoGZ53mUJRHLhBSTTkcM4nfagMDIfViXjRPoM3inUR03lSXe5909xgbFUOf1J"
+                                                    }
+                                                ],
+                                                "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE",
+                                                "extension": [
+                                                    {
+                                                        "value-name": "LJGLC7LNozS1MJ8",
+                                                        "value": "WOYSvY4eUuL3JcpuVX8pWTclk4e7GeJuUzepyiEkMhfntESot0NqTSD6OR5mXOIRfW8N6M0T3f8oM0EfSkxEcaKSTP7QvPzKMIqSmqDiFMGjElrxFY3J1NBUCID7q4JcM949zAr7mZq0kRpRIsAJ74vJE0I45k8Jt5K3F32T3kLf437MvznDvSeaLP6I9frCccxRfrCaMnqQqxuO6RruBxEemCW"
+                                                    }
+                                                ],
+                                                "logical-termination-point": [
+                                                    "bc478ce2-7d3c-9c53-dff2-7724bcef25d4"
+                                                ],
+                                                "selection-priority": "-9223372036854775808",
+                                                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE",
+                                                "port-of-internal-fc": [
+                                                    "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                                ],
+                                                "label": [
+                                                    {
+                                                        "value-name": "Z2hGiVJtivkbyF3nL8xM9WUkBO0QQJgHDpfWkQhvlBGL9J9UKyyTuk6516NJQWillx9GfqbAURd3smPcUgYgs4dta140PmeaLnI0OTsACGvXUc1Hs",
+                                                        "value": "XN33864d6LzcVdAEdgpyQUedJ0pKHSKxxFAFLwSKhkW4xoACw0aeMgrvhR7QBJn8pXN2lyECStzhR9Tg1WmNcOalxac0Tz8apNdCdR75kGe4P8cR4yw8ez"
+                                                    }
+                                                ],
+                                                "is-protection-lock-out": false,
+                                                "fc-port-direction": "core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL",
+                                                "fc-route-feeds-fc-port-egress": [
+                                                    "2PxtShvfFjP4zzU1JfKIz8e6hidkCsVw9kR2Be98xYdYpZR17tJGCX"
+                                                ],
+                                                "is-internal-port": true,
+                                                "role": "DhO7NGcKxATf8zIz3zbK2mwVApgRQAitR6swEEh4",
+                                                "address": [
+                                                    "shMzJgKnEa5WzzKxi31LBx0PaOdT45HoelYXCAkgCp4bQPI8SCMl9MbbsgXxdEVrZLhBlBJXTO0JvBKndwBeaMqCUf97TXqKIHe4bPT4DUN0npoAVZO5D6ApdJo6yOJhoPdzEYvaKaa7AqHvhotUm3bAEzydg9mwYz5DpsFaCPh4gRAx7VktQvVuXmz5vVBumyZM0E"
+                                                ],
+                                                "fc-port": [
+                                                    "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                                ]
+                                            }
+                                        ],
+                                        "hold-off-time": "-9223372036854775808",
+                                        "switch-control": "core-model-1-4:SWITCH_CONTROL_FORCED",
+                                        "address": [
+                                            "gDCRBOpfYG92guTZjX6nXlK107DWkxtAaYkLMJ1Di2FyxrpQov5dRPeJWRy9h1JrR3dwF69X8GvF7NnvasI1aWDYGb7X4RgWMl"
+                                        ]
+                                    }
+                                ],
+                                "supported-link": [
+                                    "h4OaJ7ku7PqITi9gbm4uR3f6hMzwc6Ll2rwMyQ8FFqorJpHULDovGvtX92ml17H3z5HZVIFt8VURktLYZ2txpWnzRJUSItN9yn9m"
+                                ],
+                                "label": [
+                                    {
+                                        "value-name": "6w3DHGV1qC0uXJABxsAWJw33CAiftm2rS65sE0l4ulrjX1Uulni5Tm0nOiC9FxBpvGR9y462ixlfq8BMvTJg7BvVT75ywGQ1ezbME9GWG13Y1wCopdwpO1kI1h8xXYrbyuP4DvSjpN9qjMHA",
+                                        "value": "dZOfko8BwxrnYuNskR5PBg6oqpHc6h3j9RqtfyWE6f1WKOpWxmD8vKwV95Zfe2qnURI1hFFfMycwmtkLPYTkIh7Je6Yt1gQN7zOh6mwSUIh9bBUTrG59XdS4bIx4RfRQOy7MMExGeGHi9ubBa8CZln3p5AtOQdFwDMbpiAXpgFHp9KSbSva6"
+                                    }
+                                ],
+                                "is-protection-lock-out": false,
+                                "external-managed-id": {
+                                    "manager-identifier": "7CYOk6TnTaF",
+                                    "external-managed-uuid": "7Jh2FEP2DWXoD5cldCvdfl1rsUPd4mG35XXCCNF7BCo6HArN4W0jaTLuFAHBWnwTdtvH82OCxcI6E"
+                                },
+                                "fc-port": [
+                                    {
+                                        "local-id": "xoU5X4zCMo4hA3Q4Nw4GaQZfrCqai",
+                                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                                        "name": [
+                                            {
+                                                "value-name": "0IzUNoQe0vCXE5Sn9FTdeV453nHtxZFx",
+                                                "value": "6jmvaAnF5cb24y3Cj9Qf5VisuDZlioVpH9MJC9gHmsBi0EUkNCzSpJcTe3fxr2O1bAKNB1mPtX8tuUF9p62OPeA4iPtBR9C2BfIcg42BU24oOCxdIrUyyuuIbPj2YOWz3wDjBFUnzQDok2t3"
+                                            }
+                                        ],
+                                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE",
+                                        "extension": [
+                                            {
+                                                "value-name": "Vs2AF73H0sCORH6Q60lJBhpRHbRl9dGWGIpdPsUHUpvDYBl4uHF5Y4WxfFThSrdq9CEQWqxQH2lFvHJZggW6kKEshpBaQOARj6H7xeY68bMvSnn0Ej7QWDad2LfKsQBLWaSloIsoM6TwtgxZsEQo90tbMJN6roRfyBBOcV4Y1Xmm6Tmyp4OyWhBA0oGjEpz412S5XWVQMh4",
+                                                "value": "3iqsme1jnuTgTszxR8CKamPZbCPXMMPP479rl2CAxnQqPqPHqjjBG1sRDaOhWv60C8jXaVpHbgZSyPrY0LrGMUxp4dH0IFSkNc9YZzx2HpVf6m567pNTjcbfqK70hZd53eVVNkXmJKtP7zW6YBS9NVg5Fn6OebLapy5"
+                                            }
+                                        ],
+                                        "logical-termination-point": [
+                                            "f7872522-16c2-ce17-fc7a-083c8517e7b3"
+                                        ],
+                                        "selection-priority": "-9223372036854775808",
+                                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED",
+                                        "port-of-internal-fc": [
+                                            "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                        ],
+                                        "label": [
+                                            {
+                                                "value-name": "nt2RXC2MVWCJL3EhGXKeJ7NsK3MNxH9Ua3E7FGLsvf4giIxZyad9h0BU4gHtXIn0L1ZqADS5SWdbxC25Mfe47IQ3YpwN7MFSFFafiUc2JhdgU7lymrum9khZJGFQskA7ZKf9xjcgBhonpBVL2qZcKhbmXQ4h3Fg2hv4OHgWixkxWVsAQKr2nI5JxONGRsXLCk",
+                                                "value": "q1XfbnrIjf3L5Nd7aN4TdSzTBTIfv3WOWU30huIsJD6OrjNt6KfbuO56HFd5A9TpVWp4iZx2DDI4OopM0EYu"
+                                            }
+                                        ],
+                                        "is-protection-lock-out": false,
+                                        "fc-port-direction": "core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL",
+                                        "fc-route-feeds-fc-port-egress": [
+                                            "psqW1KmW0yXbUVY42nHBAO0PZXXq4Jpt3Ii4kw0l4QwRLmNNJmhc2hT2eQsazJwCjOGEczZ9hn02CFHd1Yh38a5m0pxr93VsJu6NVXWcdO6HtNUuE4qMev87NxqWseg3IfRv4FH9uNQPsDc6zCSN7TMMi5ALjRGT"
+                                        ],
+                                        "is-internal-port": false,
+                                        "role": "zozkdbk0f2FljgSfOIpHrkUqnQuPE2qdiRpw3KoiM3DXcnd0YCzhPlIccc2I6kVpbcN6WbpA7UyjaDb87DpWY712bVKifxzqKmxGpO9oAHHKcLKbg206119dWLn3bWtVaStzGCYhbxTfaErqGrxHsyUgb9jm5Mh7xDHd7xmjW",
+                                        "address": [
+                                            "FVcEm8KkJulopBuWYsL4Dwe25b7Q6zcDmo9IwTU7gfoFQSuGc7CPDJRAURiSivnETweii8hynF55pzDBG7qcQaEL1PvbkTP5h3fz3xZic5nCwS55Zw9Qy"
+                                        ],
+                                        "fc-port": [
+                                            "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                        ]
+                                    }
+                                ],
+                                "address": [
+                                    "0J8dFgeJIglKXdcm2GpkITUzPdNBGxPG8XLG5ZpN7CpWPtiKaz4StQjaVYEBnt9wiUcnLt2T5jHMN0wXrsHMb0X6RtAeWJK6wOthhn2eGC1tupqVKZIVSxTJ0tXO5AUBonKyKFMihFML"
+                                ]
+                            }
+                        ],
+                        "sync-ltp": [
+                            "1c7e2c79-af6e-8d12-d18a-957fe616ceeb"
+                        ],
+                        "address": [
+                            "ErGNTZO6SfSoAfAvor0uv64tafO1XM1udzh6q54adXyNc0ass2WX9Sij76cXK5rXEIVWF06SXwy9xABRDpGEhQPgP1dzYExue"
+                        ]
+                    }
+                ],
+                "supporting-pc": "qMkow",
+                "server-ltp": [
+                    "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                ],
+                "connected-ltp": "1c7e2c79-af6e-8d12-d18a-957fe616ceeb",
+                "layer-protocol": [
+                    {
+                        "local-id": "pMJKwSvhBT6OxuMh",
+                        "layer-protocol-name": "air-interface-2-0:LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER",
+                        "vlan-interface-1-0:vlan-interface-pac": {
+                            "vlan-interface-capability": {
+                                "configuring-pcp-bits-decoding-is-avail": true,
+                                "ingress-vlan-id-filtering-is-avail": true,
+                                "port-and-protocol-based-vlan-is-avail": false,
+                                "statistics-is-avail": false,
+                                "configuring-service-access-priority-mapping-is-avail": true,
+                                "max-number-of-protocol-vlan-id-groupings": 10825,
+                                "configuring-ingress-tag-filtering-is-avail": false,
+                                "supported-sub-layer-protocol-name-list": [
+                                    "vlan-interface-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_D_BRIDGE_COMPONENT"
+                                ],
+                                "number-of-available-traffic-classes": -84,
+                                "supported-interface-kind-list": [
+                                    "vlan-interface-1-0:INTERFACE_KIND_TYPE_UPLINK_RELAY_PORT"
+                                ],
+                                "available-pcp-bits-interpretation-kind-list": [
+                                    "vlan-interface-1-0:PCP_BITS_INTERPRETATION_KIND_TYPE_5P3D"
+                                ],
+                                "drop-eligible-indicator-is-avail": false,
+                                "configuring-pcp-bits-encoding-is-avail": false,
+                                "service-access-priority-tagging-is-avail": false,
+                                "received-priority-overwriting-is-avail": false,
+                                "egress-vlan-id-translation-is-avail": true,
+                                "admin-shut-down-is-avail": false,
+                                "tagging-and-mvrp-is-avail": true,
+                                "vlan-id-translation-is-avail": true,
+                                "restricted-automated-vlan-registration-is-avail": true,
+                                "number-of-available-priorities": 47
+                            },
+                            "vlan-interface-status": {
+                                "statistics-is-up": true,
+                                "timestamp": "2020-01-04T12:45:51Z",
+                                "total-bytes-output": "-9223372036854775808",
+                                "total-frames-input": "-9223372036854775808",
+                                "interface-status": "vlan-interface-1-0:INTERFACE_STATUS_TYPE_TESTING",
+                                "total-frames-output": "-9223372036854775808",
+                                "total-bytes-input": "-9223372036854775808"
+                            }
+                        },
+                        "wire-interface-2-0:wire-interface-pac": {
+                            "wire-interface-current-problems": {
+                                "number-of-current-problems": 118,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 23304,
+                                        "timestamp": "2021-05-03T14:53:55Z",
+                                        "problem-severity": "wire-interface-2-0:SEVERITY_TYPE_MINOR",
+                                        "problem-name": "CKWQZrskEsC1K540Z6Gw4Emxgzdy6B9Bl6rcxTwbl14Y60YX6xu3bIAraFR881Jt7axw3WzhXD7Vv5TCufFFX7ZZMQ8UJRfQ2EeXAN6pidlOb6qFlXda4c2I2auE1JmVnBLQoJfHXsn0yN"
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-09-15T05:34:50Z"
+                            },
+                            "wire-interface-historical-performances": {
+                                "number-of-historical-performance-sets": -5606,
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "period-end-time": "2020-09-29T08:47:02Z",
+                                        "performance-data": {
+                                            "es": -817528707,
+                                            "ses": 500388388,
+                                            "low-power-idle-receiver-ms": 1118105620,
+                                            "low-power-idle-transmitter-ms": 1074174858,
+                                            "symbol-error-during-carrier": 223085380
+                                        },
+                                        "history-data-id": "K2zgUMxk0Tz6XfvX3bNhfRyaRQMV0kIDf9T1WilWbM21",
+                                        "suspect-interval-flag": false
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-10-02T05:49:11Z"
+                            },
+                            "wire-interface-status": {
+                                "rx-sync-role": "wire-interface-2-0:RX_SYNC_ROLE_TYPE_MASTER",
+                                "link-is-idle": true,
+                                "eee-is-up": false,
+                                "performance-monitoring-is-up": false,
+                                "rx-level-cur-list": [
+                                    -51
+                                ],
+                                "tx-level-cur": 50,
+                                "pmd-negotiation-state": "wire-interface-2-0:PMD_NEGOTIATION_STATE_TYPE_COMPLETE",
+                                "loop-back-kind-up": "wire-interface-2-0:LOOP_BACK_TYPE_INTERNAL",
+                                "interface-status": "wire-interface-2-0:INTERFACE_STATUS_TYPE_NOT_PRESENT",
+                                "pmd-kind-cur": "4QBKggm67P52cUJ4Zed1u0NY0PLDcgy869Sei7cpOhs1335UiaVMaBC3qnyCD6KB8vQqu2Pic9bfd8ana59dyLgZ1GBEFe8NJY5dSMn4Wrc1zmoKjxXSa5J3DcIiqIX1y2eqHun",
+                                "receive-signal-is-detected-list": [
+                                    false
+                                ],
+                                "signal-ordering-kind-cur": "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_NOT_YET_DEFINED",
+                                "pmd-is-up": false,
+                                "link-is-up": false
+                            },
+                            "wire-interface-capability": {
+                                "wavelength-min-list": [
+                                    1454399402
+                                ],
+                                "supported-signal-ordering-kind-list": [
+                                    "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI"
+                                ],
+                                "rxlevel-high-threshold": -49,
+                                "isolation-is-avail": true,
+                                "supported-loop-back-kind-list": [
+                                    "wire-interface-2-0:LOOP_BACK_TYPE_NONE"
+                                ],
+                                "short-reach-mode-is-avail": false,
+                                "wavelength-max-list": [
+                                    -844821035
+                                ],
+                                "unidirectional-operation-is-avail": false,
+                                "supported-pmd-kind-list": [
+                                    {
+                                        "pmd-name": "nlLEsHS6cSQWhKJ6RbqIASVIoQZzsnNPIyl3759kYR87tR5d2vVCoJdMr4dTr0AaqOdxTeJJ6SIrBOEwbs0z3dduiqoBiQLIEQ8q5R13BCm5q1BBlB3oP8SZr8AJRekn4sN1bH4FjrKBkl4xW7NDgxCHG5ipjCMf4sh89lNkExVYKZnGZak7IOGgTYF4BrkxTBxUW",
+                                        "speed": "6tJ1rlTP2KReRz2xPOnmSQO4gzFNmu0sXBmgX7XRRP5AgZ7YFmkqd0uts28Ow8glKCtzJrqA8n2oe1mUozkBzGW1I4H65YjPANgceGEeVHC9IR36qfzRWvLwssvxiOeLBuXH2BVXiy61h2Zz9zqXW3ugoZNGF1rhngYpSUe2kdVt7",
+                                        "duplex": "wire-interface-2-0:DUPLEX_TYPE_NOT_YET_DEFINED"
+                                    }
+                                ],
+                                "configuration-of-number-of-bip-errors-per-ses-is-avail": false,
+                                "auto-pmd-negotiation-is-avail": false,
+                                "required-medium-kind": "wire-interface-2-0:MEDIUM_KIND_TYPE_MULTI_MODE",
+                                "temperature-low-threshold": 106,
+                                "maintenance-timer-range": "TzcYmF59zenTsqhURVdP8jPMrdyxS5pDEBC08zaHNps7PK1yxeoFqdjRiSoaXNGtgitgRvPxVhEKTGbrMzYcMa35Uj7JYNceXxmH3beQtSsmq",
+                                "supported-alarm-list": [
+                                    "Fd4whRGdOAwNbntnBiUYZP15xuQSJ8vgdAMvjkIZM6EXt7kXi7N9OO7ebX6M5t2bVHG61g5OmCLIBYFTXk3D8aRbZXXWj07ezNlA3igiUU0wSxhHRkkRm43d10acS9rjXEUSW22JWUfGrwnaJA2XE5bxXlKIu31jHN4vQYeMTltcKIntipiWmtujG6"
+                                ],
+                                "mii-kind": "wire-interface-2-0:MII_KIND_TYPE_X2",
+                                "rxlevel-low-threshold": 51,
+                                "auto-negotiation-pmd-selection-is-avail": false,
+                                "wavelength-grid-min": 1827314478,
+                                "performance-monitoring-is-avail": true,
+                                "auto-signal-ordering-is-avail": false,
+                                "configuration-of-rx-sync-preference-is-avail": false,
+                                "eee-is-avail": false,
+                                "temperature-high-threshold": 101,
+                                "admin-shut-down-is-avail": false,
+                                "mdi-kind": "wire-interface-2-0:MDI_KIND_TYPE_NO_SEPERABLE_CONNECTOR"
+                            },
+                            "wire-interface-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "performance-data": {
+                                            "es": -488002967,
+                                            "ses": -1299357415,
+                                            "low-power-idle-receiver-ms": -932795051,
+                                            "low-power-idle-transmitter-ms": 1681551096,
+                                            "symbol-error-during-carrier": -101161613
+                                        },
+                                        "timestamp": "2021-07-15T12:39:43Z",
+                                        "scanner-id": "AssqJbyi00F0rkGcWq0unICmImRCzIj93DAMG04H0Jzj37oZyglVZX9Hb0bKAmTDZlpydlf64Op7WNYm4b",
+                                        "suspect-interval-flag": true,
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -119
+                            }
+                        },
+                        "ethernet-container-2-0:ethernet-container-pac": {
+                            "ethernet-container-capability": {
+                                "supported-fec-interleaver-kind-list": [
+                                    "ethernet-container-2-0:FEC_INTERLEAVER_KIND_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "maintenance-timer-range": "fRiQx0CwDSEqst9BjhDQ6pK1G3PQCpTRh4zO43cIWI8gbaRnrmdxMYqkTg3wFOfOSPuXSGxGoFOsHxP9U2yySZKE7N2EChtmYXjJwQhUo6e5v36hYxPIwsmvfo9Jyu6wkh7Q0pKonZlKUs2SZJtnbHKj6T2wg0UAa2qaj2yGTTqOdky44Tj7B3qzPl55dZxnTXxcR5KLR3rWnRTjL4re8RNP4KMiBjxv",
+                                "supported-alarm-list": [
+                                    "zR2kuLnVAKFt4ixnwx6bmbV0lobSLjPl3SxxvUl5w0ysaYPyvOJKZwKcUWWy7MTawqI1c37AVx35vKvTyevpC7toVqW34H5A7FBbAIMn8HkvjPoSVL9xTvWOVKJZsHzre2vPDh4LQpg9exT2i3z3qnSl0tcsaDLpFg6ipaVfzcpGBiITd9XDxHQxaURdxCu5TAfaCbq4",
+                                    "PKQZkJ5tyAS7jhid0nLDRIojXyV8YRnFtdxNPu9f4TnnbxBbUeGDW4WLvJUlB9T4fiK4MLbQEy6H5zTZNruBoqeT286vaZrp93tVOE"
+                                ],
+                                "statistics-is-avail": false,
+                                "encryption-is-avail": false,
+                                "performance-monitoring-is-avail": false,
+                                "available-queue-list": [
+                                    {
+                                        "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE3",
+                                        "available-dropping-behavior-kind-list": [
+                                            "ethernet-container-2-0:DROPPING_BEHAVIOR_KIND_TYPE_RED"
+                                        ],
+                                        "available-drop-precedence-kind-list": [
+                                            "ethernet-container-2-0:DROP_PRECEDENCE_TYPE_ALL"
+                                        ],
+                                        "queue-depth-configuration-is-avail": true,
+                                        "wred-profile-per-drop-precedence-is-available": true,
+                                        "available-scheduling-kind-list": [
+                                            "ethernet-container-2-0:SCHEDULER_KIND_TYPE_WFQ"
+                                        ],
+                                        "max-queue-depth": 576710958
+                                    }
+                                ],
+                                "bundling-is-avail": false,
+                                "supported-header-compression-kind-list": [
+                                    {
+                                        "header-compression-name": "xQIqucnbzlUq1TRuQ5rkLac8JPgX8BgyjQQN3dZCqL2rELVnJeHuoLC7ALXBe51xVRkY4btmXnOt1BQKQxe6bJ6LuVeI0f7V6rM2D7psu5VvyM7gbmnmXl0jg61gm03srHnWOEojJcGhYOy12NgZ88ioebwAbrVu9irPWH0xTHGJv6DpTTo11yhfJFQM7Dg8VHXJhYg",
+                                        "mpls-payload-kind-list": [
+                                            "ethernet-container-2-0:MPLS_PAYLOAD_KIND_TYPE_AUTO"
+                                        ],
+                                        "compressed-protocol-layer-list": [
+                                            "ethernet-container-2-0:PROTOCOL_LAYER_TYPE_ETHERNET_MAC"
+                                        ],
+                                        "header-compression-mode": "ethernet-container-2-0:HEADER_COMPRESSION_MODE_TYPE_LENGTH_BASED",
+                                        "compressed-header-length": 11570
+                                    }
+                                ],
+                                "support-of-management-frames-without-preamble-is-avail": false,
+                                "explicit-congestion-notification-is-avail": false,
+                                "information-rate-min": -1050597843,
+                                "fec-is-avail": false,
+                                "burst-size-max": -15456,
+                                "ingress-policing-is-avail": true,
+                                "supported-fec-redundancy-size-list": [
+                                    "ethernet-container-2-0:FEC_REDUNDANCY_SIZE_TYPE_16"
+                                ],
+                                "egress-shaping-is-avail": false,
+                                "information-rate-max": 835366982,
+                                "admin-shut-down-is-avail": true,
+                                "bundling-group-size-max": 3,
+                                "supported-fec-interleaver-depth-list": [
+                                    "ethernet-container-2-0:FEC_INTERLEAVER_DEPTH_TYPE_12"
+                                ],
+                                "burst-size-min": 25921,
+                                "fec-word-size-max": -32576,
+                                "supported-loop-back-kind-list": [
+                                    "ethernet-container-2-0:LOOP_BACK_TYPE_BACK_TO_REMOTE"
+                                ]
+                            },
+                            "ethernet-container-current-problems": {
+                                "number-of-current-problems": 123,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 29336,
+                                        "problem-name": "KJzSIuJiOCfY3rYzBBW7BNZgzJQ0GKLqmca4zTfnwudrOb0pEXofCfnbYe4EQPWc179s0gPoK",
+                                        "timestamp": "2021-12-18T04:37:39Z",
+                                        "problem-severity": "ethernet-container-2-0:SEVERITY_TYPE_NOT_YET_DEFINED"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-09-06T23:47:58Z"
+                            },
+                            "ethernet-container-historical-performances": {
+                                "number-of-historical-performance-sets": 20856,
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "period-end-time": "2021-12-24T03:35:16Z",
+                                        "suspect-interval-flag": true,
+                                        "history-data-id": "j0j057bdLR4qOvXoJbUeLjHJh74NhrlArwAoDDthuqHbVwzEHtSkEsWOzSBQbOqDlSTYnffRFO2Act6UPR6tj29SMLAYr0tMKeD7tKQ8zLILeHxVywhRqqBdbb3D3whNKUUexKm6nXJCE9p4FGV57oiazlNuJXhuJ3AgFWe3LYxh7WlMD8JKo2UXfAjZpAl8",
+                                        "performance-data": {
+                                            "queue-utilization-list": [
+                                                {
+                                                    "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE6",
+                                                    "max-queue-length": -207013767,
+                                                    "avg-queue-length": -367460301
+                                                }
+                                            ],
+                                            "fec-uncorrectable-blocks": -1202116279,
+                                            "tx-ethernet-bytes-sum": "-9223372036854775808",
+                                            "tx-ethernet-bytes-max-m": "-9223372036854775808",
+                                            "fec-corrected-blocks": -900255703,
+                                            "tx-ethernet-bytes-max-s": 1348206786,
+                                            "time-period": -11305063
+                                        }
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-05-12T20:45:43Z"
+                            },
+                            "ethernet-container-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "timestamp": "2021-04-08T18:46:35Z",
+                                        "scanner-id": "f7SosKEh1h4QH1yxD5Kuf5AsnNRkQX55WPmorSys9CjJDJggHSCOX5gdS7xIWuFSb19CUH5VbgEORM5yxzmm",
+                                        "suspect-interval-flag": true,
+                                        "performance-data": {
+                                            "queue-utilization-list": [
+                                                {
+                                                    "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE7",
+                                                    "max-queue-length": 1408436404,
+                                                    "avg-queue-length": -529297907
+                                                }
+                                            ],
+                                            "fec-uncorrectable-blocks": -978124375,
+                                            "tx-ethernet-bytes-sum": "-9223372036854775808",
+                                            "tx-ethernet-bytes-max-m": "-9223372036854775808",
+                                            "fec-corrected-blocks": 26728102,
+                                            "tx-ethernet-bytes-max-s": 689275334,
+                                            "time-period": -759554783
+                                        },
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 51
+                            },
+                            "ethernet-container-status": {
+                                "timestamp": "2021-03-16T12:16:19Z",
+                                "last-10-sec-data-output-rate": 1969235176,
+                                "bundling-is-up": true,
+                                "total-bytes-output": "7699105425742983168",
+                                "total-bytes-input": "5836000370521491456",
+                                "interface-status": "ethernet-container-2-0:INTERFACE_STATUS_TYPE_TESTING",
+                                "loop-back-kind-up": "ethernet-container-2-0:LOOP_BACK_TYPE_NONE",
+                                "statistics-is-up": false,
+                                "last-10-sec-data-input-rate": 1233408870,
+                                "forwarded-bytes-output": "8755034470374982656",
+                                "performance-monitoring-is-up": true,
+                                "forwarded-bytes-input": "831599114496302592",
+                                "remote-site-is-faulty": true
+                            }
+                        },
+                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                        "hybrid-mw-structure-2-0:hybrid-mw-structure-pac": {
+                            "hybrid-mw-structure-status": {
+                                "performance-monitoring-is-up": true,
+                                "segment-status-list": [
+                                    {
+                                        "segment-status-type-id": 13239,
+                                        "operational-status": "hybrid-mw-structure-2-0:OPERATIONAL_STATE_TYPE_DISABLED",
+                                        "segment-is-reserved-for-tdm": false
+                                    }
+                                ]
+                            },
+                            "hybrid-mw-structure-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "period-end-time": "2022-02-15T07:44:05Z",
+                                        "history-data-id": "Wg6rdkv14L9mL32brczTZ2t8RZxT98DXoKo",
+                                        "performance-data": {
+                                            "rx-level-avg": -112,
+                                            "es": 1319024588,
+                                            "unavailability": -1245024827,
+                                            "cses": -1513832859,
+                                            "ses": -1738199271,
+                                            "rx-level-min": 13,
+                                            "time-period": 562996406,
+                                            "rx-level-max": -108
+                                        },
+                                        "suspect-interval-flag": true
+                                    }
+                                ],
+                                "number-of-historical-performance-sets": 22073,
+                                "time-of-latest-change": "2021-05-09T10:09:36Z"
+                            },
+                            "hybrid-mw-structure-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 16119,
+                                        "problem-name": "OCb0EL7XY9AYaS2qwdA26TwBLzetJ4NpGYqdCx2AHCzRu",
+                                        "problem-severity": "hybrid-mw-structure-2-0:SEVERITY_TYPE_MINOR",
+                                        "timestamp": "2020-09-17T23:14:36Z"
+                                    }
+                                ],
+                                "number-of-current-problems": 117,
+                                "time-of-latest-change": "2021-11-09T12:05:39Z"
+                            },
+                            "hybrid-mw-structure-capability": {
+                                "supported-tdm-structure-kind-list": [
+                                    {
+                                        "tdm-structure-name": "8w746S5yTaNY56uZNijaN1ARXBb0cSmcou8mmeM7oA5mysdlCxvpyY9nzkgD4CPk6YGkclssVpOlJ2yer4DZUEmtZCZVfOgdEOyI9S349RhLLQZ4Mu3G9q1020V9Hbfd0FW1xZYyIfjm5iqJNuhOMjOGbJISNXYFCUG1LwzlMLHJV0lAmCo8VcG7OoRtlH0PtGQe5isRV1sQ1NrnqPndU",
+                                        "tdm-segment-size": -2042579075,
+                                        "max-number-of-segments-reservable": -47
+                                    }
+                                ],
+                                "performance-monitoring-is-avail": false,
+                                "supported-alarm-list": [
+                                    "kW3GD3n7B6dGgFpbHS1IxkYX2d3W9foubj2PmpOPv1oLzNWgxQQ52G24U5S3dgxozz5NZLDmN10eGOueEcjHTdDNbwIgMgEeHC1ynwV2pNgYBCc8PnHIsknvQ5LvdiBVUul9184iVc8xPkFEzee2yBxhybMMtnznRUoK3sVYF3nmgU0P86JHz9Y7kCLNRk2A7qdaL"
+                                ]
+                            },
+                            "hybrid-mw-structure-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "suspect-interval-flag": false,
+                                        "timestamp": "2020-03-14T09:21:48Z",
+                                        "performance-data": {
+                                            "rx-level-avg": 97,
+                                            "es": -1647427283,
+                                            "unavailability": 1075784562,
+                                            "cses": -1050551279,
+                                            "ses": 1544392968,
+                                            "rx-level-min": 57,
+                                            "time-period": -1531060549,
+                                            "rx-level-max": 35
+                                        },
+                                        "scanner-id": "q4SP6kwALf4eoWF0Icv8kDZy7rJprAFJEpzCJXcv58Bt4glEkIMEeD5l4OKogh7UGyoio",
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -119
+                            }
+                        },
+                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                        "extension": [
+                            {
+                                "value-name": "aeH8A5Kag9sfrqol8FWOjUlmcIMK2Ns42acCfOEnYYChpSuxxjdIdz5q9Ra3wu7ywb2L0G1QxD7WoBlVUyw07BqhkskQWkhtvj6nS7dpDcdTOyGA6cs6NSf7crQ9L7u9iswasKr",
+                                "value": "WEQC4w53Jx9oigouH6vldZuvk0yMCZJrEr3IX0LyqMPI2dcCjIXozjTTbjxOjg7XH2xx3bXtXM3SR7u2PjqhCc2FvAlOIsDiv3PqeML3rOViVhlDsLU4POCloX17qFpNA6dOKYRbEFmzOH4hkYd2FPn3No25VjSvp5b2VV5zsr0g05xdVLfAsCw7SycGK4311f3O29fuAgKBdaO8V3Bfx7nh"
+                            }
+                        ],
+                        "configured-client-capacity": "Lpw3VPwNwO6fMhOlAw1pV9LFx02Yt4qeuWahEy5aebp0ldlNCecpgQ4FI6Db33qxSsOo0Ty6XP6i2j5wq9VGRSlzQQLTL3ivv7TnSrtH8rZ3KWzaYnQPf3h5T2RFX92k8WH1f2IotAr5o0gefYWu2dsN7jkWsngBjPuyR4Wcw",
+                        "ip-interface-1-0:ip-interface-pac": {
+                            "ip-interface-status": {
+                                "errored-packets-output": -323102281,
+                                "last-10-sec-data-output-rate": -1210448219,
+                                "forwarded-packets-input": "-9223372036854775808",
+                                "errored-packets-input": 69004692,
+                                "ip-v-4-address-cur-list": [
+                                    {
+                                        "fixed-ip-v-4-address": "J3VTEX6tIUL1OeegJ6vt6UosmuUyi7H12uMHrTa2NW3t29BMgZ7mTwG70sFbAm4uIRb1Ce3pa7L4gmQodYL6mj5mMKpe6uIGdUIP8L6aKRe16XhjNUi9enn08Ne6hWNu",
+                                        "fixed-ip-v-4-address-prefix-length": 31,
+                                        "fixed-default-gateway-ip-v-4-address": "bI8hST9ZMfW3qBYIK46746MacV6RhHespnKa8T9U0XPqyF1aJ79F5WPhRO19vfBMudWC6XwYUmps1qCDpMiuA0DjOEsbMWXg9MT8Jh6wDnYxFt247kqzk4S0Adbm91vaNoaoFhUbwLAc6C85OrE1nw1XJ5cK6HVTX59ue4FLH7PNJPSqgwrv2slExxov6bgV9qpnm5034HQOxAeF6xb0Zw"
+                                    }
+                                ],
+                                "broadcast-packets-output": 1544675252,
+                                "dropped-packets-input": 1791495756,
+                                "loop-back-kind-up": "ip-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED",
+                                "dropped-packets-output": -1023119867,
+                                "unicast-packets-input": "-9223372036854775808",
+                                "forwarded-packets-output": "-9223372036854775808",
+                                "neighbor-list": [
+                                    {
+                                        "neighbor-mac-address": "VVUT63O7tdvPanSf5AVCa198yk0pIxGDstoqwcyZiVOkiyzn0mRan1iVdidOPTj9mIsSUSJ4NppXXYdXd4ZAX9o3stR9m2bBKvtFn5J2u0ZsZ4h41hwQqUTK",
+                                        "neighbor-ip-v-4-address-list": "CMCFXdhkyWHDyB8ysspxBlySSobEaNUEzwboBtI1hhFHSF8lZpKALilDyohAbb7DziT2Du4VLBuw8CJ72tHND2ibizEuDL743S7Hmbu0EYwMtfTvIsadnsoF129wF8BJ1IifLEfpuLbXSWssouFLW4rQYsmwtP7mxpBaVRzpuCnnyHPPcvA0rTQh",
+                                        "neighbor-origin": "ip-interface-1-0:NEIGHBOR_ORIGIN_TYPE_DYNAMIC"
+                                    }
+                                ],
+                                "timestamp": "2020-10-24T19:03:19Z",
+                                "forwarded-data-volume-output": -497519507,
+                                "total-packets-input": "-9223372036854775808",
+                                "last-10-sec-packet-input-rate": -1811945589,
+                                "last-10-sec-packet-output-rate": 253441616,
+                                "vpn-binding-is-up": true,
+                                "multicast-packets-output": 584331504,
+                                "broadcast-packets-input": -1174027179,
+                                "last-10-sec-data-input-rate": -1501484661,
+                                "interface-status": "ip-interface-1-0:INTERFACE_STATUS_TYPE_NOT_PRESENT",
+                                "statistics-is-up": true,
+                                "total-packets-output": "-9223372036854775808",
+                                "multicast-packets-input": 1476629156,
+                                "data-volume-input": 89643828,
+                                "data-volume-output": -978697219,
+                                "fragmented-packets-input": 737493666,
+                                "ip-address-origin": "ip-interface-1-0:IP_ADDRESS_ORIGIN_TYPE_RANDOM",
+                                "unicast-packets-output": "-9223372036854775808",
+                                "forwarded-data-volume-input": 810796716
+                            },
+                            "ip-interface-current-problems": {
+                                "time-of-latest-change": "2020-03-26T06:43:15Z",
+                                "number-of-current-problems": 85,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 14634,
+                                        "problem-severity": "ip-interface-1-0:SEVERITY_TYPE_CRITICAL",
+                                        "problem-name": "Uokz57m8rpMVoaJM2ap91B5H0pPx1REN7Zfc6tkpK7c8hWMj63sZFpyFGn4A7IfezurxPLWAK9A15fc3iwUPWsuCPq",
+                                        "timestamp": "2020-07-05T18:02:32Z"
+                                    }
+                                ]
+                            },
+                            "ip-interface-capability": {
+                                "burst-size-max": 14881,
+                                "statistics-is-avail": true,
+                                "supported-alarm-list": [
+                                    "8RWyQF9fWSj8A3ajtMcBEI4SOkstRu",
+                                    "Qyaie2OQ0SgGX5CGlFtv5az2GUbpsm1aVbs168S6T0MQ5gojWRG1T8VA26RmsSofWRh2R10K1NsZ3QaRAIKtQxVSDN6Yxv5leef5fgQ9Vi0Q12IBKk4BS0lnFsdcXjybxNgFVYOQ9GHaIhLstHVlzhB6BOjyZJBxoR4kIS2RyJT8SwsmdozFxa"
+                                ],
+                                "information-rate-min": 1097964036,
+                                "maximum-number-of-ip-v-4-addresses": 1049,
+                                "fixed-default-gateway-configuration-is-avail": false,
+                                "maintenance-timer-range": "wK64qFcW4Jg3VixG4XwshRy",
+                                "admin-shut-down-is-avail": true,
+                                "dhcp-client-is-avail": true,
+                                "egress-shaping-is-avail": true,
+                                "information-rate-max": 41198948,
+                                "burst-size-min": 10879,
+                                "ip-v-6-is-avail": false,
+                                "maximum-transmission-unit-max": 23209,
+                                "ingress-policing-is-avail": false,
+                                "maximum-transmission-unit-min": -10339,
+                                "supported-loop-back-kind-list": [
+                                    "ip-interface-1-0:LOOP_BACK_TYPE_NONE"
+                                ],
+                                "vpn-binding-is-avail": true,
+                                "arp-proxy-is-avail": false
+                            }
+                        },
+                        "termination-state": "core-model-1-4:TERMINATION_STATE_LP_CAN_NEVER_TERMINATE",
+                        "mac-interface-1-0:mac-interface-pac": {
+                            "mac-interface-status": {
+                                "errored-frames-output": -1352358693,
+                                "loop-detection-result": "mac-interface-1-0:LOOP_DETECTION_RESULT_TYPE_DETECTION_SWITCHED_OFF",
+                                "forwarded-frames-input": "-9223372036854775808",
+                                "timestamp": "2022-01-04T13:32:51Z",
+                                "multicast-frames-input": 1762906902,
+                                "unicast-frames-input": "-9223372036854775808",
+                                "last-10-sec-frame-output-rate": 1998531650,
+                                "total-frames-input": "-9223372036854775808",
+                                "multicast-frames-output": -2058134439,
+                                "dropped-frames-output": -175138181,
+                                "statistics-is-up": true,
+                                "forwarded-frames-output": "-9223372036854775808",
+                                "flow-control-mode-cur": "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_SEND_AND_RECEIVE",
+                                "received-ethernet-frame-format-cur": "mac-interface-1-0:FRAME_FORMAT_TYPE_802.3",
+                                "last-10-sec-frame-input-rate": -1205176831,
+                                "errored-frames-input": -496382731,
+                                "loop-back-kind-up": "mac-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED",
+                                "interface-status": "mac-interface-1-0:INTERFACE_STATUS_TYPE_ADMIN_DOWN",
+                                "mac-address-cur": "njl13bv0zErSothdEd5h3j2cDmtd3v0rGlkCoPCXm3HKxZX34Vd76fjBBMOwaHXQ2asjR5gd0YXpPVlLIySOF4q8Q6ESNuJIw31n09B1ZqiGdDrV3cCAg2IY0fROBso7vpuwyXpqoz6B5yx8K1B03b",
+                                "broadcast-frames-output": -728336481,
+                                "total-frames-output": "-9223372036854775808",
+                                "fragmented-frames-input": 2054065440,
+                                "performance-monitoring-is-up": true,
+                                "unicast-frames-output": "-9223372036854775808",
+                                "broadcast-frames-input": -913534229,
+                                "dropped-frames-input": 1928241366
+                            },
+                            "mac-interface-capability": {
+                                "supported-flow-control-mode-list": [
+                                    "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_NONE"
+                                ],
+                                "statistics-is-avail": true,
+                                "broadcast-frame-suppression-is-avail": false,
+                                "supported-frame-format-list": [
+                                    "mac-interface-1-0:FRAME_FORMAT_TYPE_802.2_LLC"
+                                ],
+                                "admin-shut-down-is-avail": false,
+                                "maximum-frame-size-min": -32543,
+                                "loop-detection-is-avail": true,
+                                "performance-monitoring-is-avail": true,
+                                "mac-address-configuration-is-avail": false,
+                                "maintenance-timer-range": "Ce5sXQqQeoF2Ii2FXVEUMkr9fF0OL5DfbAA8i0ZwgwzQ",
+                                "supported-alarm-list": [
+                                    "wEp2q3nRcCpci29OikoStzKk50IwRpSf499ucwep0DtjxD7PXnziWjCUcliVK22Gbb3gI9FIM0TbDS1tgsL4MoQQB1Ld3NM7YPnyYU9CU2NqNGT39EZNUIDvJgBEVnLL40c2UlwPfb72S0XTEPGzpbW0jpE6MiRQi3K5g8Mo",
+                                    "Ti4T8XpPvYeGNeRcSXR2OzdKciSk48wXrsIrp7gMYukDAbPk8ynP8ArcKbwGkVvDnd4FccraGMN8XvsY3PN3h6f1hEzBr4eOhalumNwUrc2gHveCcTyuZFn9jXKK1Rrb1Mxgr3aS7d1OAfjM1RgSww1IlEkenDpgqOwJKzCRMDyeKR0DA9w6FpG03"
+                                ],
+                                "hardware-mac-address": "PuFRenw9gQRL51w6POjL05F1Z",
+                                "maximum-frame-size-max": -11221,
+                                "supported-loop-back-kind-list": [
+                                    "mac-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "link-loss-forwarding-is-avail": false,
+                                "loop-port-shut-down-is-avail": true
+                            },
+                            "mac-interface-historical-peformances": {
+                                "number-of-historical-performance-sets": -21282,
+                                "time-of-latest-change": "2020-11-11T19:19:03Z",
+                                "historical-performace-data-list": [
+                                    {
+                                        "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "period-end-time": "2020-11-30T23:19:28Z",
+                                        "performance-data": {
+                                            "mac-pause-frames-ingress": -152260557,
+                                            "tagged-frames-ingress": "-9223372036854775808",
+                                            "jabber-frames-ingres": 235068174,
+                                            "mac-pause-frames-egress": 990356256,
+                                            "mac-control-frames-egress": -801881179,
+                                            "oversized-frames-ingress": 1447287864,
+                                            "undersized-frames-ingress": -642927871,
+                                            "frames-of-1024-to-1518-byte": "-9223372036854775808",
+                                            "frames-of-64-byte": "-9223372036854775808",
+                                            "frames-of-512-to-1023-byte": "-9223372036854775808",
+                                            "frames-of-65-to-127-byte": "-9223372036854775808",
+                                            "mac-control-frames-ingress": -1265583773,
+                                            "frames-of-256-to-511-byte": "-9223372036854775808",
+                                            "tagged-frames-egress": "-9223372036854775808",
+                                            "frames-of-128-to-255-byte": "-9223372036854775808",
+                                            "fragmented-frames-ingress": "-9223372036854775808"
+                                        },
+                                        "history-data-id": "QPwVRGHmO035uUuXQy5kWprjW4eyOH8w",
+                                        "suspect-interval-flag": true
+                                    }
+                                ]
+                            },
+                            "mac-interface-current-problems": {
+                                "time-of-latest-change": "2020-04-14T18:08:01Z",
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -30722,
+                                        "problem-severity": "mac-interface-1-0:SEVERITY_TYPE_CRITICAL",
+                                        "problem-name": "KAfFL6A4Nc5Pb6msthhNBowmJQlnrcKbM0Ix6iBLmzsyxG00X9NqxbN8T0vk",
+                                        "timestamp": "2021-03-30T05:03:53Z"
+                                    }
+                                ],
+                                "number-of-current-problems": 96
+                            },
+                            "mac-interface-current-performance": {
+                                "number-of-current-performance-sets": 53,
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "elapsed-time": "-9223372036854775808",
+                                        "suspect-interval-flag": true,
+                                        "timestamp": "2021-05-29T15:46:59Z",
+                                        "performance-data": {
+                                            "mac-pause-frames-ingress": 2091111580,
+                                            "tagged-frames-ingress": "-9223372036854775808",
+                                            "jabber-frames-ingres": -1279001787,
+                                            "mac-pause-frames-egress": 536819674,
+                                            "mac-control-frames-egress": 1974267644,
+                                            "oversized-frames-ingress": 1353361886,
+                                            "undersized-frames-ingress": 707248730,
+                                            "frames-of-1024-to-1518-byte": "-9223372036854775808",
+                                            "frames-of-64-byte": "-9223372036854775808",
+                                            "frames-of-512-to-1023-byte": "-9223372036854775808",
+                                            "frames-of-65-to-127-byte": "-9223372036854775808",
+                                            "mac-control-frames-ingress": 402855172,
+                                            "frames-of-256-to-511-byte": "-9223372036854775808",
+                                            "tagged-frames-egress": "-9223372036854775808",
+                                            "frames-of-128-to-255-byte": "-9223372036854775808",
+                                            "fragmented-frames-ingress": "-9223372036854775808"
+                                        },
+                                        "scanner-id": "FYEJY1z6ZP4fyOJISMpKy6kuklWK0h4G8Ih6BR5sy9zYPjGHX5kv3ERnRG8SX4q5MHcfqhAQi9O0suHhrTFuqwKhcS9aWr7A9jHrshiLj6LLtkVMeAhE61NbLXdzgk1pEAJ6K1J3ZmGkzB7Fbgba9YlMNyd4S6loG4nq5YtXd29MD8rH"
+                                    }
+                                ]
+                            }
+                        },
+                        "pure-ethernet-structure-2-0:pure-ethernet-structure-pac": {
+                            "pure-ethernet-structure-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "timestamp": "2021-11-19T20:15:48Z",
+                                        "performance-data": {
+                                            "cses": -1201871941,
+                                            "es": 1484871778,
+                                            "rx-level-max": -62,
+                                            "ses": -1497443783,
+                                            "rx-level-min": 109,
+                                            "rx-level-avg": -76,
+                                            "time-period": 695942960,
+                                            "unavailability": -1133803665
+                                        },
+                                        "suspect-interval-flag": false,
+                                        "elapsed-time": "-9223372036854775808",
+                                        "scanner-id": "uzC9bS"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -108
+                            },
+                            "pure-ethernet-structure-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "period-end-time": "2021-06-04T21:01:18Z",
+                                        "performance-data": {
+                                            "cses": 384448376,
+                                            "es": -1752047615,
+                                            "rx-level-max": -30,
+                                            "ses": 1049574078,
+                                            "rx-level-min": 43,
+                                            "rx-level-avg": 47,
+                                            "time-period": 1840425756,
+                                            "unavailability": 431330692
+                                        },
+                                        "history-data-id": "an7Bc58hYr3dJxMdyP5OffPMiXXZ",
+                                        "suspect-interval-flag": true
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-03-03T00:59:36Z",
+                                "number-of-historical-performance-sets": -13851
+                            },
+                            "pure-ethernet-structure-status": {
+                                "segment-status-list": [
+                                    {
+                                        "segment-status-type-id": -10320,
+                                        "operational-status": "pure-ethernet-structure-2-0:OPERATIONAL_STATE_TYPE_DISABLED"
+                                    }
+                                ],
+                                "performance-monitoring-is-up": true
+                            },
+                            "pure-ethernet-structure-capability": {
+                                "supported-alarm-list": [
+                                    "LNV3gek6W1wuZj38wSvPJgCmJSgDOIwsvjnMxISuJgYIs2IYMdOwmiK520JQI7a6ryKY8ukRDjr5d93ZeJnAT8yV09EBgOHHejymFS5i3w"
+                                ],
+                                "performance-monitoring-is-avail": true
+                            },
+                            "pure-ethernet-structure-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 10550,
+                                        "problem-name": "qK8",
+                                        "timestamp": "2021-07-04T11:57:55Z",
+                                        "problem-severity": "pure-ethernet-structure-2-0:SEVERITY_TYPE_CRITICAL"
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-02-17T22:06:37Z",
+                                "number-of-current-problems": -105
+                            }
+                        },
+                        "lp-direction": "core-model-1-4:TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN",
+                        "name": [
+                            {
+                                "value-name": "A5j6hjbwT6E2dtsR54gPzxqkD7RZT1OmYZkgivM3ti6zEyqJuGy3",
+                                "value": "RfIY7zR0f5YepexNSAgbyPP68qsGQnUHDuFK4pKbmAqMPPrzhHCQpjOpJh5sER99eHTaYvlk6DYNspeCZRkga8FMhKeOufXIWJSM6d74R5JbnYFm"
+                            }
+                        ],
+                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE",
+                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED",
+                        "configuration-and-switch-control": [
+                            "gp1voPSi2kX1viXPx5iIUM8DJ5HfcZ2sgWQELAOGUMzhWp6tupbh3jMMgm2tdWNtKv8w5W4RAD8wU7Rhw2yrecemy8HLWnfHSf5Y39HEEI2zPUQdOgEUkS9TSQwPdDo6StWOuvk8"
+                        ],
+                        "fc-blocks-signal-to-lp": "z28h7",
+                        "air-interface-2-0:air-interface-pac": {
+                            "air-interface-current-problems": {
+                                "number-of-current-problems": -39,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 4603,
+                                        "timestamp": "2021-01-18T03:00:06Z",
+                                        "problem-name": "16R3Zdam9HFjOUgKdZP8JiZ03TCC7Sg8Q83Pd54eMJytvOdJFURocIo8uSCBDSJt0Ej6Jfk",
+                                        "problem-severity": "air-interface-2-0:SEVERITY_TYPE_MINOR"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-02-03T15:12:09Z"
+                            },
+                            "air-interface-configuration": {
+                                "xlts-threshold-cross-alarm-list": [
+                                    {
+                                        "level-threshold-second-kind": "air-interface-2-0:XLEVEL_THRESHOLD_SECOND_KIND_TYPE_RLTS",
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "xlts-threshold-cross-alarm-definition-number": -115,
+                                        "xlts-level": 7,
+                                        "amount-of-seconds": -30957
+                                    }
+                                ],
+                                "loop-back-kind-on": "air-interface-2-0:LOOP_BACK_TYPE_RF_TO_REMOTE",
+                                "g-826-threshold-cross-alarm-list": [
+                                    {
+                                        "g-826-value-kind": "air-interface-2-0:G_826_TYPE_NOT_SPECIFIED",
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "alarm-clearing-threshold": 789796370,
+                                        "alarm-raising-threshold": -1071865419
+                                    }
+                                ],
+                                "tx-power": -5,
+                                "xpic-is-on": true,
+                                "adaptive-modulation-is-on": true,
+                                "problem-kind-severity-list": [
+                                    {
+                                        "problem-kind-name": "yARus5DXNTvwB0h2DYhzd9Utn7a8ZwUp6LUzQxoviTTULbOh16Q67CAuJKuI8o762TxSiVgtG1fkc3B69jcgVMDEoZeogdvi722pQiSok7Io3ju4uzlpdQVCP9S5nnfmiiL0swoMv73qipvNYQ4cy0Gf9yloOAK6Ko6dMmR9tUAMc5raNvelvUAxlNV9gy70W5dIr",
+                                        "problem-kind-severity": "air-interface-2-0:SEVERITY_TYPE_MAJOR"
+                                    },
+                                    {
+                                        "problem-kind-name": "NRrr3oS6bnkwLfZiAM5BUDIVrF096XTLHccKB4IMk3b5a2fCOcdB",
+                                        "problem-kind-severity": "air-interface-2-0:SEVERITY_TYPE_NON_ALARMED"
+                                    },
+                                    {
+                                        "problem-kind-name": "SOnuSkwhN7D9HWnDgkCu0b9HXaJfVWiFCF2n",
+                                        "problem-kind-severity": "air-interface-2-0:SEVERITY_TYPE_MINOR"
+                                    },
+                                    {
+                                        "problem-kind-name": "q7K615j1n9lQW9JU8b0gKkHb6kFHq1qQ82O9873vhoe5xXZF1ZNDjnPqHuZ7vqPvsDxADAYUY4Zv1R2UQQy25nkMJjL7BsC4X9wAJmmzqe4k5ZeNHMHM11qL",
+                                        "problem-kind-severity": "air-interface-2-0:SEVERITY_TYPE_NOT_YET_DEFINED"
+                                    },
+                                    {
+                                        "problem-kind-name": "j15OPrwvPhWu0euqjfuH9Q4G5kTmZ3ua4rYUTuhAE5WEjjWCqibz88fes0sj3WtZgkL1G2tk0iQjBNW15Zse7HkrzMKuB6",
+                                        "problem-kind-severity": "air-interface-2-0:SEVERITY_TYPE_WARNING"
+                                    },
+                                    {
+                                        "problem-kind-name": "EFF9Gm540dguIgGRQvTrLHfVmRtgelOSS",
+                                        "problem-kind-severity": "air-interface-2-0:SEVERITY_TYPE_MINOR"
+                                    }
+                                ],
+                                "expected-radio-signal-id": {
+                                    "numeric-radio-signal-id": 35272,
+                                    "alphanumeric-radio-signal-id": "xqIZaK592InIhPqMCxTgtSflu2dnn0vMidMkQRuSzJAQq0v3pobL8q6CsjZHbmuts8FiZ12qKu9bmE6L2hw2zuEUNwBYSXjk5Zu40wnD0oOm2U0W3wYC1uwG00xLXIX3zsZsQe5JCT5wFXsImikfFJVxJkay38BustWiH11cMZIjO31adepSXdqyxA6sAAX2VTduN6GrXpLMkEWxKeqzrI7Ya6rLygFt9SXORE8OVTsfphMav"
+                                },
+                                "tx-frequency": 1584280832,
+                                "auto-freq-select-is-on": true,
+                                "atpc-is-on": true,
+                                "auto-freq-select-range": -39,
+                                "encryption-is-on": true,
+                                "maintenance-timer": 1172817180,
+                                "performance-monitoring-is-on": true,
+                                "receiver-is-on": true,
+                                "power-is-on": false,
+                                "atpc-thresh-lower": 19323,
+                                "atpc-tx-power-min": -29,
+                                "alic-is-on": false,
+                                "clearing-threshold-cross-alarms-is-on": false,
+                                "modulation-is-on": true,
+                                "transmitted-radio-signal-id": {
+                                    "numeric-radio-signal-id": 46753,
+                                    "alphanumeric-radio-signal-id": "S257pLlOGsQvV76DWZ7ZKU0Sl"
+                                },
+                                "rx-frequency": 1800233934,
+                                "mimo-is-on": true,
+                                "transmitter-is-on": false,
+                                "cryptographic-key": "3bpY4K5m1KooOZctIQahOKw1J6oBEscHDCGAmDOfncv43HpMpz35bs7UynocPAUlcsNq5txlF2hIBym17i6aC54atkfaV9v7taqqDXDa0ULtsZur9tBLyyW1SbcFczFFC5XfUBiMn3gQ2C945DPw3LpNOttS38pF5nMZY4ElZU3Uo5YmINSLr9q7DT0G1pdYERYCOuQFoLzMQp0q5S3o2uvFnndh",
+                                "remote-air-interface-name": "O7NksZ5HxTlOuqSuNfFO6sBmTMP5MT5s0KFtKK29vnYZNIlsXT83lBp6o74201n0L2lnMoxhLn9rXmLU7MQtnfrDmnGeo3f2XspJQOSu3TN08yVfcD",
+                                "acm-threshold-cross-alarm-list": [
+                                    {
+                                        "acm-threshold-cross-alarm-definition-number": -88,
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "amount-of-seconds": -21280
+                                    }
+                                ],
+                                "air-interface-name": "Ew3CSRuxOCPZ8Z3DnvIQCLYbVDIFUC9q042SOoiu17m1YpEeUe4wZUzMxisjMtJMpDwdUOINO4OEtkSfyODpAd30nvj9YVNgqjtk0b",
+                                "atpc-thresh-upper": -9424
+                            },
+                            "air-interface-capability": {
+                                "expected-equals-transmitted-radio-signal-id": false,
+                                "duplex-distance-is-freely-configurable": false,
+                                "supported-radio-signal-id-datatype": "air-interface-2-0:RADIO_SIGNAL_ID_DATATYPE_TYPE_NOT_YET_DEFINED",
+                                "rx-frequency-max": 1101942056,
+                                "supported-loop-back-kind-list": [
+                                    "air-interface-2-0:LOOP_BACK_TYPE_NONE"
+                                ],
+                                "direction-of-acm-performance-values": "air-interface-2-0:DIRECTION_TYPE_NONE",
+                                "adaptive-modulation-is-avail": false,
+                                "supported-alarm-list": [
+                                    "6dLeOy830htbKuRCil8Tct0FbkVbVFwTS98zz8CrhYC",
+                                    "stECPEvT7nqaHdmCSKvDTvckDOMMEgO6KkArY5cYkC01PmDH61cRwo425QOJ6uIIOa1F8dvsPvuES7eQ0qAxHwrEe7fcCPVi0WX82kARQ4oA4Ci4UKttgM7uUfHw4uO4iEckQF4GJs8FWjCI3XccKbGEqf2vJIr2eEe5biDUCMsy5W90TlcvwL1P03kCELwShKXsVtfx7zY4v74gk9MIUNxUJJonnU7EFX",
+                                    "hW1stZc6WU376ibzS7O1r8nAxHm7JRj1Nkl8bp70ja7hsjQliFmBFJb4qp42gn3VHg4LFbLQlS7NbQ0mnfX2Y17hibjzyem7uqS1tDROwYuzGmV3BL6AMdJ4g2vO8SVuaOvEjekP4OhL3cOEPU6tZPqfJVVRFRdIxIeQWyy1fPEi1sWJf3c6SCeuq9dX0rFp1TgQkOJzvnRoHF7WIk3tW9Xei2cbtJAn",
+                                    "sq6RxFPt2Oxi0yWJsCgfd0DAnyzT5wKpWQglnYOhMesNMoo70Ee5wRFLh7FeDhDs0UFfSmxwAZbefzd86rdCbTgs0VHv4cX46DkQZRfrIixXKL5Q4jkf4AIWnhrklhokMA2D",
+                                    "IdXoOoTb7iSMpHvBCQqLFE3HI63sHqXhvMGjarmhJ631FqCh8UUNzQn9WqBvIyN5klomMCDoIzpgRTx0OkNfaaoYsSmaq1fDmvZ07voIWFYNrnN7ztmJvCAYuW0NX8ibD9bDwAds738yiNFS",
+                                    "AJ70FCnxJfBsYTCMEP71oZNxO0XTkh5M0dNxP2XqhqSfjmTPcSIARwZFoOqI5wnYJ2nq4kQlKAs4XlL15uBWSttghMQnadlL7IbbVTwFtQBi3nj8JVWBgiRx4zU6F7RMIUYDNma8dEjg1CpCpdd",
+                                    "vWdzvZx2ZoPzaN4P1eYeS9nLLMnbZsInoVWMNmOEKDdNihCkvsqgBNTnr9qjB8GSWuEBQkftQsg0BS"
+                                ],
+                                "tx-frequency-max": -834070775,
+                                "maintenance-timer-range": "JJFAk6OfBIi6MC3myJ140DyvPfihKSdlBTWOZCVBk6z7IulgdmcdZKAGSTYuDbQ64EUWgQptWYswkNEx1QD0s5zkYxPtAxAxbmtj4SMSI6o2T2rUSWNd2mxSLeedDOKO2507PEZpLgjwiDj3z6gtkFe5MsipgV6i06hICh7fxrMH45Cv3SZnq5s4xCtNxrXqpf82ofhVy3uu07S3RJq9OKdlnH0U8Xky4ks",
+                                "transmission-mode-list": [
+                                    {
+                                        "transmission-mode-name": "uAYB54iEgTrPms4Ng7boIDCB5IQ5Y6zkypWEt6iJZBzm",
+                                        "transmission-mode-rank": -1105365389,
+                                        "supported-as-fixed-configuration": true,
+                                        "am-upshift-level": 21,
+                                        "tx-power-min": -19,
+                                        "am-downshift-level": 59,
+                                        "symbol-rate-reduction-factor": 48,
+                                        "channel-bandwidth": -44036809,
+                                        "xpic-is-avail": false,
+                                        "code-rate": -45,
+                                        "tx-power-max": 51,
+                                        "rx-threshold": 24554,
+                                        "modulation-scheme": -30320
+                                    }
+                                ],
+                                "encryption-is-avail": true,
+                                "duplex-distance-list": [
+                                    2063289516
+                                ],
+                                "atpc-range": 69,
+                                "performance-monitoring-is-avail": false,
+                                "auto-freq-select-is-avail": false,
+                                "tx-frequency-min": 140174224,
+                                "rx-frequency-min": -1117195867,
+                                "type-of-equipment": "Ncimd8ZM0b2ikCicordvaYo5MEQ270NUc68p673Za5hmzzqXSEt3CR0gvQavQYh2Wqj2pmTsk3GTC7RnLcqn3qvrgFWYDd0zvbuNxn7RqNLVUuiFGAUB0p285Q6AWY2r1o6yLdi41VRVp1tXBfytxttujr4fhYzimFI0L0WMNNz4OU1h2ACz353ewZmFQVXcsx45q0RdFjildbCfDeGybJNzB1erW3vgBAm1s5",
+                                "atpc-is-avail": true,
+                                "supported-radio-signal-id-length": -1901
+                            },
+                            "air-interface-status": {
+                                "xpd-cur": 77,
+                                "transmission-mode-cur": "tmbm4Dglu20fyM7WAI2dXAjalik4jyPMVS8Rvo4Zi47IIeEbOGoL8zVtJ7p2y6OlYW4mc8dn4k5MqKXfid0rFOMoV4rta7",
+                                "rf-temp-cur": 58,
+                                "mimo-is-up": false,
+                                "tx-level-cur": -50,
+                                "local-end-point-id": "7giCIM8fEnrjBIpZk7YW3vE4XQYfG7eOgwiQbq5HNx0p7hgrofgkKUozKfHjeVZujhdmHi3nPVEPdU8B1oVEicdVrUeFH52",
+                                "rx-level-cur": 13,
+                                "link-is-up": true,
+                                "performance-monitoring-is-up": true,
+                                "xpic-is-up": false,
+                                "remote-end-point-id": "mfn3xrifeW4rR43KtQ",
+                                "received-radio-signal-id": {
+                                    "numeric-radio-signal-id": 11885,
+                                    "alphanumeric-radio-signal-id": "jzutBB5hNaSvXgFhFQzTUDO2UlM7BiwURSfktcB8euE3Kbkp1MaNhYP3kt2VLyIuqXOL2iUgMqkwtwOmiY9AXQD9kG4X6MkpC0aEiWM4m6tPD93NZcnOVTX7rU4xygWa97GrVtoarJZ4S3KJ77yUSv1jhYRQ6F0fEzHAUXKlGBiqw29w1zqM5k5eiO4omXE0wdsia4vIGN84H9ABJTfGdcUvTZLfOh7cuAuEEZecFmheoJH7CWFP"
+                                },
+                                "auto-freq-select-is-up": true,
+                                "tx-frequency-cur": -1839293925,
+                                "rx-frequency-cur": 1914120736,
+                                "atpc-is-up": false,
+                                "radio-power-is-up": true,
+                                "snir-cur": 16,
+                                "loop-back-kind-up": "air-interface-2-0:LOOP_BACK_TYPE_NONE",
+                                "interface-status": "air-interface-2-0:INTERFACE_STATUS_TYPE_DOWN",
+                                "alic-is-up": false
+                            },
+                            "air-interface-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "period-end-time": "2021-07-03T17:39:17Z",
+                                        "performance-data": {
+                                            "snir-max": -71,
+                                            "unavailability": -1380461855,
+                                            "rx-level-max": -118,
+                                            "xpd-max": 56,
+                                            "ses": 1620700096,
+                                            "rf-temp-max": 118,
+                                            "tx-level-max": 100,
+                                            "es": -1043663599,
+                                            "tx-level-min": -6,
+                                            "tx-level-avg": -44,
+                                            "snir-min": -73,
+                                            "snir-avg": 12,
+                                            "time-period": -858834693,
+                                            "cses": -857069083,
+                                            "defect-blocks-sum": -18064,
+                                            "rx-level-min": -68,
+                                            "rx-level-avg": 104,
+                                            "rf-temp-min": 112,
+                                            "rf-temp-avg": 46,
+                                            "time-xstates-list": [
+                                                {
+                                                    "time-xstate-sequence-number": 29,
+                                                    "transmission-mode": "uAYB54iEgTrPms4Ng7boIDCB5IQ5Y6zkypWEt6iJZBzm",
+                                                    "time": 74158044
+                                                }
+                                            ],
+                                            "xpd-min": -124,
+                                            "xpd-avg": 46
+                                        },
+                                        "suspect-interval-flag": false,
+                                        "history-data-id": "Qn6EvlQ77w9mIOLnQtWik0KD2yMDrHmiWkWsFErMas0SgDfZ74hjWTXRrJmTiI3fURzzv0exl6pBKwAJsK2pDZ8XBuIT5L0ZCrrZkxwFDNgnbJ6Et1V6S33tpDf"
+                                    }
+                                ],
+                                "number-of-historical-performance-sets": -7358,
+                                "time-of-latest-change": "2022-01-03T11:39:40Z"
+                            },
+                            "air-interface-current-performance": {
+                                "number-of-current-performance-sets": 115,
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "timestamp": "2021-01-15T23:56:06Z",
+                                        "scanner-id": "eT6b7WRBJ8lw1Q3nYdsAn3mvfo5PgiZuc5xbTgEDpR1qI5OGa88x4v2jTZ01aZneWUpQ23lrMmKujq3ty3SCyMOjEGkOyH2utjcwexX0Uzn5Zizylj2U6I5KpiqPZkjlDwJRVyJP86V7omxKFswDaBfrTFgLZsYuQHdLfXtfV",
+                                        "performance-data": {
+                                            "snir-max": -105,
+                                            "unavailability": -785679911,
+                                            "rx-level-max": -107,
+                                            "xpd-max": -6,
+                                            "ses": -1402447721,
+                                            "rf-temp-max": 102,
+                                            "tx-level-max": 38,
+                                            "es": -151694217,
+                                            "tx-level-min": -77,
+                                            "tx-level-avg": -89,
+                                            "snir-min": -66,
+                                            "snir-avg": -96,
+                                            "time-period": 841600514,
+                                            "cses": 1850451420,
+                                            "defect-blocks-sum": 14965,
+                                            "rx-level-min": 21,
+                                            "rx-level-avg": 5,
+                                            "rf-temp-min": 106,
+                                            "rf-temp-avg": 109,
+                                            "time-xstates-list": [
+                                                {
+                                                    "time-xstate-sequence-number": 34,
+                                                    "transmission-mode": "JKs3401vTBAq5pla3YfR9FQyybIsZJKAt4vqXwVQ8n8dMlnIkvzl2iUBtu3s5F2rJyRGWEo41oaFKpn4UPhX7bqAyl2D0W4BmNajryfsXp8zPnvBcMyjQQLobFT3CYFQDP15fhp4yxvfN0RZNhbv0WTbCMf6CMO8tQdAZCFx22FP3",
+                                                    "time": 1217046966
+                                                }
+                                            ],
+                                            "xpd-min": -81,
+                                            "xpd-avg": -112
+                                        },
+                                        "elapsed-time": "-9223372036854775808",
+                                        "suspect-interval-flag": false
+                                    }
+                                ]
+                            }
+                        },
+                        "label": [
+                            {
+                                "value-name": "ZCR09DhTR5f7VXVEHICVHHEEqH1gnf5eJPeSkwE4tT3gJYUqypd76JMorFFGNCUwr9pMx3Q0OT9xJ3Yak3hqNVP6tuMg6yEqz346YUZFF84g32qoYIGLDnR6RveQVT8vOctFYkkvkoLo",
+                                "value": "cE9UcUpADoj0C1Vn9icdER3Y3yjjkzuo5DahpzR2PbUscIPe0TrwCvnx3GRf7dDcRFlg7dbWg5gsN6GGR04uvr1q7KG6YbaHRwXYJ0UZ63jL1SrSSwenX8NXSlVIx6pguf65fS4dVfZW7iPZO3eE3UtOfgwEeOUIVSNaLJoGZfDYxkQef4SjQd76lvCAbpi6h692PpBGE6Fbqnpxj9"
+                            }
+                        ],
+                        "is-protection-lock-out": true,
+                        "tdm-container-2-0:tdm-container-pac": {
+                            "tdm-container-historical-performances": {
+                                "number-of-historical-performance-sets": -4199,
+                                "time-of-latest-change": "2020-02-04T08:54:37Z",
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "period-end-time": "2020-01-23T13:46:50Z",
+                                        "suspect-interval-flag": true,
+                                        "history-data-id": "UX5dfL21IcNMHSh9ljY0ZRev6Bvyuwoglutt7nuPrat82LifW8fNStiY4Fwr4NHph3Kgqf6SprSr4aG0bON39YT6vixz56Re9BuAIsk7UcqYfZRqNwlOueUSwjrBqaPzMc9mEluqyMpNLg5qMq79w113lkwLnek1imnWHRn7wEM9MRsq9zzGAsBNFZy25L3nZqcGarGy5sHRc9hlIJTb3mYAepCj2xz1QLzScfq9I70U997RK1U",
+                                        "performance-data": "LAqTB3K4pNQrk9Qb9V8t5STM1ji3ZwcD6vwzq8vQVl9fuZivVqZSiKwj4Oe3krGiO4Se4nWZJ5655gBSGsKQch285gciHKAnHsuLQqDrwBwtS7lyr5hEejMczQu9t4wax0NfrqGPU4iM4DcvAt1PMO1mwnvZrT"
+                                    }
+                                ]
+                            },
+                            "tdm-container-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 5989,
+                                        "problem-name": "Kok5S6djCdymP64hlqD4SInIpI9XdhZXxbUi9ZBL417U83blmGp6gEOFmXur6mgwxbOz2hc7jc1jf4EBKVA0zgxO61fcfwAFzgeByqIJCB2KFydplNhU4OAaIIeX6PuF5I8D1JeDk8f0Gth1gzOkfguPYJFWq9tvSC1LlfgxowxWZHQf8wsnEW5vxKrXTVlDp",
+                                        "problem-severity": "tdm-container-2-0:SEVERITY_TYPE_WARNING",
+                                        "timestamp": "2021-05-23T11:25:05Z"
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-08-22T08:12:10Z",
+                                "number-of-current-problems": 44
+                            },
+                            "tdm-container-status": {
+                                "loop-back-kind-up": "tdm-container-2-0:LOOP_BACK_TYPE_NONE",
+                                "performance-monitoring-is-up": false,
+                                "interface-status": "tdm-container-2-0:INTERFACE_STATUS_TYPE_UP",
+                                "statistics-is-up": true
+                            },
+                            "tdm-container-capability": {
+                                "performance-monitoring-is-avail": false,
+                                "supported-loop-back-kind-list": [
+                                    "tdm-container-2-0:LOOP_BACK_TYPE_BACK_TO_REMOTE"
+                                ],
+                                "supported-tdm-container-kind-list": [
+                                    {
+                                        "tdm-container-name": "YQifGKaTlIxy8fEXuTM83B6U7vqOhbY7Tgfs0pddZLM80i5m3Jm7ckTjHkZYnPY9YdBQCO4CrQCj0zF3aU2m6WxO8xEveCEcP73kW7OnPqHPZeS10Nn7JUVJjzeycLCTSFdOE14ljD2aRNbSAyZblUUEl04pLHjweocLig6BT1EDOPnogmzt8l7ll4LZL4vZkHKCYJ6JKKeyrBOzXf2XA2jN64MR0hIkRlPH4",
+                                        "tdm-container-size": -374668049
+                                    }
+                                ],
+                                "supported-alarm-list": [
+                                    "bWYbC4zkkXYfUsPn9y8Xx8EDRcFaO1pZPgbrkCMEACUmWBB52KVzSr4BEJLsD2kkivEC7ihzUbWQMpOO9JfTakuG371yalLsIp5Hzm9tp5b3mR",
+                                    "VMzZFDkhr0nm08BZ3Q4tOzzR8OdoQgwD3XuAsORTO67H6JG1rKm"
+                                ],
+                                "admin-shut-down-is-avail": false,
+                                "maintenance-timer-range": "F6Y8Uq61sVBu6gs23jUcU73fWKbR3JoAPeIBEGCZu5lAlOvg7ptTwo8s9bb4UrEBGeccVGbpDxRRlm7kMs6aReD0iOWc8AOOOS0Br404tKVO6V0Kn6Vedy6ve2zmun2b"
+                            },
+                            "tdm-container-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "suspect-interval-flag": true,
+                                        "performance-data": "HG2gohoUJDqyIVXsnNea8Rzm8bPNkzQ17S9v1xhL3HbLD86SNk2VbB9jMZY6qO0xy92AzjdCSofvolfcxhZJS9Uw0LDqrvX0EZA5aNz23Pqr2FDAPDbHEX6EIJ4aeT2KKuIM9hGcY6DTE9llEw2il0O4JK6PD0sfua1DrHPiGkbctwx7Urhfs5b3P9Tk9lzDvAgOiX6Qi92LxzLr",
+                                        "timestamp": "2021-09-23T21:43:05Z",
+                                        "elapsed-time": "-9223372036854775808",
+                                        "scanner-id": "CoXM9aNuJrRkzxuxwkHFesdN5wx85SgI85mhf9LZsubU1FjxR055kaKqGhyE1"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 84
+                            }
+                        },
+                        "address": [
+                            "1jpgeeintMYBorOy7Pl2iBrpYIOpGYVH9dPnrZLMDBg1U4s"
+                        ]
+                    }
+                ],
+                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN",
+                "name": [
+                    {
+                        "value-name": "YXx3AmdJZIZ5Dq3lWKN4nelGuBpDN7QMWfHoCU7tu6y8ottcdhhtnC1J5qmSp4wdc5CG0B9uAHuY2Ybf7kImOK6T2kDsp2Ft7h97TiutRQjTGm0NGB2ud8ffsTHJNncUwlUhvgKe6W7Ni0sZtulGCBNXmnG9KTV86PqC52Q4YQJhIb8bytJ2WoZaLGjnr7wxWW1UYKQPAzYaC6darWdgk4q6CKl3RRtFFm",
+                        "value": "w6"
+                    }
+                ],
+                "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                "physical-port-reference": [
+                    "c942beda-266b-a670-ca1b-e78a3653775b"
+                ],
+                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK",
+                "extension": [
+                    {
+                        "value-name": "JvaHz0IGYtZLjmN0dXHs13dQZOy4ApzjUJSlBA2zW1dff08kPPNRS0zKH8GhxfBkQlFrWzSKs5ZIYZUNGzErseb9eRqLYT5OfD73cZNF",
+                        "value": "EfVE9IkJfL3lOczFCcvoabDNiyRalw7ZD2vFCQgRtjcivDPZQln0oSFHqwJDVQDyK05eQl6cEau9Ob9wwowVh3uzz5dmNINxISLreJDSM72Ai36HjuuApQ2YVfdIP07xSKY6mBR8ALALGykZUOsjwu9rBm1qe0X7CO5YhO6Kzyvf6P70vzb13lkEzd4OdTVPzSGJHEt8dYgbFn42Wf3Zsnv2ArQFcDmEn2n4HQ5UGlXdA1fw9inBxKDZbtEfY0"
+                    }
+                ],
+                "ltp-augment-1-0:ltp-augment-pac": {
+                    "ltp-augment-configuration": {
+                        "connector": "07wpeqzDCeErNGQsYiiaCfzpi0iDsCNsCbRIBjm5pSw4q",
+                        "equipment": [
+                            "c942beda-266b-a670-ca1b-e78a3653775b"
+                        ]
+                    }
+                },
+                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY",
+                "local-id": "e3rYQwPsgDr",
+                "fd-rule-group": [
+                    "5ea42646-26ca-afda-19a7-ad7f7cc924e6"
+                ],
+                "label": [
+                    {
+                        "value-name": "lyQjIlhVvAJAQ4Fh2hTfdC7yhMUBi1SvzBGaWX5jyPUgLrxFAqUN2TlcG8NQ9xeA0UKWSQ8ix2yalYPVoBJjvWn34aL5zZGAUqwE8EOFyePTcwPt8qMve9ybbbgKbWk5fJBnfpVGDCzQ9gj9yXEFY4Q9f6LqVY",
+                        "value": "2HYhOfcuTPWBQ4UZ"
+                    }
+                ],
+                "transfer-capacity-pac": "iy9tRlVKdX5lG4KrdS5a9HqKDc7DBCSLb162e",
+                "external-managed-id": {
+                    "manager-identifier": "UWijxL222IyjrnsggFP6ceAiz04Tgt3ahdmOZoI1Z8dqvFGDcnJoujz3bvOrYJugXQWO6xH5FUn3rVGEjiUNttIFZoYP8sXXaULhjkeYfC1ypAcIKZndsXKjmB1m3Yb6KWf38tUnXNWnf0XZZd5k2Pvo",
+                    "external-managed-uuid": "wCevNkfBzbKU5ZKSNZ8OWZF14R4Mfk4LXi8Cu"
+                },
+                "client-ltp": [
+                    "c3794728-dc8b-5233-0c67-0b857c32ada1"
+                ],
+                "peer-ltp": "f8aa5a5b-6b21-eecf-5f43-21f52446eae5",
+                "ltp-in-other-view": [
+                    "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                ],
+                "address": [
+                    "CYnowAlJafYyo8VZxxDwIY2QXVJbQStkQJIfbVYm2PMqXAqv7VTIL"
+                ]
+            },
+            {
+                "uuid": "8c3c44ef-f7cd-2ef5-98fd-50ff802d3158",
+                "embedded-clock": [
+                    {
+                        "local-id": "IwaNTIOJUyqtXxa4N1hA5T0IkxgJOhwoNG3ypJhbaHx76HcMIlmN7forME2sVrRJ7MhowrsG0ZN7yZTgd74kmkL1YFtU6cv6",
+                        "run-mode": "core-model-1-4:RUN_MODE_LOCKED",
+                        "phase-aligned-clock": [
+                            "YVeiPwRShBgjzQZvC8Zx7SnUMwm6JiLAdZK2vtNM43XDTX0o5SV5KiRoH5uiofKt7uoCXbhT6ewZ3pf1ha6TlXiUVMcjUXE1j2D95M2b1r34Qi57l30yTa"
+                        ],
+                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                        "encapsulated-casc": [
+                            "yrsvdjJfYDkD8PC6Tl2NskLsNnZbrKVZ3on9z6opCA2KqEIbZKYj4BDJZDMifIhb6EcxDAW7aZJsvswn4my9YcKPHx7OfgZdV3CyDyxGpg0"
+                        ],
+                        "name": [
+                            {
+                                "value-name": "Muv5W36NQdlIYuVXqfcKSdIxGuETZKKE6fJViPA0UWAKivIICUkmZ2Uxxqio22209MVjtwkokU0CiI",
+                                "value": "Muw9lq3TPlbef6gffUbzozLETFEnPfrCJXL5fGQ5T1j8ZrnfmqGKZrgSYU7O9yiLnVIDtyImrTmrkJyG2ei1xyMvlTbmkl7HgPcBfUXHNb00NyGPERQbhCyCoCRIXYh6GuHNgxu4ImWnUucql3BDx27VEYvtPNrn9"
+                            }
+                        ],
+                        "encompassed-clock": [
+                            "zSzgZS2utSYSlt8xN7dsLeEaUA9zvWk4GUcxEe2ZYSSkdSR1Z4lDaRNXjWoOKJKivOQ12K1TCLdPDWIu0W73NN0ZBoNeZqwmemo96h2A27ix3STVO1YuGQth78n6yUlN8BOfSQHMXZb0S4NyXM2Dun"
+                        ],
+                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE",
+                        "extension": [
+                            {
+                                "value-name": "jCfqNB21cQ5J7xMX3oaiY5AtAyZWTtTc58uTCwMOfJpe84b3semqbWLMmLIf6ukbuGW65BVkccylgCoJQK11zNFVqo3wKnze3ol8Z8kbcLwtnN45x566KEU22XyEk0Sfo5gndAqqlPLACPF1ME0piUrcRSQ3SAa8GqvT1NbeCWHeDm8iS8H2206LSWOCpYK5h7QaVUgxQXEmcME4Ul7Oldz62fIj5toeA6ov0FVJCz5OdBL7OSN1Xe7R",
+                                "value": "QaqbqFLxV9pAW05nXTAywzmgmoesnXNd85gqK2Xy3f8Zf5e5ZODnnSEB8S3vHQBPVR8yL56Oc6FkcTp3z2qOM4pUOkio2T5QKdgwbecncKHovYj5TC"
+                            }
+                        ],
+                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY",
+                        "label": [
+                            {
+                                "value-name": "2pyxl8ThwGMI67DA",
+                                "value": "buCY0sut99VoiWrHuQ3uBc0hYBgYeIshc4gcpCFqDsPVgguK6p7zC7RAIZqPHT6TPeX6QuxlXmgduDQs2X1EWK7FJxmiqs38H0epvLLk7Tptw7Vr4X51zcybKUt2epaNhp5MaIYaBoD0vzrsoolPBL0dxmfLLir2HwHRexTHVxzjYSDehY3KB4X8i4L3m4XVAwFG4ygR5P2VIF9Rv5B61q6jmKeBO3whAbXwKdnH3qvDXwulB"
+                            }
+                        ],
+                        "encapsulated-fc": [
+                            {
+                                "uuid": "d9e945d3-704a-d3d4-ce5a-57a48d97fed1",
+                                "service-priority": "-9223372036854775808",
+                                "supporting-pc": "sq5hUYjioWa69aP17KnPT7Yy7d6O4T9pj6G64RotNyrOA8PIT5pMcocctj0pc1Go8mu46SpTjRILRxtKCT",
+                                "layer-protocol-name": "vlan-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_VLAN_LAYER",
+                                "forwarding-direction": "core-model-1-4:FORWARDING_DIRECTION_UNDEFINED_OR_UNKNOWN",
+                                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                                "name": [
+                                    {
+                                        "value-name": "GGg7EMVetX3dP2UEEpwFM0i3cIwJ1LpAjyzXcm4Fj7L91xFFO3dA3vw",
+                                        "value": "6UR7F8HQygNKDRiOR3XSsuqgyDIt8eBe8keFlVvT4bEzUWnDRdojHOz7j9BjocyopE4Krrvvu9WhXcUOpiZYYq6hAHBYL1eaFaM6uiuYji7hu2XLcPK3fIkPhNF2GM5dWRcq1yhlQoudijYv8AyoiK5zqDu6pzkdioEkWNxMb1ZukQRtqpJB1G2rbwyAXKGg8cs4ZZIa0AwcqnxIEgjGPm70KxtI9"
+                                    }
+                                ],
+                                "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE",
+                                "extension": [
+                                    {
+                                        "value-name": "nrXhYU4U1NkaqxrE6AAigeYuFmHZsbYQuOZkAWetJqE1X5F4x8eNechTqYLT2JBopAJZoXt7gZ85WG1tOfhUsqNKhyDba6zzHir58U5oT5tHLnarCjlWK1H1rc4BjD30WuX4gUk10FID2S5F4iBObaHDnL6Gg1ycvn8LisEa8mN27KHbVbR6lqBA3AgjBOo74wKeZpoZD31KGBNtMwrZW3ARDI36prdtXQHO7XFK0Hnya2",
+                                        "value": "OztNnof71Qa7fBdAyVhf26UE6t1FD4yrv17KpeRi41ibCnL3i2ic0cQ7GSEjOcDb6KVvQNGVGY6jdSmvMEHNQpMo9iAXmd0sPOQFtws9mrszbGWXcvC3Ugj4yTTV6MfNA5l3tNcPexgp54fizJdm0wiqq3doPl4pqpkUcxBjWSI1OPjgzwCr3UJlXPBFaF"
+                                    }
+                                ],
+                                "fc-route": "t1FS0e9Id2hKtSbA0M",
+                                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL",
+                                "configuration-and-switch-control": [
+                                    "bqgw324Ntr2RhLIiKWERDPCJIq404Q878gDbjAYMT0vaD5lf2R6xGB8p14hXUpW2yrdR1bvM3TXGYaNS1UpHnqYgufdpx1r5sFOmIb8M4XkV78F0U5A9nypRGCgdvAaX7YbP1ct"
+                                ],
+                                "local-id": "Y6Dstsg3i8IeZctFoNTCHIHx3Hb6jWkhUXBfhRizZSNY4hvlWgXDYwaU5eSoacx410biRuRIewybN3wBclfaRh4WvOcF0JB1JNbs9UafrAq6vWIH9PS06OOCv09vB",
+                                "lower-level-fc": [
+                                    "9bc11e2d-913a-2fa6-a64f-f01427c75d88"
+                                ],
+                                "fc-switch": [
+                                    {
+                                        "local-id": "7HL3VB1MA3zu4RB4wFtI4WeBA7sSA7BHHfCuQw9irAEws7AYMVGRRMkjUM",
+                                        "wait-to-restore-time": "-9223372036854775808",
+                                        "profile-proxy": [
+                                            "GQ6Me28u63kZ2sqSLcErEZAu0msOfDnVllzznI3uLftGILytY5NuWfQOtiCJNZE8c6zAOu4rKp7sayN0vAujIk7bvCUatrjGxSglfkMZJMrLceMHHg0pt7sYBn85OjLl41yjdciWYBz2PlJoCBF5B8Vcn39bfUojNWC00MORnoT4Jvld60az0XEnTNy8"
+                                        ],
+                                        "control-parameters": {
+                                            "reversion-mode": "core-model-1-4:REVERSION_MODE_NON-REVERTIVE",
+                                            "prot-type": "SWeU2G7AGBJ89UaB8Ewd6SFQ10qT8rs0fGMhfLJVfk3ge5SeCokI9RqaSIV01gSgWFp3i8QxtMOzRyOlO0VXRd7JVVBObm4ZTt3bCLBXxpwhPcCDcqB4DAFrn9fqvcqoFlr9626wjvN8HhMUHfYdPDw5MLv9PNxn0Zw7",
+                                            "hold-off-time": "-9223372036854775808",
+                                            "wait-to-revert-time": "-9223372036854775808",
+                                            "network-scheme-specification": "vdSalzrZl1ej6WPC1tfoD5c2scTQbNdGS5QdFa50bjch7TT8e0xR5BMxNxoZcBx4zga6qf6tyaKGVvGav5TtGF0m5glhKKej0opqDnT3qvBlSavgfhJOWBaTSnbu7pN8F4qirkdJHP5AZsI6JrUy24rMrugrLVzqZZAjbO2TvZlms3s3mntgjV3Dhb437vl6uWhyCkj7bwlDrNzN223mPYR72V29qf7M3pcxBvwM1Ris"
+                                        },
+                                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                                        "switch-selection-reason": "core-model-1-4:SWITCH_STATE_REASON_NONE",
+                                        "name": [
+                                            {
+                                                "value-name": "mMF3lUyPC4QMvrq1LytJcghV7WfjQUvcG271XFIrBre7Sw0v4m69CnWCb4V1Yi5wk5p9C7BeqPlaldFizLjc1fOcbJ691bFdg4nT4YZmNcx0pcaZQt3RBR3Ms9WldtqlqN6uL5QqhfjHktyaXB1ykWcEY8RbuhwU5DgII61SekzyFZICAB2Mxfqnf9yJqXDnAT6aSZ2Ybtw",
+                                                "value": "k6lUHny6uQuCZUlqRRNjCLmmKgkVKIM4O7RnmhuJ8Ql7Kypuh5NUQ98tqlo232YK1H7gZtZZjc6WKoq2t5OjfWMx93zdXpXR7W7YqYXB2VxEjPyEVmY2bCzkx8pnxeewbduBbj45fuJqji56wV8HpHUXPbcfqqDBD84"
+                                            }
+                                        ],
+                                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE",
+                                        "switch-selects-ports": "core-model-1-4:PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN",
+                                        "extension": [
+                                            {
+                                                "value-name": "Vv4q03eER8XI3IROeOg4YPcpT3u6IeCEKGWKCaotae4eON22ta7jRbJK7dIPrkl31hNvj4YuaUAYHuS3ERmn35ZaaIZu2lxVCdqWhhijbShLm1OSTa7W866aGXwBi4oN9PBqYLJ1DSMRTsBMDIADGyFnwcQG8ethVWHTHiVc2zVN2wsx622NBH27TSF161iUXRN",
+                                                "value": "1AJ32FJW3btadnPG4RFQBlRzm2tbL9INBsIvZjrUuM4A9LgeuW459NxnHSylTh0vBI0A2kmo6jYg47mz3iw4XVrxOZSz8S4JsXbm"
+                                            }
+                                        ],
+                                        "prot-type": "5sVlPpCpEuke9xcQa86knLoZmTkL11sY",
+                                        "reversion-mode": "core-model-1-4:REVERSION_MODE_NON-REVERTIVE",
+                                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL",
+                                        "configuration-and-switch-control": "OjnCVoDz4uWsfS4Kd9J6ca69Ou2u224Jlrl8PQHUcvesoi4tkNzwQGFEaI04K4N6w16lJO7Wjmgzwk3Q0umQaUmcunh6rW4XPbbzZinawDKVXFLX10F4U2ggppmImrG3CRCB1ZLqunlsUYhWQX0CZ8SgyfYMGwPifkL9bozGMM0yKhmBee55nYdNd4zTso3IAORMcisQ4shGBD9QKfNZdTMiXl3pB6ZcMIQY0aHWCYv5tEV5TB4",
+                                        "internal-configuration-and-switch-control": "uQgj3jAxpAB3ar23BBZ5rmaM1YSMzOLVx16AdGZC8AGj1Aeu35zmsK8",
+                                        "label": [
+                                            {
+                                                "value-name": "r8LyCuZOMWUjR3S8KE5sQ9zgzcR",
+                                                "value": "cNS"
+                                            }
+                                        ],
+                                        "selected-fc-port": [
+                                            {
+                                                "local-id": "craAY90oTdueIiC8603yWeLp3mMTrYfDhp5fqXvj2SqCa2K8UGGJMj8P",
+                                                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                                                "name": [
+                                                    {
+                                                        "value-name": "MAYCPtT6q1ofoIhg0Ti2EqWcYFYiFFPs7GWX9IVsJkHZUZgUSqWoRK",
+                                                        "value": "PiqZX5Ph5n62wOPYp1yoVxwHhXvyO80vqjnfg4plrvfPj5GIYe6MLvtUsZs87lvpESwUWVgfqv5BsLbrZadCFyo7pRfo4KNIvcuj7Kzq8E1ApdTgn6K2x81WR8dVK0vf40zcK8CKEvl3A6bP5VJC3KqNSDIvweKA6bMQbgtPEOKeUV4"
+                                                    }
+                                                ],
+                                                "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                                                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE",
+                                                "extension": [
+                                                    {
+                                                        "value-name": "TnkgZJIAbEWNeSWuDc3X3FsB40ZiSlMMI6UzHC9S8XFeHtIkFL9IrBcn",
+                                                        "value": "bFmwj06pVF6pGQywwMdRnqp0z7j3bGxneTLxUKPHhN6YEwm2bzTqRiqriKutq1IwMm4G6Lffye54Kr6NTSdK2E3cgxGGqg5dC9LAU1QkfVpRfnF87SSaoWmElUdMbiRFjC85vYpCLGu0W103LTdaHAG2mTGx3x5m2djx3JaGh"
+                                                    }
+                                                ],
+                                                "logical-termination-point": [
+                                                    "bc478ce2-7d3c-9c53-dff2-7724bcef25d4"
+                                                ],
+                                                "selection-priority": "-9223372036854775808",
+                                                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY",
+                                                "port-of-internal-fc": [
+                                                    "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                                ],
+                                                "label": [
+                                                    {
+                                                        "value-name": "INtEqUrax1F37iEdti4Frpu557jZ2fRDVchd6AnwBVrJd5WygSdHhAMmHXeB5Xe09nd8XsEzn5as361bZ6K8GonflBRiqX",
+                                                        "value": "zlnziQ5J53TyY0z9RFTRe9etuPcN7aXHnd8FVep0haq7aRgTp1LDaZYwH3bOd1nAeo79Co1LzsSBb0vA18d3Z4ry7DfcwCMK0LLuaM7B6ZciZHSSHYNH2ff1KudgZRSRCDeEhlfglsqc1a5J0Ki2RxVBU8JTZtCu6Q8gcgopAOBBYycZjmT2UHEGPfrHJ3bHMbPYrdn1TQvKpzBAWmCI38gLoHsZCvyoGoe0t"
+                                                    }
+                                                ],
+                                                "is-protection-lock-out": true,
+                                                "fc-port-direction": "core-model-1-4:PORT_DIRECTION_BIDIRECTIONAL",
+                                                "fc-route-feeds-fc-port-egress": [
+                                                    "3RpXfxSSaV2EZTSbqagygPYMZ0niBTWxCluSLeCV9Ez0pk4QukgK9eo0eLiIw6f1sBL5Hn0QTrIjLM977hJ8v79BKjb9qiaSTVPAiHi30TmMFnLEEvN1uWDffOoF7qpSlelvVvyWoVAWidAXInY5b"
+                                                ],
+                                                "is-internal-port": false,
+                                                "role": "k3FOscaFijcu9eCgyS1WJfH31AWtqiJKlhqNtAsLTw83KKbaC4Yekxhd7eyywaa",
+                                                "address": [
+                                                    "9ismk1O14bMCAI2FW4KgBFRDm81VeymnJPB3IqWEtBh3bjB7ndnQT6m7fnUlWgIxXbsGBhk4Kt0VMB21OiKzo6GvtAQhRqGGC9m5qz2222XPvRIj1sTiqrNU2w3LOKjiLGo3fi59k2YPLz0N1L5kdK67g9KXL3foBvrINwS7qIOchHZbsWvxGBwPCgMgcTENp6o4ug4VYS78zYjUMGrkhY9L6N1a"
+                                                ],
+                                                "fc-port": [
+                                                    "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                                ]
+                                            }
+                                        ],
+                                        "hold-off-time": "-9223372036854775808",
+                                        "switch-control": "core-model-1-4:SWITCH_CONTROL_MANUAL",
+                                        "address": [
+                                            "JnVQBmLTLHJG0gm08W80SSsH3PItsYk3d8MPupA77jO7z2ZzQ0rBSUaNBT9VJtYOBKD6a659pTgRO8iw8K70waF7VOUEaSkLvYJxWPGdAO4gWnN47MWvOuuJaofk8A6DqHamoQzZxw7tLUyKzufnYJZ17elfOjL61VshEU"
+                                        ]
+                                    }
+                                ],
+                                "supported-link": [
+                                    "9Oy1AvBJS28CICSN7sX4zN8hOkKMlqxueYoOlZx6TxIt9AggV5dmKlDrxgdSGDfVBDBWC12oyKRId0Q053mIgS9N0eyGRN"
+                                ],
+                                "label": [
+                                    {
+                                        "value-name": "Q9li5khOm9gTlG8TgN1AlQOkRyKc8TlY3G80SpGeyWZMu8xLNyd8h1s0r4cAYxqT5zTXQs3ho33TbAwY0JYhKih3nlvdSW6XnRMdjQuATplWZRM0sK94Uj7hEDuprseOc11vRoXCNiqF1cxtOGxIRFSwamVBH9pT2igLyenmwNTq",
+                                        "value": "qTFYrgQY8e8m1J3a0W5i5QRj65HTY7Dg1a6kqWaq2iF3TIeTxj3C1MN7Ru1HCwPvGWPZKZhN9WQ2x4N4fQyhDdomHhWbFLGmzndkeu"
+                                    }
+                                ],
+                                "is-protection-lock-out": true,
+                                "external-managed-id": {
+                                    "manager-identifier": "H9BTuMLTYMseMOARUlgGEZghRNLtiwKRxdK1ZnMP964WVwFHRVfnNvFwbiZlOBcdOW6NbKvkRr8EXFdPttcgYRM11DmPfyU3m0JxD6KuxK0mqdbTyg1pZNq1iNIxdDtAv4Z0aJmzmmVMAZF0fGp6lQ7DvI3IdwaIsaBuLX37kYLMPiM4Yc3b22HpKK7X8iyAk94X6Z5iPI4F1RB",
+                                    "external-managed-uuid": "VE3PHKermdhuvPWHY0F4RCfGkjld2P5Xt0E2KS"
+                                },
+                                "fc-port": [
+                                    {
+                                        "local-id": "5eFHSxZR0V5eYVAKgKhDCiydrI4RygSDuykeXb5PY23OYwz6gIJT09YjJ3",
+                                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                                        "name": [
+                                            {
+                                                "value-name": "hbVMFl6TjaZ8014PRAgPQQqBRsA2bv5tG17de66xgXy8RCPIc5qUOQwFiYHmlFPTyW6M24ca2KbTe0tiYLcMCAjMyS8TxPE5EKSyPWBJyMuMMP4KB8o5JHJ9ASVZzz55cPE1L7CbTYXxNT",
+                                                "value": "gTylC85EAPzzg8wmklSdYZH9KFY9lJjBDSP7SMLstk1JlyXxLHDCykDaSCkdlDGQnvYf9JHCWBe913GELjgjwUuooOtBj9sHFqOO1ojPZxYSAxwdINxezTuXzXqS7SrEagk4EDTv2KnDhLQZqf6Z0AOryfcxZDbaLveh17M3J1y0NhS5oY5pqLQYS2vSyy2bW8tX77SR1jJOABTYrQfSuYImS6eiE8uA8Xpg4aZ5tIL3cxTvf1fJRY6J4cUAd"
+                                            }
+                                        ],
+                                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE",
+                                        "extension": [
+                                            {
+                                                "value-name": "YuG5bqaWPQp0MPMiKMvGNECAscgDCpltT1y5kJ11zjUe0GwCk1a7xMzRYQnBfI49Bu6NdZPFaBTahhEtaPsAB2rsSOV7oR8SleFr6m6gXRr605raMUKgW4IOSvN9mO1z2y00NYhCHIBHF2SkWuASyiyjNes12lAWTtXyjebTOMslOcFDHfnfpOy42S5WdyK7THx4NIXtmiP3umGbu3jTJJQLCNzPdkO6Tm3zWS2jaJeF6UIsP1",
+                                                "value": "zL3cfJE4WYLVJZYiVIl6TWkqU68mW2AnNvr2e5Y3VBYFAOXooau97HzTNAgBCIQh5ibcf1f3D5IdTxBhAYrzFSsksAWWaM5gWgs4iH7NMP0xeuGOk7fZSIbca79l"
+                                            }
+                                        ],
+                                        "logical-termination-point": [
+                                            "f7872522-16c2-ce17-fc7a-083c8517e7b3"
+                                        ],
+                                        "selection-priority": "-9223372036854775808",
+                                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED",
+                                        "port-of-internal-fc": [
+                                            "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                        ],
+                                        "label": [
+                                            {
+                                                "value-name": "3ldst9Ck753K079MupNK0wIY7E31egp9tuCXE69L44vWbFIGWniWT0V1wYUK6cUzGookmyXiClfG0PeO5wCQopJ",
+                                                "value": "fEwlQiNwy3JVtG561kET2Kz7gcPwBzqR5W4N7RbFVUsotymuSSgMCPLK1Bgv2ymZnqMuaX95SCld2AHUkPzXxkzqNQVHo9GLsk7Ci9z2LMfNmOzHE0w3d5t0NpA4ygH0BPuLY3NBQUg4IHDeI1hV7LNM2nQswyl7fPKdLpGtjWpTD30d4983MWIObq9"
+                                            }
+                                        ],
+                                        "is-protection-lock-out": true,
+                                        "fc-port-direction": "core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL",
+                                        "fc-route-feeds-fc-port-egress": [
+                                            "1IbqDA6bO0DwfdKQRpDJGxQYof2EmhdnZgFDQLOxMk31pGR95uSD2ABiPvW3M1jMhYh0KXxwhspz0hI6DsBx25QJAMMnO51X4iXGfmcpPBYPKGNg0hN2mvDWapbQncNruD7CZb1GEZohx3xpkcjGAWvKlGsIL71fK0RC3KaABqR0ugpGsIf2EKESi6s3embQmUsixvS8VJ9hZqYj"
+                                        ],
+                                        "is-internal-port": true,
+                                        "role": "m1sdY02sPD9mZ31RV71DkVU5hFgRx2sT4M7UN1muxoQojJ7eQ0JaOv75agWHagt63s1IlfcSD28WDg2tgLv4hD1rTX1V6u29WVRha32GXaCsixVriqnrVpTGeMCkgEt4rclB7fh4qMoAjj1tCpVxOGe2sQfAmIENVZg2fqZx",
+                                        "address": [
+                                            "3MxCTkgAcNPytvStLJdlVpv2qQGFrpUm3rYPLepXT6onCgIf0VANk5HLWoifF4CIvsp8"
+                                        ],
+                                        "fc-port": [
+                                            "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                        ]
+                                    }
+                                ],
+                                "address": [
+                                    "1OQkCAUDoKPEbl8ug25tSUXp4utprKLsqtM23Gysin6lA7PR1VcTP9aMEE3XgOpHa3BdB9FUwEf7LXQMSUyzWIdsegpnXOW7JxkkzS65om41bMF3z5uvGIXUQe9N25MDvZX4R417iY0tCFobL"
+                                ]
+                            }
+                        ],
+                        "sync-ltp": [
+                            "1c7e2c79-af6e-8d12-d18a-957fe616ceeb"
+                        ],
+                        "address": [
+                            "fnKDqDI8fWoL7CQmOA4"
+                        ]
+                    }
+                ],
+                "supporting-pc": "5Ug2NSOljRNyexbw2LEhHUVGoL35dZ2aTidH3T2mKHUQ6Xf8ILhiGcY4X11203dMmqlpbfLNWxD2uK2cwju4ol0dm2gf5t1jLmIWBlJpSermZlrnwNrU8r8ntgCzJDSuRtikO1Jz72N6nelTUMO2eOpH4T8FoT9ferz2kitrkhqznLthq9cEPtdTnmqL7z1lSsf4DJnP0NpfrSxRTBnI4Atr",
+                "server-ltp": [
+                    "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                ],
+                "connected-ltp": "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5",
+                "layer-protocol": [
+                    {
+                        "local-id": "oSHSoGMC2AwWnyRbW0D9taoHvInxEC02uzMK8yea0K6obPzZH5",
+                        "layer-protocol-name": "mac-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER",
+                        "vlan-interface-1-0:vlan-interface-pac": {
+                            "vlan-interface-capability": {
+                                "configuring-pcp-bits-decoding-is-avail": false,
+                                "ingress-vlan-id-filtering-is-avail": true,
+                                "port-and-protocol-based-vlan-is-avail": true,
+                                "statistics-is-avail": true,
+                                "configuring-service-access-priority-mapping-is-avail": false,
+                                "max-number-of-protocol-vlan-id-groupings": -26560,
+                                "configuring-ingress-tag-filtering-is-avail": false,
+                                "supported-sub-layer-protocol-name-list": [
+                                    "vlan-interface-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_D_BRIDGE_COMPONENT"
+                                ],
+                                "number-of-available-traffic-classes": -3,
+                                "supported-interface-kind-list": [
+                                    "vlan-interface-1-0:INTERFACE_KIND_TYPE_STATION_FACING_BRIDGE_PORT"
+                                ],
+                                "available-pcp-bits-interpretation-kind-list": [
+                                    "vlan-interface-1-0:PCP_BITS_INTERPRETATION_KIND_TYPE_5P3D"
+                                ],
+                                "drop-eligible-indicator-is-avail": true,
+                                "configuring-pcp-bits-encoding-is-avail": false,
+                                "service-access-priority-tagging-is-avail": false,
+                                "received-priority-overwriting-is-avail": true,
+                                "egress-vlan-id-translation-is-avail": false,
+                                "admin-shut-down-is-avail": true,
+                                "tagging-and-mvrp-is-avail": true,
+                                "vlan-id-translation-is-avail": false,
+                                "restricted-automated-vlan-registration-is-avail": true,
+                                "number-of-available-priorities": -5
+                            },
+                            "vlan-interface-status": {
+                                "statistics-is-up": false,
+                                "timestamp": "2021-07-18T06:16:45Z",
+                                "total-bytes-output": "-9223372036854775808",
+                                "total-frames-input": "-9223372036854775808",
+                                "interface-status": "vlan-interface-1-0:INTERFACE_STATUS_TYPE_NOT_PRESENT",
+                                "total-frames-output": "-9223372036854775808",
+                                "total-bytes-input": "-9223372036854775808"
+                            }
+                        },
+                        "wire-interface-2-0:wire-interface-pac": {
+                            "wire-interface-current-problems": {
+                                "number-of-current-problems": -22,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 13906,
+                                        "timestamp": "2020-04-04T03:22:23Z",
+                                        "problem-severity": "wire-interface-2-0:SEVERITY_TYPE_MAJOR",
+                                        "problem-name": "OQ82CRFTIGOxUsBvccmYOchsGfjgaIyQyGS2ppO85Cx0W0n1dBZTOgdmvwvxe3nEC8z1xn1DRqvOrKPEmOp2XCgk8LSfH7Tbfs4NHYizoFfPpWlDCKxzeOUfrEu8LfbTAgGh6YIuvXkULxqoaXXoLJDdfZdTfpMPxkYDaH7FwjraRRy1PnhsZNFeMLZT2LAzXr4703Mwf6GYX6RMu8ftNMzspzlrcOS2fW9fSOD"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-11-02T13:24:52Z"
+                            },
+                            "wire-interface-historical-performances": {
+                                "number-of-historical-performance-sets": 20615,
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "period-end-time": "2020-05-11T13:43:03Z",
+                                        "performance-data": {
+                                            "es": -2052123635,
+                                            "ses": 1685061558,
+                                            "low-power-idle-receiver-ms": 1966489468,
+                                            "low-power-idle-transmitter-ms": -618994055,
+                                            "symbol-error-during-carrier": -1402767861
+                                        },
+                                        "history-data-id": "SPD1gkQjYNORnbPxqnzk0gBln0qlWICOpfHxzxRpdFgAJX01lzllIOG5G7iCHUiY1ZvBoe0BU94v64wjDRwdx5id4BHLnZJpQ60elSQ7TUCSY8btRIHgNRtRsauQ157R37XoRFvLzZvp7yLQ8s6VbrEEt0mu5td1s3pbINW",
+                                        "suspect-interval-flag": true
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-05-25T00:21:46Z"
+                            },
+                            "wire-interface-status": {
+                                "rx-sync-role": "wire-interface-2-0:RX_SYNC_ROLE_TYPE_FAULT",
+                                "link-is-idle": false,
+                                "eee-is-up": false,
+                                "performance-monitoring-is-up": false,
+                                "rx-level-cur-list": [
+                                    123
+                                ],
+                                "tx-level-cur": -94,
+                                "pmd-negotiation-state": "wire-interface-2-0:PMD_NEGOTIATION_STATE_TYPE_ENABLED",
+                                "loop-back-kind-up": "wire-interface-2-0:LOOP_BACK_TYPE_EXTERNAL",
+                                "interface-status": "wire-interface-2-0:INTERFACE_STATUS_TYPE_NOT_YET_DEFINED",
+                                "pmd-kind-cur": "5e7JI0Y1qiL4JkSUuES4vw2EF381qT1v716H1XJk7uoQG8DaMveaT8GqcOsCIl7Pm6pg38AauYSbYndLKsNEAtWMhooZCoHYmYeh6GrswbvvzJ8bbVPDoEqx2GpwWYviWBzUiSeO4KbvtjGw6o9u2rUW8jl4hQf",
+                                "receive-signal-is-detected-list": [
+                                    false
+                                ],
+                                "signal-ordering-kind-cur": "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_NOT_YET_DEFINED",
+                                "pmd-is-up": true,
+                                "link-is-up": false
+                            },
+                            "wire-interface-capability": {
+                                "wavelength-min-list": [
+                                    -233407233
+                                ],
+                                "supported-signal-ordering-kind-list": [
+                                    "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI"
+                                ],
+                                "rxlevel-high-threshold": -115,
+                                "isolation-is-avail": false,
+                                "supported-loop-back-kind-list": [
+                                    "wire-interface-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "short-reach-mode-is-avail": false,
+                                "wavelength-max-list": [
+                                    -1147319573
+                                ],
+                                "unidirectional-operation-is-avail": true,
+                                "supported-pmd-kind-list": [
+                                    {
+                                        "pmd-name": "2q5kdX6hhTXJgnRdXHmkn1JUGpe6HdSBDPNJEM0NxXwNdg02Xemlf57VmlT3rLwWtkF76yNvnbiAriDpoRCDPJrb4c7nYvcjHRiFh5aFhs7ICKZ0uBwjkPmh1lwRRIaysleJigozJwad81eCDKVPraYsvvkm5mNxHTh",
+                                        "speed": "9xrS3t64vcG",
+                                        "duplex": "wire-interface-2-0:DUPLEX_TYPE_NOT_YET_DEFINED"
+                                    }
+                                ],
+                                "configuration-of-number-of-bip-errors-per-ses-is-avail": true,
+                                "auto-pmd-negotiation-is-avail": false,
+                                "required-medium-kind": "wire-interface-2-0:MEDIUM_KIND_TYPE_TP_CAT8",
+                                "temperature-low-threshold": -53,
+                                "maintenance-timer-range": "iuOmZS2RGozN27m4agkaofIdbpV8MWYWqEaiw494tARnHejRmv2KKCPV2C4GqUCRrM1PQ2UbDDzkJS45gYH0AxWu1SasEEbXicN16zcJ4D4Oo0LEYlEqSsVLc5dJCoGUslVzM0aRD6x16aF",
+                                "supported-alarm-list": [
+                                    "vcvfEi1Rn6AZn8MPmzg8zrRdxg6ErMAOYX4ufXdv3Nm"
+                                ],
+                                "mii-kind": "wire-interface-2-0:MII_KIND_TYPE_SFP_SFP_PLUS_SFP28",
+                                "rxlevel-low-threshold": 81,
+                                "auto-negotiation-pmd-selection-is-avail": false,
+                                "wavelength-grid-min": 269448100,
+                                "performance-monitoring-is-avail": false,
+                                "auto-signal-ordering-is-avail": true,
+                                "configuration-of-rx-sync-preference-is-avail": false,
+                                "eee-is-avail": false,
+                                "temperature-high-threshold": 2,
+                                "admin-shut-down-is-avail": true,
+                                "mdi-kind": "wire-interface-2-0:MDI_KIND_TYPE_HSSDC_II"
+                            },
+                            "wire-interface-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "performance-data": {
+                                            "es": 1519716540,
+                                            "ses": 894468176,
+                                            "low-power-idle-receiver-ms": 1502169598,
+                                            "low-power-idle-transmitter-ms": -2073945009,
+                                            "symbol-error-during-carrier": -1330272915
+                                        },
+                                        "timestamp": "2020-07-09T14:24:04Z",
+                                        "scanner-id": "0p84516kPgrHW5OQ9Lzrz56oI500w4HwlPtrIzDyH57D2WlbzVC1SAptypt4l2tGJW7snLS5IZIKN4VfRpgJSFcqWxmhzPXbDXv1An6ieG22CP",
+                                        "suspect-interval-flag": true,
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -41
+                            }
+                        },
+                        "ethernet-container-2-0:ethernet-container-pac": {
+                            "ethernet-container-capability": {
+                                "supported-fec-interleaver-kind-list": [
+                                    "ethernet-container-2-0:FEC_INTERLEAVER_KIND_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "maintenance-timer-range": "mvxkUXkUltd7FiJTDBwsRBwVIPR4qDBN807VXrPbUVir51cJuIbejz91pSYPvzuwrtjpU8AG3K01DcK8VVm6un0L7YtupX0Qjjf5kHMfjMgXY0XLNbSaySVFQg1f625pddupM8F6MN3DOSot38DB0r8Iz9PF3NW90ryErdKe1FJHp72s8GV0Z3Jy5y60l",
+                                "supported-alarm-list": [
+                                    "ovTP1OGo6nIAt6xwh08cjD5xDqI4e2a",
+                                    "dlIKNNmTG2CfjBiMJQHKPDlfATlA7gKcBkWg7j9OdD3wfdaQ3SsSnN0XzlpyB1C5lzllKv1P04dfioYd8i6n6YcxbBXNvzKQ053Cs4rt1FAjVyw3RuiPkuew53bACVjv0e7ljzOk"
+                                ],
+                                "statistics-is-avail": false,
+                                "encryption-is-avail": false,
+                                "performance-monitoring-is-avail": false,
+                                "available-queue-list": [
+                                    {
+                                        "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_EXPEDITED_FORWARDING_QUEUE",
+                                        "available-dropping-behavior-kind-list": [
+                                            "ethernet-container-2-0:DROPPING_BEHAVIOR_KIND_TYPE_RED"
+                                        ],
+                                        "available-drop-precedence-kind-list": [
+                                            "ethernet-container-2-0:DROP_PRECEDENCE_TYPE_ALL"
+                                        ],
+                                        "queue-depth-configuration-is-avail": true,
+                                        "wred-profile-per-drop-precedence-is-available": false,
+                                        "available-scheduling-kind-list": [
+                                            "ethernet-container-2-0:SCHEDULER_KIND_TYPE_WFQ"
+                                        ],
+                                        "max-queue-depth": -1740283925
+                                    }
+                                ],
+                                "bundling-is-avail": false,
+                                "supported-header-compression-kind-list": [
+                                    {
+                                        "header-compression-name": "BQFfd61zN5nLWXBKyVoPjW8I31iPtEgXuNczTd8zawc6lFQTs6AM2BmXCwM5aUUwA65lbeUlCZkXwaIZ9jD3UR1onFtpsgV2mSnq6aLA15px88o9jTc5CdtZ",
+                                        "mpls-payload-kind-list": [
+                                            "ethernet-container-2-0:MPLS_PAYLOAD_KIND_TYPE_AUTO"
+                                        ],
+                                        "compressed-protocol-layer-list": [
+                                            "ethernet-container-2-0:PROTOCOL_LAYER_TYPE_IPV4"
+                                        ],
+                                        "header-compression-mode": "ethernet-container-2-0:HEADER_COMPRESSION_MODE_TYPE_PROTOCOL_BASED",
+                                        "compressed-header-length": 30549
+                                    }
+                                ],
+                                "support-of-management-frames-without-preamble-is-avail": false,
+                                "explicit-congestion-notification-is-avail": false,
+                                "information-rate-min": -1773014743,
+                                "fec-is-avail": false,
+                                "burst-size-max": -19473,
+                                "ingress-policing-is-avail": false,
+                                "supported-fec-redundancy-size-list": [
+                                    "ethernet-container-2-0:FEC_REDUNDANCY_SIZE_TYPE_16"
+                                ],
+                                "egress-shaping-is-avail": true,
+                                "information-rate-max": -860634237,
+                                "admin-shut-down-is-avail": true,
+                                "bundling-group-size-max": 79,
+                                "supported-fec-interleaver-depth-list": [
+                                    "ethernet-container-2-0:FEC_INTERLEAVER_DEPTH_TYPE_24"
+                                ],
+                                "burst-size-min": -26796,
+                                "fec-word-size-max": 28379,
+                                "supported-loop-back-kind-list": [
+                                    "ethernet-container-2-0:LOOP_BACK_TYPE_NONE"
+                                ]
+                            },
+                            "ethernet-container-current-problems": {
+                                "number-of-current-problems": -117,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -5827,
+                                        "problem-name": "aF9Rsl0tXqAjpL2A8aBblJTjB0sZhCMr9NbC835XlxgKjbkrdNuypoR0gbZxFDRPi2rq5ogiVw2eHmyU12sqicryniY3OPS6JbpGzFYmb0tLe1FfV0Ge4ZEr9CmXr642htII0G5bGqWMru2mmAsqr7RAJ6q3cu5mPO4Pm1SVjPHKbBZxbrPuqy52Ev5RR25yI1f5V7SeOzZZbQoe9dJAMGCi3z1Ut6k48z",
+                                        "timestamp": "2020-07-24T11:39:03Z",
+                                        "problem-severity": "ethernet-container-2-0:SEVERITY_TYPE_MAJOR"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-06-24T07:35:07Z"
+                            },
+                            "ethernet-container-historical-performances": {
+                                "number-of-historical-performance-sets": 1425,
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "period-end-time": "2020-08-27T19:24:18Z",
+                                        "suspect-interval-flag": true,
+                                        "history-data-id": "M4kUNAvqgXAQ9mONxw",
+                                        "performance-data": {
+                                            "queue-utilization-list": [
+                                                {
+                                                    "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE6",
+                                                    "max-queue-length": 2072325800,
+                                                    "avg-queue-length": -304963755
+                                                }
+                                            ],
+                                            "fec-uncorrectable-blocks": -2082685665,
+                                            "tx-ethernet-bytes-sum": "-9223372036854775808",
+                                            "tx-ethernet-bytes-max-m": "-9223372036854775808",
+                                            "fec-corrected-blocks": -1516288457,
+                                            "tx-ethernet-bytes-max-s": 1823514088,
+                                            "time-period": 883306284
+                                        }
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-04-02T05:43:57Z"
+                            },
+                            "ethernet-container-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "timestamp": "2021-06-05T09:40:18Z",
+                                        "scanner-id": "WnGIQN2MNtNI1GRw1KLoAoSs65MtYI8MXOmGtgs8JgILOs9HcUYEaQ",
+                                        "suspect-interval-flag": true,
+                                        "performance-data": {
+                                            "queue-utilization-list": [
+                                                {
+                                                    "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE1",
+                                                    "max-queue-length": 284077134,
+                                                    "avg-queue-length": -1769518391
+                                                }
+                                            ],
+                                            "fec-uncorrectable-blocks": 1407642588,
+                                            "tx-ethernet-bytes-sum": "-9223372036854775808",
+                                            "tx-ethernet-bytes-max-m": "-9223372036854775808",
+                                            "fec-corrected-blocks": -508335119,
+                                            "tx-ethernet-bytes-max-s": -885617539,
+                                            "time-period": -686133221
+                                        },
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -3
+                            },
+                            "ethernet-container-status": {
+                                "timestamp": "2020-03-29T07:32:03Z",
+                                "last-10-sec-data-output-rate": 1127585540,
+                                "bundling-is-up": true,
+                                "total-bytes-output": "2758751473684847616",
+                                "total-bytes-input": "7164632741627807744",
+                                "interface-status": "ethernet-container-2-0:INTERFACE_STATUS_TYPE_NOT_PRESENT",
+                                "loop-back-kind-up": "ethernet-container-2-0:LOOP_BACK_TYPE_BACK_TO_REMOTE",
+                                "statistics-is-up": true,
+                                "last-10-sec-data-input-rate": 1065534836,
+                                "forwarded-bytes-output": "4440024810558080512",
+                                "performance-monitoring-is-up": false,
+                                "forwarded-bytes-input": "477046849627070272",
+                                "remote-site-is-faulty": true
+                            }
+                        },
+                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                        "hybrid-mw-structure-2-0:hybrid-mw-structure-pac": {
+                            "hybrid-mw-structure-status": {
+                                "performance-monitoring-is-up": false,
+                                "segment-status-list": [
+                                    {
+                                        "segment-status-type-id": 10057,
+                                        "operational-status": "hybrid-mw-structure-2-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED",
+                                        "segment-is-reserved-for-tdm": false
+                                    }
+                                ]
+                            },
+                            "hybrid-mw-structure-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "period-end-time": "2021-01-14T06:25:25Z",
+                                        "history-data-id": "PHOcB3ceLkCE0D0TcehHfNjWlhi8Me9COYGp1SEFcgj5MkYYq8yxNRt81E8NSh",
+                                        "performance-data": {
+                                            "rx-level-avg": 79,
+                                            "es": -430775079,
+                                            "unavailability": 668309624,
+                                            "cses": -586318267,
+                                            "ses": -1028460457,
+                                            "rx-level-min": -108,
+                                            "time-period": -1841072313,
+                                            "rx-level-max": 27
+                                        },
+                                        "suspect-interval-flag": false
+                                    }
+                                ],
+                                "number-of-historical-performance-sets": -30549,
+                                "time-of-latest-change": "2020-02-22T02:04:26Z"
+                            },
+                            "hybrid-mw-structure-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 4331,
+                                        "problem-name": "1mJrQMUx8oT3Jc4a3H5OssoyIL6l4kLXGmgx03W9rHc3T85PHbDaDTAmwyHASkpzyGYzJUI2uM5nU34teHvRt65ZEEspQJYppWQ0Iq3cc0sY3wrh6X1zVYqrvKQluGCLusE5SHhWzBUD8eMe3FFQEXh1A0m4GZH3jl84Uh0mTNZ11D7Wb",
+                                        "problem-severity": "hybrid-mw-structure-2-0:SEVERITY_TYPE_MAJOR",
+                                        "timestamp": "2020-03-31T13:28:10Z"
+                                    }
+                                ],
+                                "number-of-current-problems": -8,
+                                "time-of-latest-change": "2020-07-14T03:37:26Z"
+                            },
+                            "hybrid-mw-structure-capability": {
+                                "supported-tdm-structure-kind-list": [
+                                    {
+                                        "tdm-structure-name": "1a14lcKgDWiAjxSLQJaqKIkcI3z3qotjyuoUH02cWkM7KwSs72SJK5Vk8nfqLIJc5Z6MZ0QNkvVW1No1I9Kk6GFe3UwGvfSA7Qe6Q4M3zHZtmou4pepvMWJHQ7olm8NlZ1kH66KxNK090m6pBnUfjvX1C",
+                                        "tdm-segment-size": 263137042,
+                                        "max-number-of-segments-reservable": -70
+                                    }
+                                ],
+                                "performance-monitoring-is-avail": true,
+                                "supported-alarm-list": [
+                                    "l2cc4wU2uwrh8ki8Gop9LbpWyeY2rdTEfXJjlDdP1FYaZ8iFxAPaL67ckXeDaZ9pOSJ9nWQptOzsXJ0mjPoXNn9ZkfCmfDM3wn5TbNaFuJ7jt7FEOVBtbCsvSWSZAwU6TRR4FUB9DBsYIZvpM6SXBdll95cJB6HmQrinlUwQvQH"
+                                ]
+                            },
+                            "hybrid-mw-structure-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "suspect-interval-flag": true,
+                                        "timestamp": "2020-02-22T23:30:53Z",
+                                        "performance-data": {
+                                            "rx-level-avg": 11,
+                                            "es": 1723755264,
+                                            "unavailability": 551017710,
+                                            "cses": -153973451,
+                                            "ses": 715605378,
+                                            "rx-level-min": 83,
+                                            "time-period": -2131832469,
+                                            "rx-level-max": 111
+                                        },
+                                        "scanner-id": "b3HY2ARxHNIlrpPn7Sa40EZz36tAhahldYb7zVx8Afm2xbhE3rIVYAm1GQuQSL36Be521CbCKxEhIVNDeorcYN6wvseo5hmGorJp4U1OjxX1sKwH0XLYDRn8jBwoLS59cGq8ssWLZLEknaTo0EevotDH52YIMVJYB963BUOtxkFVuybm4pRsTn2Qp0q3V92oi0rMN77krM7Nki2gITJt8LbpLBtyKnW2ffG2mNfFzmkLFm2n8LIgoTG1u1zeo",
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -4
+                            }
+                        },
+                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                        "extension": [
+                            {
+                                "value-name": "e3mDcunE9q29V2bZot1GJLV4H3jadb3r6p4iLjOUKQVxL6w9spH3aC7JFjTSuWksdgKY",
+                                "value": "rKc"
+                            }
+                        ],
+                        "configured-client-capacity": "sEjlxtHj4rgKEqdwV5gMtUFA8xZkfQ2Hmm2MPB5M2doyEB4rzk5U7Lufalzq3tZiH24pv1bqezYK233tn9nuMJB",
+                        "ip-interface-1-0:ip-interface-pac": {
+                            "ip-interface-status": {
+                                "errored-packets-output": 631716794,
+                                "last-10-sec-data-output-rate": -1024033889,
+                                "forwarded-packets-input": "-9223372036854775808",
+                                "errored-packets-input": -2031039963,
+                                "ip-v-4-address-cur-list": [
+                                    {
+                                        "fixed-ip-v-4-address": "vigoYmic0fZA5bd1px0W651URB1QNkcaCkqtyJFqYF03I6WZDWWKUPwDqxl5JxfeJxHhgeI6LI1tGQtkEhWq6k4oRptsPAGy7fIguqmf0gBH64TCdP3b97rSoUk5m1wl8eBCwQSw6l54hYGuF",
+                                        "fixed-ip-v-4-address-prefix-length": -116,
+                                        "fixed-default-gateway-ip-v-4-address": "OIYyZKTW6MsjUyVp4D9BJuyF"
+                                    }
+                                ],
+                                "broadcast-packets-output": -403165525,
+                                "dropped-packets-input": 2043520548,
+                                "loop-back-kind-up": "ip-interface-1-0:LOOP_BACK_TYPE_BACK_TO_LOCAL",
+                                "dropped-packets-output": -517653009,
+                                "unicast-packets-input": "-9223372036854775808",
+                                "forwarded-packets-output": "-9223372036854775808",
+                                "neighbor-list": [
+                                    {
+                                        "neighbor-mac-address": "d7cXETxCjom4lkQFDDeqUi33LExkjaJxhNmVGLx02L4n5NUAi814j47WJw8UGRrXFFKdr95tU2IRHCrRDsVOp2K0qTU6KeVhTxncGsxsmfj3KCUf5P3mJNm9yg7buUsgrPs7a0zw7KsRnmYk41",
+                                        "neighbor-ip-v-4-address-list": "FHUH7aOixJDN2kf2u7BTfelYBzXNDQlbpfSxhyPO9stcNJe9IH2XVnOoXLbstovTDnqVW7B5A59fGnoo5je0G2hvFkQ0JlTmBb9pjDuTAE0gTowYHCRgE0Dbklc3H5i",
+                                        "neighbor-origin": "ip-interface-1-0:NEIGHBOR_ORIGIN_TYPE_OTHER"
+                                    }
+                                ],
+                                "timestamp": "2020-08-07T16:35:32Z",
+                                "forwarded-data-volume-output": 1896711702,
+                                "total-packets-input": "-9223372036854775808",
+                                "last-10-sec-packet-input-rate": -1132298051,
+                                "last-10-sec-packet-output-rate": -412688841,
+                                "vpn-binding-is-up": true,
+                                "multicast-packets-output": -2034326663,
+                                "broadcast-packets-input": -1202585095,
+                                "last-10-sec-data-input-rate": -288599437,
+                                "interface-status": "ip-interface-1-0:INTERFACE_STATUS_TYPE_NOT_PRESENT",
+                                "statistics-is-up": true,
+                                "total-packets-output": "-9223372036854775808",
+                                "multicast-packets-input": 1609867676,
+                                "data-volume-input": 13771678,
+                                "data-volume-output": 226845776,
+                                "fragmented-packets-input": -1442632285,
+                                "ip-address-origin": "ip-interface-1-0:IP_ADDRESS_ORIGIN_TYPE_STATIC",
+                                "unicast-packets-output": "-9223372036854775808",
+                                "forwarded-data-volume-input": 1673182602
+                            },
+                            "ip-interface-current-problems": {
+                                "time-of-latest-change": "2020-11-11T00:16:21Z",
+                                "number-of-current-problems": -18,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -9431,
+                                        "problem-severity": "ip-interface-1-0:SEVERITY_TYPE_MINOR",
+                                        "problem-name": "A1G2",
+                                        "timestamp": "2020-07-16T12:29:33Z"
+                                    }
+                                ]
+                            },
+                            "ip-interface-capability": {
+                                "burst-size-max": -19380,
+                                "statistics-is-avail": true,
+                                "supported-alarm-list": [
+                                    "JTp3hLQfa17P0oSPX5LnJV5kCxXewax7VOa4rTjtUqiUH2Bw7eLQaIaEf7SD9hKXXV1hGlKsD3ec5PI5VlV546Cb5mP7wz4tm5K2",
+                                    "nuOiI0fpBklWgiSmM4j1TqxkmSHsvBCS6qaGjpYUKbI0tBe8Fx9qQGCcybw3N9NLrXjKnhEZsfZOQ5Wnu5FkDhp3tVZ8WMLoC40ZexQGMHmCMiZ8fwtKNKO8FF8ujTKVYKMchCK3j7xXho6pUr9AbPIIuRcOKWBAzoEQ0pMcoj9FAf4uG64JVFsioEY0tzB2X7KQww2MI3siboEJuBtigVsErqEMR7OHfrxDPrqxm"
+                                ],
+                                "information-rate-min": 816196766,
+                                "maximum-number-of-ip-v-4-addresses": 6284,
+                                "fixed-default-gateway-configuration-is-avail": true,
+                                "maintenance-timer-range": "GfjZeonKjh4QoqP0z6wGS631zGlg4hAKoUBDiQnB7rkoR1gi7MYSKTTbr6rnnT7MFAhYrEry5DWOx4YwQPosAav2gWpwIpanZrdi5xR22FIzKG6svmN6wi0F7hbPyl4yEaQJHzDJ7",
+                                "admin-shut-down-is-avail": false,
+                                "dhcp-client-is-avail": true,
+                                "egress-shaping-is-avail": true,
+                                "information-rate-max": 1373626426,
+                                "burst-size-min": 14708,
+                                "ip-v-6-is-avail": false,
+                                "maximum-transmission-unit-max": 30834,
+                                "ingress-policing-is-avail": false,
+                                "maximum-transmission-unit-min": -10848,
+                                "supported-loop-back-kind-list": [
+                                    "ip-interface-1-0:LOOP_BACK_TYPE_NONE"
+                                ],
+                                "vpn-binding-is-avail": true,
+                                "arp-proxy-is-avail": false
+                            }
+                        },
+                        "termination-state": "core-model-1-4:TERMINATION_STATE_TERMINATED_SERVER_TO_CLIENT_FLOW",
+                        "mac-interface-1-0:mac-interface-pac": {
+                            "mac-interface-configuration": {
+                                "interface-name": "n3VctewDopcfBhuzPnXV6lH3k44edkZtoVFJ13mhsrw3ISuqgkdmxNhSRd6WxYpVLWEEZTVrkknU4Rck3qyB5PlW2jKs92",
+                                "loop-detection-is-on": true,
+                                "broadcast-frame-suppression-is-on": false,
+                                "configured-mac-address": "UqYNehZyETCo6PjofUt57hZj1jsVHfUtFK8",
+                                "maintenance-timer": 1628552096,
+                                "statistics-is-on": false,
+                                "performance-monitoring-is-on": true,
+                                "fragmentation-allowed": "mac-interface-1-0:FRAGMENTATION_TYPE_ENABLE_256_BYTE",
+                                "link-loss-forwarding-is-on": false,
+                                "loop-back-kind-on": "mac-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED",
+                                "transmitted-frame-format": "mac-interface-1-0:FRAME_FORMAT_TYPE_NOT_YET_DEFINED",
+                                "flow-control-mode": "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_NOT_YET_DEFINED",
+                                "maximum-share-of-broadcast-frames": 92,
+                                "problem-kind-severity-list": [
+                                    {
+                                        "problem-kind-name": "PPT6H",
+                                        "problem-kind-severity": "mac-interface-1-0:SEVERITY_TYPE_MAJOR"
+                                    },
+                                    {
+                                        "problem-kind-name": "0xVzMH2jj2551ovUcbKP27AOOpAN6EFZ3syP2t1dn6ipuFbHQVoLUYzBg1geyVdBfErhZsnmy",
+                                        "problem-kind-severity": "mac-interface-1-0:SEVERITY_TYPE_NOT_YET_DEFINED"
+                                    }
+                                ],
+                                "loop-port-shut-down-is-on": false,
+                                "maximum-frame-size": -31129,
+                                "mac-address-configuration-is-on": false,
+                                "interface-is-on": true,
+                                "link-loss-forwarding-delay": -50
+                            },
+                            "mac-interface-status": {
+                                "errored-frames-output": 598882640,
+                                "loop-detection-result": "mac-interface-1-0:LOOP_DETECTION_RESULT_TYPE_NO_LOOP_DETECTED",
+                                "forwarded-frames-input": "-9223372036854775808",
+                                "timestamp": "2020-06-09T09:42:43Z",
+                                "multicast-frames-input": -1624210005,
+                                "unicast-frames-input": "-9223372036854775808",
+                                "last-10-sec-frame-output-rate": 1238864714,
+                                "total-frames-input": "-9223372036854775808",
+                                "multicast-frames-output": 530582902,
+                                "dropped-frames-output": -1672050141,
+                                "statistics-is-up": false,
+                                "forwarded-frames-output": "-9223372036854775808",
+                                "flow-control-mode-cur": "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_RECEIVE_ONLY",
+                                "received-ethernet-frame-format-cur": "mac-interface-1-0:FRAME_FORMAT_TYPE_802.2_SNAP",
+                                "last-10-sec-frame-input-rate": 1435704842,
+                                "errored-frames-input": -968098829,
+                                "loop-back-kind-up": "mac-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE",
+                                "interface-status": "mac-interface-1-0:INTERFACE_STATUS_TYPE_UP",
+                                "mac-address-cur": "OB3KSOEQgf69vlHiqjy4CH3W4imCVgPKKSmCz0kH8rQvEqG4J61dNW9K6vm2L3EnVSZmKk",
+                                "broadcast-frames-output": 1040323914,
+                                "total-frames-output": "-9223372036854775808",
+                                "fragmented-frames-input": -1043223189,
+                                "performance-monitoring-is-up": true,
+                                "unicast-frames-output": "-9223372036854775808",
+                                "broadcast-frames-input": -1097183199,
+                                "dropped-frames-input": 1895890734
+                            },
+                            "mac-interface-historical-peformances": {
+                                "number-of-historical-performance-sets": 19807,
+                                "time-of-latest-change": "2021-10-09T00:45:15Z",
+                                "historical-performace-data-list": [
+                                    {
+                                        "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "period-end-time": "2021-11-26T15:24:57Z",
+                                        "performance-data": {
+                                            "mac-pause-frames-ingress": 2059071242,
+                                            "tagged-frames-ingress": "-9223372036854775808",
+                                            "jabber-frames-ingres": 1560961496,
+                                            "mac-pause-frames-egress": 1010543038,
+                                            "mac-control-frames-egress": -1686801363,
+                                            "oversized-frames-ingress": -1653889419,
+                                            "undersized-frames-ingress": -30765879,
+                                            "frames-of-1024-to-1518-byte": "-9223372036854775808",
+                                            "frames-of-64-byte": "-9223372036854775808",
+                                            "frames-of-512-to-1023-byte": "-9223372036854775808",
+                                            "frames-of-65-to-127-byte": "-9223372036854775808",
+                                            "mac-control-frames-ingress": 300616752,
+                                            "frames-of-256-to-511-byte": "-9223372036854775808",
+                                            "tagged-frames-egress": "-9223372036854775808",
+                                            "frames-of-128-to-255-byte": "-9223372036854775808",
+                                            "fragmented-frames-ingress": "-9223372036854775808"
+                                        },
+                                        "history-data-id": "cGPYVsa2dDkRiISflzWbVpVqDaUwBESNkzM72OafkuYCcRRxqNBl4oDIyxe936PfGtnAhxPB1N6dwXDWDeaHuNh2dw48uTo2mLCDir7j75ov",
+                                        "suspect-interval-flag": false
+                                    }
+                                ]
+                            },
+                            "mac-interface-current-performance": {
+                                "number-of-current-performance-sets": 88,
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "elapsed-time": "-9223372036854775808",
+                                        "suspect-interval-flag": true,
+                                        "timestamp": "2021-06-12T14:06:24Z",
+                                        "performance-data": {
+                                            "mac-pause-frames-ingress": 682170574,
+                                            "tagged-frames-ingress": "-9223372036854775808",
+                                            "jabber-frames-ingres": -701005057,
+                                            "mac-pause-frames-egress": 1249542632,
+                                            "mac-control-frames-egress": -1304685457,
+                                            "oversized-frames-ingress": -610330769,
+                                            "undersized-frames-ingress": -1059663751,
+                                            "frames-of-1024-to-1518-byte": "-9223372036854775808",
+                                            "frames-of-64-byte": "-9223372036854775808",
+                                            "frames-of-512-to-1023-byte": "-9223372036854775808",
+                                            "frames-of-65-to-127-byte": "-9223372036854775808",
+                                            "mac-control-frames-ingress": -1289938107,
+                                            "frames-of-256-to-511-byte": "-9223372036854775808",
+                                            "tagged-frames-egress": "-9223372036854775808",
+                                            "frames-of-128-to-255-byte": "-9223372036854775808",
+                                            "fragmented-frames-ingress": "-9223372036854775808"
+                                        },
+                                        "scanner-id": "LOMaAT1Xqxr6mp1wFVk9lx1fiyQZjUb4IP7bJ881FAZTR1poOJy18rhqZ7haUs7u9eFSmGUT8LMZM3osMWuUnLcfKth"
+                                    }
+                                ]
+                            },
+                            "mac-interface-capability": {
+                                "supported-flow-control-mode-list": [
+                                    "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_SEND_AND_RECEIVE"
+                                ],
+                                "statistics-is-avail": false,
+                                "broadcast-frame-suppression-is-avail": false,
+                                "supported-frame-format-list": [
+                                    "mac-interface-1-0:FRAME_FORMAT_TYPE_802.2_SNAP"
+                                ],
+                                "admin-shut-down-is-avail": false,
+                                "maximum-frame-size-min": -21690,
+                                "loop-detection-is-avail": false,
+                                "performance-monitoring-is-avail": false,
+                                "mac-address-configuration-is-avail": true,
+                                "maintenance-timer-range": "lTdS70t2VvErOqXX7qwG2IYD2E34IoJ3iOOhO9jJEX2kf0ieiOVcpT",
+                                "supported-alarm-list": [
+                                    "qTv0h6WrUCIAL1bpRdCY5UdnA0AZLii3bF4kLSMFuu77oiwfw05tUiRnajmWBFZEcVYYNCv9ZDgnVFujFzNsKEPUPbIqIA4VvULbxgcoTtLH070FGN7qjWd80VqAvm",
+                                    "Th84Gp84atHJtOK1up8NJX0JPV2proNcFN8d4ghfKYYdMAe90fWB4WcTJea2DPeaDmoHDFOfwFsa7zb7G7AKVFvxTFzonOz02PzFmoUSVfV2G62m6u619ByV80bvOKnQrXoOdaG8pt25A4jGzhzIS0vT0HgGjEoLtMzGX7GeBIc3NnJeFiWpikii1zYc5fXy1oeQwMXZu129"
+                                ],
+                                "hardware-mac-address": "u0EtOQUkmolAKiVYjn1ByJonT2ylGqxbj4E7Uqr8OEIzPDp0SiBiTRxFU60sopDHt9OnA8ngE5PtA6ukoXDaP2PB8P3x6z6AIVXaVdrzi83Lfp5veAFVDuoDbk2iT9StWHERUXq55lIcCNIRgfELC3gFnjX8kHBgh7734p02DIe7oOYw4vhyyxdVI332CwiLEhPAH",
+                                "maximum-frame-size-max": -366,
+                                "supported-loop-back-kind-list": [
+                                    "mac-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "link-loss-forwarding-is-avail": true,
+                                "loop-port-shut-down-is-avail": true
+                            },
+                            "mac-interface-current-problems": {
+                                "time-of-latest-change": "2021-09-07T19:23:49Z",
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -17819,
+                                        "problem-severity": "mac-interface-1-0:SEVERITY_TYPE_NON-ALARMED",
+                                        "problem-name": "jgK4sGO5cWe8KkNMixmdiF7ylUrVmIjxZ4trCapO6DWJPBn80JdipcQC7hxl0RSRNeapoz5m5T5UulUu40MlcCXjLnEL6pCTDNaTe77j056uq0Qu0uQd6FoJ23v8sZT5E3QT2X422aos3eXVIF0GkpqfsNfME9Jb4z47w09z3yT6EI1fn2VAjdPLS4xx58I2HE95waEzAqxf8ruolhYEvFpfBOMzWmBv0KA",
+                                        "timestamp": "2021-07-26T09:00:02Z"
+                                    }
+                                ],
+                                "number-of-current-problems": -55
+                            }
+                        },
+                        "pure-ethernet-structure-2-0:pure-ethernet-structure-pac": {
+                            "pure-ethernet-structure-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "timestamp": "2021-07-28T19:11:29Z",
+                                        "performance-data": {
+                                            "cses": -1096769861,
+                                            "es": -919352799,
+                                            "rx-level-max": -38,
+                                            "ses": -1552979963,
+                                            "rx-level-min": 64,
+                                            "rx-level-avg": -54,
+                                            "time-period": -477259255,
+                                            "unavailability": 1253386930
+                                        },
+                                        "suspect-interval-flag": false,
+                                        "elapsed-time": "-9223372036854775808",
+                                        "scanner-id": "4Yu4Da2NiUaLGrHCx6HO8cfiebURfQdjHIfcKaR241GLtfn0l4Ot8WDn7x6egjpPTx1DHTGLUeoftEgOAW9JSNYRc4Xsfnh9UbMB4keQqDYT96z"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -4
+                            },
+                            "pure-ethernet-structure-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "period-end-time": "2021-01-29T12:46:23Z",
+                                        "performance-data": {
+                                            "cses": 1576862132,
+                                            "es": -1497265235,
+                                            "rx-level-max": 3,
+                                            "ses": -1924531613,
+                                            "rx-level-min": 9,
+                                            "rx-level-avg": -2,
+                                            "time-period": 536958678,
+                                            "unavailability": 1284617252
+                                        },
+                                        "history-data-id": "uRcDDnh6juk2UP0OY6fI0Y2NmlkXzO03x4yasQgDcsF6axM0v2IwSDjfQvchj4lQ8LSst06FtLEDbqDGkecdJokzToQ5s3VsPGVaG1Q9EuEPMao7gAcZQoqCM8He4uGLatVRuLS17pQUzeTPHXGplY176I",
+                                        "suspect-interval-flag": false
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-03-18T04:37:07Z",
+                                "number-of-historical-performance-sets": 17725
+                            },
+                            "pure-ethernet-structure-status": {
+                                "segment-status-list": [
+                                    {
+                                        "segment-status-type-id": 19843,
+                                        "operational-status": "pure-ethernet-structure-2-0:OPERATIONAL_STATE_TYPE_DISABLED"
+                                    }
+                                ],
+                                "performance-monitoring-is-up": false
+                            },
+                            "pure-ethernet-structure-capability": {
+                                "supported-alarm-list": [
+                                    "Vk5FGTR878KXAbAMl8nfEnjvNWofbhq6tnE9hv9gvMd5XNRaN7isuBX9pdoAvPzY4d0lA1B6NHbDmVNaU5ugyjqXwOqTvZKA4CNEDhCjYGWcBBenzIDZ13"
+                                ],
+                                "performance-monitoring-is-avail": true
+                            },
+                            "pure-ethernet-structure-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 10242,
+                                        "problem-name": "sIn96ZJEtkiTMyA3omKHG9Yt1W0of4CAEZJDYkhjEr5q0xloT55sf3NgRNEZRgrog216mai0BnrtMMSGSP0ZLNfuBTtk2UAaWB8aDqb7FCAsgk0020ZNN69gSv",
+                                        "timestamp": "2020-05-19T18:03:43Z",
+                                        "problem-severity": "pure-ethernet-structure-2-0:SEVERITY_TYPE_MAJOR"
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-08-23T10:27:24Z",
+                                "number-of-current-problems": -84
+                            }
+                        },
+                        "lp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE",
+                        "name": [
+                            {
+                                "value-name": "afwJC769LI1F4srHAZVKZyIfJpPI6UIg17ZDe5EZFFwCZXjsO6cFENVncCXjoyrhFrUToyKW58q45BoLHBimg5BszzLP7",
+                                "value": "6Ew0pMq9Anh0keBIRbb1xrZ8UyzxgyCmc0fBNxCfVL8fRJXIU9CjABsm1TUhsowwpD04aCjXgrc732IP3k9vNtSOmEYG2mdrZ5v1HHZP03X35xT0RUwwfoct22aWofofkLhTk8Jlbyo9591OVxkaNwEHzGEPVU5fFm00mJdxhBymDA2y7mJNLfucV81I26XAkXsGzF6Q8w5L67c6mVT72fbPgcxa"
+                            }
+                        ],
+                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK",
+                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL",
+                        "configuration-and-switch-control": [
+                            "eSwead86CDZF3e62Q9XUucVKzHtavidKbJQdOYcjtbYph5j86g2AsXk1wG41Y9D1StfyjrRNCQ4UVnU1DWtXLOR9mV2c4yeO1tedM6SgOW2BjWuOKXLnDuwZhr4dZi1SD85p6PFULAvWwRK9OowkSVbamfndxh52p3rvSZhwzEkXv56blDvdyzfMODZeM4g3ZAqKzH80lsXQp4TKzhQZQ5LwACCeyThylHa"
+                        ],
+                        "fc-blocks-signal-to-lp": "iMBCBj2xdE6umXckAIMcl1D6a3jSd58vRC7kV1S0yQmUGy6g9TlmUYk41DOeIPBrrALeuv72etOUUVaVOnhAlBweelsOaVf",
+                        "air-interface-2-0:air-interface-pac": {
+                            "air-interface-current-problems": {
+                                "number-of-current-problems": 7,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 12356,
+                                        "timestamp": "2020-03-19T23:05:18Z",
+                                        "problem-name": "bz6VvXezr1zcojqiiwapxe0bH6ew27h5zn04cevDf4QDn8NyEXPb3PmDOB1IAiN9yO5K2Agax6NU6tkKi9VmRhRFKSnla2mAQslL2tVzrAmx3yhmAcArlr66jl",
+                                        "problem-severity": "air-interface-2-0:SEVERITY_TYPE_NOT_YET_DEFINED"
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-04-02T08:24:42Z"
+                            },
+                            "air-interface-status": {
+                                "xpd-cur": 73,
+                                "transmission-mode-cur": "tmbm4Dglu20fyM7WAI2dXAjalik4jyPMVS8Rvo4Zi47IIeEbOGoL8zVtJ7p2y6OlYW4mc8dn4k5MqKXfid0rFOMoV4rta7",
+                                "rf-temp-cur": -70,
+                                "mimo-is-up": true,
+                                "tx-level-cur": -92,
+                                "local-end-point-id": "0fBXMnjO2eMDsaGMLYU3YjEAaO1eA8dsnGia3BQ6PCJ9MiVx8IA6Tfy3Vs9nAnQY3887BY5jsGseYgE6Ye5JlvN9XWwybmw7mw6Yub9WRB2QRGOHNLr0h69eUGE62adhGjf2uoQdRLVJrKi6nB7EHgLuWp",
+                                "rx-level-cur": -103,
+                                "link-is-up": false,
+                                "performance-monitoring-is-up": true,
+                                "xpic-is-up": false,
+                                "remote-end-point-id": "RsF80YfVkDLxmol5Q5gOkRVRrcCV0TnRd2ZeSe14J",
+                                "received-radio-signal-id": {
+                                    "numeric-radio-signal-id": 12010,
+                                    "alphanumeric-radio-signal-id": "qWMaet2NCGm6wm7dN3JXouDOQaQNJjUa7Gcm1e1DMnCjBJogE862uJQkUzZvKTFSsSelY7ZLnB4YckfQklSPWB1Q2TeMETE6DKkCSjffMb5QvkGQxqxuTycVrqA6ce4PRgjJzyQdJV3f8BXxUu1N26BmwbkAhgq8xB"
+                                },
+                                "auto-freq-select-is-up": true,
+                                "tx-frequency-cur": -1939073169,
+                                "rx-frequency-cur": 247975618,
+                                "atpc-is-up": true,
+                                "radio-power-is-up": true,
+                                "snir-cur": -83,
+                                "loop-back-kind-up": "air-interface-2-0:LOOP_BACK_TYPE_IF_TO_REMOTE",
+                                "interface-status": "air-interface-2-0:INTERFACE_STATUS_TYPE_DORMANT",
+                                "alic-is-up": false
+                            },
+                            "air-interface-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "period-end-time": "2021-01-30T03:47:20Z",
+                                        "performance-data": {
+                                            "snir-max": -122,
+                                            "unavailability": 1430694194,
+                                            "rx-level-max": 112,
+                                            "xpd-max": 94,
+                                            "ses": 1190664478,
+                                            "rf-temp-max": -21,
+                                            "tx-level-max": 46,
+                                            "es": -2054710667,
+                                            "tx-level-min": -8,
+                                            "tx-level-avg": -75,
+                                            "snir-min": 53,
+                                            "snir-avg": 32,
+                                            "time-period": -466905671,
+                                            "cses": 760485234,
+                                            "defect-blocks-sum": 21393,
+                                            "rx-level-min": -36,
+                                            "rx-level-avg": -78,
+                                            "rf-temp-min": -120,
+                                            "rf-temp-avg": -98,
+                                            "time-xstates-list": [
+                                                {
+                                                    "time-xstate-sequence-number": 98,
+                                                    "transmission-mode": "HGpLMiy0Vj5OQVpqPDf5GYwtci7RB2iaAH",
+                                                    "time": -1498030045
+                                                }
+                                            ],
+                                            "xpd-min": -36,
+                                            "xpd-avg": -39
+                                        },
+                                        "suspect-interval-flag": true,
+                                        "history-data-id": "8P9p40dgRGqlc2veNMQQTULMiWjLmJVuq4LnWZDFx31J5wQKiGtbseQKa1owKbTb7Ey3v3A36BM37CNha8lDmbfw4vVPGO0NkqIQtbTrMxmM213caoHwrXVwkIl1wdGIvhyQsj96RvSToWXycFXEuK2OsnHQsoyXx7FZiO51jQUHMK8Qh5uLHwz9L9Z5xpUWozNHnKIyAv8efg5wdr"
+                                    }
+                                ],
+                                "number-of-historical-performance-sets": -612,
+                                "time-of-latest-change": "2021-05-01T09:35:57Z"
+                            },
+                            "air-interface-capability": {
+                                "expected-equals-transmitted-radio-signal-id": false,
+                                "duplex-distance-is-freely-configurable": true,
+                                "supported-radio-signal-id-datatype": "air-interface-2-0:RADIO_SIGNAL_ID_DATATYPE_TYPE_STRING",
+                                "rx-frequency-max": 1881011228,
+                                "supported-loop-back-kind-list": [
+                                    "air-interface-2-0:LOOP_BACK_TYPE_NONE"
+                                ],
+                                "direction-of-acm-performance-values": "air-interface-2-0:DIRECTION_TYPE_NONE",
+                                "adaptive-modulation-is-avail": false,
+                                "supported-alarm-list": [
+                                    "6lVQQFczgHt5mc8O6XEvvSHcIgDmDOxJ1kzR0Li8",
+                                    "r5pItKg5PRIL",
+                                    "PdbLx864se41KvZ5LOGaNMLCCCtCgrYXx1A49G1tV5uxsludabf",
+                                    "qUyuOXxayMv5ww3gpKi7odSb1RF2BqB1c9n1YU3xzyuX4xdlhwlFJdJDWoxqG8jTaHM0tPx2f1S",
+                                    "Hj1i3RaxYj83aLkLQHWrqjCQLwy5x307e2p9TzHRSHMVsZyaGnt6G5WjtmoTpp0DrhNcImVsVHfnGOpebScJX02inr3EQ3a9cXlUb8f6PuloiKuluH4jHZB4qFB8AL9FAmrLuGJjbWzly4H2LDlkCOhUlSUWD3B5p2QTBr5EfwZFAyHd4UqyAHtWrfSWbl1AfJmI2jmhPeWiMvvQhVhRuKNVRxJ2KKvStRAv2XEJbA1PXpyecPYHrLui",
+                                    "DdzPlfVaTiGE0Km8oIL47m5sWWkz6sMJxlqSBe2mwA0olnxB5aF5xKxlyRUwbz7IMxsfDmCaXCyaZ5DX8i2FUr0kaMQdlXV8mfn0BZ2yuAAlydaGn4dhvdBxZjKd8xlvMAnospOWRp9hukPSo21Mfvb7OWkXtFkg7Hwr6kfPJp76JWYZRZD6",
+                                    "73OgnziWlip2QkhJ4k29JDvtTAaCaWJhRppeYH2bSsdAEmbIHeJqReMCGWeIKPSCfhI5RLhJ5ubBRmjqAUQr1u"
+                                ],
+                                "tx-frequency-max": 1592084694,
+                                "maintenance-timer-range": "zGF02P8QI4BX4lisaXVL20bfnHkc05NsLksN1swKoZHtkZNuOI7RIjY50a9TfWlS8FGa04Uo3tJnlwK96RSG2IE3SNOZC1SK",
+                                "transmission-mode-list": [
+                                    {
+                                        "transmission-mode-name": "tmbm4Dglu20fyM7WAI2dXAjalik4jyPMVS8Rvo4Zi47IIeEbOGoL8zVtJ7p2y6OlYW4mc8dn4k5MqKXfid0rFOMoV4rta7",
+                                        "transmission-mode-rank": 1231613912,
+                                        "supported-as-fixed-configuration": true,
+                                        "am-upshift-level": -126,
+                                        "tx-power-min": -87,
+                                        "am-downshift-level": 91,
+                                        "symbol-rate-reduction-factor": -127,
+                                        "channel-bandwidth": -608120069,
+                                        "xpic-is-avail": true,
+                                        "code-rate": 81,
+                                        "tx-power-max": 84,
+                                        "rx-threshold": -15091,
+                                        "modulation-scheme": 32429
+                                    }
+                                ],
+                                "encryption-is-avail": true,
+                                "duplex-distance-list": [
+                                    -1823520509
+                                ],
+                                "atpc-range": -102,
+                                "performance-monitoring-is-avail": true,
+                                "auto-freq-select-is-avail": true,
+                                "tx-frequency-min": 1528931208,
+                                "rx-frequency-min": -1412575477,
+                                "type-of-equipment": "90IODkC6t0XYacas8iTHA2pQMNTvMRwWJeCmy6lT6",
+                                "atpc-is-avail": false,
+                                "supported-radio-signal-id-length": 27171
+                            },
+                            "air-interface-current-performance": {
+                                "number-of-current-performance-sets": 87,
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "timestamp": "2020-06-27T18:58:07Z",
+                                        "scanner-id": "ZN48w6KasFx97PhYl7LzgU6n0OHiZh",
+                                        "performance-data": {
+                                            "snir-max": -95,
+                                            "unavailability": -1403475767,
+                                            "rx-level-max": 34,
+                                            "xpd-max": -121,
+                                            "ses": -1774667545,
+                                            "rf-temp-max": -96,
+                                            "tx-level-max": -77,
+                                            "es": 1807380622,
+                                            "tx-level-min": 15,
+                                            "tx-level-avg": -62,
+                                            "snir-min": -58,
+                                            "snir-avg": 55,
+                                            "time-period": 1101652708,
+                                            "cses": -470543107,
+                                            "defect-blocks-sum": -16423,
+                                            "rx-level-min": 27,
+                                            "rx-level-avg": 113,
+                                            "rf-temp-min": -115,
+                                            "rf-temp-avg": -19,
+                                            "time-xstates-list": [
+                                                {
+                                                    "time-xstate-sequence-number": 8,
+                                                    "transmission-mode": "JckEeSuHqNs1BguGy84aXdLKxuHXZDTIQde4XJDno5pZmLyMLCWJIHlf3U42yXLg3Zc0APgRMxQ0agMWLIFthSAkMFncu0spRwikdyb0XT072F3NfAgxsIJ7f6jKYE1I2j2gJ58GQ0O",
+                                                    "time": 443872536
+                                                }
+                                            ],
+                                            "xpd-min": -67,
+                                            "xpd-avg": 49
+                                        },
+                                        "elapsed-time": "-9223372036854775808",
+                                        "suspect-interval-flag": true
+                                    }
+                                ]
+                            }
+                        },
+                        "label": [
+                            {
+                                "value-name": "mKvb44KB2tCyqnFpzDLmoKgDV5T8C4bQGG2DCE6E7IdpYKPpfAMDlU880UguQrlo0f1uT09TIeiGY76dAKIVwQ3wCcTsv6RnlKS6C1Zl7iT5hRaRtSE0IAodM9F9foxA1hHDayQhQCm8twZPgwHY653KfJTmZiX0zwwB4mSNY6NkuE1KaIBgFE0UnM9fW6fouDZq0S5QYS2lp35zDGIjlA5AeePbcXzy",
+                                "value": "yRsiWb9H5u61zxE87XtAVVO1LZeIqMaRvD1sOa1TwZU6or6wgr6bmMd7EjH4XKNtnPN3ZOOoFBm32sraTpefcrfICOEzys2N9PI0vpoa0K6Ucx45Xad1BkJ50fFrHzeQhPRMefP60V04kW29772ArLGj1dKAMZj3G2QUhx09kS6EO8ON7QgyuWRn1uPNl8R1azVk6NlqFrWlrK1yth6P5Qc6c1Tx2Ky4blo98KzNbo0D013ti2inSmt4gftaR"
+                            }
+                        ],
+                        "is-protection-lock-out": false,
+                        "tdm-container-2-0:tdm-container-pac": {
+                            "tdm-container-historical-performances": {
+                                "number-of-historical-performance-sets": 29896,
+                                "time-of-latest-change": "2020-06-02T23:43:24Z",
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "period-end-time": "2021-09-09T03:26:31Z",
+                                        "suspect-interval-flag": false,
+                                        "history-data-id": "LbNoiL7o4yz12NwNd52iyWNIYxghsgv6siuKVB801z1VepIrmDBVzpvxWMHgUcemmIYhb69cx27MrIdOdPBM6YcUCL2xXhTbZKk3Iufgof2IP7o2OZGMPKGsvJZk0KnRuIU542ls9f2YeqS3hqH73ozqZqLR20IpIvuMxPfGWhwaAo5RGNYJ3pa2HNLKNt9wYDankp3gzzi9Po",
+                                        "performance-data": "S7IeYUx1h0XzMHRn4mQg4F9kFT77hKD1JdfHZMAhMpQq7zG3VobR4cbBXbBeV67wkm5b1FsFXa6WKERF2Vp67AI5Lbbyhj4BF9NyH7ewics2QbzK6YRerrb4CevTxzn5B2Da1RGjV"
+                                    }
+                                ]
+                            },
+                            "tdm-container-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 21337,
+                                        "problem-name": "VeCXQs7LkimUOEPzNRqTMRqa8Kb90N0VTDSB5Rfp1BcI719VLzGxi6IqILsJqsEk5pNa82A2wEKDxTqik6IC5i2N3mouP3GUkt5koxeU3YxAJYT3WBF1TAHOW5aD0QyccvxAULuXCTxdJihGTOzEggt5eDIem8ryDQ0ptmmXfMbZ4sxY86up",
+                                        "problem-severity": "tdm-container-2-0:SEVERITY_TYPE_MAJOR",
+                                        "timestamp": "2020-07-18T02:38:52Z"
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-10-01T15:28:36Z",
+                                "number-of-current-problems": -13
+                            },
+                            "tdm-container-status": {
+                                "loop-back-kind-up": "tdm-container-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED",
+                                "performance-monitoring-is-up": true,
+                                "interface-status": "tdm-container-2-0:INTERFACE_STATUS_TYPE_NOT_PRESENT",
+                                "statistics-is-up": false
+                            },
+                            "tdm-container-capability": {
+                                "performance-monitoring-is-avail": true,
+                                "supported-loop-back-kind-list": [
+                                    "tdm-container-2-0:LOOP_BACK_TYPE_NONE"
+                                ],
+                                "supported-tdm-container-kind-list": [
+                                    {
+                                        "tdm-container-name": "JYBmRCugtgHz9o8Y4yjU",
+                                        "tdm-container-size": 1412322622
+                                    }
+                                ],
+                                "supported-alarm-list": [
+                                    "4pij3qPJIKGbtBwSs4C67egnpne2qB1m0jyWBnFb7dnsPTd9PPfP3vckKin3UgpUr",
+                                    "Q2coebBtEimRs3yzSCX4OHf3K9j23KZMFc2Tnve1GAK0vjzgNocB6rFIAQKwtKa8OcT3z75fzHf40PkF5x9bYOMrEwX7877Wb00KZXSyw7vpOH4U6dXXTJoq8d"
+                                ],
+                                "admin-shut-down-is-avail": false,
+                                "maintenance-timer-range": "n3f8IufrlROctakOq1ozhopdWI7oSZyfUNfD9vWumKyPUSEcLULUi277K6vu63J0IZvRmseI4MpRx33aPH50J47mbuQ9xs17jxQFR4fNJEE8AAah97hScg6fKPo99pgkW7ZF36tEKZMcrXuAWLl02rfE8DOh3WBR3spZySDbJinb7RL3v"
+                            },
+                            "tdm-container-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "suspect-interval-flag": false,
+                                        "performance-data": "d0fQI78ctu1AgcrdwY3FXx4cnqFQmexzfEiXLq16U3G3f0gMYjjNIfZ5xENTTct0QLPt3RrPM0S100FQbQEU5vRC2FwVRRNAuCVxlfm7f71fZyX3pBXm7OZ1lnW56BxA5k7rzlyOkrVc0T",
+                                        "timestamp": "2021-09-02T13:42:37Z",
+                                        "elapsed-time": "-9223372036854775808",
+                                        "scanner-id": "lSum6RabXLApRUoauKIiW2682ZnblrOzcjVi26lSJVhsPGCjiduefAf9rCkMW0d8b9qe7L6QGfjnVVzd03kfvzoW3AAZBOZMXp0W2YMAeXY1Lx7Lsr1XShLNSlFl1E7QW0MYQrr4gpY1O5F8wyXgPI3zVIUXfUNbUs1KTsH9Rx3xCIF08ugPcbp0UbX95CcRWduPG3RpAMXcmu4uZkj3vA3hMSiJnutjIX1o0KNs"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -79
+                            }
+                        },
+                        "address": [
+                            "83YpLTAf1"
+                        ]
+                    }
+                ],
+                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN",
+                "name": [
+                    {
+                        "value-name": "C306120aZvlfC",
+                        "value": "YSwYMFeoDXHsUHbkxFfpLhjMjb9wqL6gvue99sxEh77bGavdQLCtUW7d7gJxTHNg3Up5eXJwWIHCL5PtIjWC74H6ciD6RjeU5EZjtBPpjpT4mAx4Tmy1i77upDs8OH2TlU4GvMXG3QLpqatbo14G04bpzDxnkr8xl45IQ2pTS2ia4Dmtw"
+                    }
+                ],
+                "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                "physical-port-reference": [
+                    "c942beda-266b-a670-ca1b-e78a3653775b"
+                ],
+                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE",
+                "extension": [
+                    {
+                        "value-name": "924vgxt5Xx2MSAozmLmu6ADbYg1DNNXPP1kYyFVv4X9WyxnMiJhgbUjaalNQ0KFHDRxcoszsqJpQ8MuroLzzxLJA6pqY1XxFG5J4xiwP1Nx2s2tIFUhdFTNDa5tbU1IAYrwnC2dvICx2E0KkNTpkM4YO9j03kAva21ywVL1vfzxUrh6e3vzPzpwAIovVY05S1DoOgqkwRRii1op4LQLcfhMPF9Kw9Io2dFQuX2SO",
+                        "value": "a6FqnJ3dmfkwTa32Mz3mQ5AvN4kQW8uY69ouKrz6yUurWylAZoXPtxc8twQhwkfDlvZ5Oy4mkyF8Y0JYgGFJdSJGgAXNU4i8zhdfH9BUI82"
+                    }
+                ],
+                "ltp-augment-1-0:ltp-augment-pac": {
+                    "ltp-augment-configuration": {
+                        "connector": "07wpeqzDCeErNGQsYiiaCfzpi0iDsCNsCbRIBjm5pSw4q",
+                        "equipment": [
+                            "c942beda-266b-a670-ca1b-e78a3653775b"
+                        ]
+                    }
+                },
+                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED",
+                "local-id": "KMEyFTAzhuCnjZ3ZI2uZmlORA76wtVudz8Ee16GaAaxL9sKKm6JIrps1wyq0uU532JaVPQ5h0u21WELiDmS4LkYaTg2fa7icJs7qa4IaqC4m9PwMcgIPtyZeOTtYTD2C61U85Cbn7fJg4728oK",
+                "fd-rule-group": [
+                    "5ea42646-26ca-afda-19a7-ad7f7cc924e6"
+                ],
+                "label": [
+                    {
+                        "value-name": "9wmcVVQka2MisZfxA5AZRkT1vXFRq39sAwEnjmIupmMRd1oNZQEIbxJGngpNkq7UOMh88RCp5g8baxY1fvJq2s6pJn53O4PuQ6CRQegNnpYxOXy3khmmBkEkIBfoF4So3nfLBnyYExnsmVoG4KUG4qSE182z4NXZacKDrbu6ARqWFOuJqghnHa1AaW9eB",
+                        "value": "6LaQgC1CAtm0h1PLC7UUutWw36k5cV3iy61OAUjaoFaFGRjaZdWlySJtQ3yVYudos6521o4p3e4BYfLPkAaSkUm3PMYGg34Ia1CbpGAsNwVLEzsY9CRtodw6ZmM8qIIAKdL9TduGBpjfYLeZg5lwaJC16g1wZC6JPRKIW6hxoANeeTeuQz00aDTgTNMKpKlet6Op45XsyCHMvVglm8dwLYFxL"
+                    }
+                ],
+                "transfer-capacity-pac": "OMKZJwbznuHV1mEnux1udTMusTkiUTUAFwsg3DQi7p51MJo89pDmahIu2UMXOypl5RC0nsimRnfv6DE72ht5y4zsYehEMH0RquRFO9Uxw93vNHuHYYEoU6QSk0x6HpQZTzFzJz67A9unQZXGPBW",
+                "external-managed-id": {
+                    "manager-identifier": "T53k6g4qw83fvL7bamuULdNmAnj2IKZBPUNN3R6zR1OmMNpW1TIN6n1yKkBkXsVMeAshjyQarwpejO2lAL0y017DeAXb2LP8l9iFH",
+                    "external-managed-uuid": "P1x6fQV93vU33NX2qbCnew83xmdP1MPINmP25C487Yc2D1X3crjqYrlnFycyd190gYVlsZtrPxltyioKKH2A1oXGO1f1Uo2aePnGOR7vgkYPDnrn4uP"
+                },
+                "client-ltp": [
+                    "c3794728-dc8b-5233-0c67-0b857c32ada1"
+                ],
+                "peer-ltp": "cb398360-6165-86b2-5b57-2fea3e77edb6",
+                "ltp-in-other-view": [
+                    "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                ],
+                "address": [
+                    "r4ZwOI44aTJXX15oaiDKs6E2eGsekRuDVtaB46x60h3Pa86djBXDItFO173lQxZLT1eP7MVZ3ZH5ZNaigZVQssFmsAziZqWSrazrWviRmZPlEZwNRjDbMax6K7gKxcuRf4a3rsNFkuSQloDcI9omjVs4UIGsN2b26lXpFKWR6PIs5dENe21yQtuK4a4Rc"
+                ]
+            },
+            {
+                "uuid": "99f2df21-bc77-3eff-998c-8f2fdf1bb557",
+                "embedded-clock": [
+                    {
+                        "local-id": "DiD9KWpoJT5aUcKns2r2z61oQSNegf5TxA2aoky75D90HUf9OHbgF5EwPjK5yHY59T7xdFwiaxaRjiS0Z4gw1M2I5ENDdDAmoILBn9MqHOh062",
+                        "run-mode": "core-model-1-4:RUN_MODE_LOCKED",
+                        "phase-aligned-clock": [
+                            "YVeiPwRShBgjzQZvC8Zx7SnUMwm6JiLAdZK2vtNM43XDTX0o5SV5KiRoH5uiofKt7uoCXbhT6ewZ3pf1ha6TlXiUVMcjUXE1j2D95M2b1r34Qi57l30yTa"
+                        ],
+                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                        "encapsulated-casc": [
+                            "YWkYfkdQ02buu3RHh3F042CJbGGIIAFywRxDbCl3Exy8shQJknBop57ALFbl7IUDAjgDVCHz17AtoicAFNZWKYpvwA"
+                        ],
+                        "name": [
+                            {
+                                "value-name": "X6guZ2oHZ3mCgR5DgNgJ2qvs7cC7iE8gCgKBb0aa3oFcfKPvx57rnCUuOwCZaCfMKRfVRhYNFDZMfGaEDh51LZvsnZrpty3epi18rZVYuULJsVn64l7Pkuh",
+                                "value": "uIZX833xd5yF4lDz8gaA3qG7LNXXa6xEHxtPAxfNCNkG8Y7g6aRaAp9d56af5ITM7etzLIefnzWopVEv5nxxFHKKFVZKvKoCYS3CshRQQF6ftKDq0aYFRAhxn89KSqeIahcCz4kpBqx43anVcds4NJt3RuNBU2j4jozSkTaVcHSfJ"
+                            }
+                        ],
+                        "encompassed-clock": [
+                            "zSzgZS2utSYSlt8xN7dsLeEaUA9zvWk4GUcxEe2ZYSSkdSR1Z4lDaRNXjWoOKJKivOQ12K1TCLdPDWIu0W73NN0ZBoNeZqwmemo96h2A27ix3STVO1YuGQth78n6yUlN8BOfSQHMXZb0S4NyXM2Dun"
+                        ],
+                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT",
+                        "extension": [
+                            {
+                                "value-name": "3L0hM28agckb6SYAPNLB1l6bFh9HwBqzniJ1dJ4tNoEU8umQ",
+                                "value": "0rblpmSGwzc70EmafonYsQMQmyRRUH1M0c8py06Wsa4kGquVGSM8AqRXYIGKhzphLxGbpE8RH4bnmGb3qX30fUP5unHLW62zDBLVfLMOHQ43of6O42GjWogrD"
+                            }
+                        ],
+                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL",
+                        "label": [
+                            {
+                                "value-name": "2VkuRZdc24zIxtCQqV6ZGqSImWh630d5NxzxoMBrIa1fwDYWq4",
+                                "value": "YvFGJCXHFPULvjcUHZn0zq1HWwFSXBFVYcuzGjge12Zol3iV2xVuXPbTlIDaja6ans"
+                            }
+                        ],
+                        "encapsulated-fc": [
+                            {
+                                "uuid": "834c0eb0-2f3e-666a-4748-35fc44f4ddcb",
+                                "service-priority": "-9223372036854775808",
+                                "supporting-pc": "3AnNVckkP1e3BWvp2JRaGAjABnc8UV0QnfDisYuhZIcsFzJHjAJR23kviwDdrD3OTyYdosmg3yAI0khjU1aPWuk60YjjteZeFPj3iFbl6MV664pS5rzTWU0OKb0diRkXHDSRjW4hIZnG3Mq150M1M",
+                                "layer-protocol-name": "ethernet-container-2-0:LAYER_PROTOCOL_NAME_TYPE_ETHERNET_CONTAINER_LAYER",
+                                "forwarding-direction": "core-model-1-4:FORWARDING_DIRECTION_UNIDIRECTIONAL",
+                                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                                "name": [
+                                    {
+                                        "value-name": "nBQxRuyfvNKOK9P2zMT6LfdtgVDcJNP6oxw714npJ75u9VoAzhzkwMNMzjRi6Ggu6MtZIQosQuOZpczYl0bRMQwl",
+                                        "value": "nvfVMBTq5T9NhtDDhu2lWTGWWpJMVWWas3Y6FRoCKxpUSVx1psmld2a1sTNfPBi9xg74"
+                                    }
+                                ],
+                                "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE",
+                                "extension": [
+                                    {
+                                        "value-name": "rkHIiv6YRGjYWPph6C98RoEvrufHe8GxsogCTetCVEtJuK1sm2A5qesRAIqPI7m2nuE8JZDwE6f0Igs5a22A8vkJ5KqNRMP69tfKlS",
+                                        "value": "ZQvZyEjvOlyplVJ40luNd9CjaXqUiia90x8zbr40Euh0pSWhdr4isyuCwUwG5yQ55YEhiB9OXiGf2Dw7WBqo9U0xGoeLW4R1Una4YbTWlr3n4zv0aVg"
+                                    }
+                                ],
+                                "fc-route": "et6HuW6WgfE5uPL3xlage17jvxlUsBEy5D7zzeoHtUMYJxT8KWoQPn9dUm7eXDM2gUuH8KotE2jfr5fb1DTI12VNg22eGG8OA",
+                                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL",
+                                "configuration-and-switch-control": [
+                                    "MDzuRVzJGu5sf5BGkSMuG6hAWn7M7T5Lxw7osH7834Ai24YmOKQvI7Xwu4atYf7nLeD5ND5Q"
+                                ],
+                                "local-id": "kwAXHYfff7hXUYk1Wzf9DHREts4e7GzrdagM0w1fDj5p9pqXRx6u",
+                                "lower-level-fc": [
+                                    "9bc11e2d-913a-2fa6-a64f-f01427c75d88"
+                                ],
+                                "fc-switch": [
+                                    {
+                                        "local-id": "KRSinfe9lmlEIlGfA7hIUQo8sDXEFgIh7Ar",
+                                        "wait-to-restore-time": "-9223372036854775808",
+                                        "profile-proxy": [
+                                            "vgdRtXdE3pPD9nJ0CAZjDIJDMWz8VHWqY99j6mX1MEFV1oNDYEWunx79ly9h75z5fJhd56fJLUwEaka0Y6ulwtnJTw01CsYJbfW8m3SZPgDZAN0zMmMaI1TByMu2etLhIHhWD1VsirkSecjSy6287WCxA6zGzkXaUeYxgMZydbijnCcWA6WzUy7uxyaYTZ0F6Z4eL3MQ7W1uy"
+                                        ],
+                                        "control-parameters": {
+                                            "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE",
+                                            "prot-type": "S7ZedECHJFmjsEPwaWUU8181qXwdXI9HQ1VVFqCo5YzpvhVx5Hr6Jz71pDeedgWVhJRW1ld6cEvHVreT0xZJ76KoBZCO7qCg2lc3GhaSWxrJQxCR5",
+                                            "hold-off-time": "-9223372036854775808",
+                                            "wait-to-revert-time": "-9223372036854775808",
+                                            "network-scheme-specification": "4zlsacWRbnlrhGDkmNm7JUysK6XB3y470pz2tnTEKe51UAe9nAgYuGj7EgAHGEOGVfJoDuUfJZ9vsnwPXEOkl7jZfTHVqnClDdC8HwniowGQLcxBRdV4c63rZCfhSRvvW7DDvSWLpuB2G1DpeqtrwpKoTZFLIa8E9DaxwYiNsMP0Ntq1TTkiaXG4WdHxoIbpldWJbfwD1eEGH4zsPMKSJqOxEn4U58brl82xfz28NGOmCfOk1"
+                                        },
+                                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                                        "switch-selection-reason": "core-model-1-4:SWITCH_STATE_REASON_NONE",
+                                        "name": [
+                                            {
+                                                "value-name": "IGoV2JzK47Zwf961Zu2j8ZYF7yW61otJ4KEYl5Ji4AObBVdApfMp6C4daTj39FM5pi3KfE2k7JvIEAbVHXdNz9SB24F3Bj00C4CJAx3H8rqE1BzJyEoZO9sI57MGjMyNI2wjzs0zTidMTFnjjMa7NDISCmyV06AJ87UAzM9k5f6QUu2d8cdVPVFkhd7hbISb",
+                                                "value": "MLgrNAw2yeW2g1ateXa1CmiHusS4kWLZzTqmlOgT24Wj6YEcWO6q3o0xISB3Ge2g7kus8Ll2H9lF0RSWyYeBee8XZBSFPMVO6i863t8Kvmivd2jL0xm6EmVDPFawjYkhgsnbOoNjK5GX7ZBZoP624TxTrAqKyK2G5pRTNE4pKKfJBQJZxHUBsjvTTVErxG7uXQfDnb27V9Io"
+                                            }
+                                        ],
+                                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE",
+                                        "switch-selects-ports": "core-model-1-4:PORT_DIRECTION_BIDIRECTIONAL",
+                                        "extension": [
+                                            {
+                                                "value-name": "2ySZ0RElVT8TvMYRQ6ulC9eweLoXZ5b1w3TwMpJziSkNwjxep1zU2Fi9qG",
+                                                "value": "hM9ba44yJliiD2vjyOQM5JeRLT9McQLtuMEERAcAVmKrofKWVsB1bPKOAUBMKe860MKRfOjabWBr3dgZFRSQyCx0o0N0eV6ezIYGp9RA5k19q9050KOqelrDl6Dz1CFskD1JNSbS45TueLs7vgxKtYnG4S7XuMiHqjq53uPZzJmFmOMSWcCh2RXZB4O6I6N0h55crV40wqyS6cK2oejrX8qzc6xU5cVm9SrBNvtbV141eGVCN"
+                                            }
+                                        ],
+                                        "prot-type": "sRLn8kaPKcY1rHu0NRJ0AoatRZgbKR3cIHrI1tyDFwwY50YKRzKjYNEHMUKwLNAlmTWfmuSTSgRPgHzZ9ca7ZPGLJqan5CAkwwzSSkECAvrJ5TIe5",
+                                        "reversion-mode": "core-model-1-4:REVERSION_MODE_NON-REVERTIVE",
+                                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED",
+                                        "configuration-and-switch-control": "i0cfs6FrtcZD3K",
+                                        "internal-configuration-and-switch-control": "3pB2tPFptnwpp0QubIGqaF5B8aBDdd8gvBbYqQfLeD3vwTZHtyZEdWfl6IYbWZkjAv9TdpEjUHOisOZWeYsrNzMLiCX6B9p4wyXJPtVC3JUvpUjDKD4pdIbnd0tG9KKxaz8S33u6Not4aNANiwcv7nSkfd0o",
+                                        "label": [
+                                            {
+                                                "value-name": "rgp0a0ttnmna0GAyG4wok1Lv3Kj5tz4UPlVZeglBCAMvgm3OirdusY0oJbt4KpQsLDrZTEswe61nsWbDog7IfZ6Q2rUNRC7ugyl95FxjMyG6nSJL0RtfQsXTTJyCmFYC5bDaRbuDB2JYMlBNc52UpSNaBdFPKvjQHXSq0eVBhws3R3Q30LYpvDs6J7OtC7bbW4BWioqzVSvMVdIWYydt3xsME8",
+                                                "value": "97jc4nGSy4iZZ2uMYImMyURUXpeKVmSWt39xrPiRTAQLDdptVL7lFYfCftebPY7b28IlX0cJt2mYfLr2oyo3oDxEZEPOCOZEXAZMs3nN6JLdm48KCwF115x0JmH"
+                                            }
+                                        ],
+                                        "selected-fc-port": [
+                                            {
+                                                "local-id": "D3tbKEkeuDabLVQojewPC5d89tm0p9q2dT5Xqh3UV65y1OWcUs1wp6xyATzR3ZUgKZ5a905462u7IqcuS51acqIMj9ve0puLhrNqsKmqFQqn8CS0HL2T3LxmU3BNkXythdLJY71DPrSP",
+                                                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                                                "name": [
+                                                    {
+                                                        "value-name": "CIDfKoivOFiR8535vxmIaXyaZbZi4HeGpJW9Z6xNLHwTEAR1Z5J9VajMlb4hSaQ9LEiLKHywoXh2p03o6FpTPBF2",
+                                                        "value": "BkoMaxxOHaypBWNy6IX6Ld4iCP75uaJ6u7KwE9cekKDVzilx0ivMvs4Zh45M6GKAOmYkvayPM3ClmXSm7g0uIXuZ1rD7ZfzFBp07zqOlmjzIgj4gzXKhU69NxMMp2d4DC"
+                                                    }
+                                                ],
+                                                "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK",
+                                                "extension": [
+                                                    {
+                                                        "value-name": "z0b0q11mBh1O4y0NsHNeJTexrERDTm6keacE3e0En1krrc6ULU8mFfUYLDCwZAJdKVJN1JjoCvHVzOPlAQHfXt5I6H6XiP",
+                                                        "value": "2DTIEuTVYpuUYiBbKjLZge5QdEXaWMdRpYrWlkJjBd5sozD8So01vXRIBOKqBP9SOsO1MpkgDiI1Rl9JC1K7YuHAijSL91EPlkQ7K2ffkXgbbhNNjpMhTlJ4EtPFmluHykHanWpHMxLXOqCZPg9BBSF7emNAAhi8uZiRVzqz63wMt0EbgNEJxbRLxwm7NE79vhSiQbSOegtAh7DpUh1jsS5RojR3XQ5k8XCQ8mFnD8PM7sb1Jck3WhMcAv8"
+                                                    }
+                                                ],
+                                                "logical-termination-point": [
+                                                    "bc478ce2-7d3c-9c53-dff2-7724bcef25d4"
+                                                ],
+                                                "selection-priority": "-9223372036854775808",
+                                                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY",
+                                                "port-of-internal-fc": [
+                                                    "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                                ],
+                                                "label": [
+                                                    {
+                                                        "value-name": "C3froBKPjS9f8I4TSYZ1DpNhOHmSdQHPTWgaxSZQL0XLB2wtSwmoN1xtJUdWCULwQUynMp5pqV31XzmHXI5KJDdsprg1d2p4OXjsnhSFcNG1m2IkKOWlj",
+                                                        "value": "OIl4ByY1CMQWf55ZKhMqi0k0cWG9iZ3Yzo2bWTczx2nM0sDKBh3TanTmcsnurqs1Om4L7gcFarjaTXVm6Yfgd0Dps0LMj5N7sRSrZ461nq48fRudHJuUCZc4RXQa3vane2O5ZV7md3vkUZxBBTndKz9upSEsfOPmJvrAiqOntbHf37QES6JDFS74CDoSk5eVBxvLYj9jvQryP94IfNdNxcJ2P8U150WypjkfD"
+                                                    }
+                                                ],
+                                                "is-protection-lock-out": false,
+                                                "fc-port-direction": "core-model-1-4:PORT_DIRECTION_BIDIRECTIONAL",
+                                                "fc-route-feeds-fc-port-egress": [
+                                                    "THEZy7JWNarQWW7vwQvf9qS7LSINVHyHgcyGb9CYjWGfSFLon8DwywEcgeZ4V"
+                                                ],
+                                                "is-internal-port": true,
+                                                "role": "4ATHbbJy8e1sKp2uae8MOw6xBZ8P4T20tNzEYb56p6r1nlvxzwkn2qNvhVklGed91EFZPKXeIgfYBDva9Hq3Zdyg0KtGYGPZlmQ2ZF9zWoxpT3A2C0XC5nS57eL5Us47OMaNsjngzMFtH7nk7dO4Ay9IMUFHmCGboIQI15YtSwOzD3LDgzHR8RrUD6t0",
+                                                "address": [
+                                                    "aecjARydRnZYP3Rq74l4l78"
+                                                ],
+                                                "fc-port": [
+                                                    "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                                ]
+                                            }
+                                        ],
+                                        "hold-off-time": "-9223372036854775808",
+                                        "switch-control": "core-model-1-4:SWITCH_CONTROL_FORCED",
+                                        "address": [
+                                            "bqkIcpUZD4S4xxz0Jm2Nf8laC8gyLuLWUXxZmjY0fIWMgoNRKHw0PR2r0jRDNvzAs6zPqpHF0Dkg177EOvwvmqWeJORpbjRDhikHH1fHxzPqyOWejkJyLFMmlwLwPu26MmGmgNVFeDXMrU0DeB3Z8PeudZSUmUT09rmh6aWkNTY6FQJM"
+                                        ]
+                                    }
+                                ],
+                                "supported-link": [
+                                    "C65qINNiUKOhPQCF5JUJQxGD2MmCkudOtb6bYUmTE22lTESQgErY48t6MPIYkWMN7SQ5E4Qb7Ko0hhIxVanZaQYWyGUSuyxBifzXkh0r2ojjx1Il35cdNa1lRN5dluPwKglWxlfzJyS9rAuvxGAlRCGApEND8u9SKmGiHVRitCrN4ViCCSPlmnVM1Aha5iUPEB7lwRvStXFpKP1ezQzW6mA7XJh214JFFJ"
+                                ],
+                                "label": [
+                                    {
+                                        "value-name": "wGK3XwOSVPafcvs6Flqq1G8CY916h5dNDPIBlwt9mDoq1Rwy4XR5vZIt8BzpHE4kmNNHj9QxM7XFYu62jX0OOI9WbIeSei5A5Sah1SOGZMdP8jKr8KfWkoLvYZg49lF75Hg7z4FrISgI4S1cCg9WwUkmLArMVYLSF1R6YwpyhG",
+                                        "value": "dqap3rqRPc3cPDvuqtfj09aY7zoxIWGVmRchav1ZH43pIqT8T8jL9mC8V0GvOeqa5uk7ZlZzpUY7lR86RrS1Nm9AmP52WncTSw1JRSi9Mgg77o6RIYSnc1YyJ3AFjEq33rMMb5VYd4Xds342TWq5Povqj55uCoxxPkj1p7RCbOPDSLyDHYJpeePpcNUGbrdSLwL2DCxOjek30SGzIhYWwGlAt7gwztocR2fnEM3PSfSS"
+                                    }
+                                ],
+                                "is-protection-lock-out": false,
+                                "external-managed-id": {
+                                    "manager-identifier": "IwQIB8rVX8rHZKD31dUgLYU4RZ4D1IiB68bH8Cv5LWECyiyrvsH9iBd9A9NtRXWX57E5K12nXGRvQpWeKDn26A4zJJUAGRpDY3IA5CPUazq1YefAS",
+                                    "external-managed-uuid": "vQczpVicnY3MtTH3mEF3zPCRQt5X3PzyGD7Xyh9N74zAY9vkNaneS05Albyo0ZPyDOw36xR5CiyAr3Mf61tYTzyeCYvuYk3t8rw6YncsGK27NGeTAAJt1aAD857Yp2rptYwkdIMLkHLZnRLXrujswT5FY5vf7XEBN2VSKHwWg9WE0ztsVEUspSZfXuuWj1xY3kJGUfCaoqGoZ2INGvf6fel4AI0UJqKMK"
+                                },
+                                "fc-port": [
+                                    {
+                                        "local-id": "R094rf347LpmOlVKuKbFHiRYu1viJhFthOxI3sEad3oUgbEKNIhv01lm2RFM8kfh0ER36v5crt6HwCkkcBP4CarFT6jTiqai4TdapimIDkh9XBt95aezdFe6Dp0VP25TWi4dAiV5D4esyIBDKHcXmj4RIWEyYJjMTfRlyEq3JFvhfYMZGYXU9TMKPqaF2tkVJbh9QH4rezItxmt5ci0m3M6S4gp6BBUkFblnKpOZYosoKNlWX",
+                                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                                        "name": [
+                                            {
+                                                "value-name": "a0ZgK4o220DWciZyFCPlBGJV4tBhiyDszuBjqZltRRh499uHLb2eRM9N7K5hbIKK4lVvc9Y407018mITxDZph14gL9yOJiqOvmjHn9Df8DghRR2hu2GD3KTGMrvvJVj69COwDrLMXU3OL557ZDK2gvB2X6pyTJF3dtrRM5vJRyquvnBvTdp1",
+                                                "value": "0VxYk6SVDN166KK3fmUFEoa1RxMWXFxXA4ON2GAFlBDjdonsCh7gya9pHWeEtLu4PaJSQjp3V3m0j"
+                                            }
+                                        ],
+                                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT",
+                                        "extension": [
+                                            {
+                                                "value-name": "J0NWjt4bfQB1QZ4apG5FcB0x1LhD4vxNvcBPFGSUwtNekRoJxtoKWhhY2rt6W0Ljcm0K2SEqdswxbU8Jgxl4GC2AVwyJoj3BF3dAOR01bxrnjz6r6jwEVyeJWMsl5nODj1d7K50WCrbO19fZsLwfcKY0xjluy17R2cQNiJBM2MAVNQNftjux3l",
+                                                "value": "swLP4NOWH1EmbfPXitydgg0vBbS1f5rzBcoFRdtr60Nhfv6xYwDfMDCgPmhWrIn2MMAwR3XXVC6b74A6BddfJPvq4EmveJq1n0p6Ve3RQ1UQ6uOHI1WrIkRMY5a5GAYWAn2nBY6jZ09XvPw5Ilojx75nc7sKHqG9FJxgzDsqwBo1jM617mkwtiU"
+                                            }
+                                        ],
+                                        "logical-termination-point": [
+                                            "f7872522-16c2-ce17-fc7a-083c8517e7b3"
+                                        ],
+                                        "selection-priority": "-9223372036854775808",
+                                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL",
+                                        "port-of-internal-fc": [
+                                            "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                        ],
+                                        "label": [
+                                            {
+                                                "value-name": "tVTs3jCcIc0WQuzcqpm994sqZftmgEXBrI3u1yHCKHqs30FthTCiQ5IPc43kITVaBZEvxd79VxBYp8sG2WYKTHz6LvqloevRd2mCftL2Tm1avlRp9H93gA1T5rflFCdKEreMVZOGeHQBUzS4h17pt8jrryEZ2RBzbQl6H1ENJmovW8z51yuvyNO0dsR8csHna2",
+                                                "value": "S3ZFEdW214t662tts8hkmJbuVw3aG5vy0m6xA2zBY2A4W3xpbGJpqNLdjOgZTLqM0wbsqC3owvltyKKCrl"
+                                            }
+                                        ],
+                                        "is-protection-lock-out": false,
+                                        "fc-port-direction": "core-model-1-4:PORT_DIRECTION_INPUT",
+                                        "fc-route-feeds-fc-port-egress": [
+                                            "xjLtDPA4dxNpPv20rrcpd3aZuhC2s9AZsdk63V28sPx9cs2vL6MZ9OQv5sqxC0o4eJ29E4hYLP0P9UcU0ZTaNKxL4XiGYzDcixlOuCE7jEXsy1fr00BGK0jHYBnW2S0kqd0MHFT1jIlKKAbCBEadEtUCXaqZUiccvcYdRS63srNcUQHnmRs0dfv2hN1b6doBqmGh6Mkz6ZD0Pkf34H49Orb5echkiFOIT"
+                                        ],
+                                        "is-internal-port": true,
+                                        "role": "wAeM4KPfZ8cek5K5OD0JqgEkmc1v0tRo4Y30IK7ISkO4pyad3aPmqlGNxzap31GZRBRAlYa5iYaApkNkuuGMPnreOBwRv4ImFzO0qY5IP7a6rYqNk7s2mT82vEUSAu6f4V7mL54sc7qw5JbhIDb4xk6UQSMrf",
+                                        "address": [
+                                            "FY8kzxt03VqzoOsHtqJsM3ZfdTMD73CMTC7k2Ak5nLwLrYtUgcf27e9lZVQ6QkLKWSWYk9VHUjkdhN0xRfrZlAckv2iem3YaNM1ZVWyH8TVpGVPq28pnJtz6vRkJNaTsXUsK"
+                                        ],
+                                        "fc-port": [
+                                            "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                        ]
+                                    }
+                                ],
+                                "address": [
+                                    "wP1kLKeG7gC6snUNPX3ToyMzl2DU3e9r42MPMSnU8SSsfE84tbQRBuiWoNIr2RTYMxFqp3cpN4S2A0ZV3HFE3PsrDaLxTwvFVa6c5aBS7lNHdEvgl2MgReHmgkTaIoHDrFPwQrhXM4w0A18VVV3N1K1iXVsFb1bCH01pjamY6SQGMYtzLweN8g553pDeiOJZOCo0MCYSnOq1ETAqpP5p52v8j0eBOXtuzRudmk5J0nKFgcXx12"
+                                ]
+                            }
+                        ],
+                        "sync-ltp": [
+                            "1c7e2c79-af6e-8d12-d18a-957fe616ceeb"
+                        ],
+                        "address": [
+                            "1zIEuPp9E6ZI2nX03T2J4ZZkiDhm5dt6N3L9T2ix1h7Vw4VzPQbTH25ZFmdCAHJfKmoDgH29Q94n5SOUIZFp2KgzZtcz2NON14ihLdjCmnRkfF6PxMezom0nQc"
+                        ]
+                    }
+                ],
+                "supporting-pc": "SRuxSzQ2k3lOhIFBQdIFKmMbK8b0QgOJ7jg0KY24TfLbPiMFvmdfIRqtRCtIS9jZkzR4qL1j0MmI41fAnsH6b8r3CMLuV4lgv5cNId7BZtjWuyoKT5Q4597HVK3IGhQ4m3R4gQF8cQWypciih0ef1eWWQ0xphftvicrrV7r7PnxezQoIIDXKJUyzM5YVdjqvoRWjQfiyCPM3x3M8yBShniQ9g",
+                "server-ltp": [
+                    "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                ],
+                "connected-ltp": "bc478ce2-7d3c-9c53-dff2-7724bcef25d4",
+                "layer-protocol": [
+                    {
+                        "local-id": "1pre8aLXnMHCs1s45XAmXcYAgGC6d4M7meduoYjMKSg5LI1RxB5uO3WWJz2PvOWR21djZoXBg5yUNzDcbIyRLvNn4H4rn",
+                        "layer-protocol-name": "pure-ethernet-structure-2-0:LAYER_PROTOCOL_NAME_TYPE_PURE_ETHERNET_STRUCTURE_LAYER",
+                        "vlan-interface-1-0:vlan-interface-pac": {
+                            "vlan-interface-capability": {
+                                "configuring-pcp-bits-decoding-is-avail": false,
+                                "ingress-vlan-id-filtering-is-avail": true,
+                                "port-and-protocol-based-vlan-is-avail": true,
+                                "statistics-is-avail": false,
+                                "configuring-service-access-priority-mapping-is-avail": true,
+                                "max-number-of-protocol-vlan-id-groupings": -29445,
+                                "configuring-ingress-tag-filtering-is-avail": false,
+                                "supported-sub-layer-protocol-name-list": [
+                                    "vlan-interface-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_EDGE_RELAY_COMPONENT"
+                                ],
+                                "number-of-available-traffic-classes": 32,
+                                "supported-interface-kind-list": [
+                                    "vlan-interface-1-0:INTERFACE_KIND_TYPE_UPLINK_RELAY_PORT"
+                                ],
+                                "available-pcp-bits-interpretation-kind-list": [
+                                    "vlan-interface-1-0:PCP_BITS_INTERPRETATION_KIND_TYPE_6P2D"
+                                ],
+                                "drop-eligible-indicator-is-avail": true,
+                                "configuring-pcp-bits-encoding-is-avail": false,
+                                "service-access-priority-tagging-is-avail": true,
+                                "received-priority-overwriting-is-avail": true,
+                                "egress-vlan-id-translation-is-avail": true,
+                                "admin-shut-down-is-avail": true,
+                                "tagging-and-mvrp-is-avail": false,
+                                "vlan-id-translation-is-avail": true,
+                                "restricted-automated-vlan-registration-is-avail": true,
+                                "number-of-available-priorities": 110
+                            },
+                            "vlan-interface-status": {
+                                "statistics-is-up": true,
+                                "timestamp": "2021-02-26T09:32:55Z",
+                                "total-bytes-output": "-9223372036854775808",
+                                "total-frames-input": "-9223372036854775808",
+                                "interface-status": "vlan-interface-1-0:INTERFACE_STATUS_TYPE_TESTING",
+                                "total-frames-output": "-9223372036854775808",
+                                "total-bytes-input": "-9223372036854775808"
+                            }
+                        },
+                        "wire-interface-2-0:wire-interface-pac": {
+                            "wire-interface-current-problems": {
+                                "number-of-current-problems": 124,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -5663,
+                                        "timestamp": "2020-07-31T14:55:52Z",
+                                        "problem-severity": "wire-interface-2-0:SEVERITY_TYPE_NON_ALARMED",
+                                        "problem-name": "9e19V7e85vwWP4KGhZIoHQyzc14gHZgQ5hR0hX1esx29tMPLLq1l8AUctYs2QJTNSCG9AHfU6h4z3LcHbe2cOOo9FRcvsXaczQe1ptWvLS5GD9fHn9T3YhdD0p0ke2xNTLPa6DGRnDy0MFzaPkdFuiauzaHNc6BXJi8PNOHaj725MuftOl8iDiF5kmS"
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-07-17T03:41:38Z"
+                            },
+                            "wire-interface-historical-performances": {
+                                "number-of-historical-performance-sets": 20744,
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "period-end-time": "2021-09-23T05:06:46Z",
+                                        "performance-data": {
+                                            "es": -2146659839,
+                                            "ses": 1328390426,
+                                            "low-power-idle-receiver-ms": -1233271089,
+                                            "low-power-idle-transmitter-ms": 1155286978,
+                                            "symbol-error-during-carrier": 772602474
+                                        },
+                                        "history-data-id": "fZ0QlXujZbgnrJe0sZ4wWVupWD8riNLxML",
+                                        "suspect-interval-flag": true
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-09-30T16:59:51Z"
+                            },
+                            "wire-interface-status": {
+                                "rx-sync-role": "wire-interface-2-0:RX_SYNC_ROLE_TYPE_FAULT",
+                                "link-is-idle": true,
+                                "eee-is-up": false,
+                                "performance-monitoring-is-up": true,
+                                "rx-level-cur-list": [
+                                    -125
+                                ],
+                                "tx-level-cur": -71,
+                                "pmd-negotiation-state": "wire-interface-2-0:PMD_NEGOTIATION_STATE_TYPE_NOT_YET_DEFINED",
+                                "loop-back-kind-up": "wire-interface-2-0:LOOP_BACK_TYPE_NONE",
+                                "interface-status": "wire-interface-2-0:INTERFACE_STATUS_TYPE_ADMIN_DOWN",
+                                "pmd-kind-cur": "9nV2QxLvC2Sz9oZFujPZQCmsXlpx7iDhFqbnYWTsZDU01LGn4nmURAfGVE53OIcl9fIZctj3Yd3RZBe3QsQH3XgQtdLhWXC",
+                                "receive-signal-is-detected-list": [
+                                    false
+                                ],
+                                "signal-ordering-kind-cur": "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_NOT_YET_DEFINED",
+                                "pmd-is-up": false,
+                                "link-is-up": true
+                            },
+                            "wire-interface-capability": {
+                                "wavelength-min-list": [
+                                    541574690
+                                ],
+                                "supported-signal-ordering-kind-list": [
+                                    "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "rxlevel-high-threshold": 38,
+                                "isolation-is-avail": false,
+                                "supported-loop-back-kind-list": [
+                                    "wire-interface-2-0:LOOP_BACK_TYPE_INTERNAL"
+                                ],
+                                "short-reach-mode-is-avail": false,
+                                "wavelength-max-list": [
+                                    -16084029
+                                ],
+                                "unidirectional-operation-is-avail": false,
+                                "supported-pmd-kind-list": [
+                                    {
+                                        "pmd-name": "Lq6aaeiHgu74A97QxFpsJJTREWX",
+                                        "speed": "E0ShiQjsWC14Y18qa79zMy2n9NfFK4tgWdxe3RyRlAVbBVCD2LdHb74lU",
+                                        "duplex": "wire-interface-2-0:DUPLEX_TYPE_FULL_DUPLEX"
+                                    }
+                                ],
+                                "configuration-of-number-of-bip-errors-per-ses-is-avail": true,
+                                "auto-pmd-negotiation-is-avail": false,
+                                "required-medium-kind": "wire-interface-2-0:MEDIUM_KIND_TYPE_TP_CAT5",
+                                "temperature-low-threshold": -59,
+                                "maintenance-timer-range": "tPSsT5f55LkjqwTuNohvKpN2Iy8wPgciXWLQ10NZD0i",
+                                "supported-alarm-list": [
+                                    "w3pbrGzc5m6GNecumgMj5p26hPXNP8Idb0hDGQPE4VcJ2gdowSAB9CArjp61xO6JGnef53T2QXLSdZ9BRJ50dxjwWppu6w5MLj1ReMT4BEPGvYieHffUMqiIII4O69sRsmIG0tDu0savikKZzRLl9VWRv0xB20tme336xyAp0LMa5o1xfMKpzG85zGGBy1XM5SKu"
+                                ],
+                                "mii-kind": "wire-interface-2-0:MII_KIND_TYPE_CDFP_STYLE1_STYLE2",
+                                "rxlevel-low-threshold": 84,
+                                "auto-negotiation-pmd-selection-is-avail": false,
+                                "wavelength-grid-min": 1730071914,
+                                "performance-monitoring-is-avail": false,
+                                "auto-signal-ordering-is-avail": false,
+                                "configuration-of-rx-sync-preference-is-avail": false,
+                                "eee-is-avail": false,
+                                "temperature-high-threshold": -49,
+                                "admin-shut-down-is-avail": true,
+                                "mdi-kind": "wire-interface-2-0:MDI_KIND_TYPE_BNC_TNC"
+                            },
+                            "wire-interface-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "performance-data": {
+                                            "es": 140063464,
+                                            "ses": 1832357024,
+                                            "low-power-idle-receiver-ms": -276949587,
+                                            "low-power-idle-transmitter-ms": 1456276022,
+                                            "symbol-error-during-carrier": 277579656
+                                        },
+                                        "timestamp": "2022-01-25T07:25:50Z",
+                                        "scanner-id": "RGGFTPQp7vukJmR3I56dsQwCiQYI5pVWXCuJjk8iHCCiQldqrbET12nbKdUQuPMkj83usbN1FhjnDwOWHsHBmWM62GWwoBQHJT44WR",
+                                        "suspect-interval-flag": true,
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -60
+                            }
+                        },
+                        "ethernet-container-2-0:ethernet-container-pac": {
+                            "ethernet-container-capability": {
+                                "supported-fec-interleaver-kind-list": [
+                                    "ethernet-container-2-0:FEC_INTERLEAVER_KIND_TYPE_NONE"
+                                ],
+                                "maintenance-timer-range": "gkFdkSlDLvDInbpplRESFG",
+                                "supported-alarm-list": [
+                                    "xoF3cbyRoLKiuTxAcVjDS0qpirIoELR32x7eIx56iIgNtGfGBybtyBSIVs6z6Qv8fCmX1kVkU47fKmVlU7GkAr2nT1PZJkZYOeVPyI9kM8zomnB8misWJncug1mZldX1rKQZk0b70Lnn8Zvu9YiSdmetnssAGpB71sZlk2kkNIHNzd9I3ksgGGJ41bwzs8GtsxGMA16fBG3aT4SWok45SN1TQxkaF1D7qbLScS",
+                                    "DY545QNlasrucM0QaDyxOXO9GkTd01ywRvsWmfawzBTMnTupw2OcRDdpP6CIZaeQFyFTNPqeqbSF4m5soLE7gRw6P0OPaUxIs4B7TTdb46J0sGsJrYQIPfOxfumqgT0AYtzJfMNjSwcdcEWDDEdkTTR9f5rvRr5HUwi1j5lb"
+                                ],
+                                "statistics-is-avail": true,
+                                "encryption-is-avail": false,
+                                "performance-monitoring-is-avail": false,
+                                "available-queue-list": [
+                                    {
+                                        "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE",
+                                        "available-dropping-behavior-kind-list": [
+                                            "ethernet-container-2-0:DROPPING_BEHAVIOR_KIND_TYPE_RED"
+                                        ],
+                                        "available-drop-precedence-kind-list": [
+                                            "ethernet-container-2-0:DROP_PRECEDENCE_TYPE_HIGH"
+                                        ],
+                                        "queue-depth-configuration-is-avail": false,
+                                        "wred-profile-per-drop-precedence-is-available": false,
+                                        "available-scheduling-kind-list": [
+                                            "ethernet-container-2-0:SCHEDULER_KIND_TYPE_WRR"
+                                        ],
+                                        "max-queue-depth": -1806080469
+                                    }
+                                ],
+                                "bundling-is-avail": true,
+                                "supported-header-compression-kind-list": [
+                                    {
+                                        "header-compression-name": "M0MGx3A5BawXzgijX2ObPyK3CTknmVP8VtOtxoy0zWX0cgj1a74ZGH2as",
+                                        "mpls-payload-kind-list": [
+                                            "ethernet-container-2-0:MPLS_PAYLOAD_KIND_TYPE_IP_O_MPLS"
+                                        ],
+                                        "compressed-protocol-layer-list": [
+                                            "ethernet-container-2-0:PROTOCOL_LAYER_TYPE_ETHERNET_MAC"
+                                        ],
+                                        "header-compression-mode": "ethernet-container-2-0:HEADER_COMPRESSION_MODE_TYPE_LENGTH_BASED",
+                                        "compressed-header-length": -3108
+                                    }
+                                ],
+                                "support-of-management-frames-without-preamble-is-avail": true,
+                                "explicit-congestion-notification-is-avail": true,
+                                "information-rate-min": 1062086046,
+                                "fec-is-avail": true,
+                                "burst-size-max": -2270,
+                                "ingress-policing-is-avail": false,
+                                "supported-fec-redundancy-size-list": [
+                                    "ethernet-container-2-0:FEC_REDUNDANCY_SIZE_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "egress-shaping-is-avail": true,
+                                "information-rate-max": 1873525254,
+                                "admin-shut-down-is-avail": true,
+                                "bundling-group-size-max": -57,
+                                "supported-fec-interleaver-depth-list": [
+                                    "ethernet-container-2-0:FEC_INTERLEAVER_DEPTH_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "burst-size-min": -27888,
+                                "fec-word-size-max": 31140,
+                                "supported-loop-back-kind-list": [
+                                    "ethernet-container-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED"
+                                ]
+                            },
+                            "ethernet-container-current-problems": {
+                                "number-of-current-problems": 64,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 4483,
+                                        "problem-name": "YetJRYlyR4pGe63J0lwHNX11Y2ZeoXQmcjX3aitTfSzlQv4RItqnqrggtgnRd55hp3crd",
+                                        "timestamp": "2020-09-20T17:14:47Z",
+                                        "problem-severity": "ethernet-container-2-0:SEVERITY_TYPE_MINOR"
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-06-16T06:28:29Z"
+                            },
+                            "ethernet-container-historical-performances": {
+                                "number-of-historical-performance-sets": 18858,
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "period-end-time": "2021-03-22T21:58:48Z",
+                                        "suspect-interval-flag": false,
+                                        "history-data-id": "a8xppgAveKEU3aU1BfblDqGvSD5BCXnM5U4n2wSg8w2cyWd23gnGH33rz8",
+                                        "performance-data": {
+                                            "queue-utilization-list": [
+                                                {
+                                                    "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE3",
+                                                    "max-queue-length": -269519179,
+                                                    "avg-queue-length": 1717934322
+                                                }
+                                            ],
+                                            "fec-uncorrectable-blocks": 1655019626,
+                                            "tx-ethernet-bytes-sum": "-9223372036854775808",
+                                            "tx-ethernet-bytes-max-m": "-9223372036854775808",
+                                            "fec-corrected-blocks": 1446822860,
+                                            "tx-ethernet-bytes-max-s": 161170216,
+                                            "time-period": -376405119
+                                        }
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-08-15T23:14:31Z"
+                            },
+                            "ethernet-container-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "timestamp": "2020-10-01T11:54:56Z",
+                                        "scanner-id": "WH72Ro53PiBTD1wr9x39fhrlFaHjnblcKkeBIjxpt8i61Gp2dtbtCuGhFfAUqN627kEHv3YZ38X4Pn62IankE3tji36AJcDIx9iUcgTfpJbe6h8Orw0Yzt",
+                                        "suspect-interval-flag": true,
+                                        "performance-data": {
+                                            "queue-utilization-list": [
+                                                {
+                                                    "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE",
+                                                    "max-queue-length": -2066010349,
+                                                    "avg-queue-length": -1355692755
+                                                }
+                                            ],
+                                            "fec-uncorrectable-blocks": -299910467,
+                                            "tx-ethernet-bytes-sum": "-9223372036854775808",
+                                            "tx-ethernet-bytes-max-m": "-9223372036854775808",
+                                            "fec-corrected-blocks": 1347869318,
+                                            "tx-ethernet-bytes-max-s": 1273246596,
+                                            "time-period": -1732557857
+                                        },
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 56
+                            },
+                            "ethernet-container-status": {
+                                "timestamp": "2020-02-05T18:23:15Z",
+                                "last-10-sec-data-output-rate": 351293566,
+                                "bundling-is-up": true,
+                                "total-bytes-output": "5816872347112791040",
+                                "total-bytes-input": "6784750365952740352",
+                                "interface-status": "ethernet-container-2-0:INTERFACE_STATUS_TYPE_TESTING",
+                                "loop-back-kind-up": "ethernet-container-2-0:LOOP_BACK_TYPE_BACK_TO_LOCAL",
+                                "statistics-is-up": false,
+                                "last-10-sec-data-input-rate": 281650300,
+                                "forwarded-bytes-output": "84934799384084352",
+                                "performance-monitoring-is-up": true,
+                                "forwarded-bytes-input": "3539455303009261568",
+                                "remote-site-is-faulty": true
+                            }
+                        },
+                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                        "hybrid-mw-structure-2-0:hybrid-mw-structure-pac": {
+                            "hybrid-mw-structure-status": {
+                                "performance-monitoring-is-up": false,
+                                "segment-status-list": [
+                                    {
+                                        "segment-status-type-id": 25028,
+                                        "operational-status": "hybrid-mw-structure-2-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED",
+                                        "segment-is-reserved-for-tdm": false
+                                    }
+                                ]
+                            },
+                            "hybrid-mw-structure-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "period-end-time": "2021-06-18T01:32:44Z",
+                                        "history-data-id": "n9SW1H9ShVtj3V30XTjUIHoYvmHNlTAA3lwW2FObA9mvXpoMbHzThXSMbrzxd27gnE4hbTsEUO1RdpEoZda822UelmLyoKGDgLUswm6q2ZifhOwgTGoVAa9NwMeUxU",
+                                        "performance-data": {
+                                            "rx-level-avg": 73,
+                                            "es": 1084767432,
+                                            "unavailability": 639450742,
+                                            "cses": -1543819411,
+                                            "ses": 1616025368,
+                                            "rx-level-min": -76,
+                                            "time-period": 616466480,
+                                            "rx-level-max": -5
+                                        },
+                                        "suspect-interval-flag": false
+                                    }
+                                ],
+                                "number-of-historical-performance-sets": 13960,
+                                "time-of-latest-change": "2020-09-13T14:18:42Z"
+                            },
+                            "hybrid-mw-structure-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -9144,
+                                        "problem-name": "LmO74gbnHMbQo2vPiQwbint1zc4fkUJ5gq4cy7AgLL69FBZYjv9CLuDcGHr0B2XKs1W11o9M2fWHINx1iGvV297JQqBktzWVsKOt1X8344CMR2G1AbXDcWe3nPfQo3DRNkcO9kJegeS",
+                                        "problem-severity": "hybrid-mw-structure-2-0:SEVERITY_TYPE_NOT_YET_DEFINED",
+                                        "timestamp": "2020-07-27T16:01:33Z"
+                                    }
+                                ],
+                                "number-of-current-problems": -97,
+                                "time-of-latest-change": "2020-08-19T16:37:12Z"
+                            },
+                            "hybrid-mw-structure-capability": {
+                                "supported-tdm-structure-kind-list": [
+                                    {
+                                        "tdm-structure-name": "6z4CksksXswjAgSkrVzgwZcMI19ubAJhaFTm85O5ych0s",
+                                        "tdm-segment-size": -2020218365,
+                                        "max-number-of-segments-reservable": 63
+                                    }
+                                ],
+                                "performance-monitoring-is-avail": false,
+                                "supported-alarm-list": [
+                                    "WL2kCe7l78HiIirKYc6YiMVIZ4Ij6U5Ux0f9eemem4wWeQH42F2csQUjUuC0gINNI2POgb2u7rqm9ZqbFlo7baiXFUQVuDB4FqLNtF9BYzX7zfj6Az5LBnJ89r4w4xsBXdgiTpTJYIRpY2vyBsc4PVdRe9niGPTvV1NGqHpohgGfa3OLw0QdN3414rbK9Wf4XUKnt1DLaj0knG6LGOYlJ3eNmppvlwraq3x"
+                                ]
+                            },
+                            "hybrid-mw-structure-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "suspect-interval-flag": true,
+                                        "timestamp": "2021-07-31T11:01:11Z",
+                                        "performance-data": {
+                                            "rx-level-avg": 34,
+                                            "es": -314602395,
+                                            "unavailability": -478724517,
+                                            "cses": -923906753,
+                                            "ses": -1903011123,
+                                            "rx-level-min": -105,
+                                            "time-period": -1043000029,
+                                            "rx-level-max": 86
+                                        },
+                                        "scanner-id": "HrBnANZG45z3d7WVBE9qbI94Z0GxTVVseoIOczn8EW3JVSExoFXzgYEfYcMK7A4dYMT2lg2Rc6A0Y7xeMmO2cka3wONvoJAfwt9JKctOi3O82dmPr2JEeLHCAmZQ5z5t375FjytBtaBwfXdHSOdYAUB28AS52Qr",
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 108
+                            }
+                        },
+                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                        "extension": [
+                            {
+                                "value-name": "QVm1B",
+                                "value": "2RVAMcYJqZN9V7Oqi2VLx0SocAc"
+                            }
+                        ],
+                        "configured-client-capacity": "yAJ9Lr17LKQlZ18XfbE2BCCTZBOKjsyR2h1GIUNlEvGvoPlE0ZyBt2nsD35XvDGqVz6vuLR0gxwEeRaeQIIkK5Eg8J5wnLWal2FPNoPVWdr24C9VcR7XOL5On",
+                        "ip-interface-1-0:ip-interface-pac": {
+                            "ip-interface-status": {
+                                "errored-packets-output": -708590877,
+                                "last-10-sec-data-output-rate": 287695426,
+                                "forwarded-packets-input": "-9223372036854775808",
+                                "errored-packets-input": 1501546554,
+                                "ip-v-4-address-cur-list": [
+                                    {
+                                        "fixed-ip-v-4-address": "A2S7Ei0iUcDGtAlnVfK12BFI6AFO",
+                                        "fixed-ip-v-4-address-prefix-length": -91,
+                                        "fixed-default-gateway-ip-v-4-address": "nZufZ0yZik3VSxndMbkw4nZBXXbuDAX0AjfzkFyuZBiJ0FWEI92Mw1flYiPBTMtt6JUiokMgV4ZOCOskXvZloeGfxnQiacL8VFqbZcjM9jsLZN5OaW1y3zNAWwS6Iv6v2oGTB0xKb0n2FsQPhRfki3UerEd11jw3I4ObWlNZda1KuJzLsH5KCRZ3nc4gnsbXoZ0ldNkiPe3cXuXqbVaNE1I25Eat6mivljIyYURO8MS6gHo"
+                                    }
+                                ],
+                                "broadcast-packets-output": -1296148525,
+                                "dropped-packets-input": -491356951,
+                                "loop-back-kind-up": "ip-interface-1-0:LOOP_BACK_TYPE_NONE",
+                                "dropped-packets-output": 1160114092,
+                                "unicast-packets-input": "-9223372036854775808",
+                                "forwarded-packets-output": "-9223372036854775808",
+                                "neighbor-list": [
+                                    {
+                                        "neighbor-mac-address": "q79sQ3xudStzbYVuylss48tQ0rZAPr47ydzggZLuReV24IoC4JW0RpJKQIcx1gFru6IK5l6Xz2RvCg7yZVzIdak3KwtDN849eELkZS9qM0Vg8UPZQgA3qMY2brFQrJZGgKSfu1G8TtpUoeL6ud9M0ZObrt1S4SqkuasZ30ZXt",
+                                        "neighbor-ip-v-4-address-list": "JRumXQAYCAYiDhLw1IokUSumJyeJnIZ6rmkhcU7HuXZZ6Dv0dLk7wOm7eAQBaIzu4UD8OKHbAzaG4yGhj0gHHCPV5xxffYJbSeczZTK",
+                                        "neighbor-origin": "ip-interface-1-0:NEIGHBOR_ORIGIN_TYPE_STATIC"
+                                    }
+                                ],
+                                "timestamp": "2020-11-04T14:12:41Z",
+                                "forwarded-data-volume-output": -1975485805,
+                                "total-packets-input": "-9223372036854775808",
+                                "last-10-sec-packet-input-rate": -1916745803,
+                                "last-10-sec-packet-output-rate": 829601488,
+                                "vpn-binding-is-up": false,
+                                "multicast-packets-output": -1435499839,
+                                "broadcast-packets-input": -1712886755,
+                                "last-10-sec-data-input-rate": 438450012,
+                                "interface-status": "ip-interface-1-0:INTERFACE_STATUS_TYPE_UNKNOWN",
+                                "statistics-is-up": true,
+                                "total-packets-output": "-9223372036854775808",
+                                "multicast-packets-input": 977130566,
+                                "data-volume-input": 1506858596,
+                                "data-volume-output": 723450890,
+                                "fragmented-packets-input": 881793062,
+                                "ip-address-origin": "ip-interface-1-0:IP_ADDRESS_ORIGIN_TYPE_OTHER",
+                                "unicast-packets-output": "-9223372036854775808",
+                                "forwarded-data-volume-input": 1481320560
+                            },
+                            "ip-interface-current-problems": {
+                                "time-of-latest-change": "2021-04-09T07:10:04Z",
+                                "number-of-current-problems": 59,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -4352,
+                                        "problem-severity": "ip-interface-1-0:SEVERITY_TYPE_CRITICAL",
+                                        "problem-name": "uTV80blGJRfxWCPJFlbfYKO4n7x4RZFlKstDDObmxqLmVB5AO8QESwI8vgcm7RHKb2nPJq3",
+                                        "timestamp": "2021-05-09T06:32:04Z"
+                                    }
+                                ]
+                            },
+                            "ip-interface-capability": {
+                                "burst-size-max": -28487,
+                                "statistics-is-avail": true,
+                                "supported-alarm-list": [
+                                    "8G06JrUa1e0dfQOihEGMDmoIlY6",
+                                    "69q6QqcrS6BLctRrcFCtji7PFvx"
+                                ],
+                                "information-rate-min": 697023714,
+                                "maximum-number-of-ip-v-4-addresses": -29797,
+                                "fixed-default-gateway-configuration-is-avail": false,
+                                "maintenance-timer-range": "tWirA1aLgDCipBDxIyTNAmiqkNqjrguU5FexGobOTN7ihCHZ2BECXOUatctVlPHquVX2b8R5OQn5k5WeysIngDxKP0x2Iescai7liYi6GG30DZ6brOqAjYc1QJ3yXwDZOKd6Av5g",
+                                "admin-shut-down-is-avail": false,
+                                "dhcp-client-is-avail": false,
+                                "egress-shaping-is-avail": true,
+                                "information-rate-max": 1350178300,
+                                "burst-size-min": 2086,
+                                "ip-v-6-is-avail": true,
+                                "maximum-transmission-unit-max": -10841,
+                                "ingress-policing-is-avail": true,
+                                "maximum-transmission-unit-min": -4435,
+                                "supported-loop-back-kind-list": [
+                                    "ip-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE"
+                                ],
+                                "vpn-binding-is-avail": false,
+                                "arp-proxy-is-avail": false
+                            }
+                        },
+                        "termination-state": "core-model-1-4:TERMINATION_STATE_LP_CAN_NEVER_TERMINATE",
+                        "mac-interface-1-0:mac-interface-pac": {
+                            "mac-interface-status": {
+                                "errored-frames-output": 225637506,
+                                "loop-detection-result": "mac-interface-1-0:LOOP_DETECTION_RESULT_TYPE_NOT_YET_DEFINED",
+                                "forwarded-frames-input": "-9223372036854775808",
+                                "timestamp": "2021-02-21T16:23:05Z",
+                                "multicast-frames-input": 716844684,
+                                "unicast-frames-input": "-9223372036854775808",
+                                "last-10-sec-frame-output-rate": -516419,
+                                "total-frames-input": "-9223372036854775808",
+                                "multicast-frames-output": -1594113245,
+                                "dropped-frames-output": 1043388018,
+                                "statistics-is-up": false,
+                                "forwarded-frames-output": "-9223372036854775808",
+                                "flow-control-mode-cur": "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_RECEIVE_ONLY",
+                                "received-ethernet-frame-format-cur": "mac-interface-1-0:FRAME_FORMAT_TYPE_NOT_YET_DEFINED",
+                                "last-10-sec-frame-input-rate": -1875592971,
+                                "errored-frames-input": -146895375,
+                                "loop-back-kind-up": "mac-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE",
+                                "interface-status": "mac-interface-1-0:INTERFACE_STATUS_TYPE_NOT_YET_DEFINED",
+                                "mac-address-cur": "1lyYtyV9LdRPRCj6mfLphxOlsKcITF5U0wKl4xmHL5ouHHs3WdldD1q5EDGpaLb39Vo5tLM6Q2AqJ2lx7yLKsbI6GgvR1yU3ta8ONN",
+                                "broadcast-frames-output": -1485284289,
+                                "total-frames-output": "-9223372036854775808",
+                                "fragmented-frames-input": 2046339716,
+                                "performance-monitoring-is-up": true,
+                                "unicast-frames-output": "-9223372036854775808",
+                                "broadcast-frames-input": 847195132,
+                                "dropped-frames-input": 1729118188
+                            },
+                            "mac-interface-capability": {
+                                "supported-flow-control-mode-list": [
+                                    "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_AUTO_NEGOTIATION"
+                                ],
+                                "statistics-is-avail": true,
+                                "broadcast-frame-suppression-is-avail": true,
+                                "supported-frame-format-list": [
+                                    "mac-interface-1-0:FRAME_FORMAT_TYPE_802.3"
+                                ],
+                                "admin-shut-down-is-avail": false,
+                                "maximum-frame-size-min": 5201,
+                                "loop-detection-is-avail": false,
+                                "performance-monitoring-is-avail": true,
+                                "mac-address-configuration-is-avail": true,
+                                "maintenance-timer-range": "Zmj7J2LsfFPJrqIp0ZMnOIr0",
+                                "supported-alarm-list": [
+                                    "QzXJdO5wVPqy9F6Yoxg7WgYADMi5FyLn7I6kx3IkK9LTORK5o04c9UMEH4Beu",
+                                    "BCXzOmCxHfyk8ebKjrDfDMapqJl2PQhikeR0BlxaA5uBcxlvYYDtCFS3o5X5V6n7ke8NrFX2Dj"
+                                ],
+                                "hardware-mac-address": "rXea3eC2j1Q6n820gma47IIKPIlr1MekBkuEzYzKZpQepLeG7pC6ZkQGU38NQm7rHBY8AxSrOAyelMUk3oiUI1BD4JiUXqew1cwtBoNpZlvcZhpVFHPgIiTFT3rJtFfnJMIk2vCTI7YAhn",
+                                "maximum-frame-size-max": -20071,
+                                "supported-loop-back-kind-list": [
+                                    "mac-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "link-loss-forwarding-is-avail": true,
+                                "loop-port-shut-down-is-avail": true
+                            },
+                            "mac-interface-historical-peformances": {
+                                "number-of-historical-performance-sets": -12159,
+                                "time-of-latest-change": "2021-06-08T17:03:19Z",
+                                "historical-performace-data-list": [
+                                    {
+                                        "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "period-end-time": "2021-06-11T16:41:49Z",
+                                        "performance-data": {
+                                            "mac-pause-frames-ingress": 401187402,
+                                            "tagged-frames-ingress": "-9223372036854775808",
+                                            "jabber-frames-ingres": 566406600,
+                                            "mac-pause-frames-egress": 1472669660,
+                                            "mac-control-frames-egress": -1012949975,
+                                            "oversized-frames-ingress": -194513043,
+                                            "undersized-frames-ingress": 2122194800,
+                                            "frames-of-1024-to-1518-byte": "-9223372036854775808",
+                                            "frames-of-64-byte": "-9223372036854775808",
+                                            "frames-of-512-to-1023-byte": "-9223372036854775808",
+                                            "frames-of-65-to-127-byte": "-9223372036854775808",
+                                            "mac-control-frames-ingress": 567228784,
+                                            "frames-of-256-to-511-byte": "-9223372036854775808",
+                                            "tagged-frames-egress": "-9223372036854775808",
+                                            "frames-of-128-to-255-byte": "-9223372036854775808",
+                                            "fragmented-frames-ingress": "-9223372036854775808"
+                                        },
+                                        "history-data-id": "24WtNS4AZfdM64gUUWG38oc87pasDb2y7Y1MI5mzcseaou4iiLlq1qy9PABlMDTLtMq4KEDW6RZud3EvG0WIiuRZ5kcJQ5mbKMfujLipuhMIdqdLi1lsw4stpE47CiimXyIgb0xxajffClSMmefKaz5r51yzkRVhhvxso4Zqg7FKkxwGDDjO4o7aqGJKxxTOUi8ie7Iu6f6qFv7i8iY5G6f6MQIb",
+                                        "suspect-interval-flag": true
+                                    }
+                                ]
+                            },
+                            "mac-interface-current-problems": {
+                                "time-of-latest-change": "2020-06-27T20:49:18Z",
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -4408,
+                                        "problem-severity": "mac-interface-1-0:SEVERITY_TYPE_WARNING",
+                                        "problem-name": "13dOI7kyC8R0iPoSrx26f2jexo6Ae1YfWbWFjg5Nh",
+                                        "timestamp": "2020-05-15T09:47:01Z"
+                                    }
+                                ],
+                                "number-of-current-problems": -8
+                            },
+                            "mac-interface-current-performance": {
+                                "number-of-current-performance-sets": 7,
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "elapsed-time": "-9223372036854775808",
+                                        "suspect-interval-flag": true,
+                                        "timestamp": "2021-02-22T00:42:42Z",
+                                        "performance-data": {
+                                            "mac-pause-frames-ingress": -421942369,
+                                            "tagged-frames-ingress": "-9223372036854775808",
+                                            "jabber-frames-ingres": -724327393,
+                                            "mac-pause-frames-egress": -871362623,
+                                            "mac-control-frames-egress": -364513059,
+                                            "oversized-frames-ingress": 1078735860,
+                                            "undersized-frames-ingress": -1609616823,
+                                            "frames-of-1024-to-1518-byte": "-9223372036854775808",
+                                            "frames-of-64-byte": "-9223372036854775808",
+                                            "frames-of-512-to-1023-byte": "-9223372036854775808",
+                                            "frames-of-65-to-127-byte": "-9223372036854775808",
+                                            "mac-control-frames-ingress": 1391906610,
+                                            "frames-of-256-to-511-byte": "-9223372036854775808",
+                                            "tagged-frames-egress": "-9223372036854775808",
+                                            "frames-of-128-to-255-byte": "-9223372036854775808",
+                                            "fragmented-frames-ingress": "-9223372036854775808"
+                                        },
+                                        "scanner-id": "eeb2LKFH3CagwLvCr96enPTAFnQjwhdKnpM81kQXOSdcvBPXKV38KOAhcqAIzOlW5746jMV7F1caC1ZmO2mrRWIVebD"
+                                    }
+                                ]
+                            }
+                        },
+                        "pure-ethernet-structure-2-0:pure-ethernet-structure-pac": {
+                            "pure-ethernet-structure-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "timestamp": "2020-05-29T14:03:11Z",
+                                        "performance-data": {
+                                            "cses": 1596051452,
+                                            "es": 755622800,
+                                            "rx-level-max": 83,
+                                            "ses": 1874735838,
+                                            "rx-level-min": -55,
+                                            "rx-level-avg": -94,
+                                            "time-period": 826503682,
+                                            "unavailability": -363011289
+                                        },
+                                        "suspect-interval-flag": false,
+                                        "elapsed-time": "-9223372036854775808",
+                                        "scanner-id": "M46zGX3BVIi77QkrKvsRiq6rxDr9nRQaNWBtLE4ymmFl4ZMHm6yFowYV9h5x0VzNJagnOdVaztnEk1dH7Lev9cqjunIuahaUrqh7D4h5xEBKFOjErx1ABrT5HBsRKCLbUUiqZrvoX68uUr8lQ9VstHpaaJ1VdFY8z9yqA3Pq1PUN9V0ZWVr"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 114
+                            },
+                            "pure-ethernet-structure-status": {
+                                "segment-status-list": [
+                                    {
+                                        "segment-status-type-id": -8346,
+                                        "operational-status": "pure-ethernet-structure-2-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED"
+                                    }
+                                ],
+                                "performance-monitoring-is-up": true
+                            },
+                            "pure-ethernet-structure-configuration": {
+                                "problem-kind-severity-list": [
+                                    {
+                                        "problem-kind-name": "LtqDPGJUiR5IWTM66NX277py0oCCNMZqgh3XPMS7vPIrBuyH9nKhm1HmqjR56IwmZzbPe3OBLoVmLlVUIxb5zSjR4aWaKsoKUzr0v7Bgoou9Jp3sX7poZIf3L35vwt7i3qaqyLGW2aXLr0dg7CEZdLUYP0tdltvgTFGjim7ko46Q5bY4GDVTgQJ5Q4i3xNkrk0KvfSPDWNlTZkQxPLi5t13",
+                                        "problem-kind-severity": "pure-ethernet-structure-2-0:SEVERITY_TYPE_NOT_YET_DEFINED"
+                                    }
+                                ],
+                                "clearing-threshold-cross-alarms-is-on": true,
+                                "performance-monitoring-is-on": true,
+                                "g-826-threshold-cross-alarm-list": [
+                                    {
+                                        "g-826-value-kind": "pure-ethernet-structure-2-0:G_826_TYPE_CSES",
+                                        "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "alarm-clearing-threshold": -1138693601,
+                                        "alarm-raising-threshold": 1725229734
+                                    }
+                                ]
+                            },
+                            "pure-ethernet-structure-capability": {
+                                "supported-alarm-list": [
+                                    "BqWpZv9qS2i9RMPx9UiX3BnZ33kjQHPr7DRZ8ShSUz1DmQ3nDlkGWAGRDSatzRNzuwquoHma9fOn5RKA4Wh0wPR2zTv0Kar6GRA4rW7s3VP0ErBAnKAMzjO04b0GmsM2beZu26W5TD5p4GZkqr6RCURG5Kej40mf6dK8bydW4id8R4k9nq1ZcKx"
+                                ],
+                                "performance-monitoring-is-avail": false
+                            },
+                            "pure-ethernet-structure-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -14979,
+                                        "problem-name": "QOyykndF84RYByCTE5UHh0UwvV5r9E7RlGpFVDc3H42bCE48BRHSJCoeplFySEqdcHS7c4bM05XvBTDcKd5lPlzeH6FrL5EXEoXRk8Dd5sIGllS6yPjfbTmKR1buYHkC5hthhYumqc2MqMKQC36FO",
+                                        "timestamp": "2021-07-05T16:29:53Z",
+                                        "problem-severity": "pure-ethernet-structure-2-0:SEVERITY_TYPE_WARNING"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-02-22T00:31:39Z",
+                                "number-of-current-problems": 43
+                            },
+                            "pure-ethernet-structure-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "period-end-time": "2021-03-27T19:45:22Z",
+                                        "performance-data": {
+                                            "cses": -323640651,
+                                            "es": -721462481,
+                                            "rx-level-max": 43,
+                                            "ses": -656790973,
+                                            "rx-level-min": 50,
+                                            "rx-level-avg": 65,
+                                            "time-period": -507084197,
+                                            "unavailability": -1709152477
+                                        },
+                                        "history-data-id": "jreKU9rk2g6Pp1PhQCA77jzEMMYkE80XAeHmf0GhhE6yyVPoxqvwBW2nI0Hm1HcBNLX2Mvj31ptzcjXKB",
+                                        "suspect-interval-flag": false
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-05-14T03:53:59Z",
+                                "number-of-historical-performance-sets": -7877
+                            }
+                        },
+                        "lp-direction": "core-model-1-4:TERMINATION_DIRECTION_BIDIRECTIONAL",
+                        "name": [
+                            {
+                                "value-name": "biToBKFqdVvMHilkmo2U7GpUVltZFRRQ9K6CuL2Hz",
+                                "value": "tgHHB35vXd3fZYAlXfcOXdq4PUPRugoPx5w00unXzrcqhFLfMXVKaeOZ0vIuEYc3VI3V4iLDJX41uH8hFV1H9Hza49EI8QL3rGZnZC"
+                            }
+                        ],
+                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT",
+                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED",
+                        "configuration-and-switch-control": [
+                            "VgU8arPPQxKEKcGPGPCSyJHem"
+                        ],
+                        "fc-blocks-signal-to-lp": "JWntKwfSGzIwh78VRctGSbiLBTsQg7TZ38lFEsyl18JifR564zFWCPzdJ23Z9OQ4XbKBEaWxaxQhpNfleUhQCR4lLZcMOUQD6seCu31EAJVRxbcLXmCz5yMQpYu5LcIJFPd9SeGkYBcvEo8CKCbP2Yxs",
+                        "air-interface-2-0:air-interface-pac": {
+                            "air-interface-current-problems": {
+                                "number-of-current-problems": 115,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -24953,
+                                        "timestamp": "2021-04-01T21:00:58Z",
+                                        "problem-name": "uq3AtsZnu3",
+                                        "problem-severity": "air-interface-2-0:SEVERITY_TYPE_WARNING"
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-05-08T05:33:28Z"
+                            },
+                            "air-interface-status": {
+                                "xpd-cur": -59,
+                                "transmission-mode-cur": "tmbm4Dglu20fyM7WAI2dXAjalik4jyPMVS8Rvo4Zi47IIeEbOGoL8zVtJ7p2y6OlYW4mc8dn4k5MqKXfid0rFOMoV4rta7",
+                                "rf-temp-cur": -120,
+                                "mimo-is-up": true,
+                                "tx-level-cur": -100,
+                                "local-end-point-id": "En8c8vJzKgUNf1ToOwuGH7ge3PFdqu24R29ZpSy10lOfezv250JEZRSUyp7YT13CV4BkW2lWnabBJGvHy6dpXYkofjm9lhL8lfth9O5oQgRAPm9flexacRys",
+                                "rx-level-cur": -9,
+                                "link-is-up": false,
+                                "performance-monitoring-is-up": false,
+                                "xpic-is-up": true,
+                                "remote-end-point-id": "Vtfc6oydRHmxNKoVtQKQZS3dpdi8MKaz5qDbO3pxLD4qgslJaYr9Quf7Ixfm9hN6zqhfmyM7cJxs3KbeIDnq7uxHTEV2WA0n1iDfQhm20Lm4vyi63xw224CVIpQw0QUT0p8",
+                                "received-radio-signal-id": {
+                                    "numeric-radio-signal-id": 39714,
+                                    "alphanumeric-radio-signal-id": "jBmViRylDIv1GNGh0D9fFdd1TrsDmPFxiTtBK1WgJj9i6HrZkB6SOjTzKmcZ3KwmvZP8SDguXpEV65MjySbeb4NOiSNmubAZ3p7V2fhREVFL1r4rc7Gf3l3m5IAzMarPrqCtGUdkHSXAbT2n0Av4VyiT9SsV2LClc6OS0T4ALUaXF4cyEHus8Md9EF4yjyTvEzfxlb7659VL60bKz"
+                                },
+                                "auto-freq-select-is-up": true,
+                                "tx-frequency-cur": 764341480,
+                                "rx-frequency-cur": -600303501,
+                                "atpc-is-up": false,
+                                "radio-power-is-up": true,
+                                "snir-cur": 71,
+                                "loop-back-kind-up": "air-interface-2-0:LOOP_BACK_TYPE_RF_TO_LOCAL",
+                                "interface-status": "air-interface-2-0:INTERFACE_STATUS_TYPE_NOT_PRESENT",
+                                "alic-is-up": true
+                            },
+                            "air-interface-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "period-end-time": "2020-01-29T04:58:35Z",
+                                        "performance-data": {
+                                            "snir-max": 17,
+                                            "unavailability": -1300863973,
+                                            "rx-level-max": 89,
+                                            "xpd-max": -21,
+                                            "ses": 390353494,
+                                            "rf-temp-max": 115,
+                                            "tx-level-max": -75,
+                                            "es": -877474949,
+                                            "tx-level-min": 58,
+                                            "tx-level-avg": 15,
+                                            "snir-min": -40,
+                                            "snir-avg": 1,
+                                            "time-period": 482336146,
+                                            "cses": -674376343,
+                                            "defect-blocks-sum": 10969,
+                                            "rx-level-min": 121,
+                                            "rx-level-avg": -77,
+                                            "rf-temp-min": -78,
+                                            "rf-temp-avg": -72,
+                                            "time-xstates-list": [
+                                                {
+                                                    "time-xstate-sequence-number": -62,
+                                                    "transmission-mode": "uAYB54iEgTrPms4Ng7boIDCB5IQ5Y6zkypWEt6iJZBzm",
+                                                    "time": -1774375643
+                                                }
+                                            ],
+                                            "xpd-min": -89,
+                                            "xpd-avg": -7
+                                        },
+                                        "suspect-interval-flag": false,
+                                        "history-data-id": "KaCv8brP6EYMwcUSw8mmviakF47oba7VkBjkMK9So7wUbjFIj14Oc61Ra8glaf9mQsGCcPnAOLn0W2AgVEW7CXRMYZZ8e8vWAbyETN7zzmrng1Dbxsb9pUNfTNoZVLVoWlUH11hsnIPDCtH9VKbcEYspLIgzt3P"
+                                    }
+                                ],
+                                "number-of-historical-performance-sets": -18337,
+                                "time-of-latest-change": "2021-03-28T00:13:20Z"
+                            },
+                            "air-interface-capability": {
+                                "expected-equals-transmitted-radio-signal-id": true,
+                                "duplex-distance-is-freely-configurable": true,
+                                "supported-radio-signal-id-datatype": "air-interface-2-0:RADIO_SIGNAL_ID_DATATYPE_TYPE_NOT_YET_DEFINED",
+                                "rx-frequency-max": -2137459909,
+                                "supported-loop-back-kind-list": [
+                                    "air-interface-2-0:LOOP_BACK_TYPE_RF_TO_REMOTE"
+                                ],
+                                "direction-of-acm-performance-values": "air-interface-2-0:DIRECTION_TYPE_TX",
+                                "adaptive-modulation-is-avail": true,
+                                "supported-alarm-list": [
+                                    "SUzJy7RAkcLHC0Zynbh3LlpdLEwL3IdNuMw3Lgv5k8EX8EnvPFzs0YFDucopMtdhfBcSRHQcQu1Y0omHVV9WLPr81QxFjKWrm0b5I19yw2oorK6ex7ajWCrPkYnvBjWPk0UU14kp6IOplMESTG3IaupmlMSWYGLaGx4Ito7s6NJjzfctWf3YCslX75L5LofsVj2hH1BFPkR",
+                                    "EdY39",
+                                    "jHMXnBFSMRbwcarBJ152D9psk4aoLh74YMTmfq61ihqmrRXaKVdfWuI8qKwb2w7Si0epjljtuJPWsM6dzbkvF2EXFa8zG7rQ0ygjTzMfaBbCfaPPd2kT4QIB1RazYCqY2y9V7V29oeLEgtltvFeroX3pG5QwH8nJGwwFkzOIFAeV3zoy7DZvAUU80CEzL1bryz7S0NsFfHAigRInmASWmE4mhAW2CZl2ykUz8men3Hyc",
+                                    "nZQTXpEamlVR57np4t3uwyxSizeVkH4HyMswb7y",
+                                    "IHs7mLTAXTuZiELa3qvN0REykbDaeMbOlvVI8Oa5AE4SaH3d8q00axyuAbEOXPvakqSs73pzzurKbmXbFQbPf",
+                                    "8zMIkA5Ywj7679I6nKxHw6HLc5GTvSbDkXeExbC3mKauLKs",
+                                    "kthhswHpZKTvaqgsSug43kLCY5014qrgTJyeffD7RwC2OSmGfCKiOnMMtEOp47GQQe4YtH5c5zeTktsz54JUswyN2ec7mSX4Y12jAZwxzCiL5KcbHVX1jvOmCStYDi2Bb5VDWjanVs815k4M81NjotF0d0QQiTklQfYMy82ltamqnq4vjJOAcmApej8xc"
+                                ],
+                                "tx-frequency-max": 248235856,
+                                "maintenance-timer-range": "pVpZVef866wxzxM4aj3lcOlkcJst0URhPghCnwDlC1S3yw7AI3WMR963SywKsg29wbELz963aR7Jf6jX97KT8IW0hlDBBFDZI9LhiJksArbIynFzmhsv0hn9u0CXxfW7ozoGbJ1D2clsrT2O2mb2Dy3ZryWQNLY4ceCnXD1SIek97ePaB046r06KyUsdFqhSFM7uh0mZfz1mNQwgJtn2tlM1feeNxox4aEyrxNjMek012xaL0xNlKzmRG",
+                                "transmission-mode-list": [
+                                    {
+                                        "transmission-mode-name": "Xpixa4dVLOWJW6nLp11rsf0CNMQwxfInESUGW7CHNqiBoFmNzf61u6DiKlG9Agw68iN4ihD5zVHXtVC2bI3FGyPqMvzeD6lLg0Hy9cEI0dxt81nbJiJpIyHuWgJzeWdvOU3X7zF7E4sN5PQO7z5H0McWUNn9BAEpnzmu1TtFXVk2CbIBKNiKrmyl1WmCw0TTs7ft0A0Xn",
+                                        "transmission-mode-rank": 249382178,
+                                        "supported-as-fixed-configuration": true,
+                                        "am-upshift-level": 2,
+                                        "tx-power-min": -58,
+                                        "am-downshift-level": -71,
+                                        "symbol-rate-reduction-factor": -118,
+                                        "channel-bandwidth": -926285593,
+                                        "xpic-is-avail": true,
+                                        "code-rate": -30,
+                                        "tx-power-max": 96,
+                                        "rx-threshold": -6727,
+                                        "modulation-scheme": -24856
+                                    }
+                                ],
+                                "encryption-is-avail": true,
+                                "duplex-distance-list": [
+                                    680842862
+                                ],
+                                "atpc-range": 79,
+                                "performance-monitoring-is-avail": false,
+                                "auto-freq-select-is-avail": true,
+                                "tx-frequency-min": -470871525,
+                                "rx-frequency-min": -1780945825,
+                                "type-of-equipment": "kdba7jBc06zLUOLHA068iLXrEg2ymzayM",
+                                "atpc-is-avail": true,
+                                "supported-radio-signal-id-length": 9967
+                            },
+                            "air-interface-current-performance": {
+                                "number-of-current-performance-sets": 23,
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "timestamp": "2022-01-31T21:37:33Z",
+                                        "scanner-id": "fTT",
+                                        "performance-data": {
+                                            "snir-max": -68,
+                                            "unavailability": -1816992801,
+                                            "rx-level-max": -34,
+                                            "xpd-max": -20,
+                                            "ses": -999932827,
+                                            "rf-temp-max": 118,
+                                            "tx-level-max": 101,
+                                            "es": 117686112,
+                                            "tx-level-min": 63,
+                                            "tx-level-avg": -92,
+                                            "snir-min": -57,
+                                            "snir-avg": -91,
+                                            "time-period": 1041580662,
+                                            "cses": -1136687083,
+                                            "defect-blocks-sum": 2533,
+                                            "rx-level-min": 92,
+                                            "rx-level-avg": -64,
+                                            "rf-temp-min": 87,
+                                            "rf-temp-avg": -117,
+                                            "time-xstates-list": [
+                                                {
+                                                    "time-xstate-sequence-number": 36,
+                                                    "transmission-mode": "JKs3401vTBAq5pla3YfR9FQyybIsZJKAt4vqXwVQ8n8dMlnIkvzl2iUBtu3s5F2rJyRGWEo41oaFKpn4UPhX7bqAyl2D0W4BmNajryfsXp8zPnvBcMyjQQLobFT3CYFQDP15fhp4yxvfN0RZNhbv0WTbCMf6CMO8tQdAZCFx22FP3",
+                                                    "time": 581809230
+                                                }
+                                            ],
+                                            "xpd-min": -48,
+                                            "xpd-avg": 78
+                                        },
+                                        "elapsed-time": "-9223372036854775808",
+                                        "suspect-interval-flag": true
+                                    }
+                                ]
+                            }
+                        },
+                        "label": [
+                            {
+                                "value-name": "ArPtWwB53x6LyFcIBlfctXPpgogEnSxPjmj7KUcOjarSPDsjQHncFcBVARrPBYFU",
+                                "value": "Y2XK6DWh4G6z0hhIEtfJ42jNu1gkG3pwXe83RWkNujevAvd7Z"
+                            }
+                        ],
+                        "is-protection-lock-out": false,
+                        "tdm-container-2-0:tdm-container-pac": {
+                            "tdm-container-historical-performances": {
+                                "number-of-historical-performance-sets": -402,
+                                "time-of-latest-change": "2020-01-19T02:45:49Z",
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "period-end-time": "2021-01-01T16:02:17Z",
+                                        "suspect-interval-flag": false,
+                                        "history-data-id": "M564sxjCXrKJReHCqy3jdjRe7FgCL2fp7musTN4QeGzXU8zcGCvTOf7VUfpxhFXh",
+                                        "performance-data": "hqzz0bB2uME4OW1at3SXMXOA73uu00daiEBaP4dbQJ8wF9G14qYIfEafzFJsxWuPs50i95lROtfluOeye48uBjJ2YsuvgQcINcSW96FXzNb4BpuHuDb5WM7U6upecBX0GHOPNmFf9QjK7Njtqvqe9q8gUpuYTjYzTFgG1VVaD6"
+                                    }
+                                ]
+                            },
+                            "tdm-container-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -401,
+                                        "problem-name": "xKX7nt35eeMmqxXkfVt3s2lQ887Yzqi6275pA0nOf12FyZRGUkJemW4u54lEuDCwKzVcAa0Hb2eKT6qFi1UxYYT32ezoJ3UluIx4SxD4rKGkIY00ZMpXKbSFpjV1mQmRqUNijjeD3UXLKP",
+                                        "problem-severity": "tdm-container-2-0:SEVERITY_TYPE_WARNING",
+                                        "timestamp": "2020-05-14T07:40:19Z"
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-02-03T12:37:19Z",
+                                "number-of-current-problems": -107
+                            },
+                            "tdm-container-status": {
+                                "loop-back-kind-up": "tdm-container-2-0:LOOP_BACK_TYPE_NONE",
+                                "performance-monitoring-is-up": false,
+                                "interface-status": "tdm-container-2-0:INTERFACE_STATUS_TYPE_DOWN",
+                                "statistics-is-up": false
+                            },
+                            "tdm-container-capability": {
+                                "performance-monitoring-is-avail": false,
+                                "supported-loop-back-kind-list": [
+                                    "tdm-container-2-0:LOOP_BACK_TYPE_BACK_TO_LOCAL"
+                                ],
+                                "supported-tdm-container-kind-list": [
+                                    {
+                                        "tdm-container-name": "3164Bixo4ujQRCLTUes6piI0vJ5EUpwPqDUTVraROtHxXkqRzLQQVqJq1O4V5tLn6xhTQrLwUk4RFuB67jW2BFkDlpqiS3GQAXJjomPaHTTegmknx8i9G",
+                                        "tdm-container-size": 727348936
+                                    }
+                                ],
+                                "supported-alarm-list": [
+                                    "u7H6i0rO5st8QpdiN9SMg1h3uvtNmw3IvDOOv7uAzPAi6NAUPsy5tP0PlmvzKqif3YVq6hSxZtP58qRXKqU67VVs9iUTJ40M2W505Xy4in2rNLoq3bwbYrv7Kp0ltS7wG4oM2WIkcKDZo2hr5NC3782Rx24TM3ht8F72CPmOs0FQUXhRKUURUWAjQEcCItXI94KDU6jeYY4KNdtq7n9Tb",
+                                    "dT8hoQLlqMqahc9AqZyuCeH5EHlNswhxqqPO8"
+                                ],
+                                "admin-shut-down-is-avail": false,
+                                "maintenance-timer-range": "4cD0StAP5L5rB78m0mCnySUH2VnErgywsbwcxY1CKY3d54z6i4lRO7qQVFumNUK8Y8kv7mZJcUOiYfg9jBSZAaPvPcSC6CKWL5rKjilvd9N3o3cAwWz76huVtmqrR2"
+                            },
+                            "tdm-container-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "suspect-interval-flag": true,
+                                        "performance-data": "LnDyoSgLBGxgRQz5tuSj7C0DeuyGAw0dTvLin23YAs7riypE39P2LHFS35yDBqInVmFjgA9Q28acHzIKIxEl7k5ahDOL3o8RCF2S7bB1kD514ODMd9Zkt5vDAbowzwf43hWaspbE2gx6W2KacCuxzRa12yxuWMyZ3m1oM4UOdkN9mxjq1GYAx0Csz1WnOmfJI8ZudMbq6YzsnLTpjJZQJtaav6y",
+                                        "timestamp": "2020-01-11T23:14:41Z",
+                                        "elapsed-time": "-9223372036854775808",
+                                        "scanner-id": "NMx0yAiwqSYGvJ5OkWw4iH6NFEY0bK3ZwsRW3aslUj1pUYd7NJb5ihSYOQYZsTQZdAN8K8uEjnV5m8c1Jn62xQ0dyQ40BVROnFP7FjDYGy3UygV9v1bUJ37hLcieZ93mGKld3QbBg7oOfjXKd1xW4E6IIoWzpRVYB8bwYf0emoUBzKdELKtHhzpZPmrede4HngddvdkRtek3YpHB22jbBI2qWtx2IBJ5RWae2u"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -26
+                            }
+                        },
+                        "address": [
+                            "w4Yb8XUyWzzJzn1RpOCOGm5SWhjqWsOkoMv"
+                        ]
+                    }
+                ],
+                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN",
+                "name": [
+                    {
+                        "value-name": "eNWDZYDp4CrIshZLPPEG4ysBlsR6T9H7WDCOt75yJog3F7PmWl20Luu6Wd5PmMObpiZTpWr1k",
+                        "value": "WRHDdDZ7wKB0JqdO7sAODZ6CKoq3hKDdBcRGHINdso53GbRODrCgjAKVYaZ7UulnG43fMQt66qaNB1t6l5mEx6ro8qvUMI9kMcAqUVpTlzyPs1VNYijngLLh39bQRl"
+                    }
+                ],
+                "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                "physical-port-reference": [
+                    "c942beda-266b-a670-ca1b-e78a3653775b"
+                ],
+                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE",
+                "extension": [
+                    {
+                        "value-name": "dd5p7Gznf0XeowZrHaZZeFwhMkfWKpUXvSnuqOJFGHL45CvMFnELU22Ge9uYrpWW9bizZ26GJRCOm8t1vZEh1yY8Is61J2XS5frX9xvSh7zvf2oCT2UMAKUac1bWV0GTg8QpxlaGsJbADr4otYaWAX6NYiBLi9EqhmIHHSn2truYSyeepoaZd8E3q7PBhlTqIB7hlnbGGFwy6",
+                        "value": "En1OmeXTif07I9kCAU5z4rOf7uNwVTgz8hguwdfOk8N3h7FJ2Kb63Zd3u0zhLPQTZ6gvbvbwvYrN56oZIzXErbHN384PPUAOTIb46msBkTgiRFhs676xiFclNg2u3vbWdm0jJtVVebd6InyPuEeMbrZQzUkCpvyuSrOtUBo0Eu6nRE4daaZltQ33CoF1L6ovx4YjF"
+                    }
+                ],
+                "ltp-augment-1-0:ltp-augment-pac": {
+                    "ltp-augment-configuration": {
+                        "connector": "07wpeqzDCeErNGQsYiiaCfzpi0iDsCNsCbRIBjm5pSw4q",
+                        "equipment": [
+                            "c942beda-266b-a670-ca1b-e78a3653775b"
+                        ]
+                    }
+                },
+                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED",
+                "local-id": "RE2n02VnnH3crdToU3BtcBEAg2IbmDA6iCtaEhpUYs6hFRFsU8VYKrz0l94INEOX997NqwzoZFFwpcYblM2X5BXrCT9pqXez6lepKONBll7KpYOKCQHzjx0Vi1dIYrhXNomxc10xe7aEXQgrGY1ZnT",
+                "fd-rule-group": [
+                    "5ea42646-26ca-afda-19a7-ad7f7cc924e6"
+                ],
+                "label": [
+                    {
+                        "value-name": "wpCWcxd5LMvA7wvUmF6JORn5Mw8unlxTL1IPrVUcAhEHN1t1HzCniZs5vsrTOYErSegj22vuj13",
+                        "value": "2wRJ6t6gtqdYTFJzvgSfm0yg2VKdWN3ZcUIanHqIZwzK3ajyi3OF3eV5aya"
+                    }
+                ],
+                "transfer-capacity-pac": "uH5EPmsdudTK8lUa0rWedl1D1yO8Cme63bCKxWX19IDhVxjWQgaWtbruKfDeBRcx2O9rK7kLHX2vmerdut1Xxsk9HXnjGzIAfR1RQdCq2w",
+                "external-managed-id": {
+                    "manager-identifier": "Wt0eYo6NzO2Rexz1AYWe6uQQDd9lfp2bSVqIbonL4iujPVchM0wKumBZrCkG",
+                    "external-managed-uuid": "fKDaaddqBYuTlFIgRZ2RnFdB843KpBvEl8GnlTNWKaH5Phdz98iwNo8Vs3"
+                },
+                "client-ltp": [
+                    "c3794728-dc8b-5233-0c67-0b857c32ada1"
+                ],
+                "peer-ltp": "1c7e2c79-af6e-8d12-d18a-957fe616ceeb",
+                "ltp-in-other-view": [
+                    "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                ],
+                "address": [
+                    "qs4uF7xwk0eoVRMBKpH8V64TpJ0INB8d35AA47YoZdMV4qoGQXHL3Lwsnpaa0bnWgXokWnIWsnRoF74v4L87xxrUWBWOMjCU91e5gPTI4C6JJ27NO7MdEdZsHV9l6Lg7EmdUb6u7BARkDY0j5EwCSn4ra5MgR2onptasrEA2fjfKhf3eTrQDON4YKJ6tDmR2P1nhFPbM8qwhFrv"
+                ]
+            },
+            {
+                "uuid": "f7872522-16c2-ce17-fc7a-083c8517e7b3",
+                "embedded-clock": [
+                    {
+                        "local-id": "CHd4txUprjmo7aNVAyNcvGo8uoJ4BzJegWaBl41Eof2npQiZgXbDvzMZYnVrWxF4lPGzUzdaOgpdYz4ewfSUOwLELH6H6DDrtb0fKehqmGvk7zqDOapvyb1jKZSQDwhYHa5komKCUgW1PewwhW1PZ29JU1zxpIn7Ssj8G3Ksby",
+                        "run-mode": "core-model-1-4:RUN_MODE_HOLD_OVER",
+                        "phase-aligned-clock": [
+                            "0b7BoMdU78PGiZPZmPfboWaxHcsgTLSLXZfdEs7LsPjKG8C2PJ56GfDfr5ndI7Yx7dKDxKgSzzufz69pQevot0vU5S7F0YdZ3XuBHKl8jPfKWo9ECw25wpSt9R91Hm0LbmeL6zTho12cp3Q2AKZ61JsbtBcaP5V0r1DyApPZqJ3HNUBnwBlycNJFgNQ5SDYcFBCfSj6i320QWt"
+                        ],
+                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                        "encapsulated-casc": [
+                            "bzATyD4xZ7qisVlKN2GPrZCmojV8csInTa8sFdRwchOE42hR4PzvObS4mFcy7NNSXWkD1b15lQJpSS9OIIboL3l8Apyzcms2aMxbQyg3oRs8CtWkb8AP3VXElvdpJFrTkYW2x45NWpWqTSKW0cLW0AAlY"
+                        ],
+                        "name": [
+                            {
+                                "value-name": "TNRh4FiLEcUf6OGvdpKc9c",
+                                "value": "iKj2cutxf8pw44GPBLCIJqp7vGRAP4XZGgUTDnqSnHhrEXg7ISPka6rGMi8ue5lVmfOZu6JRO0asQrzqbgKenbM1uUnAZJvdQbcdaO4YOfiwyJXBZz"
+                            }
+                        ],
+                        "encompassed-clock": [
+                            "zSzgZS2utSYSlt8xN7dsLeEaUA9zvWk4GUcxEe2ZYSSkdSR1Z4lDaRNXjWoOKJKivOQ12K1TCLdPDWIu0W73NN0ZBoNeZqwmemo96h2A27ix3STVO1YuGQth78n6yUlN8BOfSQHMXZb0S4NyXM2Dun"
+                        ],
+                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE",
+                        "extension": [
+                            {
+                                "value-name": "ZtLWBi6ULd2Mq",
+                                "value": "k4CPrDMnLtV8aJTqTTLEPmWO8zTbmbEGf8oGM2WpvRpxsjXmcASTXHzXgs8uEM3TVjszlgQQ7fgsy5OCGGovnXswitSO7VzUe1lz9bi9rqBRvpu3XSqdHTJZeBNlpngvgBXqF7z6x2XUrjYo3oBL9cKfGqB5FJsNcp5RwEP3GFQZYOg24JF6Wh"
+                            }
+                        ],
+                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED",
+                        "label": [
+                            {
+                                "value-name": "eL",
+                                "value": "g7nvHne5AXgFaqt6g9lqGL9vn144fHynOVTo"
+                            }
+                        ],
+                        "encapsulated-fc": [
+                            {
+                                "uuid": "3aa4d6fa-0a22-cf86-e313-451d5fba8dc1",
+                                "service-priority": "-9223372036854775808",
+                                "supporting-pc": "w",
+                                "layer-protocol-name": "ethernet-container-2-0:LAYER_PROTOCOL_NAME_TYPE_ETHERNET_CONTAINER_LAYER",
+                                "forwarding-direction": "core-model-1-4:FORWARDING_DIRECTION_UNIDIRECTIONAL",
+                                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                                "name": [
+                                    {
+                                        "value-name": "fEXzxm3yqJezuC1b7Kw8aWM4mPoPPnP41Mvz0z7jilSEXUPWwe4H2JLpy1efoVbqAHZA8YTibEW0yDW4JTDMuhb2ih9Hdk7NTYfTW1b7FZZ5vN1eGF02W346d5NqqU5bSk5Gl8FS8EXvkRJ0oC3cxZiK562nS7qDsvjFwRqEnf1H6KAuevyMmRorXrGHy7kSuwy0nYwK5xkcaUyoh72D",
+                                        "value": "r5NSDmqKHj7dJ7szw4E3oIdahCrgE5652TPF7giOrp12olBUq7QOQ3ZZxqf4vl1p6R5dZf2iwVkUhNHHUxnCsmB0FQW23Xs9GpnxEhPa49WdWDUJ2alvoPn3xb6B0qCHPZet84vd5rqU5dDZfQuDFJH5UFGV5auU2IfaEKfCbyw8L100Ruvp6cu0J2N"
+                                    }
+                                ],
+                                "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE",
+                                "extension": [
+                                    {
+                                        "value-name": "pBjXJjqr04WqVwvwVnMksQRsvqi61mxiQR7z2yT2uHsqdXO8cAkEi37OthMnvkxlbxVd5GgrnIRtyxBK0OpaRoYdFDs2XR",
+                                        "value": "0ob5lRdN6Owzm4364RveAL5FiA7lpRJpfUmBDAoJoUbCQeIM561xRY5ay4vXV6eb0sEv2U6iGhUxvvjsBc0k25ms1JhXPn0HQEcSyj3eAPDYkPqN1i0Wfmoh6yeVVevLKzwiSzolg2bBJBgCMgy1DPaJngwiuTW6tsodTFq9zBCidTUZ9lSMa3npbMzGFvM0X3eIAES9gmjlfdcpq"
+                                    }
+                                ],
+                                "fc-route": "q7vaoq6x9O57Zrzr6K3pc1CWoHvGWtveA0oYjmosbtraM0tTCpiOqMDOt0mhuRn4KEV30jnbEOdrGHci6mYo8t4uuqLY91ULFPGF03JFJWYhDarBwqZET30flM5nF08kHPRIKAfuxdD2n5ELnvh8rioMWt1BtaV3ZELJ",
+                                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED",
+                                "configuration-and-switch-control": [
+                                    "ydJ9UgABBjmMCmVklZUk86z3D1el0bIrorAjI2Mjl9XQnSaIJ4UR3lNym1TfcBG"
+                                ],
+                                "local-id": "7OgW6HAzHiq2eg9XEs6lX6AJPHLMtKhsrqgp7RQG1hJ7pS44k3h99RTZywLUhUmAkvZseQ0fZJnoCjsWmC6wtRnUn0GwU267pYzDGzTFb83NjoBy0z4lqj7ObNc5Ijc7hDLX5wugEp3PNwnF6j1oC04NOhLoAPvJl8yq",
+                                "lower-level-fc": [
+                                    "9bc11e2d-913a-2fa6-a64f-f01427c75d88"
+                                ],
+                                "fc-switch": [
+                                    {
+                                        "local-id": "HeHl4cSReg47uBZ4nnzfZI9v2roHzLShZrC3Dm",
+                                        "wait-to-restore-time": "-9223372036854775808",
+                                        "profile-proxy": [
+                                            "xX1GIVxm4OYdU94BDokz5UxPssegKxfau8Qd3frZWhdQq9r3yDDDp2sRuy775ehzm7Eie59aneSFocJWPerfgT6Cj6Joc0XrZuB6rK8OR1mfd532bm9r78Vq6FOaxDBp74nzHvfyoBFByIwJ4x23FYtDvhOU"
+                                        ],
+                                        "control-parameters": {
+                                            "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE",
+                                            "prot-type": "9NDhbvuzqH3Y7ONbbvJiw6JpogEDsEotj1KnofWOWSEVGk7KPI2dGEC4U8zfEPIQQld6A1NoTjcsDbclT6yrK3nxbXMIMmyvHLt9EgqyAC0dN4yya7ZVamkdbYVQkldUYG3DXt3x53CS73i9ahWcwghH65xjqKdhrgUgCXFzShkRkCSmUPyqXQZ4Vxnd9AusIgIc5nMPx6yRIr6ugwU5eM91bofkYBNzSnLXDxNa",
+                                            "hold-off-time": "-9223372036854775808",
+                                            "wait-to-revert-time": "-9223372036854775808",
+                                            "network-scheme-specification": "TeEZIMovSCh1EsqTEg"
+                                        },
+                                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                                        "switch-selection-reason": "core-model-1-4:SWITCH_STATE_REASON_NONE",
+                                        "name": [
+                                            {
+                                                "value-name": "RCJRYcQ3z5uHW5Is79IGIlzRd0t8wINncoebAWe1TAIIFi2NrKl26UTbNfjjX6y9uNcWBqYn1y5yR7laRHcPt6S8dcraa0bxFot8GjvzS",
+                                                "value": "8JHlTrUY8o41w95Qj7ImEnK0njjTSblSM3eym8wmosfNBcDMkd0QALQXWaIOd4zSZNqdNOz48HRBTmf5zfW10MQOOzvUv4MuR4HwS8ASHrtBFIyeXufQ96wPx1J25voOrXlb5N3F7o8MY"
+                                            }
+                                        ],
+                                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE",
+                                        "switch-selects-ports": "core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL",
+                                        "extension": [
+                                            {
+                                                "value-name": "9OaUYdmAwlOhoJx6Zzp25HFpPZfgIWHKCREB5T3teRLusaskKSmPr168Tept26dFQKgNvbgJVT6f4yzOiNvKHBSsP9VSg1p6LFLgI1RDNXTRokxy02aHvV9d4WXcXmaITVQBPI7Cx0lNcSecMoT9bUegR3kOpvpaifE7PLBfDW2PGg2kxNuIIAYrEb73",
+                                                "value": "w6QEKQlnjA08DHOLJ1ipn17XRqB2xxAWDjAf1Vukoms139MF2X4pY3mHtYK0ncO0ng7o4tBsP3tK47p64lvUgKCJIeC5iqXGHWWLpx56tyQpx8outTgKvKl5YP298ZHPNDs43xa"
+                                            }
+                                        ],
+                                        "prot-type": "txIJxXAThPmY26hVampfdv1u5zZYYXqjm02UYvFfcT5eRm91Jq9WN2iTBhJs61Lt2GfS3M77x4loqnh1NqPtt7e4hPonQ2ISIPCDtBK0F5o6ky70YPtrWHodoEteG3ZgTBTmdvnStDQNbQN2F8ltHJH5g2cW5b5YEQdRmsCH5ku92abzaw3S8CPgE14Jc9AR0NAe74Vchhd",
+                                        "reversion-mode": "core-model-1-4:REVERSION_MODE_NON-REVERTIVE",
+                                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED",
+                                        "configuration-and-switch-control": "h",
+                                        "internal-configuration-and-switch-control": "Umyl3WstkW8OuIk6ER0HpQa2drI0d0bZeCchyFKKBKyXsKV6uWNTEXNSgwSlo3dCxpLX4nIx78vzTq",
+                                        "label": [
+                                            {
+                                                "value-name": "1Ob8wc621v4Lx18NQAK3LIQHnX5vK4bDKeLgqKikfeXFg5s6x59bNRK2PPxrLA4nPHD7jWjz2g6ieyoDDpOihqkY8RpTkl912M8eAsNDATVOjcsXB87SzsIHj7sDkBEfgFtQZgtz1hgktI94IhPhJxQUxbqRMW62tzLsH6UAnaVQSWNs5uKG1stqDTaiH8kbI5Dh4pSrzFajtXMzro7kQ",
+                                                "value": "DmlNE3VYevWJN09xjI4tUxqGYJ464Myz8UmMX9D3FrMkjVRuwNYikgYb0U9WyHvzBJdySQBx9gJk3sPrfFJsVHDNtMJ2t6t5HGvApZZy7JLabsCj7lL2VoQg2ravqDs7kQzJH"
+                                            }
+                                        ],
+                                        "selected-fc-port": [
+                                            {
+                                                "local-id": "ZxaGtv0Kog3wNd6BrQpMhoLFWPRAg0n8xxOS2Ouj4yPJLVl4DKQM1tsXbbxr3VzsknkfbOygefZ02c4GPNkQgMNrPkTS7kcsIwHTd71reTjg5gOMV9C3NpnvC8fBss3aYCW3BPnPIG6GOMkBVXFBe26QalkCNfFESBHlq4b1D9zj",
+                                                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                                                "name": [
+                                                    {
+                                                        "value-name": "TVBIAcXuaFEvZ8bfNPZgokzlnAYo19cM4NvwRs01ZwwZxz6ko5tFh20xuYVv77h4MEAD6twYR3XouVBT04q96qGAguXft6jgLMLJ7iHYdwnHrYsjUSl0a1sqvpGZvR7gvK0CUzt76QHpG1JsM4sWXMflbNcywbH2VzwQ8ZP6Howfi7HW31KSNZdYEhpbs6dgFJYFBFMi4ayehfachU44MaVqrctUiG2Pi0uTFg3BqBHzJRL0EQWi0J",
+                                                        "value": "jV45d"
+                                                    }
+                                                ],
+                                                "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE",
+                                                "extension": [
+                                                    {
+                                                        "value-name": "mvKKL1KxJlL6QF2nIIqTACHpsndsvn2JSMtvF53hqGn8mqnW0OPAqoRKMX49k6ScLdAiivzAbXBpfYd7E3A4jrHXgL6AKQFnVfF5K7GNW9d37qaMlKIx4hukVtVFbA27Hz4",
+                                                        "value": "GKeCLjFTCIxPs7mwhRJccEJn6LmNcr6T3cnPwVA0D7PX6cmfV5r7BauzNRe0akLdw02UNCUiBCgAGuPBzhA2j4BZNPRX9u3xu5kaI6sbIALo4BRvKrx3o823XLTYfWwC1IMBO6NpHyNL1x9LYGPePJaM"
+                                                    }
+                                                ],
+                                                "logical-termination-point": [
+                                                    "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                                                ],
+                                                "selection-priority": "-9223372036854775808",
+                                                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED",
+                                                "port-of-internal-fc": [
+                                                    "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                                ],
+                                                "label": [
+                                                    {
+                                                        "value-name": "72M7pxFxB8Y4QpNzbN5TCnLlY4hUamwhhbhGIW5j43oUlbmoRrhlP2GF6Pr84Xql0zTJvY2rUiefmADd1MyIG6fEWGN0w5dwE6f1WasQsyXO0sT26jCMqSreye64bbBP9QQ50aOlJD9J63DcegZE0iKyoQDz16oaO68HgW2Rz3txYYCd6tJ6LuF9caIegYgW4oDccxWEBp3rfFEm8gsLK7MWhm2pkjmgzRtEphiSG",
+                                                        "value": "bV1Q916CFIJrETOza0SwhjgCXxT7prtAemiofg0UQJenu2WF2G3jZjVPQGW77h"
+                                                    }
+                                                ],
+                                                "is-protection-lock-out": false,
+                                                "fc-port-direction": "core-model-1-4:PORT_DIRECTION_INPUT",
+                                                "fc-route-feeds-fc-port-egress": [
+                                                    "YFKNHBcjg7z5bdKx9n7evewYUkUQSHDIefnVQze7HG4STGhU3p0zvwpqJj8B0Lb6Tz1J88IHOFrzlJlh0lIvR7NsrW3jz7qsGr4GzEofjPGFq1OimwG6DlyWhugJtyb9R7PjM5y5NfC58qonOWtshTgrfwaIWdJOlr77wx4bMzh"
+                                                ],
+                                                "is-internal-port": true,
+                                                "role": "gTuNOeNq33W57x997S1Ml7Th2YybbKnsDJ7jXMJSHFPO4RPcJQQWXCeRAEVDoiXT14cQINIpkq6phVBSEjPBVVlnrg1QyYBrVO9vBRVW9TdqOObkZSWVNhi6pbWX2ygXepsH8fvi8IAPoL9ovXba6lhvxdkzDAoJRQr0YWaYxCNVgPbLEmWLIdg7itGW",
+                                                "address": [
+                                                    "1eSJ0mx79WGzCjB1smZ936YFgC2b7E28LURDgpChdiRHCsIWOA5KGVpOqr"
+                                                ],
+                                                "fc-port": [
+                                                    "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                                ]
+                                            }
+                                        ],
+                                        "hold-off-time": "-9223372036854775808",
+                                        "switch-control": "core-model-1-4:SWITCH_CONTROL_MANUAL",
+                                        "address": [
+                                            "1bQmXZYsJkyA1AJ9siY7NicQHeew7UT05BnUAlncxNMzfnIHFzPkJTbjZhP7bAZ9cm3EAiQZ5"
+                                        ]
+                                    }
+                                ],
+                                "supported-link": [
+                                    "DayOvzLdWvnwfsjYnEDVTEG8JaOk5OYIYoolY9z"
+                                ],
+                                "label": [
+                                    {
+                                        "value-name": "chAeSPhorw0D4oDHpDz905y69UYTOMz03a7NRgcjMcOJBjiSXS1PPzVYlLJ9pb2ll184hkn3p3ESnXKcHM1wdOmzzYAZ9CkmvkqMFGI4JmO6byiScbgqZDRzBjqCWCYjWo6t4OpG2dM6MXYQ8f80KZzdjRP7tNqh3oL84aO7os52h3Sia1iUSJ73AW2",
+                                        "value": "JlcNJPNO0tNgNSa5NUfYNxSGg0BIOEDqZH5AxSopd3x0NHXBB4"
+                                    }
+                                ],
+                                "is-protection-lock-out": true,
+                                "external-managed-id": {
+                                    "manager-identifier": "bDgmCD07qLM7TvhzHmfFWd3kzTl0yRWJn55ZAX61BK0m7hOGv3djh9vI2QIszw3Wt0N4YMXroXNw6B4txiMOrhotZYWymZnQ02MQOJ95yWtwqxZXPLDgUTCTRqj5hGV9BzZha0mIPP67n54cQzlCkXv3nP8EnWOYvF8yGu8vkfCzkyD3ZYFbV3eiSmP7aDYya66QsedMtHdO7RR6Po9DrnVbCCbMf9kq7q8zxee0VrG3a",
+                                    "external-managed-uuid": "10Obvfqij2VuP2D1sCkt3RHhRCByxLXrDDu8LUr4XeyEg3FJFZ4IQLSAft0F6P6KtAKeu3ajhIXyLD9iud0dQKN5dNCcCIWXay3xudQLVObyjkQFpJS7tF5zkHLPqzMsZQZtVQ7RwihHv0mUJf24M7"
+                                },
+                                "fc-port": [
+                                    {
+                                        "local-id": "e2eoypJfy2Ip2LF5ObdWdp539CKoU7m99ApH00Pq2pP42maQxfEDFByO6",
+                                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                                        "name": [
+                                            {
+                                                "value-name": "50hr1q2i0UjHcd62a8gkQGrmb6XJN32KWjbXC58uRrb4E9YO960ZEkdPi2z56tH",
+                                                "value": "MTJgQRKAaNwPOuvXsoO7I1W0WnYUQFOvqpL9hoJr378SBwPVUw2upRmlecf5SVAaldbutMVxTWpms6ieucAU3W7a9nfTaHVvM7ZgTNNNJ4132j9xwJrzFyJGNQzYpvlcudsfS72t34w5fFCLgVdVmOC1x3ZWqd0Uisa2r4vu0TA8q4TG0YBeN5fk178rk9eutgwVk1pdURlcW6SO5l2Krh4ko4LAdZ4H7su"
+                                            }
+                                        ],
+                                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE",
+                                        "extension": [
+                                            {
+                                                "value-name": "8HcWVaSJNhogBvjMM9ggBofNPWZn6xX67122bMLQ317wxiajrqzVGOInDALB7AHeBCgMoUukVBQkU1Ddj58SLJfojSZqszF33NHjzcDnFmHrfdFqaFiVoqczi30DCxyxcgRMkm1ZIIrPNY8XviTMI5lT0dwvK42XcTBwgC",
+                                                "value": "QcPy0FG"
+                                            }
+                                        ],
+                                        "logical-termination-point": [
+                                            "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5"
+                                        ],
+                                        "selection-priority": "-9223372036854775808",
+                                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY",
+                                        "port-of-internal-fc": [
+                                            "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                        ],
+                                        "label": [
+                                            {
+                                                "value-name": "tTxfDSrrQbfVx9FYqBaHyVhLNekUGOe2AL9dvBEeML9bUH1cabTI7bmMhGyXnNZXq92OCy2gj3s5KthNFbnEeJqviYsFDkCWlEKX4E5nHxskTJ7qUu406mvocY3QaxEv3os72puBXOVIxU8kh4knqQLCGGkQdYlgeFn84JKTxxtWkB8BFtY5bBAJ9Mr",
+                                                "value": "LMuRjR0fsC1Z1uVl64WDpMBsf3bgPCCsgYkrHcG9G"
+                                            }
+                                        ],
+                                        "is-protection-lock-out": true,
+                                        "fc-port-direction": "core-model-1-4:PORT_DIRECTION_INPUT",
+                                        "fc-route-feeds-fc-port-egress": [
+                                            "8uXH4Ksjn7Gv9Sw6UI07qCgo18HIuq3DM0cICF2RMAmVkL27lU6Lom1huI0R1VuNWGoqdii0SwV59PcuCi70w9iSJaJC55iTEGkRYuRI0FNamZwY9EZFF9qoj91ofbiTRuCPYupY1d0n4xe6b5LQe36xdZVka55TzHAx30o4dok9VyfYDTGRWFg9EblHhqAQ83g33E882khQKxOfqn"
+                                        ],
+                                        "is-internal-port": true,
+                                        "role": "05EdJGsGc53Imb9EzNA3P3oZQrQv4rK4pg90WtG9yJRVUSrmx2heXx5ORVjVfVSEb1EZvc83VRQHBiV9c4n9CtPtg0gvV81Y2xYxJYswIb6jt1kx6AyA3o3bobzckAam00LJZ58Hg6SB7d85NHxI5sLlEkxYNIcNAXoz2o8juTUu6VrLCZlzjYMXbkNYUZDuWTWZiWaEP48NRAqlrDUKCzANTnDFng9b1XabUcQJ9Yp0",
+                                        "address": [
+                                            "HFasGnYb0U5X7Zqv7U1X6Iv6f3Wq2weBcg3KETVEN0tMRTiYFbWLMjK1nyjh4yS8OVSkGFYtyj8p4qgJt4vfn7hCFATB0LKHyC1eiSAQbI7g0nZlrmBHlKjScdu5Q6MpIFvSp"
+                                        ],
+                                        "fc-port": [
+                                            "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                        ]
+                                    }
+                                ],
+                                "address": [
+                                    "R35rJKWnLMiRmSv6TDtcYIia7I73bYm21rtC3iSG42xiV3pOySTx"
+                                ]
+                            }
+                        ],
+                        "sync-ltp": [
+                            "c3794728-dc8b-5233-0c67-0b857c32ada1"
+                        ],
+                        "address": [
+                            "exT2Kb7tHEjDcYtcO9kI53n3Zxpl6dMlDGnfRmIq0T35RohypBgnwwqo3PJ9Vwmy4JFVYndY9930xcqPFzcc5CA0kb1fHoFLZkyXzMOIVJBkO19tsdxx"
+                        ]
+                    }
+                ],
+                "supporting-pc": "Zp2brhSPOwG04EzQkaL3D6Rw7dZlCo3CO5F7epW2Vu208tIsvmo8k7FjkEEX2HrIE",
+                "server-ltp": [
+                    "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                ],
+                "connected-ltp": "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5",
+                "layer-protocol": [
+                    {
+                        "local-id": "MmMD2GVcZmhNMYTH1ac5Wrzwh3DA9rKOFojH5eT4A2Jf0CO1F07Bry8ItLaD4UrJiKifQ4bj6UyZpeS4eRFFpFfTjponbHZtj9B1dMkcHKbYY32cNzJc7QXq7",
+                        "layer-protocol-name": "hybrid-mw-structure-2-0:LAYER_PROTOCOL_NAME_TYPE_HYBRID_MW_STRUCTURE_LAYER",
+                        "vlan-interface-1-0:vlan-interface-pac": {
+                            "vlan-interface-capability": {
+                                "configuring-pcp-bits-decoding-is-avail": false,
+                                "ingress-vlan-id-filtering-is-avail": false,
+                                "port-and-protocol-based-vlan-is-avail": true,
+                                "statistics-is-avail": false,
+                                "configuring-service-access-priority-mapping-is-avail": true,
+                                "max-number-of-protocol-vlan-id-groupings": 718,
+                                "configuring-ingress-tag-filtering-is-avail": true,
+                                "supported-sub-layer-protocol-name-list": [
+                                    "vlan-interface-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "number-of-available-traffic-classes": 65,
+                                "supported-interface-kind-list": [
+                                    "vlan-interface-1-0:INTERFACE_KIND_TYPE_STATION_FACING_BRIDGE_PORT"
+                                ],
+                                "available-pcp-bits-interpretation-kind-list": [
+                                    "vlan-interface-1-0:PCP_BITS_INTERPRETATION_KIND_TYPE_5P3D"
+                                ],
+                                "drop-eligible-indicator-is-avail": true,
+                                "configuring-pcp-bits-encoding-is-avail": false,
+                                "service-access-priority-tagging-is-avail": false,
+                                "received-priority-overwriting-is-avail": true,
+                                "egress-vlan-id-translation-is-avail": true,
+                                "admin-shut-down-is-avail": true,
+                                "tagging-and-mvrp-is-avail": true,
+                                "vlan-id-translation-is-avail": true,
+                                "restricted-automated-vlan-registration-is-avail": true,
+                                "number-of-available-priorities": -115
+                            },
+                            "vlan-interface-status": {
+                                "statistics-is-up": false,
+                                "timestamp": "2020-01-25T06:58:54Z",
+                                "total-bytes-output": "-9223372036854775808",
+                                "total-frames-input": "-9223372036854775808",
+                                "interface-status": "vlan-interface-1-0:INTERFACE_STATUS_TYPE_ADMIN_DOWN",
+                                "total-frames-output": "-9223372036854775808",
+                                "total-bytes-input": "-9223372036854775808"
+                            }
+                        },
+                        "wire-interface-2-0:wire-interface-pac": {
+                            "wire-interface-current-problems": {
+                                "number-of-current-problems": -81,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -5380,
+                                        "timestamp": "2021-11-21T04:41:58Z",
+                                        "problem-severity": "wire-interface-2-0:SEVERITY_TYPE_WARNING",
+                                        "problem-name": "NIvOPArqzORrRSK1TRQJf8ke9PF2v4BaE7Ruzi"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-10-14T10:47:35Z"
+                            },
+                            "wire-interface-historical-performances": {
+                                "number-of-historical-performance-sets": 3798,
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "period-end-time": "2021-09-09T14:21:09Z",
+                                        "performance-data": {
+                                            "es": -178510675,
+                                            "ses": -541539243,
+                                            "low-power-idle-receiver-ms": -914386185,
+                                            "low-power-idle-transmitter-ms": 1779568560,
+                                            "symbol-error-during-carrier": 576376034
+                                        },
+                                        "history-data-id": "phwYpZvKShK5r1FUbtjnWopRF6y1XtKeK952",
+                                        "suspect-interval-flag": false
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-08-26T17:47:20Z"
+                            },
+                            "wire-interface-status": {
+                                "rx-sync-role": "wire-interface-2-0:RX_SYNC_ROLE_TYPE_SLAVE",
+                                "link-is-idle": true,
+                                "eee-is-up": false,
+                                "performance-monitoring-is-up": true,
+                                "rx-level-cur-list": [
+                                    -105
+                                ],
+                                "tx-level-cur": -27,
+                                "pmd-negotiation-state": "wire-interface-2-0:PMD_NEGOTIATION_STATE_TYPE_DISABLED",
+                                "loop-back-kind-up": "wire-interface-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED",
+                                "interface-status": "wire-interface-2-0:INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN",
+                                "pmd-kind-cur": "xlX3GFKLAOkNkiTufkB0sJlt",
+                                "receive-signal-is-detected-list": [
+                                    true
+                                ],
+                                "signal-ordering-kind-cur": "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI_X",
+                                "pmd-is-up": false,
+                                "link-is-up": true
+                            },
+                            "wire-interface-capability": {
+                                "wavelength-min-list": [
+                                    581843910
+                                ],
+                                "supported-signal-ordering-kind-list": [
+                                    "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI"
+                                ],
+                                "rxlevel-high-threshold": -3,
+                                "isolation-is-avail": false,
+                                "supported-loop-back-kind-list": [
+                                    "wire-interface-2-0:LOOP_BACK_TYPE_INTERNAL"
+                                ],
+                                "short-reach-mode-is-avail": false,
+                                "wavelength-max-list": [
+                                    427913390
+                                ],
+                                "unidirectional-operation-is-avail": false,
+                                "supported-pmd-kind-list": [
+                                    {
+                                        "pmd-name": "4QBKggm67P52cUJ4Zed1u0NY0PLDcgy869Sei7cpOhs1335UiaVMaBC3qnyCD6KB8vQqu2Pic9bfd8ana59dyLgZ1GBEFe8NJY5dSMn4Wrc1zmoKjxXSa5J3DcIiqIX1y2eqHun",
+                                        "speed": "VzEmN266rVQtSzxwM7G4PE6nykF7G2KBtgYgaWfBK55uxuSbBzfi5lFvycDe7fQAwGJGuYa6V7BkBtv4UDmZY1nwd0LkftNL1wkvmuC9B5mcyJglmCklvHJAzmNPHAsIYE6c8A",
+                                        "duplex": "wire-interface-2-0:DUPLEX_TYPE_HALF_DUPLEX"
+                                    }
+                                ],
+                                "configuration-of-number-of-bip-errors-per-ses-is-avail": false,
+                                "auto-pmd-negotiation-is-avail": true,
+                                "required-medium-kind": "wire-interface-2-0:MEDIUM_KIND_TYPE_TP_CAT5",
+                                "temperature-low-threshold": -2,
+                                "maintenance-timer-range": "8AseMsGZ4lrRjKFJh4e2Rrwe5egyMSdVkF160IX4VgV6SAQ2xW4onsukGKStuYgOv9MvJBzxSvDKXlMmiIKxa6SRICccAkS6tEB58bC0yfCnBhKTZmi2taL3NX8n90lCFXzN0bFqj9NUqpFiMXc70XaNMi2VjopQdZv5a2vtbafuAMEmKQlKNvprGrmZHLHUK4ZN6m89",
+                                "supported-alarm-list": [
+                                    "oDZ2hdM7yoM3F5J7rAOd9BPdsCbHDl61Y538iI7QYMLERnDjXjoZMd4fIg"
+                                ],
+                                "mii-kind": "wire-interface-2-0:MII_KIND_TYPE_CDFP_STYLE1_STYLE2",
+                                "rxlevel-low-threshold": -53,
+                                "auto-negotiation-pmd-selection-is-avail": true,
+                                "wavelength-grid-min": 268446410,
+                                "performance-monitoring-is-avail": false,
+                                "auto-signal-ordering-is-avail": true,
+                                "configuration-of-rx-sync-preference-is-avail": true,
+                                "eee-is-avail": false,
+                                "temperature-high-threshold": 17,
+                                "admin-shut-down-is-avail": true,
+                                "mdi-kind": "wire-interface-2-0:MDI_KIND_TYPE_NOT_YET_DEFINED"
+                            },
+                            "wire-interface-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "performance-data": {
+                                            "es": -1827861621,
+                                            "ses": -1383906089,
+                                            "low-power-idle-receiver-ms": 1128347192,
+                                            "low-power-idle-transmitter-ms": 570750066,
+                                            "symbol-error-during-carrier": -424291187
+                                        },
+                                        "timestamp": "2020-05-16T00:02:03Z",
+                                        "scanner-id": "BLVD8R7jw62SFkMNri69FiTG5lxfNtooejUmb1xz7zrEU5jdfpnVz8tEl0U8laoztaWwbt5",
+                                        "suspect-interval-flag": false,
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -102
+                            }
+                        },
+                        "ethernet-container-2-0:ethernet-container-pac": {
+                            "ethernet-container-capability": {
+                                "supported-fec-interleaver-kind-list": [
+                                    "ethernet-container-2-0:FEC_INTERLEAVER_KIND_TYPE_NONE"
+                                ],
+                                "maintenance-timer-range": "fg77oZtByLJIzLvYU0tVcXAivYIqqipyyoFOo0pWM0wdET4yUxl6mVoSMYi4gzCPXhvdaV2WNq1rk5SeDdcR1sJFqTJykmfivLvFypBlQDNaIxgdKs5DMGi4s2CMgSWLvkr3JUozp3J0AR5db2IXJ113VEH3oEOTY7WH2c9jgSjICpVNrwL2pM5ciNfGj3rh3nQ5sZgIKA",
+                                "supported-alarm-list": [
+                                    "k74ac1vCWsijLEr7t8rppmMaeAPUjTgD1kO5lbI9DSthxMoSUPibbWliw3cQWklPw1VRdvTIneZM0oxV5P6hDkzanD0bXd1lfO4kjX2yb2dciKZfrXw49X6ws6IhcBCrpHLAEF0QzdUJXLZgAnlKlr8FqIXCjzVA8yaN5bvFohoe2nuuLHeY9nDr5sVhUQR2gUHl540llhrfwWK9DQ7E5D53XSkRA3U",
+                                    "Z69iCMl1zidJ5sqgnRpi7gfz7w9R6j5Xpff11AUsT74Qru7HdoZcEfDMLEvJYBGnQVhJob49b8ZCuYbznbMTihx3W3EUEk9m7qXvu1EF1w9nmlXJoBvGS2BG5fsBrCXy2VWoOA3IYd5lqUWOnrm8mXOr4h3nTSVNFR4"
+                                ],
+                                "statistics-is-avail": false,
+                                "encryption-is-avail": false,
+                                "performance-monitoring-is-avail": false,
+                                "available-queue-list": [
+                                    {
+                                        "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_QUEUENAME_NOT_YET_DEFINED",
+                                        "available-dropping-behavior-kind-list": [
+                                            "ethernet-container-2-0:DROPPING_BEHAVIOR_KIND_TYPE_NOT_YET_DEFINED"
+                                        ],
+                                        "available-drop-precedence-kind-list": [
+                                            "ethernet-container-2-0:DROP_PRECEDENCE_TYPE_MEDIUM"
+                                        ],
+                                        "queue-depth-configuration-is-avail": true,
+                                        "wred-profile-per-drop-precedence-is-available": false,
+                                        "available-scheduling-kind-list": [
+                                            "ethernet-container-2-0:SCHEDULER_KIND_TYPE_NOT_YET_DEFINED"
+                                        ],
+                                        "max-queue-depth": -1939149721
+                                    }
+                                ],
+                                "bundling-is-avail": false,
+                                "supported-header-compression-kind-list": [
+                                    {
+                                        "header-compression-name": "Jku3q4NF8Z8SmlHq89O2VphD",
+                                        "mpls-payload-kind-list": [
+                                            "ethernet-container-2-0:MPLS_PAYLOAD_KIND_TYPE_IP_O_MPLS"
+                                        ],
+                                        "compressed-protocol-layer-list": [
+                                            "ethernet-container-2-0:PROTOCOL_LAYER_TYPE_ETHERNET_MAC"
+                                        ],
+                                        "header-compression-mode": "ethernet-container-2-0:HEADER_COMPRESSION_MODE_TYPE_NOT_YET_DEFINED",
+                                        "compressed-header-length": 9975
+                                    }
+                                ],
+                                "support-of-management-frames-without-preamble-is-avail": false,
+                                "explicit-congestion-notification-is-avail": true,
+                                "information-rate-min": 1620038356,
+                                "fec-is-avail": true,
+                                "burst-size-max": -31352,
+                                "ingress-policing-is-avail": true,
+                                "supported-fec-redundancy-size-list": [
+                                    "ethernet-container-2-0:FEC_REDUNDANCY_SIZE_TYPE_8"
+                                ],
+                                "egress-shaping-is-avail": false,
+                                "information-rate-max": 2005763084,
+                                "admin-shut-down-is-avail": false,
+                                "bundling-group-size-max": 116,
+                                "supported-fec-interleaver-depth-list": [
+                                    "ethernet-container-2-0:FEC_INTERLEAVER_DEPTH_TYPE_96"
+                                ],
+                                "burst-size-min": -31773,
+                                "fec-word-size-max": -18868,
+                                "supported-loop-back-kind-list": [
+                                    "ethernet-container-2-0:LOOP_BACK_TYPE_BACK_TO_REMOTE"
+                                ]
+                            },
+                            "ethernet-container-current-problems": {
+                                "number-of-current-problems": -101,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -980,
+                                        "problem-name": "koGOWLEzKqk58FUIJFddPB5OLbo3ZzAcY90MUxlwPxBXcvFN2T0Jm5pZhN28fvk5EdRqCcXrJqgNOVBIGBsUzJMIpGQE33JH8s0KEX3ffbU36vEFZ6rqH586MQKPTlpTNpvjeqqtBlpAI37H1y7IE7HiYr7JFwDsV0M9r4v2pUC8PJHIaHiOOZ6Ej5oYuTipT4rc1WfqIJ",
+                                        "timestamp": "2020-05-06T04:23:23Z",
+                                        "problem-severity": "ethernet-container-2-0:SEVERITY_TYPE_CRITICAL"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-01-29T01:47:53Z"
+                            },
+                            "ethernet-container-historical-performances": {
+                                "number-of-historical-performance-sets": 17861,
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "period-end-time": "2020-11-04T11:24:50Z",
+                                        "suspect-interval-flag": false,
+                                        "history-data-id": "RDksJyI3MscJ2QcNoLi79FsS1JK1Sy9Bct4V1MRN63p8TtW9e6gfDI0FkKG4jPFnaBacf1RmW8uHCiQQg7YUHYzTI7PTXng7Yrbek3A93WQF7HonGm9fcA9UIYGFdOEc7QqsL0BOOjmVSKjyYkGaVPWDFuaTjOXiEnKhfd63pkRh42IUmoWh5KUCf4nqTkIpzlHOqFKPZt7VvPHR5D9anVMu",
+                                        "performance-data": {
+                                            "queue-utilization-list": [
+                                                {
+                                                    "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE6",
+                                                    "max-queue-length": -1963378379,
+                                                    "avg-queue-length": 751814814
+                                                }
+                                            ],
+                                            "fec-uncorrectable-blocks": 1323611136,
+                                            "tx-ethernet-bytes-sum": "-9223372036854775808",
+                                            "tx-ethernet-bytes-max-m": "-9223372036854775808",
+                                            "fec-corrected-blocks": 1160343536,
+                                            "tx-ethernet-bytes-max-s": -186444115,
+                                            "time-period": 462992912
+                                        }
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-06-17T06:20:52Z"
+                            },
+                            "ethernet-container-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "timestamp": "2021-05-26T16:17:23Z",
+                                        "scanner-id": "4FjhG7w6P7x6Ax55mm8JvhTXwjf6uY6zvpQ3we1dlqbOXgLbvUVSbOQz0XGmNEViWDdkJfyXFBLDSoOfaJ7eqPNiNlEs0sLW5YgH5GELihg2x49IG8WYYJ8D5M5X6IL4z1LEAhhKyxE5uNF2VBSLd0oaEmZLWKHvDs25BbP1Bt658EZ47JPcJ6mfkdSgXzEBTGG",
+                                        "suspect-interval-flag": true,
+                                        "performance-data": {
+                                            "queue-utilization-list": [
+                                                {
+                                                    "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE1",
+                                                    "max-queue-length": 1301880338,
+                                                    "avg-queue-length": -322539763
+                                                }
+                                            ],
+                                            "fec-uncorrectable-blocks": 284507924,
+                                            "tx-ethernet-bytes-sum": "-9223372036854775808",
+                                            "tx-ethernet-bytes-max-m": "-9223372036854775808",
+                                            "fec-corrected-blocks": -1868591559,
+                                            "tx-ethernet-bytes-max-s": -852690273,
+                                            "time-period": 1820788788
+                                        },
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 62
+                            },
+                            "ethernet-container-status": {
+                                "timestamp": "2020-08-26T08:58:23Z",
+                                "last-10-sec-data-output-rate": 1216040460,
+                                "bundling-is-up": true,
+                                "total-bytes-output": "307655821885048512",
+                                "total-bytes-input": "2804603363442288640",
+                                "interface-status": "ethernet-container-2-0:INTERFACE_STATUS_TYPE_NOT_PRESENT",
+                                "loop-back-kind-up": "ethernet-container-2-0:LOOP_BACK_TYPE_NONE",
+                                "statistics-is-up": false,
+                                "last-10-sec-data-input-rate": 83653140,
+                                "forwarded-bytes-output": "402499102235684224",
+                                "performance-monitoring-is-up": true,
+                                "forwarded-bytes-input": "4523434467054645248",
+                                "remote-site-is-faulty": true
+                            }
+                        },
+                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                        "hybrid-mw-structure-2-0:hybrid-mw-structure-pac": {
+                            "hybrid-mw-structure-status": {
+                                "performance-monitoring-is-up": false,
+                                "segment-status-list": [
+                                    {
+                                        "segment-status-type-id": -20668,
+                                        "operational-status": "hybrid-mw-structure-2-0:OPERATIONAL_STATE_TYPE_DISABLED",
+                                        "segment-is-reserved-for-tdm": true
+                                    }
+                                ]
+                            },
+                            "hybrid-mw-structure-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "period-end-time": "2021-06-10T19:36:15Z",
+                                        "history-data-id": "xiXaOHuCCwXNHh58wZiOcPFDA4Qy1eNqwCAcc4POsEt1Vq9rhj7t9N6JROhK24aqzCCLyjr0PU1Kc34tmbWvQ27AIgkCdn2MZwxqIYqxKkaWnepBhdZ076APeUrr9ld1JCrrsJRc3T0i7pUgCTgJRQy5DRpEcCFW7YfzIYMLRMWQ4Q7yBfikYIhBAG7E",
+                                        "performance-data": {
+                                            "rx-level-avg": -124,
+                                            "es": 1577851002,
+                                            "unavailability": 1964517302,
+                                            "cses": 851714142,
+                                            "ses": 1887381946,
+                                            "rx-level-min": -7,
+                                            "time-period": 2005548998,
+                                            "rx-level-max": -56
+                                        },
+                                        "suspect-interval-flag": false
+                                    }
+                                ],
+                                "number-of-historical-performance-sets": 6755,
+                                "time-of-latest-change": "2021-07-27T19:18:10Z"
+                            },
+                            "hybrid-mw-structure-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 19354,
+                                        "problem-name": "xFdrxptOEnGUFQcz3zHuHy1PQUQCmzAT6OcEdGkJV0DAIP1LgJfY99F03vuhW4b3SfzXVTGJUcbCTdgaWn0XwxPr2jJRoMM81lYPewq0IBvuOLEC0wAx3hQXBrGZ5sZ7NXOUueU4Hpyw2403sssvKillC1cHm3G91m3nsQja7SyaOydh1FEDPZQrT21fXzgQWc5o2py196bXxo6qVL3LCL4nFXuCxLttPyJJXaKY8WW",
+                                        "problem-severity": "hybrid-mw-structure-2-0:SEVERITY_TYPE_NOT_YET_DEFINED",
+                                        "timestamp": "2020-03-10T10:12:44Z"
+                                    }
+                                ],
+                                "number-of-current-problems": -40,
+                                "time-of-latest-change": "2022-02-08T13:22:34Z"
+                            },
+                            "hybrid-mw-structure-capability": {
+                                "supported-tdm-structure-kind-list": [
+                                    {
+                                        "tdm-structure-name": "8oMPub2svNkH5S8lXoj6YOGdxBe4okGwIkdcwfw13QA0BJmy7xwXm5aTGhQWBolj",
+                                        "tdm-segment-size": -1875455663,
+                                        "max-number-of-segments-reservable": 89
+                                    }
+                                ],
+                                "performance-monitoring-is-avail": true,
+                                "supported-alarm-list": [
+                                    "6OU0JCAJdbXDbv28J7juNAcK3A5ebvBhbnhU0Sw53tB6QDfrKqWxS89VB69MuC3F0dA056X0ryZab6BVwplgymb1lcNPOIuONWGKUwDe4Co8IRV6h8mHnxIIBnxhXT6LQEvK28YZCe7k6UqfVMWibE0M1p4Qa2B0yZDt7tsCArWGdfV81Jq5niJgHF6SzAK0zfty"
+                                ]
+                            },
+                            "hybrid-mw-structure-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "suspect-interval-flag": true,
+                                        "timestamp": "2020-08-22T00:46:31Z",
+                                        "performance-data": {
+                                            "rx-level-avg": 8,
+                                            "es": -295680755,
+                                            "unavailability": 920001974,
+                                            "cses": -1011112749,
+                                            "ses": -1198566585,
+                                            "rx-level-min": 13,
+                                            "time-period": 1095955798,
+                                            "rx-level-max": 94
+                                        },
+                                        "scanner-id": "uG85wiPurLiYYdOYKGBMcicmP69TLhi7YrcuB1Q2F1TveHlQfWDr6POWVPHy70F5jJrUC9PhaIMoh77oVKI2roQedxMkpjhI2IDwSsO22sjbsizf2h",
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -46
+                            },
+                            "hybrid-mw-structure-configuration": {
+                                "clearing-threshold-cross-alarms-is-on": false,
+                                "number-of-tdm-segments-to-be-reserved": -72,
+                                "g-826-threshold-cross-alarm-list": [
+                                    {
+                                        "g-826-value-kind": "hybrid-mw-structure-2-0:G_826_TYPE_UAS",
+                                        "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "alarm-clearing-threshold": 1736397626,
+                                        "alarm-raising-threshold": -1158148625
+                                    }
+                                ],
+                                "performance-monitoring-is-on": false,
+                                "problem-kind-severity-list": [
+                                    {
+                                        "problem-kind-name": "beZRr6EA7f04CbOKKlIuVafVBmg25348h3ZI9vi9Kb5emLQ67rtUBIHd4Xf20j2hf2Zgpap2ln8",
+                                        "problem-kind-severity": "hybrid-mw-structure-2-0:SEVERITY_TYPE_MAJOR"
+                                    }
+                                ]
+                            }
+                        },
+                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                        "extension": [
+                            {
+                                "value-name": "d5tCOz062cL68rcjoy1bZT472cx9Z6bcbEHSeHQ8TteTVqcbQ5mIYiP1mm2dl5qwJ7gPG7XzA3snlwy4BVMA5BtkQnxbsXz3WQTCPI3hMnFZTd3n0PP6rai9xPkZFT2tJNYqw1Iahn12A5pBU6zdgJmNyGE5szz3epuCqcMHzOK1L1uF8VLoE745GAa01B3g0xS",
+                                "value": "BxS2du4Ywqvwm8M08Q5Gj8GcBJsu9dNCCxFH2Bxq1UWn3IgbrdRCdpOP09j1eYEQvjpxUWPVQLbLmrWFwF9KWXzX6KYkIC2dNrDHfsv66yRkRGRnd072XyZWiX80sb6fuBPK3cI1Krdt74Qd4YfUo6QHVQzn1Fvogc8coQ509jt9fbmc1t6qzO7mEGKye7WmjWqzEwrNHMWWXa8Zv6h4UojrW3"
+                            }
+                        ],
+                        "configured-client-capacity": "Njo3ko65aVv9togwjVD06eGg0SdXkjYZun3OL1TVOhXhF5FQTaQZop7p9ketvcsZznNcgz04IXdf2T5N3ONk5UBe7PHC11utp9xFIxCimPphAv4wbRQgErmL83f14JmlTUTtrnMOcb5Fy1bBTTRxc5ak8pl59Ii2C3vVq9BvdGaLIlft66Si42CcjX9sxkm1nKXOTqj67lKHGZ2MXU41Oy67n7sVrOOPyDvk4Gi31UCzLEdBq9",
+                        "ip-interface-1-0:ip-interface-pac": {
+                            "ip-interface-status": {
+                                "errored-packets-output": -1155053851,
+                                "last-10-sec-data-output-rate": -1597639949,
+                                "forwarded-packets-input": "-9223372036854775808",
+                                "errored-packets-input": 1978756698,
+                                "ip-v-4-address-cur-list": [
+                                    {
+                                        "fixed-ip-v-4-address": "5vm9AdnLEttP1Ac9Btib1zzVAFIWySgvnCEXI1Bmm43nxfp0IH4K8DxJa7xAZN5fiC40vFeSCif1pET8eXKmA95Lgvd8aj",
+                                        "fixed-ip-v-4-address-prefix-length": 50,
+                                        "fixed-default-gateway-ip-v-4-address": "NrkiZzaBJiu8Wn8alSpN1mqaREi2PxuCYPUXgXqZfMZ3a8en0D2UZt4J7eLWL7qBOcrW9JNowNsyNyVF3XzUivDpBgdegvQ4IhTR0G8olAW80JO3HfXZDtheJmtZSbWAsHjknrBJ1xR1hxWQNUHqnQwY5ZQX2EpulIHA2ijVH3PQsLGfxgxU64L3VB0Y7hksST2U3ePL9EBBiaJPi8Cg4nk"
+                                    }
+                                ],
+                                "broadcast-packets-output": -788607515,
+                                "dropped-packets-input": 1332338706,
+                                "loop-back-kind-up": "ip-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE",
+                                "dropped-packets-output": -198104581,
+                                "unicast-packets-input": "-9223372036854775808",
+                                "forwarded-packets-output": "-9223372036854775808",
+                                "neighbor-list": [
+                                    {
+                                        "neighbor-mac-address": "cQX",
+                                        "neighbor-ip-v-4-address-list": "2hmOb8RhXuiu6UM8vtiD5yIkSA25iRrk0N0cVSlKmE6kqSkVeCybbgwVQyS8ijli6luT5IwsmCEMnZHBB7MEoas6Jk71EsbCFGoLgU5CwJgTIPmcW9IcjajUviN1KZDhxT2NN7hcRx5rmkvatenEoyzLQeMsdiJKbEpRLG3ud0OrkjCFxZkOxTzf7eHdwqPH4fqINt41mSkG4WmtN",
+                                        "neighbor-origin": "ip-interface-1-0:NEIGHBOR_ORIGIN_TYPE_DYNAMIC"
+                                    }
+                                ],
+                                "timestamp": "2020-03-28T22:16:54Z",
+                                "forwarded-data-volume-output": 1141724076,
+                                "total-packets-input": "-9223372036854775808",
+                                "last-10-sec-packet-input-rate": 650241800,
+                                "last-10-sec-packet-output-rate": 1895136566,
+                                "vpn-binding-is-up": true,
+                                "multicast-packets-output": -943278591,
+                                "broadcast-packets-input": 295863052,
+                                "last-10-sec-data-input-rate": -120383451,
+                                "interface-status": "ip-interface-1-0:INTERFACE_STATUS_TYPE_NOT_PRESENT",
+                                "statistics-is-up": true,
+                                "total-packets-output": "-9223372036854775808",
+                                "multicast-packets-input": 1375222788,
+                                "data-volume-input": -2016440913,
+                                "data-volume-output": 269780022,
+                                "fragmented-packets-input": -2000492377,
+                                "ip-address-origin": "ip-interface-1-0:IP_ADDRESS_ORIGIN_TYPE_DHCP",
+                                "unicast-packets-output": "-9223372036854775808",
+                                "forwarded-data-volume-input": -1798694477
+                            },
+                            "ip-interface-current-problems": {
+                                "time-of-latest-change": "2021-01-15T15:23:24Z",
+                                "number-of-current-problems": 42,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -31728,
+                                        "problem-severity": "ip-interface-1-0:SEVERITY_TYPE_NOT_YET_DEFINED",
+                                        "problem-name": "Xvt9O4t61BCm2Phq9KngqphBcuc2D9eAEICsM5yGy22BJjTKVg1eGaPSE1M921KGBe8fjyVRBQkc15XXmQ3U0SMwLqFNrhl2vtaG15yuNKHPQEE4uHYmrCK42hJur4oWpqDqo3NbFuSv0wzm5xIo1ks4t3qU7ORw7mPvhCGWYzkYXTkVjUjk6MgzPGuPnddur2ZIwFwu6QsWCERNy2ZEOg6wWAdjNqNetMOZkkmi3G6xlXkL0jiGro4oYhzDA",
+                                        "timestamp": "2020-02-21T23:45:19Z"
+                                    }
+                                ]
+                            },
+                            "ip-interface-capability": {
+                                "burst-size-max": -14528,
+                                "statistics-is-avail": true,
+                                "supported-alarm-list": [
+                                    "mWj",
+                                    "hSKOq1rGasbqt7Q89fne8aY3iBBxqV1HFLn6MGMW0XeuWWu5bKckUaf4EQB4DCDjfSh1yVPzLVVHShF31RfNTuSxdttQ6Y1dQa7h6WIRKvqCMXxOGFtA1lZePlXNjY029Zj7OTQyo82a6zQM6ke8x6mmrb1CaUEbTPiHI076899eJRTP3ZPB54PofR1pDxswfC6XC5WLfXZQOKxKKnlHra6GTZY"
+                                ],
+                                "information-rate-min": -1062956669,
+                                "maximum-number-of-ip-v-4-addresses": -13542,
+                                "fixed-default-gateway-configuration-is-avail": true,
+                                "maintenance-timer-range": "wfMdjKUNWPxXREW6DKG791W8c71eQSne71riLe6I3vxM1uTE6rLfkHoxGpLo90Cg1WyNawn51US2g",
+                                "admin-shut-down-is-avail": true,
+                                "dhcp-client-is-avail": true,
+                                "egress-shaping-is-avail": true,
+                                "information-rate-max": -1272180713,
+                                "burst-size-min": -27361,
+                                "ip-v-6-is-avail": false,
+                                "maximum-transmission-unit-max": -27888,
+                                "ingress-policing-is-avail": false,
+                                "maximum-transmission-unit-min": -12074,
+                                "supported-loop-back-kind-list": [
+                                    "ip-interface-1-0:LOOP_BACK_TYPE_BACK_TO_LOCAL"
+                                ],
+                                "vpn-binding-is-avail": false,
+                                "arp-proxy-is-avail": true
+                            }
+                        },
+                        "termination-state": "core-model-1-4:TERMINATION_STATE_TERMINATED_BIDIRECTIONAL",
+                        "mac-interface-1-0:mac-interface-pac": {
+                            "mac-interface-status": {
+                                "errored-frames-output": -852690453,
+                                "loop-detection-result": "mac-interface-1-0:LOOP_DETECTION_RESULT_TYPE_DETECTION_SWITCHED_OFF",
+                                "forwarded-frames-input": "-9223372036854775808",
+                                "timestamp": "2022-01-03T04:52:26Z",
+                                "multicast-frames-input": 1408113518,
+                                "unicast-frames-input": "-9223372036854775808",
+                                "last-10-sec-frame-output-rate": 1312971664,
+                                "total-frames-input": "-9223372036854775808",
+                                "multicast-frames-output": -1664720477,
+                                "dropped-frames-output": 85410314,
+                                "statistics-is-up": false,
+                                "forwarded-frames-output": "-9223372036854775808",
+                                "flow-control-mode-cur": "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_SEND_AND_RECEIVE",
+                                "received-ethernet-frame-format-cur": "mac-interface-1-0:FRAME_FORMAT_TYPE_NOT_YET_DEFINED",
+                                "last-10-sec-frame-input-rate": -1400058697,
+                                "errored-frames-input": 268850666,
+                                "loop-back-kind-up": "mac-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE",
+                                "interface-status": "mac-interface-1-0:INTERFACE_STATUS_TYPE_UNKNOWN",
+                                "mac-address-cur": "mdmP6tq2F0iGeCkA1CE0zoaZSuwxVIl9WzQU3gXI87hnJBPKdtCMSEDC919WJmYxWOsZXhz5gQkRjauwD6anLFZMy1IinyHbf12caC9qkmaEwE21C5hfC81b9C",
+                                "broadcast-frames-output": -2053910295,
+                                "total-frames-output": "-9223372036854775808",
+                                "fragmented-frames-input": 1756001436,
+                                "performance-monitoring-is-up": true,
+                                "unicast-frames-output": "-9223372036854775808",
+                                "broadcast-frames-input": 485411742,
+                                "dropped-frames-input": 1911691454
+                            },
+                            "mac-interface-capability": {
+                                "supported-flow-control-mode-list": [
+                                    "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_RECEIVE_ONLY"
+                                ],
+                                "statistics-is-avail": true,
+                                "broadcast-frame-suppression-is-avail": false,
+                                "supported-frame-format-list": [
+                                    "mac-interface-1-0:FRAME_FORMAT_TYPE_ETHERNET_2"
+                                ],
+                                "admin-shut-down-is-avail": true,
+                                "maximum-frame-size-min": -861,
+                                "loop-detection-is-avail": false,
+                                "performance-monitoring-is-avail": true,
+                                "mac-address-configuration-is-avail": false,
+                                "maintenance-timer-range": "uSZPdYwmmS9H1F63SUx7FRVBiZLgGGC2quRDsgSH8Tg9zn4jhBqXkeqDdbLMJgOaKyF4OpLWj25Sp23GDmvQAWlFZ6rJm8T6Gq3uQOi9QfTfhOONabDK7QiZWJIbJt9hTcLB1VCJbvRkc",
+                                "supported-alarm-list": [
+                                    "7rkB2v7TQbqPx9soRMFq3qHf2rBNO1cNsxpmUogCzGsYHUnqy2QCkxReQk2Fl6kNvJ2iZiUyQmpy8MYHGHb1eUf5f9CA8WgDyiVxsIYi4nI59zMHgPImJQrQZVj7SzDqJqPb0Nt5a42bDOTLvt76jrXbmga6HFwq6eB61W",
+                                    "mICZIshHhShkCKlTvy"
+                                ],
+                                "hardware-mac-address": "iqn4BQnYEMgojeWkbp4q25v4Y5QAWfq6FNa9vy7acfyvtuPxMLXOJkSHhAh5QAbnflwLLwVXDlsZH9wtVl9Ex1dOC",
+                                "maximum-frame-size-max": 2861,
+                                "supported-loop-back-kind-list": [
+                                    "mac-interface-1-0:LOOP_BACK_TYPE_BACK_TO_LOCAL"
+                                ],
+                                "link-loss-forwarding-is-avail": true,
+                                "loop-port-shut-down-is-avail": true
+                            },
+                            "mac-interface-historical-peformances": {
+                                "number-of-historical-performance-sets": 23113,
+                                "time-of-latest-change": "2022-01-07T14:10:51Z",
+                                "historical-performace-data-list": [
+                                    {
+                                        "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "period-end-time": "2020-04-20T05:02:33Z",
+                                        "performance-data": {
+                                            "mac-pause-frames-ingress": 138315216,
+                                            "tagged-frames-ingress": "-9223372036854775808",
+                                            "jabber-frames-ingres": -1628298831,
+                                            "mac-pause-frames-egress": 453067834,
+                                            "mac-control-frames-egress": -654691653,
+                                            "oversized-frames-ingress": -1895074855,
+                                            "undersized-frames-ingress": 569877322,
+                                            "frames-of-1024-to-1518-byte": "-9223372036854775808",
+                                            "frames-of-64-byte": "-9223372036854775808",
+                                            "frames-of-512-to-1023-byte": "-9223372036854775808",
+                                            "frames-of-65-to-127-byte": "-9223372036854775808",
+                                            "mac-control-frames-ingress": 215821848,
+                                            "frames-of-256-to-511-byte": "-9223372036854775808",
+                                            "tagged-frames-egress": "-9223372036854775808",
+                                            "frames-of-128-to-255-byte": "-9223372036854775808",
+                                            "fragmented-frames-ingress": "-9223372036854775808"
+                                        },
+                                        "history-data-id": "r4GYe61xJvoQcAtT8P2CkvQYgaKyvTcOXSN4QOtsbRaokD9sk34xyMvGX87kTj8R3VNMCg6NZg3bMcv6frDGe1m39tn2EnLIbqmNyssyIwBuA7tIy6gMZCH0YW3ukG4vZqaxSCXt0zPtGib6hrTgVshLpcgBKk6JL89vC6YvFGYdY1k7k5gfxxTOB9pdlnPYnYu04kvC0lHRm1YGY6NoDGc6Hu",
+                                        "suspect-interval-flag": true
+                                    }
+                                ]
+                            },
+                            "mac-interface-current-problems": {
+                                "time-of-latest-change": "2020-10-03T14:50:00Z",
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 28860,
+                                        "problem-severity": "mac-interface-1-0:SEVERITY_TYPE_WARNING",
+                                        "problem-name": "G6CPIX6L0H2Wcw2j1zCS8s7lknb9NgAtm5aX2hIUQKIU8L59cHTd10ylgJm3ZPomUqbOHLBpnjjwWox1YreZjMdrwzmvgKJ23URKxs2VDdrAuYBshHjBtwURYhfeTYhWL0zisB55Gwxan0CEHW73k2Uib9p40GTLGsV0V15BpvMMvgj54q8hk2zvcYscwlP4FK4AD233xHPUY8ZU",
+                                        "timestamp": "2021-10-07T07:44:17Z"
+                                    }
+                                ],
+                                "number-of-current-problems": -2
+                            },
+                            "mac-interface-current-performance": {
+                                "number-of-current-performance-sets": -114,
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "elapsed-time": "-9223372036854775808",
+                                        "suspect-interval-flag": true,
+                                        "timestamp": "2021-12-10T15:24:30Z",
+                                        "performance-data": {
+                                            "mac-pause-frames-ingress": 1216183866,
+                                            "tagged-frames-ingress": "-9223372036854775808",
+                                            "jabber-frames-ingres": 2001321720,
+                                            "mac-pause-frames-egress": -107857225,
+                                            "mac-control-frames-egress": 175309056,
+                                            "oversized-frames-ingress": -238651581,
+                                            "undersized-frames-ingress": 592737580,
+                                            "frames-of-1024-to-1518-byte": "-9223372036854775808",
+                                            "frames-of-64-byte": "-9223372036854775808",
+                                            "frames-of-512-to-1023-byte": "-9223372036854775808",
+                                            "frames-of-65-to-127-byte": "-9223372036854775808",
+                                            "mac-control-frames-ingress": -1927335395,
+                                            "frames-of-256-to-511-byte": "-9223372036854775808",
+                                            "tagged-frames-egress": "-9223372036854775808",
+                                            "frames-of-128-to-255-byte": "-9223372036854775808",
+                                            "fragmented-frames-ingress": "-9223372036854775808"
+                                        },
+                                        "scanner-id": "gmiHtukDZtRsW9sKgpd8q8vt7V3FapbiLtZ"
+                                    }
+                                ]
+                            }
+                        },
+                        "pure-ethernet-structure-2-0:pure-ethernet-structure-pac": {
+                            "pure-ethernet-structure-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "timestamp": "2021-03-27T10:13:26Z",
+                                        "performance-data": {
+                                            "cses": -583883129,
+                                            "es": 1810357454,
+                                            "rx-level-max": 86,
+                                            "ses": -1762716993,
+                                            "rx-level-min": -29,
+                                            "rx-level-avg": -98,
+                                            "time-period": -1292950297,
+                                            "unavailability": -912466153
+                                        },
+                                        "suspect-interval-flag": false,
+                                        "elapsed-time": "-9223372036854775808",
+                                        "scanner-id": "zFwDFdTYzcG3hcAofNfVck2PxF607shH8NkN16Dsabvrn6QvLXqYakFz0Lz75IGdn11g"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -5
+                            },
+                            "pure-ethernet-structure-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "period-end-time": "2021-06-17T05:22:54Z",
+                                        "performance-data": {
+                                            "cses": -899749999,
+                                            "es": 1142513418,
+                                            "rx-level-max": 102,
+                                            "ses": -1976083631,
+                                            "rx-level-min": -35,
+                                            "rx-level-avg": -60,
+                                            "time-period": 1670968922,
+                                            "unavailability": 917587638
+                                        },
+                                        "history-data-id": "8KGa5lJXYiW30DhowaEnyfwguZ6y2yg3bWdghX5ff1b8Eso2uUp2aObwFh4IHlLS9Y0rV5y37J3D3rGxlXAvLL1r2Y1JbMukCuDyActzVwcZXKoaAYylJrEDpFfsjJNW5imxuP6idb92NxcnoKB7cfDtN",
+                                        "suspect-interval-flag": false
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-12-08T00:50:18Z",
+                                "number-of-historical-performance-sets": 582
+                            },
+                            "pure-ethernet-structure-status": {
+                                "segment-status-list": [
+                                    {
+                                        "segment-status-type-id": 9102,
+                                        "operational-status": "pure-ethernet-structure-2-0:OPERATIONAL_STATE_TYPE_ENABLED"
+                                    }
+                                ],
+                                "performance-monitoring-is-up": true
+                            },
+                            "pure-ethernet-structure-capability": {
+                                "supported-alarm-list": [
+                                    "IGAfkBYNQKApGA1nYLNc6kXhQQ4cuo4d4Esh8i4Y2wfA69PXUD10XZhGPeSbCXoztIQB0MsViHvgQddKQ7DF6UlN06YvVfWgXEKYqcLAL8QulW6b3JJ1w4Ow2ETPTP6JlQzDUkdxkW1GS8JNRsOnpuMj0F9Un7vAP4eJgr8Afa87iSU1kApJ4335I4RXbey0iEBq5J0dL1k3T75dzmPEpKBZGkXRynJI1"
+                                ],
+                                "performance-monitoring-is-avail": false
+                            },
+                            "pure-ethernet-structure-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -19161,
+                                        "problem-name": "MGAZZKKAYJn5yk8ZvmaMlS9owM0kwmWa2p9U9Lm8vJ5VW6MrkW5GO6WcTXwhjlsdKB7TftTC5Rx1Xjkh7hPVnM08JwqURS7Bl7nsA84xZBqWMK6T1VHhzzpa5H4PrciFjF7LOcbFFBCkmA5fvMoXdG7jn40PgimrQ",
+                                        "timestamp": "2021-03-15T04:17:45Z",
+                                        "problem-severity": "pure-ethernet-structure-2-0:SEVERITY_TYPE_MAJOR"
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-05-15T01:25:52Z",
+                                "number-of-current-problems": 79
+                            }
+                        },
+                        "lp-direction": "core-model-1-4:TERMINATION_DIRECTION_BIDIRECTIONAL",
+                        "name": [
+                            {
+                                "value-name": "NiUEE5Of711r5A4gq2cs7ZUQ31zTrG66RTLvYzC5svpy6tGovSRCJDlFEMqXsw3bhGGgfidAOC8M",
+                                "value": "O2tzT5aoiHU47RpwNANt9VBj9bZLbDJZGcqr9BQkaKgiuxOh0BC9pdsygkbrXUjDYJ50cVknxAF18la8WF9dStL1NPsLBLoAnlAz8UWGmtzmOCmDhvQ1Zu2MjnpU0Omn1WXaILIXf9jVLGyU3hO2LIH456YYMdlO9aYKWyH3HSYlyp7CGVwrwdntkdr6qNMAPCcL"
+                            }
+                        ],
+                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE",
+                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL",
+                        "configuration-and-switch-control": [
+                            "s54AxR1eyIEbdY7T9aM3MlHiyiAHMyo7ElH34AhCjWOoMVaVYWRCiyNIQnquWGBs1avYLNA4Bgkn4uj2j2wBAjbizBEna8P3ic13ZCZAKcQOG1IZ37sDqEVR7zehHVlS8mV7QNABZihxjSpmZRZhnM1vdfMVbZFbmsa4fKx62PEdz3zqMyz2kAxyQblTb04pketAR1yLI4Z9ZyrMZ0ObBdBjgW4rO0I164BXX1Bx6sG507"
+                        ],
+                        "fc-blocks-signal-to-lp": "Zp3suELLtH49HNaORDDOFedDGTAzSkiRBdk6SXRdxVeeAhUrUy7rEkWd5xEXJWHkaTiUI9ZfX5mxmgR9GQsd3pq8W4YFSxRUqaG8bFg8LCy7Sp8r7BEa04jO09lKGcF6ed6qTmqwYYvJfEan7Ox7KINCR8mxcTvr7CJSQ9oP0TqfpAuwg2v0CiuuiQ1vCxWJ1xBRGRyGCYO2qaqy4WqH6UbpD4UftIYu7reN",
+                        "air-interface-2-0:air-interface-pac": {
+                            "air-interface-current-problems": {
+                                "number-of-current-problems": 104,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 23959,
+                                        "timestamp": "2020-06-18T12:12:19Z",
+                                        "problem-name": "WQQvMNKm34ZONcQzHnFySXrdJrT1XIzTyphc51y0XqHCCx4cVJKFy3LiuwbreLdE2mQ7fp05PHHj6LvTmfr",
+                                        "problem-severity": "air-interface-2-0:SEVERITY_TYPE_WARNING"
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-06-11T02:16:27Z"
+                            },
+                            "air-interface-status": {
+                                "xpd-cur": -88,
+                                "transmission-mode-cur": "kowKc",
+                                "rf-temp-cur": -119,
+                                "mimo-is-up": true,
+                                "tx-level-cur": 25,
+                                "local-end-point-id": "UvxuyKjH77lxiefszZ",
+                                "rx-level-cur": 81,
+                                "link-is-up": false,
+                                "performance-monitoring-is-up": false,
+                                "xpic-is-up": false,
+                                "remote-end-point-id": "1JI0Lm6cJKduwI219EcQEjb3Cha4Q9NJKnJvJPAsrFXYfRRon3eTeiPIrZEi1s1LHD9rkJLEoAuDjd2z88kmi95K9JUa3NVLq44DFHhViDrtQl2YlnkEohox1azWXnHgjDTRl2MvF5YvqT",
+                                "received-radio-signal-id": {
+                                    "numeric-radio-signal-id": 44554,
+                                    "alphanumeric-radio-signal-id": "xHwJ2gv2EKZDPAjWuQNlJQxpIpqtLdLaU9UWphQ32HzRaSFEIlSjbpJTG1es60C11oPrGymA7VjhNYWnjGzm5a8Mbe6h6Ia870zFqVfpJyHoovMAbdW8nWMybSHhtSpsKY7"
+                                },
+                                "auto-freq-select-is-up": false,
+                                "tx-frequency-cur": 11978968,
+                                "rx-frequency-cur": -810342091,
+                                "atpc-is-up": false,
+                                "radio-power-is-up": false,
+                                "snir-cur": -17,
+                                "loop-back-kind-up": "air-interface-2-0:LOOP_BACK_TYPE_RF_TO_LOCAL",
+                                "interface-status": "air-interface-2-0:INTERFACE_STATUS_TYPE_NOT_PRESENT",
+                                "alic-is-up": true
+                            },
+                            "air-interface-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "period-end-time": "2021-02-13T04:42:27Z",
+                                        "performance-data": {
+                                            "snir-max": 74,
+                                            "unavailability": -1567940797,
+                                            "rx-level-max": -80,
+                                            "xpd-max": -98,
+                                            "ses": -1980064323,
+                                            "rf-temp-max": -7,
+                                            "tx-level-max": 124,
+                                            "es": -1010478145,
+                                            "tx-level-min": 107,
+                                            "tx-level-avg": 112,
+                                            "snir-min": 108,
+                                            "snir-avg": -19,
+                                            "time-period": -620662927,
+                                            "cses": 2080752344,
+                                            "defect-blocks-sum": 4435,
+                                            "rx-level-min": -32,
+                                            "rx-level-avg": -30,
+                                            "rf-temp-min": 65,
+                                            "rf-temp-avg": -95,
+                                            "time-xstates-list": [
+                                                {
+                                                    "time-xstate-sequence-number": -4,
+                                                    "transmission-mode": "HGpLMiy0Vj5OQVpqPDf5GYwtci7RB2iaAH",
+                                                    "time": 1572077106
+                                                }
+                                            ],
+                                            "xpd-min": -23,
+                                            "xpd-avg": -50
+                                        },
+                                        "suspect-interval-flag": false,
+                                        "history-data-id": "FFSJ1NctpGlGiWD6723UB7QYZZHZY5kvL46EJj79ZsP9gkfgea2P9SG9Rf0HkkcXgjBZuI"
+                                    }
+                                ],
+                                "number-of-historical-performance-sets": 31486,
+                                "time-of-latest-change": "2021-09-10T07:40:39Z"
+                            },
+                            "air-interface-capability": {
+                                "expected-equals-transmitted-radio-signal-id": true,
+                                "duplex-distance-is-freely-configurable": false,
+                                "supported-radio-signal-id-datatype": "air-interface-2-0:RADIO_SIGNAL_ID_DATATYPE_TYPE_INTEGER",
+                                "rx-frequency-max": 804340334,
+                                "supported-loop-back-kind-list": [
+                                    "air-interface-2-0:LOOP_BACK_TYPE_RF_TO_LOCAL"
+                                ],
+                                "direction-of-acm-performance-values": "air-interface-2-0:DIRECTION_TYPE_NONE",
+                                "adaptive-modulation-is-avail": false,
+                                "supported-alarm-list": [
+                                    "H0leXh5aKGzIfJ2TG0EoqHtLgi43iTi0TveJMkTp0l7749SD9p1r6ndex99P2rPOWWxBgi08v78AgS5hh6InlNtSXDIR4pF1l4utnuCSBCkJupSMos1JgvC50cW4BCXXGrqVVUGoo0ZTiRxykqhsNLxNXlSrXHgw9GjWtZdRS4CaW1I8sRAfvZ3",
+                                    "O4I38goMw0mOUDUEGZH5IDg8gCJlKY9qUJm30KHoD3dpG7We7vbH0rHgViBx8CY2mcXeWECrzPR7PNeOapvaR",
+                                    "W5YYCjW7VTpij39SOXASIcyEVUD7VOkSLaIfuEehqErJHABnq3g8gOEbAh",
+                                    "rEm2cuF2w",
+                                    "kNLau1yvARkVJxMBBhDpidxK4ZSrQVMbApd4rLsTuMOdbsOMJj4UwBEBto2jbGmL6zIpcaiHOYMZitL2MPOjjkMEJGPUncGlDgKIqUh6S352wI4bqKuJ58f",
+                                    "em720JmsrdrgSF425rcOnDsJywd5qBYEX5zQGVaZ0B7Kh3MmuQ2RmusU1xZj9PYYUpGscQscszWBDAPZiRJwl3ieB9yKYoAKFhdR7xVrYJUtbJltA40O7aUIkkkiIN3f4863FTnvChZFTk1tg19f34Qno2GZPJeTJdPgY4LtdC86W9s42Bk6F2tW49VUK1Ft6uJ5qnyEZyKOIcSKO4Ql6c9b",
+                                    "wXugAFYQ1u4aUIBEqb7NBbVBrKgCcxMIn8YXFONyjSI5sjJSvRyY2lAl5IXi7BSuBJshx7PQZqW"
+                                ],
+                                "tx-frequency-max": 1755733306,
+                                "maintenance-timer-range": "X4ZlBBp5yisEXYTQq25tzWjV8W",
+                                "transmission-mode-list": [
+                                    {
+                                        "transmission-mode-name": "kowKc",
+                                        "transmission-mode-rank": -1457365567,
+                                        "supported-as-fixed-configuration": true,
+                                        "am-upshift-level": -90,
+                                        "tx-power-min": -117,
+                                        "am-downshift-level": 20,
+                                        "symbol-rate-reduction-factor": -86,
+                                        "channel-bandwidth": 2111390714,
+                                        "xpic-is-avail": true,
+                                        "code-rate": 47,
+                                        "tx-power-max": -42,
+                                        "rx-threshold": -5686,
+                                        "modulation-scheme": 29769
+                                    }
+                                ],
+                                "encryption-is-avail": false,
+                                "duplex-distance-list": [
+                                    -819744579
+                                ],
+                                "atpc-range": 3,
+                                "performance-monitoring-is-avail": false,
+                                "auto-freq-select-is-avail": true,
+                                "tx-frequency-min": 858921524,
+                                "rx-frequency-min": 2047854852,
+                                "type-of-equipment": "AQ0uUDlRsGmvyqW6lHSgUhae41mAnKVQsVcn",
+                                "atpc-is-avail": false,
+                                "supported-radio-signal-id-length": 19865
+                            },
+                            "air-interface-current-performance": {
+                                "number-of-current-performance-sets": -29,
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "timestamp": "2020-03-30T20:46:01Z",
+                                        "scanner-id": "arP8fJbzFISAmro6ISFidRnsiA7M6Rl8a3gqMrZj1JTn3htD20VfKaH2LHPRy2ZIX70BqSUrtGOwXa9R2W7M7GPKnwtNqkooroZR8MaCsY8h0a1360P5GwPWUaJdu7tVokEw6O8qF9IFbJA9JifhGWdB7PGBO9p4",
+                                        "performance-data": {
+                                            "snir-max": 24,
+                                            "unavailability": -1812055281,
+                                            "rx-level-max": -76,
+                                            "xpd-max": -28,
+                                            "ses": -1277777307,
+                                            "rf-temp-max": -1,
+                                            "tx-level-max": -82,
+                                            "es": 205819900,
+                                            "tx-level-min": -12,
+                                            "tx-level-avg": -20,
+                                            "snir-min": 2,
+                                            "snir-avg": -98,
+                                            "time-period": -1401517277,
+                                            "cses": 189680502,
+                                            "defect-blocks-sum": -11111,
+                                            "rx-level-min": -15,
+                                            "rx-level-avg": 104,
+                                            "rf-temp-min": 91,
+                                            "rf-temp-avg": -92,
+                                            "time-xstates-list": [
+                                                {
+                                                    "time-xstate-sequence-number": -118,
+                                                    "transmission-mode": "JckEeSuHqNs1BguGy84aXdLKxuHXZDTIQde4XJDno5pZmLyMLCWJIHlf3U42yXLg3Zc0APgRMxQ0agMWLIFthSAkMFncu0spRwikdyb0XT072F3NfAgxsIJ7f6jKYE1I2j2gJ58GQ0O",
+                                                    "time": -381992597
+                                                }
+                                            ],
+                                            "xpd-min": 2,
+                                            "xpd-avg": 106
+                                        },
+                                        "elapsed-time": "-9223372036854775808",
+                                        "suspect-interval-flag": true
+                                    }
+                                ]
+                            }
+                        },
+                        "label": [
+                            {
+                                "value-name": "TGKDx54W4GC04VoiiRuvjsWY7oNJArMl7wYwt2sxAWpxRNP1xbpQvlGCBtm3M8gMw6iZ1DoBzG0jlPcSSBAoWg0pCesoeI2KPlBQYSjpy",
+                                "value": "AL1NwUo6adf2CRhX7vFa8mnJ4dBoC1A5NBSbnghptwsYfBVn6sxeHMQLZr1tlBy05qbkzsK2R4S6FFtD8SSPEAsv1uZeXpe2QpfpKZjt34zAJVdJFXqcxTHrfyFcYM7O3m5Nlg8gkIIWvVFaL6miZ4B6C9isVp8YLdEYmM6ymOuRKa2n8gFZc95Pin95NiVqvrpJ6viskMcWO6jWmQVzZSg9gpeVH"
+                            }
+                        ],
+                        "is-protection-lock-out": true,
+                        "tdm-container-2-0:tdm-container-pac": {
+                            "tdm-container-historical-performances": {
+                                "number-of-historical-performance-sets": 17569,
+                                "time-of-latest-change": "2020-11-12T18:03:03Z",
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "period-end-time": "2021-06-24T01:48:35Z",
+                                        "suspect-interval-flag": false,
+                                        "history-data-id": "Jl6WVLUGjulNd0a7qOwwH3BIyfoqwcPgxOclzY1TlmyyeIFEo3256vNEL3598MpFAuS2sTVN8lde3KLrNNoUb3qW7n57anMCRxEbirRqM4xHHi0uXog8sHWr4Uy69cJ0Jnb2P2kBZRbG1b2RAjR2SOlWAL3JXMBz1MtQHNkyxv6qG0h8j123Pn0h8VSYztxA70jGFDe40cvydEHoFJsm7sD7fn5OQugYmzEU4LY4Xlv20crxVTUUdp2s",
+                                        "performance-data": "tWdgHSFiLkQjp7Re5tP4b7r1g6gaQjCb7PsOzZZkbPvBOnPLIwPTv8VDebN4mh8m6s2xj1SuIf5xuMica0YF8TinWYjafjweDzLWAvrbLoI73SkdKaTT338R1j19vyn8785zEoKhEsoHdINXSyINBIEv2yEx61x51CEFSp"
+                                    }
+                                ]
+                            },
+                            "tdm-container-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -6454,
+                                        "problem-name": "2708yATgUTe6rVmZ8bg2XdYQbETeTdtVcuVC4GSQrYXSMbSUm0WbdMUgiNm3SPY4bMG8sqYUpNEbYwXcoLotxiJPX5THNJLQnjQIBHu0u83lx0xVDNp2",
+                                        "problem-severity": "tdm-container-2-0:SEVERITY_TYPE_NON_ALARMED",
+                                        "timestamp": "2021-03-16T16:46:37Z"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-04-02T01:54:44Z",
+                                "number-of-current-problems": -82
+                            },
+                            "tdm-container-status": {
+                                "loop-back-kind-up": "tdm-container-2-0:LOOP_BACK_TYPE_BACK_TO_LOCAL",
+                                "performance-monitoring-is-up": false,
+                                "interface-status": "tdm-container-2-0:INTERFACE_STATUS_TYPE_UNKNOWN",
+                                "statistics-is-up": false
+                            },
+                            "tdm-container-capability": {
+                                "performance-monitoring-is-avail": false,
+                                "supported-loop-back-kind-list": [
+                                    "tdm-container-2-0:LOOP_BACK_TYPE_BACK_TO_LOCAL"
+                                ],
+                                "supported-tdm-container-kind-list": [
+                                    {
+                                        "tdm-container-name": "T8YgPWy2Zz4N69amTLm5TZryJfw4QjmBjcR91h30Q0NP9Q32tp0eorMZGbVouaZNmJOfSSgBSVi1D",
+                                        "tdm-container-size": 1499067946
+                                    }
+                                ],
+                                "supported-alarm-list": [
+                                    "de7L7pnONvJOFLWFzLVQOrv1XmKTpzECGEgNVvtB1chGYd",
+                                    "pQ08EkDxhRh29JHLpdT40pxtiBKQrP3RF3ZbnuJxeSznt80KdUOeblHtXkjg9e7HhYSxlt4revOHEGkRA8XLmF6bZpr0DrHNhscuN8V1DBB9iV1KVYwhvCsmUMfpdWcuooZ4wM52oybylcih3GyqbTF5FUuKQz67XXbmK8o0Hzy2EIbzpCZsvwx2qTE9kK8aIbwkjMkSlKNRkYqJAi3XOARfmvgG8oQQze2K0mDeYi5i"
+                                ],
+                                "admin-shut-down-is-avail": true,
+                                "maintenance-timer-range": "Vd1e01M3O2xY2cdDTsvLA6vwgo9Cj8n7moleh0h62GWWS9zDuXg4VLsc1COlC3sYrF4JFlHA1DwMFYp9VG5IjyMl2syEv0vPxzy5N7FOK3sp1KqOiwxB4bO6EmK1e7QEHgJunga8jvplfQ9pmy0qKHog38hag0OPgpbEFdEYI3bP"
+                            },
+                            "tdm-container-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "suspect-interval-flag": true,
+                                        "performance-data": "e6",
+                                        "timestamp": "2021-02-16T00:28:00Z",
+                                        "elapsed-time": "-9223372036854775808",
+                                        "scanner-id": "11OTnWPIlH8hlNynLy7xwK19Z7DtpXNiYt3dhSODAWUVBkamSiUpUNyLU3eb01tQmx4EpS9RG3E9fPw7ZioT5PxRSLVTFoB1NFx5pGWXBB7QivYhNe2"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -93
+                            }
+                        },
+                        "address": [
+                            "dBPM7d5UURJJOLJFhQWdCcw31rU3tzky2ac9fhWa8FLPiumzkbNXnbSoDNkYeExhGJqW1m61TJIcd5DqgqfvC7U7M651KCareAf7Pd8AWRE9Oir4AGz4Glbsjhl4LnnZYC6FP77LQMME4eAEM1JsnUNG30CHoRyetxTaE0NmMs"
+                        ]
+                    }
+                ],
+                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN",
+                "name": [
+                    {
+                        "value-name": "31FDEnz1ZS5uJzEZ2t5z3uKtu7rsndVq6B3KYuDQmBk6aQXdbVE6hgALg15D603ctZXktsaI3mO6cDjnyXtP53slXpY3q2gT155mpf4lBKrFgK2OzowEjQ0ggQcySsjLpp8OE418PsN54ILD69ap02y8SKGD4Rgtgo9NlbVaDA7IaKdgUfyM",
+                        "value": "6MUIkxMbN7s487pbUrPuqpFauN4CdILbuFTO4xSKEcGFj5QdoxzOW6YjUVVZvybSeWyauqU0CAFVxw0N3AtSyk3k7QkCovmujVFNdrGQ2lDrJw7F6ApwUkR1abwyyS3RNAx11dJVqefaKmHIW6fJi6Ks9g0H1VyOv5HpaqkBFzDhVk0KiftAd52meU3fIt35rDuB3P4AgHS41K"
+                    }
+                ],
+                "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                "physical-port-reference": [
+                    "c942beda-266b-a670-ca1b-e78a3653775b"
+                ],
+                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK",
+                "extension": [
+                    {
+                        "value-name": "5fz3KNgai4UGgfLcG6h7EkqK0DC",
+                        "value": "vo8BDHEguVqERkd0sYc0Wt7sNx4N2HPy5X1AwFQ0s9xklCkNswNo0UJFjNtemaEr7F2DkKvNTUZ7wbUYHIfzuY7GDAU0CyjJddepYBcJobQUmDLWd0nHQuflW9dyzx9MKf4ARgc7kU1ypEuCwKce6rA3BNt2cDPPSThB1lIlgCUFggaNSm1ZNt2g9vjd002LLkeEFP0N"
+                    }
+                ],
+                "ltp-augment-1-0:ltp-augment-pac": {
+                    "ltp-augment-configuration": {
+                        "connector": "07wpeqzDCeErNGQsYiiaCfzpi0iDsCNsCbRIBjm5pSw4q",
+                        "equipment": [
+                            "c942beda-266b-a670-ca1b-e78a3653775b"
+                        ]
+                    }
+                },
+                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL",
+                "local-id": "kGE0IZLJvhtmj8NabzYGT6s5R5wSnYjzFQznPkYctkzMsePDNNcyTEECB2nY0ypxoZV6bLiF5JjqY0VDO7czLI4mKrcCZCagtXeEAo",
+                "fd-rule-group": [
+                    "5ea42646-26ca-afda-19a7-ad7f7cc924e6"
+                ],
+                "label": [
+                    {
+                        "value-name": "bZ9LceFysstH2WD7fguRbbVErDovw8bI7klbzTB1d4B7Se68uARxDEb59zsGHwgGQtJhecbr8My10F1m7STLoXIyw2e6ymMpPoG4ARnJvWCntDBAnndLkVjQYpOoLtFtRepr5M2tA",
+                        "value": "QV9sowPBa1plJfLyDo1jJSx8buN6XnKGbU0ziHasIzOrOrRkPSDzC2zGwmMmCwUNiUmBto33YJuEaeY06trBvShUfV8Jj2wCOKdh88k6SGD2UBUT5dus6DmdyuWRoklc4ql4zx3jeGd090T"
+                    }
+                ],
+                "transfer-capacity-pac": "GvZqaVg6DfE6nOqlxzOZgVvrAYBeGkzeIywSlNQYUu49jmuIWaz464nG2YUAimH0UdKgSs6FX3O8pjIdthhrdE0guUINgpF3vibnKh2zkJzC2hPny7HMDHU8BuNKUkFhuQw77rGka8W4pDjQC0ugHogbSVVEfsNCikJhLhtVppZP3aFxb1NSpV39QQGYatAsFbCqs5dSn4zi",
+                "external-managed-id": {
+                    "manager-identifier": "PSvDUj8Ob8aTBF7ROrYtLjZh8TRzCvxro25ad5Zod1iOGhxuJwPmHOvPAmgcKNv0HAaVF1bT2tzJL75mvVAcB5T3k9fWOLWndYaL0mwUHXvkWtyrg8vR6oVip2edF2tT0Dw",
+                    "external-managed-uuid": "R2FzZaLWDkfTkLDq1qA"
+                },
+                "client-ltp": [
+                    "c3794728-dc8b-5233-0c67-0b857c32ada1"
+                ],
+                "peer-ltp": "cb398360-6165-86b2-5b57-2fea3e77edb6",
+                "ltp-in-other-view": [
+                    "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                ],
+                "address": [
+                    "veNJ8EotGxC3QQWIKHl4VZCCRh3vuviZB5AJBZd9wHcep0OaH96v0A7SS3fmqxe1uGD5FQe3pj9PjXZ1Y5oZynJqqYEIwKK0r"
+                ]
+            },
+            {
+                "uuid": "5b48f21f-b116-0d09-420b-8f44b41ccae3",
+                "embedded-clock": [
+                    {
+                        "local-id": "KsE5zbNVuCa4xNkVz8TCXm4hMXRKCtbeVHbnKYi6AsaZ8vMzvxbkLfBx4k9yNkMATPXDNgJfAT6AgSaDhdX2lqzpKIYxUC8Ns5i7dTfGNlgV6iznwwqJXR8zsY7mt72VccUi61YLf6Glp7ANw0wlKwUcv1qY8sLdFxvLzloOr41Q4BDAu1VeyPi3JITR3wWI3jluEJa6FbOJNkj9lenLWxGFfzoiXlS1wdnbOy9uJP5o1pxnvM",
+                        "run-mode": "core-model-1-4:RUN_MODE_FREE_RUN",
+                        "phase-aligned-clock": [
+                            "YVeiPwRShBgjzQZvC8Zx7SnUMwm6JiLAdZK2vtNM43XDTX0o5SV5KiRoH5uiofKt7uoCXbhT6ewZ3pf1ha6TlXiUVMcjUXE1j2D95M2b1r34Qi57l30yTa"
+                        ],
+                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                        "encapsulated-casc": [
+                            "KF1zLQQazdQYZIkSTLZo8vZgf0uVhtA11ttEbjOCowAn7Mf0x6pxBgFIg9Dxv5roqU2B5QdtfFQmjXmIVDgoUV6aXBAkyTIYFK"
+                        ],
+                        "name": [
+                            {
+                                "value-name": "rjHYz8nJ6ACZ6Hm9wUaSw0XU1ekgC6hVqYUR69scJ43PEqR2c1UA1JnVQHbsNsf5i9Opiht1dxJRPsT1tFCnpZi7ytrdOGb6QZn08JUm8vdXXZYqEsNVj52JrtX7a85S7lS84Muc9z16yZxdkc0va3fto4AycxibS3jOPFSZfTXNLmS5zTsBWz4cDwLH3VLOY4CGCnxRguw1RpY",
+                                "value": "ajT6SXaolV5oJQ4HNznpWU8chE6834q5nj388ewt1BJKkOs7nHobConT2tT"
+                            }
+                        ],
+                        "encompassed-clock": [
+                            "zSzgZS2utSYSlt8xN7dsLeEaUA9zvWk4GUcxEe2ZYSSkdSR1Z4lDaRNXjWoOKJKivOQ12K1TCLdPDWIu0W73NN0ZBoNeZqwmemo96h2A27ix3STVO1YuGQth78n6yUlN8BOfSQHMXZb0S4NyXM2Dun"
+                        ],
+                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK",
+                        "extension": [
+                            {
+                                "value-name": "hL3k0UX9ZxFm8ER8VANw0c7m5A4rQqx73Aj3n8cexRAGnsOaUtGUFF9C753XvsWy3ftifFwNoZtLj9NdCt0909M7eH4B201X7ufe1D1pum2NvPT7aT9aUVh0udBo5ulcYsqZ6kgAGigc79b9UkjO7AOuNhSSDeWtGekEyA7fSnjRom0iHbYGLEayV3iq9eTHsde1Nl8xAjgYF88ej6V4K5ux0EX1SIBcVP5A257Cofs4nsiyq5u2bQz3u",
+                                "value": "5e6yqTnwtpBsT0HdWWF6u5cQ7fGyiaOfoMNGx2c0jGk4y1hmPOsbLw1KLHaWJY3ZCRF9LK15ql9Yejc37EeLbfvOOGKxwOo1x42iO4f6hhWwA8rzMGkPNIECgg1M4qFtmIM2ET8Va4jCcLcQjoy664Amku1hUGK8goaUiiIke1XqE18XhG4oCwCX0D6McQUkf47pePBsIqKfrTc"
+                            }
+                        ],
+                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED",
+                        "label": [
+                            {
+                                "value-name": "qb3Nu7VulrXmV",
+                                "value": "7fereB8uMCS2nMngKNrGBNNo90I6mDxlKLMQfNcTp4VFQjVt6f9zUOQ4Oy223zgFd2vsHHlZD9ElkrGiyPKtvApb0reVTuA6oXq6wDX1MBm623htK1W8tljtExoxTQviNVgbr5cdGycAtl36mReP4xaJ5q8Qgw0Vjg6KlaYTI2m4npaB9gidNsOKSXB0tBVMKTpX3fRDhdHwuJ7DZhJNJxpBm0BHuom"
+                            }
+                        ],
+                        "encapsulated-fc": [
+                            {
+                                "uuid": "b2a34af6-ab8a-4945-88a5-519457cd5fe9",
+                                "service-priority": "-9223372036854775808",
+                                "supporting-pc": "ZZLvas94HPX1iKqfIsR3txRjGYtJMwhEwU9GniC4ZAX9cfpUHgP3GGmexQXbe7PC1Rbg1Nc1n12rhre",
+                                "layer-protocol-name": "core-model-1-4:LAYER_PROTOCOL_NAME_TYPE_OTU_AND_ODU",
+                                "forwarding-direction": "core-model-1-4:FORWARDING_DIRECTION_UNIDIRECTIONAL",
+                                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                                "name": [
+                                    {
+                                        "value-name": "b0SflKZ4WGmt668UPsvyjY395aOtlrZwkRLFuCJqb5Lh4T3LezjxpnGuxmXTGOhSyVx2x8kA56R1RNN5e6uDl20LhPwXENH4A6Y0eaAbgkd070XdYkIcmIXDyls4010B7YBl8bxhvKhuC6HsqqEN0ti",
+                                        "value": "ODuPEuqMs1Zt4wKA8T4CZM5q4B5"
+                                    }
+                                ],
+                                "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK",
+                                "extension": [
+                                    {
+                                        "value-name": "fM9etR5WDApZOKDd9Pl684hqMXmnzzNGeWVHFSvasM18owlxlHDlDNLhCZFcrkSx8F6FpBPKfISDee2rNGMqlp",
+                                        "value": "Xgf1HrU6zrc6JNNtUvlxBrA2e"
+                                    }
+                                ],
+                                "fc-route": "BX5SWgt4jGXMpJ7JXsee0XfRlTeLz0CbPz3DQoI94xWm8V55fjkf9z6mkdZT5C4M3ZpTfZ3coRywEvCTOO1PfZ3zc3shxp3AgluwkpIJ887MDJxjpy1Ey4dC7yMEXHf52JBf0bY8j5MOHj86K9DadQMlgyRdg6jaHMpHYfH9ltYUFYSp7vzcelpuMhAUfL4XxuwnJ6pWzfI65Bv4Y4g4iGr4P1Q4EUT3girSoIGPXpW20j6QoeVyMm",
+                                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED",
+                                "configuration-and-switch-control": [
+                                    "0W53kNuMNpy0T8PzE2agx7WpYLyvjCnjyseLfIx285VT5CkKEu04tOtjA1OLEb44EjPLTmG1k"
+                                ],
+                                "local-id": "07XGqSYfn1tevBsy5oafvRsLXFabc9Zc8OKyGAFWB8aYBCpGSzVnif08U2jYbi2j7NJFfoBRwDH776F0xAfQH8Yta9rmjmxi1hYgFr745P34NJ4lbc3TkTeu2GId28w3pmbWFj0C0WHFFD0QPVB1OQwIo6OiekdvyosdzkIrgp7N2ZwKV7LBP9c5g0nmcsSKRkPiwxKFORsJQYt",
+                                "lower-level-fc": [
+                                    "9bc11e2d-913a-2fa6-a64f-f01427c75d88"
+                                ],
+                                "fc-switch": [
+                                    {
+                                        "local-id": "pliJqFGOy1OL6Dx7jDBvYFIh6u1ckrfKEpt441Lu2rf05MZohBL8gupfYiraKGUgXflTg6nixujugaSqLwyU0P9Q7A0J9V062dSjb7BICM5SXPaAlAudpv3p6407R05T5X4g5GRHk",
+                                        "wait-to-restore-time": "-9223372036854775808",
+                                        "profile-proxy": [
+                                            "ol3zT4OYXbGxmi1X7Tn7sQl1CDAEZnkfJnGusmshp1HMjIBquYqWHLPjgpP7F1egpVKJ950z6HdhiOAMF0ImDpxLHeSmgYCFLmoVrgmp"
+                                        ],
+                                        "control-parameters": {
+                                            "reversion-mode": "core-model-1-4:REVERSION_MODE_NON-REVERTIVE",
+                                            "prot-type": "eMwKUUqLdV6DdKsVg2Dl1Ng5wDtcuUQAGnct9C6mpcZvWkq5m3qnJGsfbNkFHa7gpjByNHU5MMAA60FkW6zFE1UQG6nf9vvyGYZuyTzkx1Mv1sPXqguWhhEXn25wpA55rWrZH",
+                                            "hold-off-time": "-9223372036854775808",
+                                            "wait-to-revert-time": "-9223372036854775808",
+                                            "network-scheme-specification": "fTXKNhsKzI7wSo2HL4MilffjG3CxKvAZgxC3HWGgwNEgbHYODC6ZRdapgMO19oSqOmlvi1DHGaXJRVymqwd9CnrKafDjwwJkKXH3QcCxmz85nGsN5FWH3fj5vXo1l0d5XU0N6CclclqrTSeQ"
+                                        },
+                                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                                        "switch-selection-reason": "core-model-1-4:SWITCH_STATE_REASON_NONE",
+                                        "name": [
+                                            {
+                                                "value-name": "rhLuS74ecmKgLIcLPVEUGBKLSHjJgDxHVi3Fh8TuuvC7dOS2BoPh0zUK8dloRS5E21jk94GDAaKNYuIrLxADYvn6IIursr5usoOtlm6VwIAm5iNQHgtxLIDliZNKjSeD9V7u95pGOZUTaABRQ4hBE",
+                                                "value": "WOMByXuEADrzZBFg9l73ehvP1lLiOh4D5IevFA185tH4Wmk5Hs0NBouCJ7MqoRVlz1I7CKfH5WE1bY6SiYyUm2oYabgq2bEtcmsO6HobE24PS2zb17Xf2l54wluqo8MBnehtWxxszB9kEAnxAkMCFKG452uub8Xyn6TbEiv5Uwpq6MXG6BaEdQIjT4FWdumsA7veq0kcoJCmor3"
+                                            }
+                                        ],
+                                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK",
+                                        "switch-selects-ports": "core-model-1-4:PORT_DIRECTION_INPUT",
+                                        "extension": [
+                                            {
+                                                "value-name": "PNfBTenr7FVain14tdZxDjAEassZgLc6zszsyXLFuzPNWIJhVIHrT953CpVSbZQCjq4RfIwJ9doXW76JHNaAX8wrxjbIa2cuk9lrRK20XrPLqVv0JFsGFQ7d1iNcc0Go9TPSDSKtbzetuBt59OLOEK1GVHS7HqwIjdAX5ki8TwCf8Xlh",
+                                                "value": "Y5iJZYEGIDf81Xjfp8cJqduXHBXEW6iV"
+                                            }
+                                        ],
+                                        "prot-type": "vkij2TlhFu9lMRUaFj9YztKzBMtTiHzN2R7WKk5hOeCs6pCLIMB97mIJ84uqL36FM5BopGG5Vax1z1E9FfbNBLoCPK2BG08s5KJuihz5rY6TSCUxS5clJAPylK11KalQM4c4dEaxC8qmDcUna6ITzqjUadNUf0C15PXat7HX8ZkLc6",
+                                        "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE",
+                                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED",
+                                        "configuration-and-switch-control": "rz8f9UM1u8wTxhAM1O2ZiHDFXyY5Mg3dP3kYX7Rr7ndFwFrputgM2TjRjaW5qSa7VvXTuOcB3hgrXzQjU6XWS9FbjC9BmjIhGx2al7MgoUHduxogvm5nvKrGeA9ALJKsgECtLgJ2bq7xPwNcSSsfvTNJlWc6FWyVA3gejZgmhnT6TzaDjCKOv",
+                                        "internal-configuration-and-switch-control": "yQtKP0ynN0i3eC2mYbKK9vbk1uWLbkbB2EdRxL7kLpg0TamKmYmvmxHfTw04IbxKIKu7vtr9Kz9EKng6eCtA13PMzHJhLgTl1fsoATxllGR5W73aBoCCrjgSSZ1DgVY92qxDc5YxDHuzGxBhN5Lfo17h11M9WDiY3Pt7Ujwy00ZGpBP5GAkXuj6nkSw8vOZrvsqqEPQEHHd7aU4R",
+                                        "label": [
+                                            {
+                                                "value-name": "U508WIjHFQvKkRcUYz9orlsP44bsn6PacPa0qtzXb4HvVLpLkq2LLuAIrD2GKRQOz0GRlfOwb",
+                                                "value": "TY8bJsBL5f8xXzaZfMJYsaQ8T4fzsqWmoWx0g0DlfLS4c24kHFi9H0as4p1xQPT6LiY1iCmyf6Cs0yMH5WJMWT61i7y0WjZzBXATrOjHUW1VuNusJd6x6dyhkY9998IK6bwxZP6ML7z8U3Av9G37Ttg6kqftyPew0C40r2M5ad5Wgxkh5fpZIFX254owTC2U6YMx1qu3DzZL6b3cqk31R0VPWj"
+                                            }
+                                        ],
+                                        "selected-fc-port": [
+                                            {
+                                                "local-id": "c5ZCl28jIkTx9r3l5fKbHo1oWrAWfSbrX2Va4VtMgncpGfCLmePVDQbr9LnovyPlBCvxyZkOew5UDIxZWeMr5YKeB0vZyck1PPzfGL3U90GMA6DxkpQpfBwJB1I1d2VUJm9i744g5L2FRx4bONt4oZNRSnSXhFSS11a8Yfg30aAJHxUwkfsA67jYu3ODJyvKrGLpN1kFcNoLka9wiBYoAhfWk3z3B5O2Drkis",
+                                                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                                                "name": [
+                                                    {
+                                                        "value-name": "XwrdiDfj1xVZWngbkt6TwzQctlDNDYkAuDFEhVYasLao8irkLp6aYWmsaS7NQrgc5VReQPobsqrsJTNmiTw9H",
+                                                        "value": "tRLAxtUFFRAwXjddmxEN0fGNBRy8071lZEVoZH3Eyv3vG8J2GfQGuol57TdZ06kRC87BP28oy3L6bm9RBRpXfK3fv8eo7zfJHfdwhdMPgqWrMXbgOA5Vd8aI9p6gQeRxtWVK9Asp0gJEdUM1mSWzSZa1o896m1DHXqsZ0MgS2ZpfLb88VWzOVJPbSZh6SMOHd8G5UXQWWf3AibIe7hU3TB6LsoRkaF2fNAdzx3vmayWkJwyJFkEyWKbo03"
+                                                    }
+                                                ],
+                                                "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE",
+                                                "extension": [
+                                                    {
+                                                        "value-name": "F0gKWUdkUKs5Bbr7IMG3HaR0YIrzD6gaYoUUj87dKzalLBkloTo53g51QptlnJvd7q0iy7vaGFvj9HExA3uwbrp1QSn5tSjBajTAqhK6O7qXP4mhZQF2i540Pj6j3pMeAFO0Or6DyosnlPxcFcfP9bQZuOap5WDFtkFiLDNbU7zfWYjuayjcJ1b5PdvU90zCk6MXCr9wzADvyWRAv3M64PcM2HG3H8G26kRIMSedkRASGslbvZhzPtdJ2UNKU",
+                                                        "value": "E0FvBjgHwAr7l7rGaWxrnmNB6PnLz9651LBCXJkljLkEKLcUzKdXY0qWIFH9OFfPjIkgrwBK9OhTzlN1X0QOTgKBVkKBZRiazCq08UDhIMa97PaXQ0LJ8ncVzOorGHB7j28kODBopExotAdbsYMteYoNFN6lmIsFCsZi"
+                                                    }
+                                                ],
+                                                "logical-termination-point": [
+                                                    "bc478ce2-7d3c-9c53-dff2-7724bcef25d4"
+                                                ],
+                                                "selection-priority": "-9223372036854775808",
+                                                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED",
+                                                "port-of-internal-fc": [
+                                                    "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                                ],
+                                                "label": [
+                                                    {
+                                                        "value-name": "3ADigdvPDqdZsLNNnbdYQyCpueASfvti6Yse4YVHg8yJMdw1oJZe9tDDH6oWBR6zQzFUpBtxB1gneEoCgfIpIe3qkjeNadfSMUE3n7AZ0Je6fDAvKjNtxILJ1Rw34LWIysLVseMkX1r4w1AgcnBB5mkYeR1auXTUiwIKCu4rnnwTh62tlD5i0hg6098n71hhqZ12mXuBd0vuYpPb2M",
+                                                        "value": "U4BS4K1rJ2B0ksTnGJJiWBFqz47K6U5TYGLUiMe2HPU19OgQpR8lsND1RKDPEIIugmhz0vtHcnBl3JbsBjF3YaXHVspr37Obl5KmAd3Mtw7w8bZJuwElHt2uOrVRrJ2E"
+                                                    }
+                                                ],
+                                                "is-protection-lock-out": false,
+                                                "fc-port-direction": "core-model-1-4:PORT_DIRECTION_OUTPUT",
+                                                "fc-route-feeds-fc-port-egress": [
+                                                    "kAPPFvbMcp6sMYOFpk8Wi"
+                                                ],
+                                                "is-internal-port": false,
+                                                "role": "4I7D0ipavc5KdzLagBkJAUzITLl5RljNWirWBQ76V4J8vmaMXmnygW8azm7iHj6vBpk4fj32fMaK8co6zMEPAERa0ZkAaq5DPhIXALZPx2sxeQDNC9D5Om7OdrgnSm1zDBw6eoVDq",
+                                                "address": [
+                                                    "dDsFQE8HqBNhRsWwz9S9tqLWp3TKB8RODcmlQuU8XHhO25dBe5KIvnwNihxThhzUtV8bh2beCtVEy8fF5RfB6DggUN14WsQhgYsxTwEvRz9hzgWE7b75OnlBbex7GnhWeJu770uYrDg0T4ESgMPW12pcgWcWctTi4fh4fL2Goay9f4TvIAjKCBWSp0GBlzLiG2mN"
+                                                ],
+                                                "fc-port": [
+                                                    "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                                ]
+                                            }
+                                        ],
+                                        "hold-off-time": "-9223372036854775808",
+                                        "switch-control": "core-model-1-4:SWITCH_CONTROL_FORCED",
+                                        "address": [
+                                            "2s0xH0zwjGVsKwSX0HECwbquldyNBs5DV5bu5C1oiOI2ltSd2oHzz83UdtzPOEkBBv5GZYX9FF4"
+                                        ]
+                                    }
+                                ],
+                                "supported-link": [
+                                    "69Ks1GOQ97i2W3"
+                                ],
+                                "label": [
+                                    {
+                                        "value-name": "5fvLKZApuS3WT2hYr1qrUu4M8144C99zgEl1vNiZGlOrf5hy7H0T4WF4XJ9rKaT1G6UbTc3rpRTwW25VC5HG1eCQQD9sN2ll8fx2jAlIje779c3L9Cj2IVSyz11eWmA4u7YNzco",
+                                        "value": "qvZzHUcQovS7rCxSvy6jNGg9F6W6icQJHQagCnY1SI0bcx3IY21DA9M8gIeyN59mNkDhztaj4angAqQykK3VTP39phIceRzT34buxlOtobKYtsoOcrJ68E7xVHK2zjVufYZMcF8AQSqbkGRpZsn76uEU4oWDzJZOIYtUDBmllMpxkgWjJjqPGWBKd"
+                                    }
+                                ],
+                                "is-protection-lock-out": false,
+                                "external-managed-id": {
+                                    "manager-identifier": "A3TgK8u9Ykc4j2HcLKlExxxNrAeITsytwkB8sY9ialmtfVF0F0x5q4SREYryrRTPbnPDlYVnbaQr5njDgQIyVshrqIRJrLqD0f8d5WAh6qI3F1GVKglxICY1cQKEtb9ti9Go58F3yf758NTSWehEJgxVYirrlsMDCkTzsqDSFKXGpQqlXISGYptOzV7UfTqR5",
+                                    "external-managed-uuid": "jxCWh9G6P5X8jMQ3kGsNu2ABOQm6zraSQMO7Nm5vk2DvGly010OnUgQB64zyvJidnZcblhGxcj2SEALxtrMfHCQGGi631o8pnkABt80Fj3qXv3mYu8e3CWJaePdg6lxlxZ"
+                                },
+                                "fc-port": [
+                                    {
+                                        "local-id": "A9zR34lCKI7OzpSm0cwO3NXWf9Sl7LvzU4qP0ErKmryNIi9Iuyoplldsn5NuQa3C6lj6ZLQd4h0Mz2u4ASlV5zfsE2WndRRj5bq4O8iSpawZc03MKgHPPWimR6BWYs73vpZjy93XkzWwrRjb8S1XHbbqhMm77t2CT2Wj3ZgnrdUSW544XXUw05",
+                                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                                        "name": [
+                                            {
+                                                "value-name": "9",
+                                                "value": "ihREbtpdhIh9YwA3qk0ngWl5IR5GGfqYo9uzCLFMtOVkknfDH70YWd3E59cDgCtwDY58JCU5qPhLcooTwgJ"
+                                            }
+                                        ],
+                                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE",
+                                        "extension": [
+                                            {
+                                                "value-name": "Y92kAvWBAJq3oyT4d6BjCw6yD5GEPy1Gz3S9yOK0qa4OBXTOVmZyTY6o3EUK4VqDQiMgZo",
+                                                "value": "prl52aQIYdHoYFmeA08lXVDALWf1Nvi4Wv9YG0yw5gUVNg9g89B54eyH2NAHiTL7gVXONwkKEeFruOHvPaATh8sbN2TYNE54r2S6q5Q4jvoGb5b08DLpE5Ar8lpN0mRjhCqHz8MSEaqH7tA77dwL"
+                                            }
+                                        ],
+                                        "logical-termination-point": [
+                                            "f7872522-16c2-ce17-fc7a-083c8517e7b3"
+                                        ],
+                                        "selection-priority": "-9223372036854775808",
+                                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL",
+                                        "port-of-internal-fc": [
+                                            "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                        ],
+                                        "label": [
+                                            {
+                                                "value-name": "uNYrOb44FxAjnxr7al4s2dd6BtR7KBreoiF",
+                                                "value": "tB808AjwZCv1PruREHX73H7FiyTyIqC31C41cfp3SU5HdzrR8gZbX6Q7wBFfThiMTeOXu51m06VdFmXNDORsUzAibfpWpAJaOp0iu1EmZsswOpbjd2MZue9FlztK9cNXtN8YGEcx6E3V36681KZ"
+                                            }
+                                        ],
+                                        "is-protection-lock-out": false,
+                                        "fc-port-direction": "core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL",
+                                        "fc-route-feeds-fc-port-egress": [
+                                            "SiR1LFb1Z94iyAqTt4Y8Yw4RveWjIQns96tMMEGDFKNecdZxhXG8lCZQIN9iDoKEv5r9J7MgJrmNElkNbSVouM74zgm5F6B2bUbMTX3CgphUDCHGuv4RhbVJkiORghTsc4e5T"
+                                        ],
+                                        "is-internal-port": false,
+                                        "role": "BfkyT6jWnBf7RXNzMcnG4GEN4LIuxWY13arWhKKweSDXHiwmvT2rAzewcOTBCRCFUVtbG6zMYcJFu81R1WbtnhSz6L2AuFggsBr0H0Mx4odrw6apUlLhDDIBgLbCijTKVcLu5p21N7sjdvJ0QmhlZSW7v0BNjmp6z2BwsvxfCSzHnaH5wZrnJfmefXTzcixLl8hNDG27ytPVvw1Tnk86zucPk5gwgN9BOigjYarxwgk1EdN2xV07i",
+                                        "address": [
+                                            "m6cIQwZkOHTWlDsvW2upCCoH010Z6bckag20EUcstXhOAJboLFOf94Xa6P1415o3mq30c7lF4ClwlwVZ4Be5FbfL19PUedXAwStIZOgViBjv06uWHJ1nM90NiIzwVwZjgsU7822iD"
+                                        ],
+                                        "fc-port": [
+                                            "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                        ]
+                                    }
+                                ],
+                                "address": [
+                                    "7idekNF6T6x6c8LZBGmX5XgxRnFpU0mTjz7DmEJgK8eOhZ"
+                                ]
+                            }
+                        ],
+                        "sync-ltp": [
+                            "1c7e2c79-af6e-8d12-d18a-957fe616ceeb"
+                        ],
+                        "address": [
+                            "FBTx7ZkjH6DW3Kd9rPC2fehz7taru1n1C8yJZKUGRqvM2IVmppoxEF6D084u9jnDjWfiy9Zhrm3uWZQmg6LULJyDRu0SGnvZbKaKM11dn5zjWhxcni701xEK1wCHT0z5KJPwKQC7NbiBtQGI0FJ2cfE5L9Fw9eBTXiiz1UyG5QiqyY1zDKtHR7Mugr0pxubmEtVFntekcwLKmMjRoEy7MctUwlc3PnqmIdT5z"
+                        ]
+                    }
+                ],
+                "supporting-pc": "hLD2nRGHIWd8VZloMRKQUr5cNNiHSRG1uc4R3CqMrEUmv7D9YnZLO4PuR73BQJDkVz4Z3uDu8pJwxmFvBF8hJYLt5G4OiH8d8c4czzyHZ95ovLTYqUg1STuPAzDS8EX9IUlhtTRk3WIqHuhZox18ivPSWlCXZs6zejRH4AU7wuq6YH5e66eo",
+                "server-ltp": [
+                    "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                ],
+                "connected-ltp": "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5",
+                "layer-protocol": [
+                    {
+                        "local-id": "LJbvTJbfzVOOlA6mEjdOoVVim5SxXTDBCO6ophvQ4jEqTDMpWZdcM1v06nxV82wLQC18LwYQPv8A8U04L59x6Ep41W09ZwMH1NPMbGu0bCtbol79igyhUXlVUlXLSBsLpapAIUtLoOWN13OjknAecW269RJTs4EJ64cOQFz6lvLeqAxKX0Z1OT0XKJJ4NnOTj0z1x80SvL",
+                        "layer-protocol-name": "wire-interface-2-0:LAYER_PROTOCOL_NAME_TYPE_WIRE_LAYER",
+                        "vlan-interface-1-0:vlan-interface-pac": {
+                            "vlan-interface-capability": {
+                                "configuring-pcp-bits-decoding-is-avail": true,
+                                "ingress-vlan-id-filtering-is-avail": true,
+                                "port-and-protocol-based-vlan-is-avail": false,
+                                "statistics-is-avail": true,
+                                "configuring-service-access-priority-mapping-is-avail": true,
+                                "max-number-of-protocol-vlan-id-groupings": 32275,
+                                "configuring-ingress-tag-filtering-is-avail": true,
+                                "supported-sub-layer-protocol-name-list": [
+                                    "vlan-interface-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_EDGE_RELAY_COMPONENT"
+                                ],
+                                "number-of-available-traffic-classes": 19,
+                                "supported-interface-kind-list": [
+                                    "vlan-interface-1-0:INTERFACE_KIND_TYPE_PROVIDER_NETWORK_PORT"
+                                ],
+                                "available-pcp-bits-interpretation-kind-list": [
+                                    "vlan-interface-1-0:PCP_BITS_INTERPRETATION_KIND_TYPE_5P3D"
+                                ],
+                                "drop-eligible-indicator-is-avail": true,
+                                "configuring-pcp-bits-encoding-is-avail": false,
+                                "service-access-priority-tagging-is-avail": true,
+                                "received-priority-overwriting-is-avail": false,
+                                "egress-vlan-id-translation-is-avail": false,
+                                "admin-shut-down-is-avail": true,
+                                "tagging-and-mvrp-is-avail": false,
+                                "vlan-id-translation-is-avail": false,
+                                "restricted-automated-vlan-registration-is-avail": false,
+                                "number-of-available-priorities": -41
+                            },
+                            "vlan-interface-status": {
+                                "statistics-is-up": false,
+                                "timestamp": "2022-01-04T16:36:25Z",
+                                "total-bytes-output": "-9223372036854775808",
+                                "total-frames-input": "-9223372036854775808",
+                                "interface-status": "vlan-interface-1-0:INTERFACE_STATUS_TYPE_NOT_YET_DEFINED",
+                                "total-frames-output": "-9223372036854775808",
+                                "total-bytes-input": "-9223372036854775808"
+                            }
+                        },
+                        "wire-interface-2-0:wire-interface-pac": {
+                            "wire-interface-status": {
+                                "rx-sync-role": "wire-interface-2-0:RX_SYNC_ROLE_TYPE_FAULT",
+                                "link-is-idle": true,
+                                "eee-is-up": false,
+                                "performance-monitoring-is-up": false,
+                                "rx-level-cur-list": [
+                                    116
+                                ],
+                                "tx-level-cur": -107,
+                                "pmd-negotiation-state": "wire-interface-2-0:PMD_NEGOTIATION_STATE_TYPE_FAILED",
+                                "loop-back-kind-up": "wire-interface-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED",
+                                "interface-status": "wire-interface-2-0:INTERFACE_STATUS_TYPE_NOT_PRESENT",
+                                "pmd-kind-cur": "QwOR9tvBAl00L6leeOC81s2srpJBi7q0v6RErm81A8Ul67zkN3kPvm9PDTiVSAVfGFU7TU0t2UG8T7kHbEoy1xnwixs27fiFM4EGYx10jI0dHkUSQarJHGgSeAUdPcLugp2eW368D6lli759",
+                                "receive-signal-is-detected-list": [
+                                    false
+                                ],
+                                "signal-ordering-kind-cur": "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI",
+                                "pmd-is-up": false,
+                                "link-is-up": true
+                            },
+                            "wire-interface-capability": {
+                                "wavelength-min-list": [
+                                    -1796535863
+                                ],
+                                "supported-signal-ordering-kind-list": [
+                                    "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "rxlevel-high-threshold": -112,
+                                "isolation-is-avail": false,
+                                "supported-loop-back-kind-list": [
+                                    "wire-interface-2-0:LOOP_BACK_TYPE_EXTERNAL"
+                                ],
+                                "short-reach-mode-is-avail": false,
+                                "wavelength-max-list": [
+                                    1999491012
+                                ],
+                                "unidirectional-operation-is-avail": false,
+                                "supported-pmd-kind-list": [
+                                    {
+                                        "pmd-name": "qutF3zzzuqI9H3uuRu05Ga4BT4shD3uVqXAto12SkL1TOnnyJgvqqs1bwmt2hXXHMq32r5UDINxp2MPL2cbkE5w3rZ5AOUaskduEighTVGaXtZIvbUQIReDadAK1uUlH7PdiXmbS3lPwcpTfbBX2Psc22XVpJ86RPb1Mx4wApdYtDSIOlGJb0V53KTsm1q5Rt6v0a2tr7rU",
+                                        "speed": "bCrxa2IbPF6syyOsQTbjRGb1AEkA6echIDOTxoWn42P",
+                                        "duplex": "wire-interface-2-0:DUPLEX_TYPE_HALF_DUPLEX"
+                                    }
+                                ],
+                                "configuration-of-number-of-bip-errors-per-ses-is-avail": false,
+                                "auto-pmd-negotiation-is-avail": false,
+                                "required-medium-kind": "wire-interface-2-0:MEDIUM_KIND_TYPE_MULTI_MODE",
+                                "temperature-low-threshold": -98,
+                                "maintenance-timer-range": "YnXdjZ2OrxCBNC42aB2iEmTNUG5aYccOs91L1VzskcW7OS1Yl38ZpTMbrSmqWq6oz8asVBVgNJntBpjXkkWC5BNxt1Xpr3G13QlZr877RustLEi6YeA3PnsappsQl8JgQ5f95mgXJBqufIs5OU0watyzK0hX0TeQQl0VI8SjJaFQK0VrUOX49nvLoNJoyXfgi73SfW3ZYJPBJD",
+                                "supported-alarm-list": [
+                                    "DjRIsed5uSOTiD0yW7CGmqKdgt3R4yLHRuhbJvg5fXQyAQYoP"
+                                ],
+                                "mii-kind": "wire-interface-2-0:MII_KIND_TYPE_XBI_300_PIN",
+                                "rxlevel-low-threshold": -45,
+                                "auto-negotiation-pmd-selection-is-avail": true,
+                                "wavelength-grid-min": 307880712,
+                                "performance-monitoring-is-avail": false,
+                                "auto-signal-ordering-is-avail": false,
+                                "configuration-of-rx-sync-preference-is-avail": false,
+                                "eee-is-avail": true,
+                                "temperature-high-threshold": -108,
+                                "admin-shut-down-is-avail": false,
+                                "mdi-kind": "wire-interface-2-0:MDI_KIND_TYPE_FIBRE_CHANNEL_STYLE_1"
+                            },
+                            "wire-interface-current-problems": {
+                                "number-of-current-problems": 107,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 23742,
+                                        "timestamp": "2020-02-27T08:12:04Z",
+                                        "problem-severity": "wire-interface-2-0:SEVERITY_TYPE_MAJOR",
+                                        "problem-name": "0KatlZRInNFJ5F0tnGEZ4SHAvOL7cES5g3yBUibh5QS3vLwSraJvUqXq7JpbfhgvcP67ZhgW79ZvUwfdyRAt9pLg8asfrIKEpQDo"
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-10-04T03:13:10Z"
+                            },
+                            "wire-interface-historical-performances": {
+                                "number-of-historical-performance-sets": -5465,
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "period-end-time": "2021-11-02T14:01:30Z",
+                                        "performance-data": {
+                                            "es": 653779412,
+                                            "ses": -1446488605,
+                                            "low-power-idle-receiver-ms": -2019208259,
+                                            "low-power-idle-transmitter-ms": -1406518787,
+                                            "symbol-error-during-carrier": 801122460
+                                        },
+                                        "history-data-id": "wglVFnmBcApGACLJpWd88nwX2h50Rr2gHnbmCyXO0evBRgcg4podFU2Hb8HVzKbgZevCMkq",
+                                        "suspect-interval-flag": true
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-11-14T15:46:06Z"
+                            },
+                            "wire-interface-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "performance-data": {
+                                            "es": 114933596,
+                                            "ses": 1014168012,
+                                            "low-power-idle-receiver-ms": 1355594258,
+                                            "low-power-idle-transmitter-ms": -1897634069,
+                                            "symbol-error-during-carrier": 544920262
+                                        },
+                                        "timestamp": "2020-11-19T13:29:09Z",
+                                        "scanner-id": "nSTxc1QVLmcuZBtTOkNSOCtinCKJeeutZf0bgIY25bo4EJPk4DcK7F2uhF5nTzQKHIOXrMRoP7ktRaNVNSFUpAgHfmW0NNLunrkOdb43jpo2z4XeWu0d4gUjuJci",
+                                        "suspect-interval-flag": false,
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 69
+                            },
+                            "wire-interface-configuration": {
+                                "auto-signal-ordering-is-on": false,
+                                "number-of-bip-errors-per-ses": -32257,
+                                "short-reach-mode-is-on": false,
+                                "transceiver-is-on-list": [
+                                    true
+                                ],
+                                "fixed-signal-ordering-kind": "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI_X",
+                                "interface-is-on": true,
+                                "performance-monitoring-is-on": false,
+                                "remote-wire-interface-name": "q1bZbc1fWZSsE5tBu4V1DvvbuzjkUgDcaOblS4sOVk9AqC3UyZVcuifQRy3EGGQQmU36YwUMI3m0x",
+                                "restart-pmd-negotiation-is-on": true,
+                                "maintenance-timer": -2001328733,
+                                "problem-kind-severity-list": [
+                                    {
+                                        "problem-kind-name": "45miZh",
+                                        "problem-kind-severity": "wire-interface-2-0:SEVERITY_TYPE_MINOR"
+                                    }
+                                ],
+                                "auto-pmd-negotiation-is-on": false,
+                                "eee-is-on": true,
+                                "loop-back-kind-on": "wire-interface-2-0:LOOP_BACK_TYPE_INTERNAL",
+                                "rx-sync-preference": "wire-interface-2-0:RX_SYNC_PREFERENCE_TYPE_MANUAL_SLAVE",
+                                "interface-name": "4SHh12cS6CwNl05oBsFHzuxZ4gYt",
+                                "unidirectional-operation-is-on": true,
+                                "isolation-is-on": true,
+                                "wavelength-list": [
+                                    -697052725
+                                ]
+                            }
+                        },
+                        "ethernet-container-2-0:ethernet-container-pac": {
+                            "ethernet-container-capability": {
+                                "supported-fec-interleaver-kind-list": [
+                                    "ethernet-container-2-0:FEC_INTERLEAVER_KIND_TYPE_CONVOLUTION"
+                                ],
+                                "maintenance-timer-range": "c09S45z0MBMezRhHPaJh2FFZkJDqbeGf6Q8aNz3rbHGKqXrf72o2I3T2EwkID1XJJXUoxPQIwokWlE3kGrmgm7aSEvshoi0ZfMfEBXeZlzVy5YTLh72vf4oLrQ2P8UGgzOU2L92ZAXpFOaq",
+                                "supported-alarm-list": [
+                                    "ktphJaIz4qAY6QpUCsyLupdjOSZZbX9viyM1AnsEN2uTK",
+                                    "Gfe6SIv61jY1a9Qjx0Rb1jytXlok706F7kL0U86Vj4Ou6wNDwxGpQfTGs90z1Y69aR94R7Rb3yx9WkEtRlSIsDgUE8my6sH8cI43PV6SlDUiYqDHDnh5Tx0xFe5DGELSePW3D2OYyA8o0L5E1fBUEtjkHhPoVBgai45VZLMxlUNeyKKzZltEPMQo3FMR8VTjRY6QCSfXF235NNwE9ZaQDS6zqTiyG3Jx1QgvAnt7qwc5c"
+                                ],
+                                "statistics-is-avail": true,
+                                "encryption-is-avail": false,
+                                "performance-monitoring-is-avail": false,
+                                "available-queue-list": [
+                                    {
+                                        "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE",
+                                        "available-dropping-behavior-kind-list": [
+                                            "ethernet-container-2-0:DROPPING_BEHAVIOR_KIND_TYPE_NOT_YET_DEFINED"
+                                        ],
+                                        "available-drop-precedence-kind-list": [
+                                            "ethernet-container-2-0:DROP_PRECEDENCE_TYPE_MEDIUM"
+                                        ],
+                                        "queue-depth-configuration-is-avail": true,
+                                        "wred-profile-per-drop-precedence-is-available": true,
+                                        "available-scheduling-kind-list": [
+                                            "ethernet-container-2-0:SCHEDULER_KIND_TYPE_WRR"
+                                        ],
+                                        "max-queue-depth": 425442602
+                                    }
+                                ],
+                                "bundling-is-avail": false,
+                                "supported-header-compression-kind-list": [
+                                    {
+                                        "header-compression-name": "r9Wzv2Hvqe8fMWE0nAVCaZFa5ZMezYKS7ykut1ZT770UVEMj7zN9rscojYCLWfDVNPpgJo1Qn1CbyguFI9G9BSxNR2yNh3BWT05Ch6kE0PPyXb5FkLOOEeBn892p4DdXEirVhMrht9HqkM6FpMlVSWi0Xlh1QvZmNq9W4BdxKUYWyWtYAOLtK4tzhLB78suNSDKP6PeIC4Fa000tPMWrIh1RUuY2WkQGQsvOhKxTO4WH4OaLsY5af61",
+                                        "mpls-payload-kind-list": [
+                                            "ethernet-container-2-0:MPLS_PAYLOAD_KIND_TYPE_NOT_YET_DEFINED"
+                                        ],
+                                        "compressed-protocol-layer-list": [
+                                            "ethernet-container-2-0:PROTOCOL_LAYER_TYPE_VLAN"
+                                        ],
+                                        "header-compression-mode": "ethernet-container-2-0:HEADER_COMPRESSION_MODE_TYPE_AUTO",
+                                        "compressed-header-length": -2934
+                                    }
+                                ],
+                                "support-of-management-frames-without-preamble-is-avail": true,
+                                "explicit-congestion-notification-is-avail": false,
+                                "information-rate-min": -1049212927,
+                                "fec-is-avail": false,
+                                "burst-size-max": -13322,
+                                "ingress-policing-is-avail": false,
+                                "supported-fec-redundancy-size-list": [
+                                    "ethernet-container-2-0:FEC_REDUNDANCY_SIZE_TYPE_2"
+                                ],
+                                "egress-shaping-is-avail": true,
+                                "information-rate-max": 726728592,
+                                "admin-shut-down-is-avail": false,
+                                "bundling-group-size-max": 79,
+                                "supported-fec-interleaver-depth-list": [
+                                    "ethernet-container-2-0:FEC_INTERLEAVER_DEPTH_TYPE_24"
+                                ],
+                                "burst-size-min": -30798,
+                                "fec-word-size-max": 11919,
+                                "supported-loop-back-kind-list": [
+                                    "ethernet-container-2-0:LOOP_BACK_TYPE_BACK_TO_LOCAL"
+                                ]
+                            },
+                            "ethernet-container-current-problems": {
+                                "number-of-current-problems": 118,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 8275,
+                                        "problem-name": "9WMYCUtA8FoD61zQDFUznUewu9kS8kvhg9fS3Il3fJHdK83gOQP3K4z65MZe6mvevDZzdcutV3GxcCNSsDN4zfaE19KZv8dTL4kYgOj3S0B4CoOWTt0sI2ZJcJAzROsuKMt1tM4lEFh8W54HqW29Z1K3ClCu1XYLBjE4YJhugyD4vzMWwO5nPHqj2UNVREzlPdhFWza57N9veNrKBo7i5",
+                                        "timestamp": "2020-05-11T08:36:49Z",
+                                        "problem-severity": "ethernet-container-2-0:SEVERITY_TYPE_MINOR"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-10-12T17:24:25Z"
+                            },
+                            "ethernet-container-historical-performances": {
+                                "number-of-historical-performance-sets": 20830,
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "period-end-time": "2021-12-01T08:10:47Z",
+                                        "suspect-interval-flag": true,
+                                        "history-data-id": "7iP3AxOe9fedE1lpXglcyWai9AwFXF4XXMSxbGDlNKyjLTJA9WMzSOR1gnz62v3RhNhtlUO0Eekh7V",
+                                        "performance-data": {
+                                            "queue-utilization-list": [
+                                                {
+                                                    "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE2",
+                                                    "max-queue-length": -2001252961,
+                                                    "avg-queue-length": -816551495
+                                                }
+                                            ],
+                                            "fec-uncorrectable-blocks": 609402308,
+                                            "tx-ethernet-bytes-sum": "-9223372036854775808",
+                                            "tx-ethernet-bytes-max-m": "-9223372036854775808",
+                                            "fec-corrected-blocks": -973376483,
+                                            "tx-ethernet-bytes-max-s": 646641560,
+                                            "time-period": 1077506218
+                                        }
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-02-09T20:01:35Z"
+                            },
+                            "ethernet-container-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "timestamp": "2021-08-16T06:39:06Z",
+                                        "scanner-id": "B6a2QMiQWgfq8zIVvnaTSCj3Sqfex7B0dLVVpdLelTEtkehPCjBuVUpNdFTKEmCJ0xEpDivY3aknot50MGnzAMeNj8pXu2yur5M4nh3ijfFIIKAuiX3TK9y3hQTEKr83wM8L43",
+                                        "suspect-interval-flag": false,
+                                        "performance-data": {
+                                            "queue-utilization-list": [
+                                                {
+                                                    "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_EXPEDITED_FORWARDING_QUEUE",
+                                                    "max-queue-length": -1498175555,
+                                                    "avg-queue-length": -280358843
+                                                }
+                                            ],
+                                            "fec-uncorrectable-blocks": -114018907,
+                                            "tx-ethernet-bytes-sum": "-9223372036854775808",
+                                            "tx-ethernet-bytes-max-m": "-9223372036854775808",
+                                            "fec-corrected-blocks": 652360460,
+                                            "tx-ethernet-bytes-max-s": 770937566,
+                                            "time-period": -781714169
+                                        },
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 75
+                            },
+                            "ethernet-container-status": {
+                                "timestamp": "2020-04-01T07:39:30Z",
+                                "last-10-sec-data-output-rate": -690802185,
+                                "bundling-is-up": false,
+                                "total-bytes-output": "1784684497162793472",
+                                "total-bytes-input": "4679581078370020352",
+                                "interface-status": "ethernet-container-2-0:INTERFACE_STATUS_TYPE_DORMANT",
+                                "loop-back-kind-up": "ethernet-container-2-0:LOOP_BACK_TYPE_BACK_TO_REMOTE",
+                                "statistics-is-up": false,
+                                "last-10-sec-data-input-rate": 583476172,
+                                "forwarded-bytes-output": "1112322300262188672",
+                                "performance-monitoring-is-up": true,
+                                "forwarded-bytes-input": "5996860394913808384",
+                                "remote-site-is-faulty": false
+                            }
+                        },
+                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                        "hybrid-mw-structure-2-0:hybrid-mw-structure-pac": {
+                            "hybrid-mw-structure-status": {
+                                "performance-monitoring-is-up": false,
+                                "segment-status-list": [
+                                    {
+                                        "segment-status-type-id": -18885,
+                                        "operational-status": "hybrid-mw-structure-2-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED",
+                                        "segment-is-reserved-for-tdm": false
+                                    }
+                                ]
+                            },
+                            "hybrid-mw-structure-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "period-end-time": "2020-06-30T16:41:36Z",
+                                        "history-data-id": "jkJfQlsa63U5mw5p7gFjxOPtMTxxXw2gREozZQJ5Tv2818p0g4kNL19xUy4K5Y0OugflYZiSmlSgthgJeApZBqooYk8Vi0",
+                                        "performance-data": {
+                                            "rx-level-avg": 28,
+                                            "es": -708442049,
+                                            "unavailability": 2092385676,
+                                            "cses": 564397950,
+                                            "ses": -1654112775,
+                                            "rx-level-min": 48,
+                                            "time-period": 1675618074,
+                                            "rx-level-max": -63
+                                        },
+                                        "suspect-interval-flag": true
+                                    }
+                                ],
+                                "number-of-historical-performance-sets": -10081,
+                                "time-of-latest-change": "2020-01-13T07:33:37Z"
+                            },
+                            "hybrid-mw-structure-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -5568,
+                                        "problem-name": "txJj66fKb9CNPvnq4uOUioTQoHQ9ioXLWzXUx4FId9n2ECtB69voqg6OQ",
+                                        "problem-severity": "hybrid-mw-structure-2-0:SEVERITY_TYPE_CRITICAL",
+                                        "timestamp": "2020-12-05T04:39:07Z"
+                                    }
+                                ],
+                                "number-of-current-problems": -61,
+                                "time-of-latest-change": "2021-09-19T23:18:01Z"
+                            },
+                            "hybrid-mw-structure-capability": {
+                                "supported-tdm-structure-kind-list": [
+                                    {
+                                        "tdm-structure-name": "gAWy2bOo4a0kD6c5YasPYScSev11JCrZ5nxZylnCvnO0l06k2y11idTxANyjpZameHmM3JhqZ5rcYpw0Xp1fvNE5AdhR4rej1sXW36e24Ff24DUTVW1qBFn3KwMPQ00RkPNoW1q0zxUv3OhYCig5XD8I2VpSNhJ06oo2hOUQeOehvv7ZNn5C05c2SBMySvyRLWT3CGTQmZZRu6J9lOMe",
+                                        "tdm-segment-size": 1819405282,
+                                        "max-number-of-segments-reservable": -32
+                                    }
+                                ],
+                                "performance-monitoring-is-avail": true,
+                                "supported-alarm-list": [
+                                    "EsVcciK34GP7inS1JS0teZcokS2yDSHhcutpM5kQL1XWgIP0sHlGGp4ThYjURS43mpk9vxR8yHWPpLHRt2p1jmMAk6mbQi7dI"
+                                ]
+                            },
+                            "hybrid-mw-structure-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "suspect-interval-flag": true,
+                                        "timestamp": "2020-07-03T13:36:06Z",
+                                        "performance-data": {
+                                            "rx-level-avg": 45,
+                                            "es": -1304161967,
+                                            "unavailability": 1664643930,
+                                            "cses": -1506779181,
+                                            "ses": -1354683665,
+                                            "rx-level-min": -92,
+                                            "time-period": -2081306983,
+                                            "rx-level-max": -127
+                                        },
+                                        "scanner-id": "gQipdyPmEwcAtcE8XFmGAZl2cdDM8KYotgOGOv2s16Unizvg6KOyB1AOe5AfPrDaHjJoPDIIKD5U4t225QAGR2mY7PdOgIZX2IdJdWjXrpSnKUpPDZnm1Kc8zpOH8Nw2nKDBGWqZdamXXLEsK2OLE1L5izMifiku2XXAUgz7qNXfyBHavwN9pyeH0007jctd2rGOH7NZVKfteWwJkjTJK7jK0bJbf",
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -127
+                            }
+                        },
+                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                        "extension": [
+                            {
+                                "value-name": "PJ04tsa8Y0l41eoEaraF8HyWUXQlwRges8iNAkVql8uemKTw434cCC0wrRKQA04U0ezsymKLu70QRLeVOaZiM0G6JqObiSXiYwCoKnaeu2WdN29td0LZSrXtSLE2vtdlRPKBcMPGODUBGV4TVPKG8A9SdGVJ98W1XGu2kcA8PmJv9Fg5m1DvBMfOsapuaev0UZ273ufTRZg0wxXTqAoTfDzHGZ3I5yIZqC6t7eeQ5vIBUyuk0KdfgMPWDSw",
+                                "value": "jfAJJy4IEbqJG9lAHHMHsRXAvEo1wUJP1bqLCntgyUSeV5GuMkb6b0GGE4H3ZjS0mbD"
+                            }
+                        ],
+                        "configured-client-capacity": "OZHiPynp1Sd3PN3w3VmOxOfBdhuDUvJAujSbJ7BCZOxHtA5worlVgsolJLYvgA5LLPWuWp6O6Dnz6s6uTjh1DFmnidKzFQcqx0MuqSawnx5lZ3PKmYE0wSfO5ZnCHz27AOt0yDoO2t11pRDLH9Dd2K2ZChubRwijdLbDgzjiUlbj4HXLQsZK5TCHa6K1u3czGn5POo7JJjUN0RrIcilhbXY",
+                        "ip-interface-1-0:ip-interface-pac": {
+                            "ip-interface-status": {
+                                "errored-packets-output": 1917633442,
+                                "last-10-sec-data-output-rate": 1818245174,
+                                "forwarded-packets-input": "-9223372036854775808",
+                                "errored-packets-input": -2081465647,
+                                "ip-v-4-address-cur-list": [
+                                    {
+                                        "fixed-ip-v-4-address": "4TrV4BHrRQKVpbsJcTZER0riKyJoT6qXZJK3crnVi7QHabinW9TN9kXLKy9vEskD34zgoWbGVUfX5pc1q5GAhvd23npHHCcKGL04z4CmYJk38wWzuu1LZeF2t5BazNV7zN40RGnPqzKq5yZzUSdTZSNsPgvo4iwv5Av",
+                                        "fixed-ip-v-4-address-prefix-length": -126,
+                                        "fixed-default-gateway-ip-v-4-address": "KwqjhRhHIICtVnsG3MvjhMfraCpC0eKKK34TUdtuV5XRkhpn4UzdyGFAj4cjaP3MSZyE41006YJi78ybU7plN4VY08h2PdOH4md9n"
+                                    }
+                                ],
+                                "broadcast-packets-output": 1943182120,
+                                "dropped-packets-input": 1044380356,
+                                "loop-back-kind-up": "ip-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED",
+                                "dropped-packets-output": 154968890,
+                                "unicast-packets-input": "-9223372036854775808",
+                                "forwarded-packets-output": "-9223372036854775808",
+                                "neighbor-list": [
+                                    {
+                                        "neighbor-mac-address": "l3SwbS4eM3D7QzVHz3YBK3ij8EwhUBq7xaDI2HWGKsGt1tato0484mrcTXtNqLMXVqxPZmnKOV5Ho7aM77U3tdfe2ATtlGi86QXXcdzS0EzpLK3LRQOc3Wj6ocrKSJSQzIODNfnNUX4xz8aiYRm1NFZ3SiNC2ylt817VgmAajFAK",
+                                        "neighbor-ip-v-4-address-list": "K2DBhwgWwkGOZjIpEcxFbkVxVYJsql7agKExgMlEY2lYd3nJ7Nga73IU1jerEluU50jmMF0LHdBUhQvoDLzDO9pQkw9YRvLXv4baJ3Niho4q6zGCk771gwRs2SjMg4BL0EVCHAUQYR8XiPzDWGE54nxZ7QLn",
+                                        "neighbor-origin": "ip-interface-1-0:NEIGHBOR_ORIGIN_TYPE_DYNAMIC"
+                                    }
+                                ],
+                                "timestamp": "2021-03-23T08:18:25Z",
+                                "forwarded-data-volume-output": -47147369,
+                                "total-packets-input": "-9223372036854775808",
+                                "last-10-sec-packet-input-rate": 1046098094,
+                                "last-10-sec-packet-output-rate": 1884637066,
+                                "vpn-binding-is-up": false,
+                                "multicast-packets-output": -878587875,
+                                "broadcast-packets-input": -1748454769,
+                                "last-10-sec-data-input-rate": 1452083110,
+                                "interface-status": "ip-interface-1-0:INTERFACE_STATUS_TYPE_NOT_PRESENT",
+                                "statistics-is-up": true,
+                                "total-packets-output": "-9223372036854775808",
+                                "multicast-packets-input": -1231248733,
+                                "data-volume-input": 501014424,
+                                "data-volume-output": 1509789850,
+                                "fragmented-packets-input": -612315201,
+                                "ip-address-origin": "ip-interface-1-0:IP_ADDRESS_ORIGIN_TYPE_STATIC",
+                                "unicast-packets-output": "-9223372036854775808",
+                                "forwarded-data-volume-input": 1824798992
+                            },
+                            "ip-interface-current-problems": {
+                                "time-of-latest-change": "2021-10-17T11:40:29Z",
+                                "number-of-current-problems": 93,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 4493,
+                                        "problem-severity": "ip-interface-1-0:SEVERITY_TYPE_MINOR",
+                                        "problem-name": "YjeR66Fnx4rHcl0oq728blmcBPTQqiQgBW7A2EPsJ81Vu1bU15V4rhhU7aLpstFVqEnkidETlGGHzKusPpx8yO3FQOWaht5z7tUiyy3T6KtGmX0bexkMdnk33gdcKbMJwG146XPdzaLV7L6djq0wFksIsxV4IHO6fHalESqd2b02P7f0pfw5rQFUosY61E5gmfuSZUY2YY4N5bNnjbsK2Zwisngt1lKfB60s0YuQWqv",
+                                        "timestamp": "2021-09-10T23:09:58Z"
+                                    }
+                                ]
+                            },
+                            "ip-interface-capability": {
+                                "burst-size-max": -29361,
+                                "statistics-is-avail": false,
+                                "supported-alarm-list": [
+                                    "Q21ZCxRsTMG1i5qPb6ZCQqUmXTxciTA0WCZq1ISNnzOxweeHcdb3EYptROF2I8UEKM4DuPqJo6gUcvupIxsevJAfyfhgn3MZPIDcx3VN2cAeH4DhB5o",
+                                    "PYef5nntq9kgJXs9TfWVrw10sFaWCyVjo1ytgVOGW9OGY8PRoDEH2GImlSiXi59yYHTeDINrJt7HCOrSk5zmD9IQ1TGbYPBPwv315ItOcsnO9GytE7Hhhh"
+                                ],
+                                "information-rate-min": 2099120200,
+                                "maximum-number-of-ip-v-4-addresses": -13342,
+                                "fixed-default-gateway-configuration-is-avail": true,
+                                "maintenance-timer-range": "CVkOZl4jlyP04aOQfWFs3ljDxqEYR20lPk1OF50SDPSH0Hp7v5zyiK4P2AFTCx6kK78hc8aQY2pQBHX7EpxW1BD43jPyIWSs30Kg1UYROfHqWwxAN4wPy2LtlA13wToAM8IFUGwIV50Ktxk9uJY2LBnYbpTAah2OhKtbiRM5WMPic2rGLhAwSXm3efvpxx5GhzSziwx7imp",
+                                "admin-shut-down-is-avail": true,
+                                "dhcp-client-is-avail": false,
+                                "egress-shaping-is-avail": true,
+                                "information-rate-max": 2076131352,
+                                "burst-size-min": 5966,
+                                "ip-v-6-is-avail": false,
+                                "maximum-transmission-unit-max": -6385,
+                                "ingress-policing-is-avail": true,
+                                "maximum-transmission-unit-min": 4761,
+                                "supported-loop-back-kind-list": [
+                                    "ip-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE"
+                                ],
+                                "vpn-binding-is-avail": false,
+                                "arp-proxy-is-avail": false
+                            }
+                        },
+                        "termination-state": "core-model-1-4:TERMINATION_STATE_LP_NOT_TERMINATED",
+                        "mac-interface-1-0:mac-interface-pac": {
+                            "mac-interface-status": {
+                                "errored-frames-output": -1988165515,
+                                "loop-detection-result": "mac-interface-1-0:LOOP_DETECTION_RESULT_TYPE_LOOP_DETECTED",
+                                "forwarded-frames-input": "-9223372036854775808",
+                                "timestamp": "2020-04-04T02:00:15Z",
+                                "multicast-frames-input": -1784204875,
+                                "unicast-frames-input": "-9223372036854775808",
+                                "last-10-sec-frame-output-rate": -1347644147,
+                                "total-frames-input": "-9223372036854775808",
+                                "multicast-frames-output": 613311682,
+                                "dropped-frames-output": 1134128180,
+                                "statistics-is-up": true,
+                                "forwarded-frames-output": "-9223372036854775808",
+                                "flow-control-mode-cur": "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_RECEIVE_ONLY",
+                                "received-ethernet-frame-format-cur": "mac-interface-1-0:FRAME_FORMAT_TYPE_NOT_YET_DEFINED",
+                                "last-10-sec-frame-input-rate": -2044088449,
+                                "errored-frames-input": 1515515530,
+                                "loop-back-kind-up": "mac-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE",
+                                "interface-status": "mac-interface-1-0:INTERFACE_STATUS_TYPE_NOT_PRESENT",
+                                "mac-address-cur": "vWV1pw2GrfMUOWOaaglOxsDyCJIz2JjpFfiWLdv4shYh5Er8NEWc6rKA3s9XbteJAxFdK2hcj8thMNpzrdLqwv0",
+                                "broadcast-frames-output": -1576868145,
+                                "total-frames-output": "-9223372036854775808",
+                                "fragmented-frames-input": -115676255,
+                                "performance-monitoring-is-up": true,
+                                "unicast-frames-output": "-9223372036854775808",
+                                "broadcast-frames-input": 1557360556,
+                                "dropped-frames-input": -1914431265
+                            },
+                            "mac-interface-capability": {
+                                "supported-flow-control-mode-list": [
+                                    "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_SEND_AND_RECEIVE"
+                                ],
+                                "statistics-is-avail": true,
+                                "broadcast-frame-suppression-is-avail": false,
+                                "supported-frame-format-list": [
+                                    "mac-interface-1-0:FRAME_FORMAT_TYPE_802.3"
+                                ],
+                                "admin-shut-down-is-avail": true,
+                                "maximum-frame-size-min": -15125,
+                                "loop-detection-is-avail": true,
+                                "performance-monitoring-is-avail": false,
+                                "mac-address-configuration-is-avail": false,
+                                "maintenance-timer-range": "YK12JVXOohA2u39688SgFkO6T9ifUyOLaPFUCuASL2Ug64m647mBrbHdcRs6q8JAQpmsLPdxR7FP3TVZ0iAktaxF",
+                                "supported-alarm-list": [
+                                    "DjZnMPE0apPnOzmloifkh7uSrXUQuNH77HmLoSLqatNY22cikrCBq6lSVfIh3ip2RDNfwqGGTlwVnI6H1IbsHwcuEUMz43BVGg34",
+                                    "B"
+                                ],
+                                "hardware-mac-address": "G8JWdoIf5TnFGOhJ5gYsSCMbhlYpDURb2t77RPmPBCm9qDTnLJPwduHvPxUlrEwl7wsQdHxGbTQBoBRacyGp2fMKMz5e5tzcZUUdBsTMlBfK4YM",
+                                "maximum-frame-size-max": -20038,
+                                "supported-loop-back-kind-list": [
+                                    "mac-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE"
+                                ],
+                                "link-loss-forwarding-is-avail": true,
+                                "loop-port-shut-down-is-avail": true
+                            },
+                            "mac-interface-historical-peformances": {
+                                "number-of-historical-performance-sets": -25641,
+                                "time-of-latest-change": "2021-06-10T23:03:30Z",
+                                "historical-performace-data-list": [
+                                    {
+                                        "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "period-end-time": "2020-08-18T09:06:27Z",
+                                        "performance-data": {
+                                            "mac-pause-frames-ingress": -1876609201,
+                                            "tagged-frames-ingress": "-9223372036854775808",
+                                            "jabber-frames-ingres": 546188378,
+                                            "mac-pause-frames-egress": -1160013303,
+                                            "mac-control-frames-egress": -1178744009,
+                                            "oversized-frames-ingress": -309165135,
+                                            "undersized-frames-ingress": 904557514,
+                                            "frames-of-1024-to-1518-byte": "-9223372036854775808",
+                                            "frames-of-64-byte": "-9223372036854775808",
+                                            "frames-of-512-to-1023-byte": "-9223372036854775808",
+                                            "frames-of-65-to-127-byte": "-9223372036854775808",
+                                            "mac-control-frames-ingress": 1827717174,
+                                            "frames-of-256-to-511-byte": "-9223372036854775808",
+                                            "tagged-frames-egress": "-9223372036854775808",
+                                            "frames-of-128-to-255-byte": "-9223372036854775808",
+                                            "fragmented-frames-ingress": "-9223372036854775808"
+                                        },
+                                        "history-data-id": "y6z1OXjkyxWI0fpnW1aMweq9VcyDEu35tu6hjiBJPpsPEJ4sK77gdpq0BYE8kz5N3b4ntx6iWq0AaWVU323hrlhUbN2vm7bqbfFENDPB4H46DZSz1VQk8ZejN9P980rj7YQMCxgyekwJjoicc0ok",
+                                        "suspect-interval-flag": false
+                                    }
+                                ]
+                            },
+                            "mac-interface-current-problems": {
+                                "time-of-latest-change": "2021-03-12T01:55:11Z",
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 28050,
+                                        "problem-severity": "mac-interface-1-0:SEVERITY_TYPE_MAJOR",
+                                        "problem-name": "rQxWRZETnGg0al2kvOxON3o7ACewpExQv4FeVbZjRfb2s6ePULDHG1Ogv2ENzbvW8223e1e58iZAo6paR2SyWyOjtl62",
+                                        "timestamp": "2020-11-21T17:16:24Z"
+                                    }
+                                ],
+                                "number-of-current-problems": -12
+                            },
+                            "mac-interface-current-performance": {
+                                "number-of-current-performance-sets": -98,
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "elapsed-time": "-9223372036854775808",
+                                        "suspect-interval-flag": true,
+                                        "timestamp": "2021-05-26T13:42:38Z",
+                                        "performance-data": {
+                                            "mac-pause-frames-ingress": 860462438,
+                                            "tagged-frames-ingress": "-9223372036854775808",
+                                            "jabber-frames-ingres": 361918838,
+                                            "mac-pause-frames-egress": -1764542591,
+                                            "mac-control-frames-egress": 1374994490,
+                                            "oversized-frames-ingress": -2097395007,
+                                            "undersized-frames-ingress": -594763935,
+                                            "frames-of-1024-to-1518-byte": "-9223372036854775808",
+                                            "frames-of-64-byte": "-9223372036854775808",
+                                            "frames-of-512-to-1023-byte": "-9223372036854775808",
+                                            "frames-of-65-to-127-byte": "-9223372036854775808",
+                                            "mac-control-frames-ingress": -1928365723,
+                                            "frames-of-256-to-511-byte": "-9223372036854775808",
+                                            "tagged-frames-egress": "-9223372036854775808",
+                                            "frames-of-128-to-255-byte": "-9223372036854775808",
+                                            "fragmented-frames-ingress": "-9223372036854775808"
+                                        },
+                                        "scanner-id": "6SGvmw11olL9Ut2CbvBQnKn2Dsu4egJc9pHvWJocWamQDolGUWp9yM3b7y7lOQxX87l4QJ8ELunhLIXxweG41K78i6l6PKWXR9TzS1ewoBN1bCyHR6DSQCS0IdZpXNeHW7gO1uch5Zi8CIPlOk5FWXxx2wWRb3y7aPO3b0c90uhu4ZPTjMq8JXFDmtuxwVFzCtuNlHOl36H8Xo1gargLoVoChLaFyH6a2BPniEJlC"
+                                    }
+                                ]
+                            }
+                        },
+                        "pure-ethernet-structure-2-0:pure-ethernet-structure-pac": {
+                            "pure-ethernet-structure-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "timestamp": "2021-01-01T02:53:27Z",
+                                        "performance-data": {
+                                            "cses": -317690701,
+                                            "es": 865398786,
+                                            "rx-level-max": 65,
+                                            "ses": -671935237,
+                                            "rx-level-min": -90,
+                                            "rx-level-avg": 98,
+                                            "time-period": 2082510828,
+                                            "unavailability": -45398553
+                                        },
+                                        "suspect-interval-flag": true,
+                                        "elapsed-time": "-9223372036854775808",
+                                        "scanner-id": "qXkKzGfdXiyxDzNIkZyl0Z8pGsP4LCJ4zVO8C3drdMQQdDyxuYKmXLMwdtsQ5cUw7IEBESURwCIJg89K7T7WwLkJ6Ns3RmzQ55kBPeslR25Z36B2RAQodbZbQreHONxLTReAYyWHBTywZ9yICg6PjY19p7Q5VgIG7W8Xn4EYP4mGeMpI2npmlivDqeAdujLt7TjuYPkFUym0kDIn07BeqYRQcr3yCGUCzdYp2b5OJjO4WwjOEU24"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -114
+                            },
+                            "pure-ethernet-structure-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "period-end-time": "2020-02-01T19:53:18Z",
+                                        "performance-data": {
+                                            "cses": -729789617,
+                                            "es": 776470382,
+                                            "rx-level-max": 73,
+                                            "ses": -216456957,
+                                            "rx-level-min": -111,
+                                            "rx-level-avg": -5,
+                                            "time-period": 1615062360,
+                                            "unavailability": 815471274
+                                        },
+                                        "history-data-id": "maehlb54uU0iijYW5TSQwwFB52bkce9ygnHBqFyUrq4JCUyHNipkP4NM7Q7b5gJlvjPVYfHpFD0hxyRdRgxylckk3jv0z6l4p2RfhyEX3F6B5POW6dmjpzvkS0kkYGggI8v0y2PCzNdEDTtB6PMnghI992t7IJnjJTbiVSMmxZ02KtDQbpdjyVsHQNPqpcJ0XMiKE46cV7exsKnv1tPAg9h6P6xeb8e0VpLrl",
+                                        "suspect-interval-flag": true
+                                    }
+                                ],
+                                "time-of-latest-change": "2022-02-05T16:22:39Z",
+                                "number-of-historical-performance-sets": -30176
+                            },
+                            "pure-ethernet-structure-status": {
+                                "segment-status-list": [
+                                    {
+                                        "segment-status-type-id": -31434,
+                                        "operational-status": "pure-ethernet-structure-2-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED"
+                                    }
+                                ],
+                                "performance-monitoring-is-up": false
+                            },
+                            "pure-ethernet-structure-capability": {
+                                "supported-alarm-list": [
+                                    "Zrf3bpDnusCAQpdiUSBIiMT1BU2pUhYTIdOTur8ZMCzC2MMWxfxP1iJvcLM63LRDQFxdYxcKaDe4i0SP7pE1HfwL1iJ4VsHM76ZYw3AGyPCQHuxPM4QljmZkwIgk3Q62OX0kSBSiiu1ZRyOvuEQOSP0hq9BtZzvNoo0gZSy9nz860XButjam1bDrk6MbF9Y3xYboJJx6by43vFxQYA4ZLHiXNW0k6YnvPyMqabodJsg67FXXf1PSB7PgWPB2GY"
+                                ],
+                                "performance-monitoring-is-avail": true
+                            },
+                            "pure-ethernet-structure-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -20186,
+                                        "problem-name": "Io6ClAcfU13UIj2ZYY66OK54EsncpNOZbUCpnOE9Hz3hT6hJWfILZNHv74IwJowMa0bxGIGnhKw2INMw2mhU9YpgUZFvf3iq3tXB3EYlgmfQaTm4fwYgmgx974En7WN2iCDl8tyoPOeRztWPZM5lUuu2y9hxXWz7yclHxT5nzce1F2QwHVRBimvQnEgcAPk9UxIriFOSRVToPBUwoE0GSvpfaFjCmDLg2l",
+                                        "timestamp": "2020-01-18T10:43:55Z",
+                                        "problem-severity": "pure-ethernet-structure-2-0:SEVERITY_TYPE_MINOR"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-08-30T23:08:09Z",
+                                "number-of-current-problems": -51
+                            }
+                        },
+                        "lp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK",
+                        "name": [
+                            {
+                                "value-name": "Wlvyanpc3ic1UNCZBZNmbNW4kW44kI2g3xO6N6aQoeJj1laudXRgCFkWthSNZU3UjKS6Q2X68yhaUrE7onn0UzOoQybHk7CEJuCrprpx0HzU86Tpt8hgHYEqwH7RGBnhYZInj8MjHm5Ps",
+                                "value": "6NYg3xezPC9PlPqI7oAHDLHi4oE16YJcLzsH6y8ObhDo7V76czFPcn78LD9RBSWfjgWhP45SeAgdwfjIGYpSdx0Z21IELwL4FHmmDjeRUm4quf026pVjWNaRPLns98xOHLak4g4YD0gZgg1eGWpuCAljdILmQa3pVdKSmGIZGZQOfR2NGsiiUvtZeedWhgm"
+                            }
+                        ],
+                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE",
+                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL",
+                        "configuration-and-switch-control": [
+                            "fhDrRcHW1vc06Wb1B3K2MWcZdnO3JJMQSh9JlQxeeK7kyid1mY40U8Z8wNb7oPX8Z6ScPhr3TyfrQtt4r"
+                        ],
+                        "fc-blocks-signal-to-lp": "dxVd3Ap2Q6ZZ5YJaF0BAM1HdJayOtXKHnyUi0blRacQ72rhzjS1",
+                        "air-interface-2-0:air-interface-pac": {
+                            "air-interface-current-problems": {
+                                "number-of-current-problems": -102,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -2337,
+                                        "timestamp": "2020-10-23T00:41:41Z",
+                                        "problem-name": "0EZrDt39jfRcliT1Ny6jXzoa72nO5FM5bDxP6sYhHHtUZfNENMQLl6Nk8b0eIEbThIAfaqwK7SE67kDM6lxjrdvzgvFY9RJizcxCCVeKNSIM4dz2yYlZ3Qzjd6hmXTE",
+                                        "problem-severity": "air-interface-2-0:SEVERITY_TYPE_WARNING"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-06-04T07:36:33Z"
+                            },
+                            "air-interface-status": {
+                                "xpd-cur": 47,
+                                "transmission-mode-cur": "tmbm4Dglu20fyM7WAI2dXAjalik4jyPMVS8Rvo4Zi47IIeEbOGoL8zVtJ7p2y6OlYW4mc8dn4k5MqKXfid0rFOMoV4rta7",
+                                "rf-temp-cur": -84,
+                                "mimo-is-up": false,
+                                "tx-level-cur": -40,
+                                "local-end-point-id": "9argCeak3ROtDhciOd2omKRSvPVmY58ZfzfSNq4Q9ScF1gXQu06QKXA8EnmDtuCAVKkA2pibhuQjLG17G7XiXpitNw680BINd3nfsGqB29UNPNUnNJxC1Q5Om4OfFoUSri7LQpfSy1yfPkCCWa6XSbD67rdMP8w9ivM8N1Sd3qtSDXmz7swRv1YDsbh9b",
+                                "rx-level-cur": 89,
+                                "link-is-up": true,
+                                "performance-monitoring-is-up": false,
+                                "xpic-is-up": false,
+                                "remote-end-point-id": "it35BQYu41MpLhm7Qmre5Pf3sz7BJihTMdQf3PBZQgguxvBoRVuOKKK4bRFU1POF2ENXloP4E5ycA1sjWW8yySCKBawuRc2LRPI45x8KvGO5A8hw4hXv1r7uBvYkI05rHGvN5EpAc",
+                                "received-radio-signal-id": {
+                                    "numeric-radio-signal-id": 3000,
+                                    "alphanumeric-radio-signal-id": "MZwGGmQG5Zc6P1Qg5LoiGKQWBBfJoNn2ELAl7r14q5a76So3DEdbg3ZRFfAV2QPHtqUtRNx9SI8QA"
+                                },
+                                "auto-freq-select-is-up": false,
+                                "tx-frequency-cur": -916591601,
+                                "rx-frequency-cur": -603051299,
+                                "atpc-is-up": true,
+                                "radio-power-is-up": false,
+                                "snir-cur": -103,
+                                "loop-back-kind-up": "air-interface-2-0:LOOP_BACK_TYPE_RF_TO_LOCAL",
+                                "interface-status": "air-interface-2-0:INTERFACE_STATUS_TYPE_DOWN",
+                                "alic-is-up": false
+                            },
+                            "air-interface-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "period-end-time": "2021-06-12T03:13:00Z",
+                                        "performance-data": {
+                                            "snir-max": -40,
+                                            "unavailability": 1210726900,
+                                            "rx-level-max": 35,
+                                            "xpd-max": 8,
+                                            "ses": -774128843,
+                                            "rf-temp-max": 92,
+                                            "tx-level-max": 107,
+                                            "es": 471591998,
+                                            "tx-level-min": 78,
+                                            "tx-level-avg": -67,
+                                            "snir-min": -33,
+                                            "snir-avg": -92,
+                                            "time-period": -77112927,
+                                            "cses": 891501252,
+                                            "defect-blocks-sum": -28074,
+                                            "rx-level-min": 42,
+                                            "rx-level-avg": -79,
+                                            "rf-temp-min": -95,
+                                            "rf-temp-avg": -53,
+                                            "time-xstates-list": [
+                                                {
+                                                    "time-xstate-sequence-number": 73,
+                                                    "transmission-mode": "uAYB54iEgTrPms4Ng7boIDCB5IQ5Y6zkypWEt6iJZBzm",
+                                                    "time": -139106169
+                                                }
+                                            ],
+                                            "xpd-min": 102,
+                                            "xpd-avg": 26
+                                        },
+                                        "suspect-interval-flag": false,
+                                        "history-data-id": "FksfKNK7fFDS4dSI3XqALR7oXJQmXQ"
+                                    }
+                                ],
+                                "number-of-historical-performance-sets": -24401,
+                                "time-of-latest-change": "2021-11-10T06:39:21Z"
+                            },
+                            "air-interface-capability": {
+                                "expected-equals-transmitted-radio-signal-id": false,
+                                "duplex-distance-is-freely-configurable": true,
+                                "supported-radio-signal-id-datatype": "air-interface-2-0:RADIO_SIGNAL_ID_DATATYPE_TYPE_NOT_YET_DEFINED",
+                                "rx-frequency-max": 1084101656,
+                                "supported-loop-back-kind-list": [
+                                    "air-interface-2-0:LOOP_BACK_TYPE_NONE"
+                                ],
+                                "direction-of-acm-performance-values": "air-interface-2-0:DIRECTION_TYPE_TX",
+                                "adaptive-modulation-is-avail": true,
+                                "supported-alarm-list": [
+                                    "VasJ1EX7uJr0aYz0DRTF8xu5iguMDBHqM91NFQM2zdUJcuBHlvmtUIq5YMRtoyT2zUH6Cu8bH3NLpokCLGXGgoLe2CHq2ssBeaHQwI2dDHR2XbwJKth0J2fMwWcyhx1vHIm5qgi3X1XMdtnXPEXyG4kcTpCaWDFvm1AE9S",
+                                    "ialUxsowwcFIPJzJKtK0TSps4ff0Sdj2oxOVZcjnpZ5eAxXl0AdLkC5oJlhtysvWZkKRo36NUcTnBJItbNevhcM0p3lXvQMn2oerjk66o0tZJ3sUIzpZL3Ra6cZuUDRXT5gdhmbGmExXz0Rhr98ccZeb35FPJwEutUHK9KingQlPQ469d6liXrt0w8I7EmC79bJiW2FcS0UA5SJaZWsW",
+                                    "6UpLZL8WANL8lQlqJK2LGGqbUkLytv0shqd83d4D0IDeyYE9IGUgecj8wWzSkzkBRpKUCGxvo3JO1fPCVBS2O4ac0J4kbgO2FqXa6mxnp83jnTVamFc2Jn7C63W9kCcR2111fqgxybQV4D6",
+                                    "l",
+                                    "VPL3xTzLnyUyicmkSr4KlEHdnS4bc1y8Ij374DSrbNSlR6FBxJeKfVYCFUNSNd0vp3utyf",
+                                    "C2xXLDvn3eBNuoDY4yEWlJOJ8J5uak9MeGJ0b6felI2H6xx253YjNEUVoZhykqcy6Vyi2FwfnqOu",
+                                    "dWHJAWa2Sv03L73gw76cZH4KbZsa26og2XZDT1xMwxH9xCq3BwgBdcdg4Fq6LGmGEdbp7I3D8KNFf5AQtQrGVxWZce5YUswyxHYEh1apEPWTUxBnf"
+                                ],
+                                "tx-frequency-max": 325195174,
+                                "maintenance-timer-range": "2mlBBMWGP1Le32YfpbshPLcS1jcD8Wf2iADMfrs4s5ao70vxbXG0BSLu3P7bM",
+                                "transmission-mode-list": [
+                                    {
+                                        "transmission-mode-name": "uYq85KIGfzt",
+                                        "transmission-mode-rank": 142022028,
+                                        "supported-as-fixed-configuration": false,
+                                        "am-upshift-level": -68,
+                                        "tx-power-min": -14,
+                                        "am-downshift-level": 108,
+                                        "symbol-rate-reduction-factor": 21,
+                                        "channel-bandwidth": -1811563265,
+                                        "xpic-is-avail": true,
+                                        "code-rate": 102,
+                                        "tx-power-max": 76,
+                                        "rx-threshold": -13464,
+                                        "modulation-scheme": -25462
+                                    }
+                                ],
+                                "encryption-is-avail": true,
+                                "duplex-distance-list": [
+                                    -1212241451
+                                ],
+                                "atpc-range": 75,
+                                "performance-monitoring-is-avail": false,
+                                "auto-freq-select-is-avail": true,
+                                "tx-frequency-min": -1353692417,
+                                "rx-frequency-min": -1913906819,
+                                "type-of-equipment": "fuZt2IP8vYMWwnp062vuYfgGKMgl0cO7GNBIvqRSgvOEK6EQ01lY8twKfM68YUfxzQf486PgtvUdBq4tjhjrKPc0ta0k4fRvY6rY5g7yM1EfkIBDRUXBC1t5bth7B0Cr7",
+                                "atpc-is-avail": true,
+                                "supported-radio-signal-id-length": -11297
+                            },
+                            "air-interface-current-performance": {
+                                "number-of-current-performance-sets": -93,
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "timestamp": "2020-01-16T06:43:00Z",
+                                        "scanner-id": "E3rYAb0T77v5N59tRcHPkUWOXWPgTMBpHUnh5f24fx22Dbvmn53zRRgOFX5qJyQrkdA",
+                                        "performance-data": {
+                                            "snir-max": -73,
+                                            "unavailability": 883624188,
+                                            "rx-level-max": 65,
+                                            "xpd-max": 59,
+                                            "ses": 1912048968,
+                                            "rf-temp-max": -97,
+                                            "tx-level-max": -122,
+                                            "es": 1424202278,
+                                            "tx-level-min": -20,
+                                            "tx-level-avg": -26,
+                                            "snir-min": 89,
+                                            "snir-avg": 100,
+                                            "time-period": -698777987,
+                                            "cses": 1837283434,
+                                            "defect-blocks-sum": 29719,
+                                            "rx-level-min": -52,
+                                            "rx-level-avg": 19,
+                                            "rf-temp-min": 58,
+                                            "rf-temp-avg": -73,
+                                            "time-xstates-list": [
+                                                {
+                                                    "time-xstate-sequence-number": -90,
+                                                    "transmission-mode": "JKs3401vTBAq5pla3YfR9FQyybIsZJKAt4vqXwVQ8n8dMlnIkvzl2iUBtu3s5F2rJyRGWEo41oaFKpn4UPhX7bqAyl2D0W4BmNajryfsXp8zPnvBcMyjQQLobFT3CYFQDP15fhp4yxvfN0RZNhbv0WTbCMf6CMO8tQdAZCFx22FP3",
+                                                    "time": 2069235736
+                                                }
+                                            ],
+                                            "xpd-min": 28,
+                                            "xpd-avg": -85
+                                        },
+                                        "elapsed-time": "-9223372036854775808",
+                                        "suspect-interval-flag": true
+                                    }
+                                ]
+                            }
+                        },
+                        "label": [
+                            {
+                                "value-name": "mYWIw",
+                                "value": "zcwpTDgVrOfJ616r0kGe9PmnTIdIqJfZVLoGoxuPlJqkDxLvJjJK067UGkC73R6RunxSM1AZDSb8hXD18fD9dLVTXx01gZKKe9uS34RyP3G6SbZSqD1DgOpddh6t8I5mSA6NwYld1TkL4bDvGx0Wlp2zH0"
+                            }
+                        ],
+                        "is-protection-lock-out": true,
+                        "tdm-container-2-0:tdm-container-pac": {
+                            "tdm-container-historical-performances": {
+                                "number-of-historical-performance-sets": -24167,
+                                "time-of-latest-change": "2021-03-23T18:56:02Z",
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "period-end-time": "2020-06-29T19:46:45Z",
+                                        "suspect-interval-flag": false,
+                                        "history-data-id": "4lk1l2aSTbow4yq945GLqQO6JRGohb6lwqmJkoBeAZCEp3Nm8l7y3NxMF52Wg99ErnoMLRSdJuR0xwmGJl6M9DzGJtuRCvw4SMQ",
+                                        "performance-data": "wIt58Q9wZ1EL0a25ENxOki3GT3IMx"
+                                    }
+                                ]
+                            },
+                            "tdm-container-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -18066,
+                                        "problem-name": "E4VpACIi2WwB61rcpMdkBvzEZfPglHfRL3gdFZvIN1bL2uYj83EKy5gxk5FxMNppQFCnw0Xc18XWDVfLRLnpRDP3Bm",
+                                        "problem-severity": "tdm-container-2-0:SEVERITY_TYPE_MINOR",
+                                        "timestamp": "2020-12-24T08:34:17Z"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-11-28T04:25:12Z",
+                                "number-of-current-problems": 92
+                            },
+                            "tdm-container-status": {
+                                "loop-back-kind-up": "tdm-container-2-0:LOOP_BACK_TYPE_BACK_TO_LOCAL",
+                                "performance-monitoring-is-up": true,
+                                "interface-status": "tdm-container-2-0:INTERFACE_STATUS_TYPE_UNKNOWN",
+                                "statistics-is-up": false
+                            },
+                            "tdm-container-capability": {
+                                "performance-monitoring-is-avail": false,
+                                "supported-loop-back-kind-list": [
+                                    "tdm-container-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "supported-tdm-container-kind-list": [
+                                    {
+                                        "tdm-container-name": "mWynhfXxp7w65Vk83q9QHMi3vN4epKhDyH1PXQfePLkVGw3BW4sEQCzehDszfBcGi5vfWKlDnFy3bux0qZw9t5nCAPbHqgnAlLQ9v3NTJdOUzlM0ci9xfwaPddpvtM5PxNYVRDGARmmqA9iMjrczPmo2zNx3sDKRiAE9ek",
+                                        "tdm-container-size": 103452110
+                                    }
+                                ],
+                                "supported-alarm-list": [
+                                    "cctdmLjlzvhma1AgYU6loQrU45pdZSG3W1haMAve5EA",
+                                    "G2nwXtRdci78fwm6gUa4VreA1BGZ886OaucZX3c9dkitIwzRqJVd22FWDlVLt1rwnDvlyAmMMwfu2Gdsq1yk3dgyz3cU5vis1OFzgUd2qsol1CNrDdLyrUYSXaM2y5nzLU0TOeV7GbsHN70ilEIMyHEnJiihfFQSrRL85yfDKHdpO5I1JiN9ZjxJuP0BmJmFs7Npy22aB7zid9jOsZQjaf2E4V8iwuXYtDn1Fh3hpDzuEKi6J0"
+                                ],
+                                "admin-shut-down-is-avail": true,
+                                "maintenance-timer-range": "n9ZGNi7ZRPd8RFNhAfMkZ4UDe0QP5pNlyE1lX0dOPqOz5CQFJCRIyEmME4uKt951OYeLYjrGKg7HKXftr6cZKqEhu81XhYQ5OWIEg2cSijz2gGnzNrrpR5Gd5z2mpKk5H2KP4Wzeg08oHwYmXhLHmkUrLPF3zZ88UKXYzo5Pp556BVsrc50qhMR3BxY3o6biJ19ip6ZOb4UNSe64kYnBKeweDuh2t"
+                            },
+                            "tdm-container-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "suspect-interval-flag": true,
+                                        "performance-data": "7W948355ZAT6dCSB1B6IEH57X6ZuQpDX",
+                                        "timestamp": "2020-09-11T03:41:02Z",
+                                        "elapsed-time": "-9223372036854775808",
+                                        "scanner-id": "YaHy3FMxpfr0d9xN6EK5w6VVJK0oDd6unF2jlGQCNhD1j2OpGqm4w9Z7TZwpcCLAaFTnmBZ1T"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 75
+                            }
+                        },
+                        "address": [
+                            "TZcG4SaIcdPf6vVKsDFjOyjaJX19W8f"
+                        ]
+                    }
+                ],
+                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_BIDIRECTIONAL",
+                "name": [
+                    {
+                        "value-name": "wCfAc64BQfdeJfO8rWJsbZCG",
+                        "value": "LSkdplBTBcYz8rpnEvYTj6dfPFjGhZU2Je70zIU2MSBUjS9Yn7JHdWO3B7BK7vEIBLJ3mD58nzVyr4oPc8ohWccycOabbPTFACIO7FXmeKVyObfSjD28HeGT2Q46xQL0klOs0DG7nBF4NMOYhQ6Y5EKZnG5UwIUR3JbWeRVClsy0emYv"
+                    }
+                ],
+                "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                "physical-port-reference": [
+                    "c942beda-266b-a670-ca1b-e78a3653775b"
+                ],
+                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE",
+                "extension": [
+                    {
+                        "value-name": "mztIGYMFudekl1Jqf1BZLQy282pmqjyNSUnqS96encyAd91k3CkOlSQtU8Hdj8Sb2fBMhz0ELq6ZA7b",
+                        "value": "CvrXfai2aS7t0ZEU67GnHyTkY0jy7vbBSvq0FJUPt1ilSOfYNVmml7Hj70K7nNI8i90XKUEdVWyNCNDqARMN"
+                    }
+                ],
+                "ltp-augment-1-0:ltp-augment-pac": {
+                    "ltp-augment-configuration": {
+                        "connector": "07wpeqzDCeErNGQsYiiaCfzpi0iDsCNsCbRIBjm5pSw4q",
+                        "equipment": [
+                            "c942beda-266b-a670-ca1b-e78a3653775b"
+                        ]
+                    }
+                },
+                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE",
+                "local-id": "sE2w1TwGsE9SjUmmOrX0m8rqcxqDut6O00c1LJzdfJ5rDkNjLCb7KCxP9Pkwbikbax4W8E9nf7OKjt345e4IQBpSjJou2Ixc7B8ff",
+                "fd-rule-group": [
+                    "5ea42646-26ca-afda-19a7-ad7f7cc924e6"
+                ],
+                "label": [
+                    {
+                        "value-name": "Xlat59QM7DaHp1D0czfWmRhOhh2D7xQWS0qQ28u1DEI3Gl3KMaG8TPWa6YO6nwU8pcQjlkkQY2TwoPhaRPbLF7VDYBBd0wdpI3IVn2Me4xKke1n6RyRoFE1v8DJ81WxJ07Ff1jt5Qei57F3Q5MeCi88qDJyEF5fx4MF5503OelLeSO4XsbzKbzbOiJkQHzfLmURjVU71fSfZycW0fnLqPWe7xyPe750l",
+                        "value": "RFMLMGSxNR5ZF6eUJEJFKJ4ayjavjvn221FHHpen8bmNhtz0ZbxKMCUcN4I6s50uYF3y4hV4t9RCCivulU67oSkbP29hZ9DPGHnCQaGjkpOOAjiVdo3C9nFYhP78QKXxjd1anAlHZ9wzkGny5q26FH4WobWfVTE76Fhu7u37EzyY8Vo5dibSSfGgqCndo1"
+                    }
+                ],
+                "transfer-capacity-pac": "R4EJk7TBI73ZYFpeVgyVbIVFnWwo4eHNalpvki6Uh9U7GbdtrLovlcaB8yZ4EySOLhj5rhZIjLHZPUt8xJDSVFt4dk0RSSyv1RAs1s2k5JjUDE3aoyVbeg7jB83lSBRUkjmlDpFJ0RvEvq",
+                "external-managed-id": {
+                    "manager-identifier": "49ipD7g5dPbwGTB8FAF9SL0rIexHtO3pXlOst4qyTB5smyA1073TK3ct9K2uq5TfiHHLD7cxB9RXHjRzrUsbPFwYhytzDmOWWnzznLYYUPNt1E3sqnDfU263AzCeNi2JGBb3f111ROvSlqcLFHTsJZvkq0ydiAPY301i1UkKBHuO7",
+                    "external-managed-uuid": "rEgk6ZbujBmJPEbwvfoophbJ2MqospXTW5eU4pgg1CRI93eEaCUzT5bNJB4bTT5PYbJUs02luUVDP19ZD4qp1B4D50OYLLNBOow9gquLkio9jy0XurenUa0Z3HXOkCq91OaheE2zWjA8Jt5dUbAGdtGgaD5u8vv9bFipclQ0wr8fU5kGgUemfUCpqHUy4pHf5Zx9cn9IGiPsn90EWf0b9uBz4nZ0EygBqNKC2UdJc2bz4c50rXb"
+                },
+                "client-ltp": [
+                    "c3794728-dc8b-5233-0c67-0b857c32ada1"
+                ],
+                "peer-ltp": "cb398360-6165-86b2-5b57-2fea3e77edb6",
+                "ltp-in-other-view": [
+                    "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                ],
+                "address": [
+                    "IdBwWJO5JEHviUq7k5JZB1rsOer9cqvVD7jrIZokD5POR8Nb5waGyB1eHsnUSTHoS0PsZ6Evbmb3mY6rm90MK10kloee9VuTNjdMpK9t6kokauLxDDjgEcA0sO6BB"
+                ]
+            },
+            {
+                "uuid": "a01a13cd-d033-ab43-5858-782877f11dfb",
+                "embedded-clock": [
+                    {
+                        "local-id": "4OMScqInLQx0I2ghPsZ33ZGKinVG3vb0bYSfgsC1a2TS491LCSOxKv92KWBNjMNnCxCS07L29wN5GGQazwzb1AdDwOrIt655EzQwyBqz0dEGUmIlThwMRJqfqRXLPUQtmGRUaiuan0Ihnqugz02qCkxU3nFT9nev46i6gM8DEQV18h9HicZUwwGALllV",
+                        "run-mode": "core-model-1-4:RUN_MODE_FREE_RUN",
+                        "phase-aligned-clock": [
+                            "YVeiPwRShBgjzQZvC8Zx7SnUMwm6JiLAdZK2vtNM43XDTX0o5SV5KiRoH5uiofKt7uoCXbhT6ewZ3pf1ha6TlXiUVMcjUXE1j2D95M2b1r34Qi57l30yTa"
+                        ],
+                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                        "encapsulated-casc": [
+                            "1WJ3NWkvNgwqS47c21t1XZtnf4DvJaRKYsGMg093gFt1BsdDlGEiG7GN4baNdTqcl6QBYZw6FR7gblMwTiPrinemyg1L9rPmpFPnFluc4BkfO6MIpB9HYgVowW1ygJMFoC3VPpZUSk9HiVhHoigeybuX0wng79VvDQjt7if0uozNcQmA0DPrOboOH"
+                        ],
+                        "name": [
+                            {
+                                "value-name": "zqEFICVmKz1smUsD41N80zEpf6asr5b1oHy6kmlWNeh18JEcLkkDTR21P5t92w2qeApqOKeBQvCY793Ktfne6ifOnJXp7ZIlr7L8J0Jznmpmns6QAm4yEcmTNbaU2S8mRTuALd11rrnOLmwlI",
+                                "value": "UeF87kk9emUmIL84eLifMJG2qkoWF6prcWAbgMkv06JBSRF6vXl9zUbZ6rNLp55B1xMijZFb5oMP8sVvh9EQVIH19nEzsJ2t"
+                            }
+                        ],
+                        "encompassed-clock": [
+                            "zSzgZS2utSYSlt8xN7dsLeEaUA9zvWk4GUcxEe2ZYSSkdSR1Z4lDaRNXjWoOKJKivOQ12K1TCLdPDWIu0W73NN0ZBoNeZqwmemo96h2A27ix3STVO1YuGQth78n6yUlN8BOfSQHMXZb0S4NyXM2Dun"
+                        ],
+                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE",
+                        "extension": [
+                            {
+                                "value-name": "h",
+                                "value": "Z9Wy1N1GALB0ubbt"
+                            }
+                        ],
+                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY",
+                        "label": [
+                            {
+                                "value-name": "HLryiDDzhlHJg41hIJcqrdsOS18tVBCCfV2xqG6I1Fr9Jkjk4vKnBc3l5bOTMin16qrw6peZ5y0GSj0OHDbiH6vNhby4uVXAlg6jGdaDD3bnm4cVHf5omA3DMBzgppIKxG45L6Ao9MMwQQjpXpFjZBPL4gTtxBe5aa2VgDkqpYO7G7oDw3PwEw9JM34cEihOsjCBWW1dMPckWAXlwER2a0DXVI1s0i8ltKWiyPnkwAEk2",
+                                "value": "Fq8otbhY0cG1EzjNMExAW6pciVEP7GbNZbbkmkimxZn3qGQ4dgE1eVdoIR5PqgCpsGJO0TbpKyta7becjKdxFrOnaTds2HRunsagedFYE81LcfXv023xlJVwu0YwzISX235g8KfMLgpXnesfhnNC6A0tsZZ1zSQBNVKVyRIb778mmsuvQ97OJ"
+                            }
+                        ],
+                        "encapsulated-fc": [
+                            {
+                                "uuid": "19768f15-74dc-c52b-282a-f2e971a494aa",
+                                "service-priority": "-9223372036854775808",
+                                "supporting-pc": "YWFNJ98Q3Wun8zBeDs8EBCaUCYDW8mM6ajLTlTKgI6DQx64ay5G2HRWbPr8POMOY5zSiluy3sbTZ9Q1IVIKuzyGgZO6NAUExloQGSgJkkvbtlcb8UNCtdiKd6ISyuwYPUGoEW7Qgu1KPeNX8tsuGK6TJOE9a27RXNftCfcSJdurjagsDIOjlU5WAJXKL5tAKB4eQgZrltKFD1Z8B",
+                                "layer-protocol-name": "tdm-container-2-0:LAYER_PROTOCOL_NAME_TYPE_TDM_CONTAINER_LAYER",
+                                "forwarding-direction": "core-model-1-4:FORWARDING_DIRECTION_OMNIDIRECTIONAL",
+                                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                                "name": [
+                                    {
+                                        "value-name": "HrqRRnE1w2gK4O76oSRyNol9X2PAys4fLu7CSDvgFDTCs0AQTsgyQ",
+                                        "value": "zFvh73JbbmyaQiFlqcZjOjkp95JhvrL57gm6cXinbIx10cmqodK5wWmx15PowAtvIHCUwMhHuGImKXM1ao6zcs65xNuVfXrYxVK3H2L3Atpli3mtssUEM0KbG66V3pLAkwwTqhO0CddV9rgBTa7x2JIIPPwL69drFJcX01Qv63qfvyIgIIOCrod9dJUkSZDqJH"
+                                    }
+                                ],
+                                "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE",
+                                "extension": [
+                                    {
+                                        "value-name": "4jfdPmtRZet0fIKlkQUhwUzYmwzOLKwP3MUS8nCZu50BGCW0lIaRCJHQf8ESTbAOPuzXKbO68GHOjvHE5RnzsWpz44kP7UEWg5LSgrYg8",
+                                        "value": "5j2MP7v4yP0Yo4UIU1uqPDvsvDTuT11YcWC1VZ5uG5k52eFO72eWFBo2e9wZbqQnekh1kmn0sHXmVvaUpgQ4R66XgvWjNMyT7PUjcibwZ1SNo2zNaiJ1oHYw4MHJzgCy5xJ9HUxyNhdbbNQl5zml9cS5ZrPqHrYFQzGxteY9vbkHYb2VChhDt1JksyK2"
+                                    }
+                                ],
+                                "fc-route": "LjtlzQ09ePzz7U7LcU3Sw7fkMSfq5y",
+                                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY",
+                                "configuration-and-switch-control": [
+                                    "5qQilzvjKb74HrJADkwhT0r3j7lRN0NKqE2L5yXQB4UanvK0P9aJ9BEkA0coSR8avbWBBLjcHdm5IYXx7788IFtjFxzpoHzMKnfl8ypQLLNlCKKBKTKsy5D5ucuKM3wwjDKr319ONW1hzMSjxuD5rh2VloG"
+                                ],
+                                "local-id": "qgnTUNtMINLhktTAMf79CbVAUIVIOEp6UFZOkssU7ecsH5UmcUvP5ihS04sGIJMvoEbB6Ev6KzyjwkFJe2qclzWdEoMe7yBo4NZbjm9VWHesTMb0Otc130fzo1NnrhLwWCz7ZI2Vhgfa2jaJMeKPeRouK4S4lvs901gZBiMSq1UlcX4Z3GOiy5Ma9wem2Gv2zLTa3F",
+                                "lower-level-fc": [
+                                    "9bc11e2d-913a-2fa6-a64f-f01427c75d88"
+                                ],
+                                "fc-switch": [
+                                    {
+                                        "local-id": "FQWMxkB1s6mNNvoPHrxLpw3TesCYQpAo7oaEIDx3JUQoh66ZqDCP1FIg7c6YtGeB4gfFTNAvziTQhRPHujwoY6E6jCWMj2ffivMbaeGJxsrOj9nGsT4jRAh2",
+                                        "wait-to-restore-time": "-9223372036854775808",
+                                        "profile-proxy": [
+                                            "aHw2hIdNw6OYT81rBm0vTaV1DO6W0AW2ik4r2hfrg3h94isFFs2yCXr7Mx4E7SGh4CJ6LQp1LG2PRumwWoWqmfq0MmwL64VaGE8rmyl76nPXSblGA97WopO2LkGRgB"
+                                        ],
+                                        "control-parameters": {
+                                            "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE",
+                                            "prot-type": "7iv8vCSr",
+                                            "hold-off-time": "-9223372036854775808",
+                                            "wait-to-revert-time": "-9223372036854775808",
+                                            "network-scheme-specification": "3l11hBBHinlXUP9QjOYOM5Y96lLQMBCQOvJ5YlNhA06mIfc132HP0FY6SCWx5qfTVYRUbw3Lw976ob8jeP1enZkft8Myq1kl0b73H2P53Wcj0kDe1EsovMwZMipccJp4Up7trWrnLDGLPjZQXj7l5DkJNJNZl4V7t3BNR2auxQ7m2Y4ZhbceGwPu8CltHhA2c3P35ZquQxQSo"
+                                        },
+                                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                                        "switch-selection-reason": "core-model-1-4:SWITCH_STATE_REASON_NONE",
+                                        "name": [
+                                            {
+                                                "value-name": "5Pn74vpr9sBo1cNtwtEFQcZJ8isIzvNEc2L8x2AHv35o8SREdnb3A2EIl6jMB6rN04WyZofmrcKzWt59Q8cibQTwO4iq2B52y1Axp",
+                                                "value": "TJTDaH6gQOoU"
+                                            }
+                                        ],
+                                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE",
+                                        "switch-selects-ports": "core-model-1-4:PORT_DIRECTION_OUTPUT",
+                                        "extension": [
+                                            {
+                                                "value-name": "TOAD6O31SkX9ETipYBTrx2L82iPC6Z6RNyvUnyN7TL8pwqOv1",
+                                                "value": "WqBz"
+                                            }
+                                        ],
+                                        "prot-type": "tPtMMjfSbZvX27CzSA23yszDE5Cx74qALLey4ti7kN5mMzNE9QAIi1dO7Pd6TDHEgN4l9mst9pIWZvs0d2Av4Nc3Cp9n3I2jwYwFdZ0mgIa76v8jpIPlw1o0iyol8ixEg3btUcI3MKaSficF1TSp",
+                                        "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE",
+                                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE",
+                                        "configuration-and-switch-control": "W79ftHAsGQhvItRgV0fJhExbpJRgZs9Nzj2USvnylw4VRN3MFjvWXU0fDRnukxhLQcyIHV",
+                                        "internal-configuration-and-switch-control": "Uj5HbSKXx3lmTfm8L5vfp2x3KJBtiou4HzLKrvAQzV4k2isFoPVNSkIuVbX5zj99SUTjpl2Q86a3puINkDs4P3yKeoPOHYPAKALaWNS4M37bxQQJlaN3dmFsCngjd5LYxx0tcSqYVp1l7R4t2KofY3HAqPTEMxCk",
+                                        "label": [
+                                            {
+                                                "value-name": "zCSXrW8JYJO09QtG7arQ4W1DU9uJxgAZTsWcg4V6GJ6PrrwzCP",
+                                                "value": "yMibGrxhRORQzbMLjJypphoeBPCarsrR6C3M3sWMgFCHRhsa00shaQnLF0NZk6QiIL4EeSimyV4h4ojWhLdjBsW9kJ0EHIWi"
+                                            }
+                                        ],
+                                        "selected-fc-port": [
+                                            {
+                                                "local-id": "lB8GAEcJzwmeqSa4qzGb3ax87Ab67xMl9U1Bq5c0By62igYJHwUKysKF2ND1lpmmkgXKl2CPAJJTRzuz5obDIWaKBGEW5Sah00Ue2o3u7MfRdJii0tNIhPlTvZHtJKKKK",
+                                                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                                                "name": [
+                                                    {
+                                                        "value-name": "YEVT0UxgLKR32RpHAyoNrUE1fnLZZnoX1jI15f9JZ1ETS3skCR7VLDO01zR0O7QPiqJoGS7FLLrwHTIbKI6nlNfeeZ736XKpftFVeMtRpUn6F69qO8F1V",
+                                                        "value": "g9MncKcX1riGnosIgKCvQ9B0zh07bVUr4GO9q06sjg0yFtgN5KiVUMNl3Ns6AmxFUdOd5MFp2FXz0em5YFTKjy6eeylONSlH61UbNrAIZqhZwwXm3I7m8dAmDV3qOo8MqUX5mqNlQ5ceB1AEJH0SUs6qo9Q4qQQQLNV75BkNGo19iCF1bxL6ZKofLejb59TIPHHUi1AQhBRz5wthV6fMQD2uRlFOvrwk856i6G8gaZHfna"
+                                                    }
+                                                ],
+                                                "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT",
+                                                "extension": [
+                                                    {
+                                                        "value-name": "opMK4MHkveySWztTUTsTkXH3fMD59zwpZi134AfsONcKeGv0rYMLNlHU8k09ToyKHzFD1M5PrasxQXyhNkUsFtnFNfOzDebcNJQOvNwXXYmFNUOB6J",
+                                                        "value": "M4irSx8jbmmn255ItLeiA4EgSz4lFFojKHDu6LFh71F1ZKKsnYKY3oeNPa8vIoGsXjO44tl4mS5lvPFSGpQBGWov7oSPMz9KSPGPa1TwUQKhyp9eH0PnW5SV"
+                                                    }
+                                                ],
+                                                "logical-termination-point": [
+                                                    "bc478ce2-7d3c-9c53-dff2-7724bcef25d4"
+                                                ],
+                                                "selection-priority": "-9223372036854775808",
+                                                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED",
+                                                "port-of-internal-fc": [
+                                                    "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                                ],
+                                                "label": [
+                                                    {
+                                                        "value-name": "a9DWRgYl0k1GHk5TsaZK9yKpIJ6PY9e8iR418Vn07gGOALH2WyE56omGZswPtKXDBTFBO2BViaBKViEJJiOPyaopvUeYw3uZW9tDb4ql6252cJDVTsDju1IRNOIbRcaFlDioAJJGLGAXh6L2yolUpVM4JufAyp7TVq9n1S3Eqwt",
+                                                        "value": "CeB2CWOTJAXsW4Uuu1fhjoEk8zYqXsZrGAtboa47KUrzYlVkf3Byr7TsHJSEbS6KkrNJBJIeDaFunAGCDa3XhWpYxhvJ1tlmM85gRFmnH1J5tpzZzCWRqdHYm4"
+                                                    }
+                                                ],
+                                                "is-protection-lock-out": false,
+                                                "fc-port-direction": "core-model-1-4:PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN",
+                                                "fc-route-feeds-fc-port-egress": [
+                                                    "X236xu"
+                                                ],
+                                                "is-internal-port": false,
+                                                "role": "p4HNiP5PmeKxHxBhAo2C89VkOOdz5ZQu4pae673slFSV4lcEJ69Sg44WKivP9db5CdjBle3GUNtY9yvKEEuUAzRkJe1Ss4QWi9xDgtbagF0pdn2J1wEt5nNOtGzVLpK3qhGGCJIToJat6cd0JJtGY9vrPWfslZvD83kLN2w3DGpC",
+                                                "address": [
+                                                    "DJ4spLCjw15nLmV2v1JnI6cFRZ0uC7G7JCA0g4bM5g1IuOL0Pmfptj4cj4GN4eUFQmF6rRLoZM7uBKmi6BIrVMD6JbTNpNk82Z6lIJJIwI4Zkq9jTRKGwgM7jFMJl6Jf5HAGrjgPUkGeKPxDzakXiY4BwQcRWV6TvyrWRHDD1jKL89hzjtwBrAdXipG6dESIcjwWT9rUsbyslH2Eaq8t1drbu"
+                                                ],
+                                                "fc-port": [
+                                                    "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                                ]
+                                            }
+                                        ],
+                                        "hold-off-time": "-9223372036854775808",
+                                        "switch-control": "core-model-1-4:SWITCH_CONTROL_FORCED",
+                                        "address": [
+                                            "Y76HVxcHMDuLo7UNwkt1e3PEwg5U8dUYkSF7hKO3fbPDiBiOVLH1Goy5FvZFITDUDa2VMQY11FEcgWS4AAX8Qvdv0caAXFvBIxoufeohUUl2JdYjFWrwjF1cJ4MHB9ajGqGOE"
+                                        ]
+                                    }
+                                ],
+                                "supported-link": [
+                                    "CA8WD95kO2l5t7QMEcpBEyvrUL7T54hzEhv9rtt7nP5QOVCl7TWLsk5e54Z289CEqZOJshR"
+                                ],
+                                "label": [
+                                    {
+                                        "value-name": "BId6H9oWwWxEwfk9yJmHWXt8HlD74lnxVAwCBMr7BQM7568vHm5wjyE1Ta0PvnfiQLNrx6r8W58138oLvthG2NzNXAvkPKvFniZUoiVkn3di3B3y5c",
+                                        "value": "ZSOEHg126LpD0HCV5UIh9DusGXnfUAmTsaq1jr3p5k251xSYjAftdBVUzi1lKn74px6IQ17Nm2TnrDeK6tdj505wbYRVlY0Dn6l6ZlTlfEBGiPqoawz7wxDHvnDJdvmttHzsUsG97hHhY8F8E6g2DLK90fSeC6z5F8pAs5Bzej"
+                                    }
+                                ],
+                                "is-protection-lock-out": true,
+                                "external-managed-id": {
+                                    "manager-identifier": "sOHxC9gAL1xeC9PyoxGfR1IByeuxmYkGETdh2lJFn8URhBhx1XMSQnlptIWPG9ocUBlPX4uccgVmScTT1GDRVY8oGX5e6trS5MHUJ4YVkT9453PYBsPwrQUZNR6LlxDibd4M92AlVJqSMfIfApL1fxS2pYFCnbUroQdpSNKFxapbi7rSw4LECvGTuevRphaN7o4RbOoAZNM9M5Ta",
+                                    "external-managed-uuid": "EOL1nwvB1f0apF9NJSRxgjoV5pzaiKkOqXQFudgns8qKFrpokgOsA4gxuPAErMtSJbp5oGtRGLtmcSCw1iRBn70JWAngeI0YTp3a5oTE1m0eeuCfNtI2AJLpb0FqJFgu4bw2spGtLyHSUk7HFIJgjmxuncMYRUkN6R"
+                                },
+                                "fc-port": [
+                                    {
+                                        "local-id": "GOFMjalAeEwFG2HUgjOr2aXkPOF8RDbykIcDTx5Z3BEBvdwLwc4rn2L4IicAVf07XcCIBHHEbdgyrMkPQggdaThTbllZAl6ypJg0iYEt3M2uqekhuAmFmEqxZLwsYv0ne8fo6LS2yMwYSQ7ejuLF0b4ROBjM6b1ck8AiUkks",
+                                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                                        "name": [
+                                            {
+                                                "value-name": "RiIziXKMAhEEmvsPH7NS0Zc9rv3EPnuyxd8P2Stua78ovBd4A0WAR1JawEOd1bMzgUg",
+                                                "value": "EKMGJN46ghaQ97i0823wyRJsUv1ah9kOT7uvMrB2AMSKTaCT4Fpvp0XjwQuFZOlLNQgz9JtJvltgo61kDqP2rMmPCImuwIfcqnDz67iukEKICMVf4KanpwcTeznChuGHRk8QjicDWWeqA9yxLIUae74kyjOHOvgxPof0G"
+                                            }
+                                        ],
+                                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE",
+                                        "extension": [
+                                            {
+                                                "value-name": "QUd3drRX94h4yCazaBRAOCnecGc38isZ4xUhYL6ZQn4gZ6H2IyCo2ZCexG9GYCxU1j3S4aRMxNUpMtrm1VKVMe2jUbRLFgFHzJzETiii",
+                                                "value": "5HKy8Ys3InHWp1IBKt811PAKg6vzpNpun12vZmrHK0v11duMzDFAsfcJmzaDmzZJAT7zgq8SqvTkIoY91DJlSN46m6BBFAc7mbGCBGmUbfeMvcVwHxKrkGyzN1akuesQq8k1PGVSV1Ej5APMZreb8EKVFMf91HRrIbkpR8hF9OYfgFTf77q7Db2jX9kQJch"
+                                            }
+                                        ],
+                                        "logical-termination-point": [
+                                            "f7872522-16c2-ce17-fc7a-083c8517e7b3"
+                                        ],
+                                        "selection-priority": "-9223372036854775808",
+                                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED",
+                                        "port-of-internal-fc": [
+                                            "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                        ],
+                                        "label": [
+                                            {
+                                                "value-name": "DvgRVIStfE32Oh1Ktz4i8KNo9uMpukQZPYRDHBYWf2YWbZyFquPyeuWgYAFkNnbum27VwYJL0Az3r8ISCpiJT7ZJzE3mT7R71Q2xGMjymSCNScxvCQevP57oJ2Lu9uCbcwILi1jwMNcw0B1uj7R8cYxN1aiawMlAi4ltXF",
+                                                "value": "Bk38kF1GY9y7dww1xybA4XVE7Z0APxsqRnq42sKTtaSGHgz6OKGSzuozlg1aFltpJTlDd5oG8gfHoONcrmWSIdj3tl61GzqpkLVqIjYQsd"
+                                            }
+                                        ],
+                                        "is-protection-lock-out": true,
+                                        "fc-port-direction": "core-model-1-4:PORT_DIRECTION_OUTPUT",
+                                        "fc-route-feeds-fc-port-egress": [
+                                            "JUbRuwhEZtr3Y"
+                                        ],
+                                        "is-internal-port": false,
+                                        "role": "IJi3b94kfLTGSFNERzHB6GRisBpSyXIgz0cK9gWh1HXTmLp5cYzaEis7TSRkHzs8sESBUGSNnIzBlYHxPgItyasjUcvCDYK5uvzhbj4r",
+                                        "address": [
+                                            "KRwLFm0V1M20TtZpwTIl3UcEYlXeXxdzgJlO5dBYZERLZIavCKQxwU3vg0J5pOFxpSlm5PcXtVAkEKP8mxFSkIfAAYFREcoV4Ch2rmZMhr6N3NVpkA9Eap6KfEBUQSHNuZHNdyzmZxa2k5rwys3AR9l7FOToyAb2rSHwi8ThF3jR0Coq4r1WseV8UGwt8znsj5YB5RSLM3CNFS5BbYpEccE7S2"
+                                        ],
+                                        "fc-port": [
+                                            "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                        ]
+                                    }
+                                ],
+                                "address": [
+                                    "f7vl5EJ9Qi71cVwt49P5S9piMjaeSSo0ZLlXh467m51z0xUWyJTjLbBxuDLnv1nnEAcVFi3Tf4s8tf4TYYcB9G0vjMSHF7WkI87fia8x6txzIClysxat5aYhOJYmQMGqMNx4QytW11oBvJ9X8bq6mgn2ZdoIZW0LCyHs62gZ3EAqfBfgNF"
+                                ]
+                            }
+                        ],
+                        "sync-ltp": [
+                            "1c7e2c79-af6e-8d12-d18a-957fe616ceeb"
+                        ],
+                        "address": [
+                            "kUut1a41kZ0tVqmAs235v3Az73KiL9WX3iiWtmYFdQ89hmJBgEGDI8cH4OZPXWNS65Hrkx6xf6ywsa7IOGmoOq5Sf5A4TnPZkojwVp4awCzYMyzteNRVdXNkUfpNC6EPuXl"
+                        ]
+                    }
+                ],
+                "supporting-pc": "fhrLM0BqraTFXLA3IgnuvE90KNHeD2vKcXvYPYog1iOY3gTDo97UN8MyVtMqni2z7xxOoO5p6Lf119wqivc5DQvqbi",
+                "server-ltp": [
+                    "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                ],
+                "connected-ltp": "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5",
+                "layer-protocol": [
+                    {
+                        "local-id": "G5g4yRuIkTXCluuUL9Url0fDgRQRY63x4btC2XlfJaR4FlQivCBIvRdLI3uzax6eJzQDo3K7eC3LPT3cowVTn0wY40p6qvc1WUwcYh",
+                        "layer-protocol-name": "vlan-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_VLAN_LAYER",
+                        "vlan-interface-1-0:vlan-interface-pac": {
+                            "vlan-interface-capability": {
+                                "configuring-pcp-bits-decoding-is-avail": true,
+                                "ingress-vlan-id-filtering-is-avail": false,
+                                "port-and-protocol-based-vlan-is-avail": false,
+                                "statistics-is-avail": true,
+                                "configuring-service-access-priority-mapping-is-avail": false,
+                                "max-number-of-protocol-vlan-id-groupings": -4226,
+                                "configuring-ingress-tag-filtering-is-avail": false,
+                                "supported-sub-layer-protocol-name-list": [
+                                    "vlan-interface-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_D_BRIDGE_COMPONENT"
+                                ],
+                                "number-of-available-traffic-classes": -16,
+                                "supported-interface-kind-list": [
+                                    "vlan-interface-1-0:INTERFACE_KIND_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "available-pcp-bits-interpretation-kind-list": [
+                                    "vlan-interface-1-0:PCP_BITS_INTERPRETATION_KIND_TYPE_5P3D"
+                                ],
+                                "drop-eligible-indicator-is-avail": true,
+                                "configuring-pcp-bits-encoding-is-avail": false,
+                                "service-access-priority-tagging-is-avail": true,
+                                "received-priority-overwriting-is-avail": false,
+                                "egress-vlan-id-translation-is-avail": true,
+                                "admin-shut-down-is-avail": false,
+                                "tagging-and-mvrp-is-avail": true,
+                                "vlan-id-translation-is-avail": true,
+                                "restricted-automated-vlan-registration-is-avail": false,
+                                "number-of-available-priorities": 5
+                            },
+                            "vlan-interface-configuration": {
+                                "default-vlan-id": "-9223372036854775808",
+                                "ingress-tag-filtering": "vlan-interface-1-0:INGRESS_TAG_FILTERING_TYPE_VLAN_TAGGED_FRAMES_ONLY",
+                                "service-access-priority-tagging-is-on": true,
+                                "forwarded-protocol-vlan-id-grouping-list": [
+                                    {
+                                        "forwarded-protocol-group-id": -1829053319,
+                                        "forwarded-vlan-id-list": [
+                                            "-9223372036854775808"
+                                        ]
+                                    }
+                                ],
+                                "pcp-bits-encoding-mapping-list": [
+                                    {
+                                        "to-be-encoded-priority-value": -97,
+                                        "to-be-encoded-drop-eligibility": true,
+                                        "associated-pcp-bits-value": 78
+                                    }
+                                ],
+                                "drop-eligible-indicator-is-on": false,
+                                "pcp-bit-to-priority-mapping-list": [
+                                    {
+                                        "to-be-decoded-pcp-bits-value": 29,
+                                        "associated-priority-value": 44,
+                                        "associated-drop-eligibility": false
+                                    }
+                                ],
+                                "default-priority": -4,
+                                "received-priority-overwriting-list": [
+                                    {
+                                        "to-be-overwritten-priority-value": -40,
+                                        "new-priority-value": 71
+                                    }
+                                ],
+                                "admin-point-to-point": "vlan-interface-1-0:ADMIN_POINT_TO_POINT_TYPE_FORCE_FALSE",
+                                "statistics-is-on": false,
+                                "service-access-priority-mapping-list": [
+                                    {
+                                        "c-vlan-priority-value": 96,
+                                        "s-vlan-pcp-bits-value": 84
+                                    }
+                                ],
+                                "external-to-internal-vlan-id-mapping-list": [
+                                    {
+                                        "external-vlan-id": 23908,
+                                        "internal-vlan-id": 14957
+                                    }
+                                ],
+                                "interface-kind": "vlan-interface-1-0:INTERFACE_KIND_TYPE_CUSTOMER_EDGE_PORT",
+                                "restricted-automated-vlan-registration-is-on": true,
+                                "received-priority-overwriting-is-on": false,
+                                "drop-eligible-encoding-is-required": false,
+                                "pcp-bits-interpretation-kind": "vlan-interface-1-0:PCP_BITS_INTERPRETATION_KIND_TYPE_5P3D",
+                                "interface-name": "Z086PAJw0mdxfRko9Hu2A5MPC8tdocdfcmm2OXqPjveqnyPo8bqAgdqSdL5uYjJax54lUn2eShE7HlwPwWiM1AF7lCBbNkmkiiGcFAi",
+                                "ingress-vlan-id-filtering-is-on": false,
+                                "sub-layer-protocol-name": "vlan-interface-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_NOT_YET_DEFINED",
+                                "internal-to-egress-vlan-id-mapping-list": [
+                                    {
+                                        "internal-vlan-id": 9826,
+                                        "egress-vlan-id": 3280
+                                    }
+                                ],
+                                "priority-to-traffic-class-mapping-list": [
+                                    {
+                                        "priority-value": 65,
+                                        "traffic-class-value": 119
+                                    }
+                                ],
+                                "vlan-id-translation-is-on": true,
+                                "egress-vlan-id-translation-is-on": false
+                            },
+                            "vlan-interface-status": {
+                                "statistics-is-up": false,
+                                "timestamp": "2021-01-01T07:09:50Z",
+                                "total-bytes-output": "-9223372036854775808",
+                                "total-frames-input": "-9223372036854775808",
+                                "interface-status": "vlan-interface-1-0:INTERFACE_STATUS_TYPE_DORMANT",
+                                "total-frames-output": "-9223372036854775808",
+                                "total-bytes-input": "-9223372036854775808"
+                            }
+                        },
+                        "wire-interface-2-0:wire-interface-pac": {
+                            "wire-interface-current-problems": {
+                                "number-of-current-problems": 44,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -24205,
+                                        "timestamp": "2020-08-16T01:22:23Z",
+                                        "problem-severity": "wire-interface-2-0:SEVERITY_TYPE_MINOR",
+                                        "problem-name": "spM7kdTfeFXrYHqkNi3W7uxNJREOyiJSHn01BL8Pi68gFqssIvgHSNmBE0p4i1X0oPTRs2GK0GSF6kZGPfnzUBaqtsmMlbEJ0ptkj1WbIOIO0HnIOKhAek0HMnl7yRIr9bDsdswN8et9OQRCt85Hs5o6kC5TtOcCRPXWhtJqHdrv3i0oi5"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-09-16T19:40:11Z"
+                            },
+                            "wire-interface-historical-performances": {
+                                "number-of-historical-performance-sets": 4874,
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "period-end-time": "2022-01-26T15:07:06Z",
+                                        "performance-data": {
+                                            "es": -1791593869,
+                                            "ses": -1591345557,
+                                            "low-power-idle-receiver-ms": -1137631397,
+                                            "low-power-idle-transmitter-ms": -1148946879,
+                                            "symbol-error-during-carrier": -418433829
+                                        },
+                                        "history-data-id": "nDQ5KCKTAsK1i2irGTrwH7Xh2O3zuJrRmhWYMzSm1ufbwxD4iWA04qhYecxAVYsa8g8UPS8ImfULNpP5liXhIfgOjFpfwRpw7piPaixoxj9cIRaW975JelxyTWNhF4NFl5mvnTUM5VZNM9BN8HwnUWVNSA4qwJXROjf341Q9WHPBIqgQZF5UB0z",
+                                        "suspect-interval-flag": false
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-04-04T05:46:21Z"
+                            },
+                            "wire-interface-status": {
+                                "rx-sync-role": "wire-interface-2-0:RX_SYNC_ROLE_TYPE_NOT_YET_DEFINED",
+                                "link-is-idle": false,
+                                "eee-is-up": false,
+                                "performance-monitoring-is-up": false,
+                                "rx-level-cur-list": [
+                                    64
+                                ],
+                                "tx-level-cur": -1,
+                                "pmd-negotiation-state": "wire-interface-2-0:PMD_NEGOTIATION_STATE_TYPE_ENABLED",
+                                "loop-back-kind-up": "wire-interface-2-0:LOOP_BACK_TYPE_EXTERNAL",
+                                "interface-status": "wire-interface-2-0:INTERFACE_STATUS_TYPE_NOT_YET_DEFINED",
+                                "pmd-kind-cur": "QwOR9tvBAl00L6leeOC81s2srpJBi7q0v6RErm81A8Ul67zkN3kPvm9PDTiVSAVfGFU7TU0t2UG8T7kHbEoy1xnwixs27fiFM4EGYx10jI0dHkUSQarJHGgSeAUdPcLugp2eW368D6lli759",
+                                "receive-signal-is-detected-list": [
+                                    true
+                                ],
+                                "signal-ordering-kind-cur": "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI_X",
+                                "pmd-is-up": true,
+                                "link-is-up": false
+                            },
+                            "wire-interface-capability": {
+                                "wavelength-min-list": [
+                                    1935914088
+                                ],
+                                "supported-signal-ordering-kind-list": [
+                                    "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI_X"
+                                ],
+                                "rxlevel-high-threshold": 116,
+                                "isolation-is-avail": true,
+                                "supported-loop-back-kind-list": [
+                                    "wire-interface-2-0:LOOP_BACK_TYPE_INTERNAL"
+                                ],
+                                "short-reach-mode-is-avail": false,
+                                "wavelength-max-list": [
+                                    -2068286563
+                                ],
+                                "unidirectional-operation-is-avail": true,
+                                "supported-pmd-kind-list": [
+                                    {
+                                        "pmd-name": "BeiCG6JZUQzror2wXjW304zzYE5heA8PPirno3fjTOKa7EG4PuZQyypo4myaWGZLYj1mmgx74a94GH0wcSeCqv1nRzxN7pr5I",
+                                        "speed": "jWIJVET5ArMtXQl3tDyu0pVq52PoZxIaliTgWEdp60SVQ5ZbIxxBPs1UmQadfSosa9IYGWfEO7rw4qIFQf8xA9jWRtaYlqqnz0l7WBL",
+                                        "duplex": "wire-interface-2-0:DUPLEX_TYPE_HALF_DUPLEX"
+                                    }
+                                ],
+                                "configuration-of-number-of-bip-errors-per-ses-is-avail": false,
+                                "auto-pmd-negotiation-is-avail": false,
+                                "required-medium-kind": "wire-interface-2-0:MEDIUM_KIND_TYPE_MULTI_MODE",
+                                "temperature-low-threshold": 107,
+                                "maintenance-timer-range": "8kkg9NTLf6MMunQHe2kEfnLjM2dnJxmSSy0TlTwsSb7eyXNMS7j7n4r17EoI4KsOisHve",
+                                "supported-alarm-list": [
+                                    "YYgXcPMZBEZUEmR5nQBLyxo1lyl24r0UpgJt5vtH2ktGGcDV26ytEWmZnHUj1U5qaOUgjfPlza17nE2hLAKhp6gMG25HWaZ7YLf9SWnj6oqlVkvyNfPceXQU0NtWXsVN62OYYbiXsIafVFNINuM1rCVrpggeI3TO6zNWLXL5xOksl7a8tW1UqOeH4mNNpGtn88kT5XYDLiXZh07KW1wfPKWU6CzoaULi3Xb0V1vybtxstx"
+                                ],
+                                "mii-kind": "wire-interface-2-0:MII_KIND_TYPE_QSFP_MICRO",
+                                "rxlevel-low-threshold": -86,
+                                "auto-negotiation-pmd-selection-is-avail": true,
+                                "wavelength-grid-min": -1871607591,
+                                "performance-monitoring-is-avail": false,
+                                "auto-signal-ordering-is-avail": true,
+                                "configuration-of-rx-sync-preference-is-avail": true,
+                                "eee-is-avail": true,
+                                "temperature-high-threshold": -6,
+                                "admin-shut-down-is-avail": true,
+                                "mdi-kind": "wire-interface-2-0:MDI_KIND_TYPE_LC"
+                            },
+                            "wire-interface-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "performance-data": {
+                                            "es": 656221658,
+                                            "ses": -751281135,
+                                            "low-power-idle-receiver-ms": -269080411,
+                                            "low-power-idle-transmitter-ms": -448745549,
+                                            "symbol-error-during-carrier": -1415027797
+                                        },
+                                        "timestamp": "2020-08-30T22:26:55Z",
+                                        "scanner-id": "jmMBVR2jNcbbug97avJxtqFMNZI11t4cHJFDAHWfL7rffAfpXYPigu43mFWf01rIC6l4F9kq8Dxf5Ew2ulkKIgN4VCjWvCw7IRbfSnxS0475BvZ5RbQrsvvf7G3CizBSiF722wUVsTS3pS983RznmWDmCGQU8sEq7Lt19nWB9PFqzOyuxZSTNv7p3YbbiPChsXaBc74lOJLfpbJW2tIPQP6UFhXPYrYio9LB8QWO",
+                                        "suspect-interval-flag": true,
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -97
+                            }
+                        },
+                        "ethernet-container-2-0:ethernet-container-pac": {
+                            "ethernet-container-capability": {
+                                "supported-fec-interleaver-kind-list": [
+                                    "ethernet-container-2-0:FEC_INTERLEAVER_KIND_TYPE_CONVOLUTION"
+                                ],
+                                "maintenance-timer-range": "UZwHoMPxQBi1Bk3BKrQMsB6ChO",
+                                "supported-alarm-list": [
+                                    "4OaczgA6HysuA5zpBuKwBW4wwV4ST7HQOS2n0ClI2N4CSDUl8wRJtV7RI3JBbjrZ3me3YrLTeInYlhjlOa59X40F8C8j",
+                                    "W0AIZZqfL7MtIXmchpNTRvxb7DNgrL1fLuYDtgS6nxzYuNaLcPw3l37kyUARyt6b"
+                                ],
+                                "statistics-is-avail": false,
+                                "encryption-is-avail": false,
+                                "performance-monitoring-is-avail": true,
+                                "available-queue-list": [
+                                    {
+                                        "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_EXPEDITED_FORWARDING_QUEUE",
+                                        "available-dropping-behavior-kind-list": [
+                                            "ethernet-container-2-0:DROPPING_BEHAVIOR_KIND_TYPE_RED"
+                                        ],
+                                        "available-drop-precedence-kind-list": [
+                                            "ethernet-container-2-0:DROP_PRECEDENCE_TYPE_LOW"
+                                        ],
+                                        "queue-depth-configuration-is-avail": true,
+                                        "wred-profile-per-drop-precedence-is-available": true,
+                                        "available-scheduling-kind-list": [
+                                            "ethernet-container-2-0:SCHEDULER_KIND_TYPE_STRICT"
+                                        ],
+                                        "max-queue-depth": 1942057008
+                                    }
+                                ],
+                                "bundling-is-avail": false,
+                                "supported-header-compression-kind-list": [
+                                    {
+                                        "header-compression-name": "sLPHVwn894TLb09a0qo",
+                                        "mpls-payload-kind-list": [
+                                            "ethernet-container-2-0:MPLS_PAYLOAD_KIND_TYPE_IP_O_MPLS"
+                                        ],
+                                        "compressed-protocol-layer-list": [
+                                            "ethernet-container-2-0:PROTOCOL_LAYER_TYPE_NONE"
+                                        ],
+                                        "header-compression-mode": "ethernet-container-2-0:HEADER_COMPRESSION_MODE_TYPE_LENGTH_BASED",
+                                        "compressed-header-length": 9604
+                                    }
+                                ],
+                                "support-of-management-frames-without-preamble-is-avail": false,
+                                "explicit-congestion-notification-is-avail": false,
+                                "information-rate-min": 1481356976,
+                                "fec-is-avail": false,
+                                "burst-size-max": 27461,
+                                "ingress-policing-is-avail": true,
+                                "supported-fec-redundancy-size-list": [
+                                    "ethernet-container-2-0:FEC_REDUNDANCY_SIZE_TYPE_4"
+                                ],
+                                "egress-shaping-is-avail": true,
+                                "information-rate-max": 1933503644,
+                                "admin-shut-down-is-avail": false,
+                                "bundling-group-size-max": -23,
+                                "supported-fec-interleaver-depth-list": [
+                                    "ethernet-container-2-0:FEC_INTERLEAVER_DEPTH_TYPE_1"
+                                ],
+                                "burst-size-min": -14725,
+                                "fec-word-size-max": -19354,
+                                "supported-loop-back-kind-list": [
+                                    "ethernet-container-2-0:LOOP_BACK_TYPE_BACK_TO_REMOTE"
+                                ]
+                            },
+                            "ethernet-container-current-problems": {
+                                "number-of-current-problems": 33,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -18741,
+                                        "problem-name": "yWzAhrp6JmB3TkRBlJZ7hm08CnV0813GPC8YVqWwMqAFKr9X385knXkZkfZk8UTPo1OjrCQ62qDFJMuMVzYioi9Jx0VFUOniI3B1Fj7ABL7lpBZk3Yur8v2GvYdpEAzeD3gbmfDYSKbil2ugSZI1mKzSAE977JlKMtN0JqQt21Lo48EO7ePl",
+                                        "timestamp": "2021-02-07T03:28:44Z",
+                                        "problem-severity": "ethernet-container-2-0:SEVERITY_TYPE_MAJOR"
+                                    }
+                                ],
+                                "time-of-latest-change": "2022-01-16T09:21:31Z"
+                            },
+                            "ethernet-container-historical-performances": {
+                                "number-of-historical-performance-sets": -9086,
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "period-end-time": "2021-06-27T07:59:16Z",
+                                        "suspect-interval-flag": false,
+                                        "history-data-id": "bikFBCGHT0lv0RVGTE4sLxnHacb2Z1O2j0HNCnmwnzToiGWbk0w5qTEA5HCWBiZUiyzVWVjbmcrFSfQ58m2y7z048vTJNSw6i516Tki7oBM8RD5ZR0pZzhVHMOjAyPyRMrXxL7F1Jr1sW7jO7IFGZAfEhq6PfEG",
+                                        "performance-data": {
+                                            "queue-utilization-list": [
+                                                {
+                                                    "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE",
+                                                    "max-queue-length": -1222034865,
+                                                    "avg-queue-length": -729714569
+                                                }
+                                            ],
+                                            "fec-uncorrectable-blocks": -1350265609,
+                                            "tx-ethernet-bytes-sum": "-9223372036854775808",
+                                            "tx-ethernet-bytes-max-m": "-9223372036854775808",
+                                            "fec-corrected-blocks": -1337241663,
+                                            "tx-ethernet-bytes-max-s": 895382294,
+                                            "time-period": 1309945178
+                                        }
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-06-01T00:43:37Z"
+                            },
+                            "ethernet-container-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "timestamp": "2020-08-25T00:05:18Z",
+                                        "scanner-id": "53idH7cOOyF5L600FUQrysG0XFDiZqw4tHa2GmQuUvryujq1dhsEB0wyF9I",
+                                        "suspect-interval-flag": false,
+                                        "performance-data": {
+                                            "queue-utilization-list": [
+                                                {
+                                                    "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE7",
+                                                    "max-queue-length": 1252470984,
+                                                    "avg-queue-length": -995428957
+                                                }
+                                            ],
+                                            "fec-uncorrectable-blocks": -2073929791,
+                                            "tx-ethernet-bytes-sum": "-9223372036854775808",
+                                            "tx-ethernet-bytes-max-m": "-9223372036854775808",
+                                            "fec-corrected-blocks": -278693071,
+                                            "tx-ethernet-bytes-max-s": 59921536,
+                                            "time-period": 572999924
+                                        },
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 77
+                            },
+                            "ethernet-container-status": {
+                                "timestamp": "2021-09-18T03:39:42Z",
+                                "last-10-sec-data-output-rate": 2046970926,
+                                "bundling-is-up": false,
+                                "total-bytes-output": "3318021933179074048",
+                                "total-bytes-input": "7355721209719917568",
+                                "interface-status": "ethernet-container-2-0:INTERFACE_STATUS_TYPE_NOT_PRESENT",
+                                "loop-back-kind-up": "ethernet-container-2-0:LOOP_BACK_TYPE_BACK_TO_REMOTE",
+                                "statistics-is-up": true,
+                                "last-10-sec-data-input-rate": -2007010785,
+                                "forwarded-bytes-output": "3639735058476425216",
+                                "performance-monitoring-is-up": true,
+                                "forwarded-bytes-input": "6368797059612739584",
+                                "remote-site-is-faulty": false
+                            }
+                        },
+                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                        "hybrid-mw-structure-2-0:hybrid-mw-structure-pac": {
+                            "hybrid-mw-structure-status": {
+                                "performance-monitoring-is-up": false,
+                                "segment-status-list": [
+                                    {
+                                        "segment-status-type-id": -16513,
+                                        "operational-status": "hybrid-mw-structure-2-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED",
+                                        "segment-is-reserved-for-tdm": true
+                                    }
+                                ]
+                            },
+                            "hybrid-mw-structure-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "period-end-time": "2021-04-09T21:26:48Z",
+                                        "history-data-id": "y4RNiijhhlrZqUWydN4AWpJa1qFQhldPp5uAnORE9avA4j0964KVllXfDvXUQbB786HvUy1VIovFzo",
+                                        "performance-data": {
+                                            "rx-level-avg": -98,
+                                            "es": 1065778830,
+                                            "unavailability": 1919987936,
+                                            "cses": 2037467724,
+                                            "ses": 1233732636,
+                                            "rx-level-min": 57,
+                                            "time-period": 1567788834,
+                                            "rx-level-max": -123
+                                        },
+                                        "suspect-interval-flag": true
+                                    }
+                                ],
+                                "number-of-historical-performance-sets": -11960,
+                                "time-of-latest-change": "2020-08-02T00:09:14Z"
+                            },
+                            "hybrid-mw-structure-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -4674,
+                                        "problem-name": "Abufb2FoUSvDIoacG1I2cVv1tw6GOPcg0G",
+                                        "problem-severity": "hybrid-mw-structure-2-0:SEVERITY_TYPE_WARNING",
+                                        "timestamp": "2020-06-12T11:10:56Z"
+                                    }
+                                ],
+                                "number-of-current-problems": 110,
+                                "time-of-latest-change": "2020-08-01T15:27:04Z"
+                            },
+                            "hybrid-mw-structure-capability": {
+                                "supported-tdm-structure-kind-list": [
+                                    {
+                                        "tdm-structure-name": "2glmtlH2zxJiuMypwRgPOh6T7FEAMquOGP21aBVC0xMujkUQ3axSjwDjb9TXznD75F87h4JhBwEMIquMA2wMy15BbQrK64SbCSiTO22hqy40YyErs2d04aCf03Z6ZJhBuAmiuhAMPwEO4jfxlkphuTwuOoBOZKhtcwEyNekCKZiGap5nJnF5gbA5r3LrNUUSqqq5",
+                                        "tdm-segment-size": -1412686907,
+                                        "max-number-of-segments-reservable": -1
+                                    }
+                                ],
+                                "performance-monitoring-is-avail": false,
+                                "supported-alarm-list": [
+                                    "guSPEiU1T9yZqCrn3u0u9Uh1dHk"
+                                ]
+                            },
+                            "hybrid-mw-structure-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "suspect-interval-flag": true,
+                                        "timestamp": "2020-11-09T20:29:26Z",
+                                        "performance-data": {
+                                            "rx-level-avg": 122,
+                                            "es": 1392338558,
+                                            "unavailability": -1843425133,
+                                            "cses": 512905490,
+                                            "ses": 1071186758,
+                                            "rx-level-min": 82,
+                                            "time-period": 1428252386,
+                                            "rx-level-max": 0
+                                        },
+                                        "scanner-id": "iGHpmneyE672aIdB58iYD",
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 77
+                            }
+                        },
+                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                        "extension": [
+                            {
+                                "value-name": "HeXGEB1xM6qqsEruxT33I71OHh6zcJoTPestPt1BrjTLXlfv6aqO9jvQBtiNcyyTMSnBlg4FzQqx3GU9QkPSDcA6FSTJjkD54Szq8v5zlnYo3SpM4fwAj6GZZsIaEdfI5O05cXFxlDOgodUkkqUExtvoNdyrrF1om2uyZ95cELt2RffbG1H5uclhiLABqCZMEtcvCaI9VbbMqqQYsp3OCgYU1ynk2m6GQbcklUt8",
+                                "value": "xNfPD6921YwiWijmFDp2C5KF9W0Vq0KPN0Ei6Od7MJhAUtWz6dtAb57c278k8K9VCF6AtjA72RzWkoojBJLMHTZJSZV0JWOmBUW55o47gEWs2cLvNpiui95a003JWJXqvMnAarziXnLRzwnnVxJ5GP8GH3hwMfW9TjJ3Camsy7j7vGmjd6gLNojurB05IOeB7PwC0S4qRfpfWMq1KGNpX6TgzMmhAASAih4a10ATfZ03Di5fQK"
+                            }
+                        ],
+                        "configured-client-capacity": "moLr23b4w9gUtrg7YUK92hdC9Fi78THu9kW3f77L9oxCHGJxAuGCLU6MroTA9s4aMSd2SdF1t",
+                        "ip-interface-1-0:ip-interface-pac": {
+                            "ip-interface-status": {
+                                "errored-packets-output": -1143296301,
+                                "last-10-sec-data-output-rate": 1712431896,
+                                "forwarded-packets-input": "-9223372036854775808",
+                                "errored-packets-input": 1108533838,
+                                "ip-v-4-address-cur-list": [
+                                    {
+                                        "fixed-ip-v-4-address": "vaSrEZ1Fp5h25sRqSaf3HZHwd6OI8JIvTsWqsY5RVmTSGCbqMqlli3Rn9xX99GF20BksrpbeD47cyiCcAYxKTh7UG54PDJKDc4YEm9SZ6R3w1GJCw8ephmjYjfNOYxjbu9HQjzHhjLNkjoWPpbeGppwAFcgvJzG5JnVUPv388Qsr7hgokmWJLtbiFrOg0mmBC9nrwqrE9L5g2dwezsP",
+                                        "fixed-ip-v-4-address-prefix-length": 118,
+                                        "fixed-default-gateway-ip-v-4-address": "0nsr3BkqXN2YblnBM1KpZSk4oywRoJEgYZA2AUspzmfKHCelwQKvJ4rZvXILyf1xeBzGnT5PfcrWPF9lwTI7Q96d7PYF4R4alDQAoNpDZRrOoA1UuJTcLSpKzfhv6mFjRnUgajT12lIrVJdhl7l6ZCIqRZVQlA1dPVlZ7eS9rAAfcGoxNKvEmd464ROqjPv8LQZSWRTosmvE2T3HvqdK"
+                                    }
+                                ],
+                                "broadcast-packets-output": -1028086661,
+                                "dropped-packets-input": 1703366714,
+                                "loop-back-kind-up": "ip-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE",
+                                "dropped-packets-output": 779709612,
+                                "unicast-packets-input": "-9223372036854775808",
+                                "forwarded-packets-output": "-9223372036854775808",
+                                "neighbor-list": [
+                                    {
+                                        "neighbor-mac-address": "QH0EZjlur6ciQ99CptYUZ0F2zbsMVXVDxN9o6uTptXHb6INncLh3DP640qQNgDiNij3gNWF8MekSP781Tp4o62t6lbLBPVg7ejgU8V2U2mERuMKf4GvaBY9W2MpRIxQOQ6IQULKOZhxtV9AZH62aWb6YPnHpUqeDoOtar6YrfnMawn26l4gh7fgWCXmpnA2MgnWIlN9A2VLzaNxvRNNY2VUxS8O8AIMR5AzrfI1ivEJGrg3a3Q0YDN",
+                                        "neighbor-ip-v-4-address-list": "oVbwwTanQCO9So3aTHTr11vb4d4URRh7MsDadFp4hdd1BgbnYWORXb2Uh6G0PY7CiCEoh4sqhxsTOD8EsWvh0p3hoKh5AgHKSe89iszz01kGxskRhH0hY4qeGzk8PTSH7TIpd9Rd33TAo5jFEjODneRVN33uXOb4zTmM2d058LxwRQbn2R0h5KdKNg6CWhzv2Vi50a28VsFEaI2cAUuxwHacPgOMyn9sarpatsjpMYVWyP18KvGg4IsLY9",
+                                        "neighbor-origin": "ip-interface-1-0:NEIGHBOR_ORIGIN_TYPE_STATIC"
+                                    }
+                                ],
+                                "timestamp": "2021-04-30T14:59:39Z",
+                                "forwarded-data-volume-output": -521982147,
+                                "total-packets-input": "-9223372036854775808",
+                                "last-10-sec-packet-input-rate": -2147120037,
+                                "last-10-sec-packet-output-rate": 1659170472,
+                                "vpn-binding-is-up": false,
+                                "multicast-packets-output": 1942279416,
+                                "broadcast-packets-input": -140082865,
+                                "last-10-sec-data-input-rate": 949348460,
+                                "interface-status": "ip-interface-1-0:INTERFACE_STATUS_TYPE_UNKNOWN",
+                                "statistics-is-up": true,
+                                "total-packets-output": "-9223372036854775808",
+                                "multicast-packets-input": 1529489074,
+                                "data-volume-input": 2092734148,
+                                "data-volume-output": -1383996039,
+                                "fragmented-packets-input": -214590323,
+                                "ip-address-origin": "ip-interface-1-0:IP_ADDRESS_ORIGIN_TYPE_NOT_YET_DEFINED",
+                                "unicast-packets-output": "-9223372036854775808",
+                                "forwarded-data-volume-input": 1316892516
+                            },
+                            "ip-interface-current-problems": {
+                                "time-of-latest-change": "2020-07-22T10:26:22Z",
+                                "number-of-current-problems": -73,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -22639,
+                                        "problem-severity": "ip-interface-1-0:SEVERITY_TYPE_CRITICAL",
+                                        "problem-name": "COW0nNz7Wjtwd6L6xWpV8QNPIVkpoIXSwUTLzsTvLeUZlFXSBeFJWkqEfK4wkToJF9ufCfCfuw6HbVzE96f6qxCx9y3uskd7lzeXPR5bf3SrZjX0h",
+                                        "timestamp": "2022-01-09T13:05:52Z"
+                                    }
+                                ]
+                            },
+                            "ip-interface-capability": {
+                                "burst-size-max": -13902,
+                                "statistics-is-avail": true,
+                                "supported-alarm-list": [
+                                    "2Q1GLNsnoDaa9wG8lB5zTN2kdtmw6771P1HtO9Q5ET7NpNNCgT41G6lTzHhyGpzoqgR6hz3VsaAJXoedhiePorAP8SnH9O5zWWxdnB0QLBrBZFO8PVXdmp3nhi4q71RVXh1kS12vum6lTNtJAiWOIRbR27a18T",
+                                    "XaXaUZcilqoHk3a3DlRkVBvMDvOEDIstKqDFhPXC8dbs9mnMze6uHu8kRXQmxbPhBsOKaLeiRqK0E7EddDHVZH7QEQc312lum1ewNkOwKqwgp2tDF2qEKxmgfzcgtxKPyQedb2BNl74K2pnHkFeW5s4k1gBmNl4e4ijfcV2xUYiWgxwAdCwi4ACYRdcwrgCvyOC"
+                                ],
+                                "information-rate-min": -1694034325,
+                                "maximum-number-of-ip-v-4-addresses": 14592,
+                                "fixed-default-gateway-configuration-is-avail": true,
+                                "maintenance-timer-range": "qL3UMKJjVLEtEYPV5mqHAzyr2iL",
+                                "admin-shut-down-is-avail": true,
+                                "dhcp-client-is-avail": true,
+                                "egress-shaping-is-avail": true,
+                                "information-rate-max": -1997487929,
+                                "burst-size-min": -55,
+                                "ip-v-6-is-avail": false,
+                                "maximum-transmission-unit-max": -10545,
+                                "ingress-policing-is-avail": true,
+                                "maximum-transmission-unit-min": 29958,
+                                "supported-loop-back-kind-list": [
+                                    "ip-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "vpn-binding-is-avail": true,
+                                "arp-proxy-is-avail": false
+                            }
+                        },
+                        "termination-state": "core-model-1-4:TERMINATION_STATE_LP_NOT_TERMINATED",
+                        "mac-interface-1-0:mac-interface-pac": {
+                            "mac-interface-status": {
+                                "errored-frames-output": 48186944,
+                                "loop-detection-result": "mac-interface-1-0:LOOP_DETECTION_RESULT_TYPE_NO_LOOP_DETECTED",
+                                "forwarded-frames-input": "-9223372036854775808",
+                                "timestamp": "2020-05-01T06:54:10Z",
+                                "multicast-frames-input": -11940941,
+                                "unicast-frames-input": "-9223372036854775808",
+                                "last-10-sec-frame-output-rate": -1692187275,
+                                "total-frames-input": "-9223372036854775808",
+                                "multicast-frames-output": 114483358,
+                                "dropped-frames-output": -802192207,
+                                "statistics-is-up": false,
+                                "forwarded-frames-output": "-9223372036854775808",
+                                "flow-control-mode-cur": "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_NONE",
+                                "received-ethernet-frame-format-cur": "mac-interface-1-0:FRAME_FORMAT_TYPE_802.3",
+                                "last-10-sec-frame-input-rate": 328042208,
+                                "errored-frames-input": 638615656,
+                                "loop-back-kind-up": "mac-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE",
+                                "interface-status": "mac-interface-1-0:INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN",
+                                "mac-address-cur": "v2gLP5rSCbhNBzrilKrfPIGp084o2V9xXpaFuupZFGM876rsQSHytgXtg1KjPTIEiTbFnAE28i3gguI7eixHqm3GfNZ4GIJYtUvQv1KvkNLA9mzoE654s8KINCEtcnkFaPnFRZ23FOvOaXcG3aKoamYYQCj2SDz2lOz4GBZdpm1rj67fgJvqYtgOXAJH5aJqRamxMdK3ADvTJu8",
+                                "broadcast-frames-output": 2014280940,
+                                "total-frames-output": "-9223372036854775808",
+                                "fragmented-frames-input": -188720773,
+                                "performance-monitoring-is-up": false,
+                                "unicast-frames-output": "-9223372036854775808",
+                                "broadcast-frames-input": -2094711729,
+                                "dropped-frames-input": 1935286270
+                            },
+                            "mac-interface-capability": {
+                                "supported-flow-control-mode-list": [
+                                    "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_AUTO_NEGOTIATION"
+                                ],
+                                "statistics-is-avail": true,
+                                "broadcast-frame-suppression-is-avail": true,
+                                "supported-frame-format-list": [
+                                    "mac-interface-1-0:FRAME_FORMAT_TYPE_802.3"
+                                ],
+                                "admin-shut-down-is-avail": false,
+                                "maximum-frame-size-min": 1106,
+                                "loop-detection-is-avail": false,
+                                "performance-monitoring-is-avail": true,
+                                "mac-address-configuration-is-avail": false,
+                                "maintenance-timer-range": "Y7oP63USwNsR7YvYd5q9R71PPIGl",
+                                "supported-alarm-list": [
+                                    "tXuJEsErl26NTdLg3Qet05s1MhBsDAPYqjzWM5n77tM0zp9CfnY7sq8eAKG5co3uHujlzGkG26ytnH5v4VCweDCOfbLjzGOga7uJFOhzNP22x0xBN201FCHUNsdm0TvaSZLyF2",
+                                    "sK2vhU2KH4CBBfinUDB9DmEGfvrFamEv6y0fsUZ2RuDkJVIvqbEWxaCEx3"
+                                ],
+                                "hardware-mac-address": "A",
+                                "maximum-frame-size-max": -19205,
+                                "supported-loop-back-kind-list": [
+                                    "mac-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE"
+                                ],
+                                "link-loss-forwarding-is-avail": false,
+                                "loop-port-shut-down-is-avail": true
+                            },
+                            "mac-interface-historical-peformances": {
+                                "number-of-historical-performance-sets": 720,
+                                "time-of-latest-change": "2021-03-22T23:13:59Z",
+                                "historical-performace-data-list": [
+                                    {
+                                        "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "period-end-time": "2020-06-10T00:10:11Z",
+                                        "performance-data": {
+                                            "mac-pause-frames-ingress": -1903842555,
+                                            "tagged-frames-ingress": "-9223372036854775808",
+                                            "jabber-frames-ingres": 713519714,
+                                            "mac-pause-frames-egress": -1843327011,
+                                            "mac-control-frames-egress": -2114524873,
+                                            "oversized-frames-ingress": -1238384789,
+                                            "undersized-frames-ingress": 225190200,
+                                            "frames-of-1024-to-1518-byte": "-9223372036854775808",
+                                            "frames-of-64-byte": "-9223372036854775808",
+                                            "frames-of-512-to-1023-byte": "-9223372036854775808",
+                                            "frames-of-65-to-127-byte": "-9223372036854775808",
+                                            "mac-control-frames-ingress": -1174627611,
+                                            "frames-of-256-to-511-byte": "-9223372036854775808",
+                                            "tagged-frames-egress": "-9223372036854775808",
+                                            "frames-of-128-to-255-byte": "-9223372036854775808",
+                                            "fragmented-frames-ingress": "-9223372036854775808"
+                                        },
+                                        "history-data-id": "l7mZu8GXx",
+                                        "suspect-interval-flag": true
+                                    }
+                                ]
+                            },
+                            "mac-interface-current-problems": {
+                                "time-of-latest-change": "2021-05-10T15:58:50Z",
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 14887,
+                                        "problem-severity": "mac-interface-1-0:SEVERITY_TYPE_MAJOR",
+                                        "problem-name": "ukLYku4QE8GX1uXuSV0ZcngPhcFNb6PxiAvu4skBA1yBnnYfbY6nmf4vrJjuH01RAomwQy7rrx2HVSWYRVl5apAB0L5ALYrlmFKd6RExhye4j32aYf70wHtwtq6eoqsK5cPbVlB4UH85KafAhmsNVVkolivJIPmG1bJOxkTj21oE4v7lJz1EnlVIvqk67GM0RnOgAzrutP0pc7KVzLAWYvwmNQ",
+                                        "timestamp": "2021-06-18T07:15:08Z"
+                                    }
+                                ],
+                                "number-of-current-problems": -3
+                            },
+                            "mac-interface-current-performance": {
+                                "number-of-current-performance-sets": 71,
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "elapsed-time": "-9223372036854775808",
+                                        "suspect-interval-flag": false,
+                                        "timestamp": "2022-01-07T04:12:25Z",
+                                        "performance-data": {
+                                            "mac-pause-frames-ingress": -106208719,
+                                            "tagged-frames-ingress": "-9223372036854775808",
+                                            "jabber-frames-ingres": 601762920,
+                                            "mac-pause-frames-egress": -174151,
+                                            "mac-control-frames-egress": -323316793,
+                                            "oversized-frames-ingress": 125772666,
+                                            "undersized-frames-ingress": -706549367,
+                                            "frames-of-1024-to-1518-byte": "-9223372036854775808",
+                                            "frames-of-64-byte": "-9223372036854775808",
+                                            "frames-of-512-to-1023-byte": "-9223372036854775808",
+                                            "frames-of-65-to-127-byte": "-9223372036854775808",
+                                            "mac-control-frames-ingress": 171166404,
+                                            "frames-of-256-to-511-byte": "-9223372036854775808",
+                                            "tagged-frames-egress": "-9223372036854775808",
+                                            "frames-of-128-to-255-byte": "-9223372036854775808",
+                                            "fragmented-frames-ingress": "-9223372036854775808"
+                                        },
+                                        "scanner-id": "uh9O3GUXOgqcjA2J5A9RkynZxx7jyBC2TMJWkDM0Tcc5E7GBHPsTnPKMfR6NtIHemqay4WyP0LMESsfr9HcxpWbEGhr1S0f6rhFn6d46YRLIjS1ts5SR23nIdGJ5GYb77Qud4zkUi5vBPoWhuO0oKn6X3H2Kx5JEW6SSFcEX91qYin8M382Nw8KrHEbeKVSy1CiyGOnPIFG0UGEYOGDcGgEnUPtwCd"
+                                    }
+                                ]
+                            }
+                        },
+                        "pure-ethernet-structure-2-0:pure-ethernet-structure-pac": {
+                            "pure-ethernet-structure-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "timestamp": "2020-05-08T22:06:06Z",
+                                        "performance-data": {
+                                            "cses": -1279868059,
+                                            "es": -1575053493,
+                                            "rx-level-max": 73,
+                                            "ses": 2001794748,
+                                            "rx-level-min": -12,
+                                            "rx-level-avg": -4,
+                                            "time-period": 146096698,
+                                            "unavailability": 284132740
+                                        },
+                                        "suspect-interval-flag": false,
+                                        "elapsed-time": "-9223372036854775808",
+                                        "scanner-id": "U3fYxEzikLQRWD3U00gGw8GzNh7lgfSab70IDz0XlQO9mRWmRcUfcBHZKOc0WW37V3PyvIvQybRUVF9EJ3UWwtNh9S95O44C8MaDuylUJ4HwKQbtL5hiqXrzPAFv"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 41
+                            },
+                            "pure-ethernet-structure-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "period-end-time": "2020-05-16T01:21:13Z",
+                                        "performance-data": {
+                                            "cses": -861901679,
+                                            "es": 612063438,
+                                            "rx-level-max": -60,
+                                            "ses": -1061736029,
+                                            "rx-level-min": 11,
+                                            "rx-level-avg": -116,
+                                            "time-period": -672161405,
+                                            "unavailability": 649097748
+                                        },
+                                        "history-data-id": "zdQb31xGYOYgDhPsSmQpYPWdZ6XzBtT2GB6BuD9kj8AXpph9M7qCPmPOkEoV79QFKW86riqCi0zzhJJVI1xxgneA1uo1D6yf2HllRDX9vpIM0jAId78tmm3gQj9lpHAjgNE7qu8NLJrLU1t79BsnXoDFHM07usiCfXKxjKk4tMPgNanOEQcteH9Nu1UQu5sJ249dPt9a7QqN0GBEoF0Cn9hJa4zE9Tg3YpgFSpHS70F7G8E4",
+                                        "suspect-interval-flag": false
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-02-06T18:38:54Z",
+                                "number-of-historical-performance-sets": -8292
+                            },
+                            "pure-ethernet-structure-status": {
+                                "segment-status-list": [
+                                    {
+                                        "segment-status-type-id": 30838,
+                                        "operational-status": "pure-ethernet-structure-2-0:OPERATIONAL_STATE_TYPE_DISABLED"
+                                    }
+                                ],
+                                "performance-monitoring-is-up": false
+                            },
+                            "pure-ethernet-structure-capability": {
+                                "supported-alarm-list": [
+                                    "9pC3fjc1vDf4zbFrErSq3NfDPMbeYLiZ2V2h6fbBKqFkBcD7EvxziMc0roeh1phVkbcqinT3Fqn9C0g8nGIGkMyL2MV334Ynf3FyiqBYQQ7lQfl5V3L8QbLSYGO1KEh0zOqSf1IXRHazOwECriK9tv2j4IdOemGO26yhZ87IHh9vFOZ7YJgj7av3SARZWqNYwd8wd76Uogh44h3"
+                                ],
+                                "performance-monitoring-is-avail": false
+                            },
+                            "pure-ethernet-structure-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 12309,
+                                        "problem-name": "muaH1GFLNqnyfYDY17YD9bHItDK2P0Vbm5KgEpTjH8RX7mN0mDwvPd6iIIkxA7AW4k4IJXTi6D75ZVXlytJfGHxgpJNZQnNVHKvizptF2ACTvA7W3IbCpBSOky",
+                                        "timestamp": "2022-01-13T05:45:57Z",
+                                        "problem-severity": "pure-ethernet-structure-2-0:SEVERITY_TYPE_CRITICAL"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-12-28T17:24:14Z",
+                                "number-of-current-problems": 28
+                            }
+                        },
+                        "lp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK",
+                        "name": [
+                            {
+                                "value-name": "4LnPs9KFpgsawsyuoqTmQgqJ4l8gbpsf2Q4uRO98WtisOQO4gzrZHRAL4IUf7mu94qEV6F331dvP3cTcLkbt4L68m0gtfCvj3179y2czg",
+                                "value": "obMinpuqKy4RzqJPLYjgam9hoIjAhr2GDGQ06kjILnrcN3Tq1cHbzIkXqEpA5k8A0YtYaMzV10ZO3S6X5N0wollOZCoWWwxPm0FxEek"
+                            }
+                        ],
+                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE",
+                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY",
+                        "configuration-and-switch-control": [
+                            "LnHdJfHm1N8t313ctZe7Sr1CwHDZE81hnIu6Q3kRQscTl7XG7bORuPl1oYSUYUbmuFkcIFWqZ8bl801f3HYypjrF9bA7XLlkjywT5sc4tnpBojIr0GRhRaX0mxZjadDlL2fQurMXG4q4n8ofG7xximpELpPVuth7voPRPBHnF7k28IaOHzmZVLvG2ltoGCv30kUHWB5tBpoJZypGZDyUh3s"
+                        ],
+                        "fc-blocks-signal-to-lp": "NI4q57iqUSenXzYeXz5nRDmub8L7sXngxkyCjIUdA0BpArvxTAVK696haSgCPEKeYiQh1LvtLYTlhoL2RyEXHL6Rvnmc16qZhg8aTDDFtoSDFvFw3klD5rmsOIEHH4GYkP86kDLG2vjH1Y5Waqz7RWzywdfd9O3uv3AHHdnBAyatpfqzxZzgN0OceWhnClJ7o",
+                        "air-interface-2-0:air-interface-pac": {
+                            "air-interface-current-problems": {
+                                "number-of-current-problems": -106,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 16181,
+                                        "timestamp": "2021-12-25T21:35:34Z",
+                                        "problem-name": "QYKlsc7CowB9Uzofpru3pxVuEb0QVfGE5iZpv61TvCVp3jwsK0v2pjw3mwLiDkWICV7ZT0LguGFxZ30C4nwty2pVq2d3e1DROCIzCtQ69vv1znvvL1QbV76l2bggcTZ0nIsZbiXdFk66IBBlukwhrDCtO",
+                                        "problem-severity": "air-interface-2-0:SEVERITY_TYPE_NOT_YET_DEFINED"
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-09-17T08:27:40Z"
+                            },
+                            "air-interface-status": {
+                                "xpd-cur": -28,
+                                "transmission-mode-cur": "tmbm4Dglu20fyM7WAI2dXAjalik4jyPMVS8Rvo4Zi47IIeEbOGoL8zVtJ7p2y6OlYW4mc8dn4k5MqKXfid0rFOMoV4rta7",
+                                "rf-temp-cur": 75,
+                                "mimo-is-up": false,
+                                "tx-level-cur": 40,
+                                "local-end-point-id": "wkoo4E36WnhGky453yBVj7xqbIk7yik4uAkqeno2CGIW6FT1dvPwumPx41FvjZrOrM6F1vAEbaA9Pua3RZrdd8Kaahxt8Y9",
+                                "rx-level-cur": -18,
+                                "link-is-up": false,
+                                "performance-monitoring-is-up": true,
+                                "xpic-is-up": true,
+                                "remote-end-point-id": "Cg7ELHaORKXz6ZuXRV244N664DzduBM6RTCusMikp7Tv6flP2nM62S",
+                                "received-radio-signal-id": {
+                                    "numeric-radio-signal-id": 26392,
+                                    "alphanumeric-radio-signal-id": "MMinwFjL6OCXCnqXSCfV0tjsm76XMEirqtOO07z6Nc3irlfjXn6YQpicxp1bVkCdNi1NhAL5EGn51uoRRnHAMZEbgGfb0RoF2hkjS5gwLvuE0SvJ"
+                                },
+                                "auto-freq-select-is-up": true,
+                                "tx-frequency-cur": 870760910,
+                                "rx-frequency-cur": 587706062,
+                                "atpc-is-up": false,
+                                "radio-power-is-up": true,
+                                "snir-cur": -2,
+                                "loop-back-kind-up": "air-interface-2-0:LOOP_BACK_TYPE_RF_TO_LOCAL",
+                                "interface-status": "air-interface-2-0:INTERFACE_STATUS_TYPE_DOWN",
+                                "alic-is-up": false
+                            },
+                            "air-interface-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "period-end-time": "2020-07-05T10:05:51Z",
+                                        "performance-data": {
+                                            "snir-max": 85,
+                                            "unavailability": -2064321143,
+                                            "rx-level-max": -33,
+                                            "xpd-max": -25,
+                                            "ses": -1914970605,
+                                            "rf-temp-max": -18,
+                                            "tx-level-max": -80,
+                                            "es": 905739314,
+                                            "tx-level-min": 19,
+                                            "tx-level-avg": 49,
+                                            "snir-min": 12,
+                                            "snir-avg": -118,
+                                            "time-period": 969445258,
+                                            "cses": -1486677371,
+                                            "defect-blocks-sum": 21692,
+                                            "rx-level-min": -50,
+                                            "rx-level-avg": -23,
+                                            "rf-temp-min": -74,
+                                            "rf-temp-avg": -48,
+                                            "time-xstates-list": [
+                                                {
+                                                    "time-xstate-sequence-number": -31,
+                                                    "transmission-mode": "uAYB54iEgTrPms4Ng7boIDCB5IQ5Y6zkypWEt6iJZBzm",
+                                                    "time": 1146810918
+                                                }
+                                            ],
+                                            "xpd-min": 55,
+                                            "xpd-avg": 19
+                                        },
+                                        "suspect-interval-flag": true,
+                                        "history-data-id": "8gglXuK6zMM09YegixdxliP9QjJ3myWnH4Iwykv76hZ776npvtWQDDSuWBpb2dyJh8"
+                                    }
+                                ],
+                                "number-of-historical-performance-sets": 21435,
+                                "time-of-latest-change": "2021-12-27T09:21:02Z"
+                            },
+                            "air-interface-capability": {
+                                "expected-equals-transmitted-radio-signal-id": false,
+                                "duplex-distance-is-freely-configurable": false,
+                                "supported-radio-signal-id-datatype": "air-interface-2-0:RADIO_SIGNAL_ID_DATATYPE_TYPE_INTEGER",
+                                "rx-frequency-max": -595332575,
+                                "supported-loop-back-kind-list": [
+                                    "air-interface-2-0:LOOP_BACK_TYPE_RF_TO_LOCAL"
+                                ],
+                                "direction-of-acm-performance-values": "air-interface-2-0:DIRECTION_TYPE_RX",
+                                "adaptive-modulation-is-avail": true,
+                                "supported-alarm-list": [
+                                    "SUoqkpyU87BtaDdzzK4XBInAxnSA4r5WdlfyDNkLVVf5qswZ4sOF2b8Ay0aCr7rxlG5YtpJgcYdDjBun3jV6u3yV3ApnIQUVoRTK8u0kleXwPsTLDGJ7J9UNJc2jUWejN73VuV7P15lRp6u2N51oeO3X05hMTv5yv0lRWtGXqTGHR2Bw7uVliYbaWsXPPUocNJ3J4Byum7be9MC99xuroxucZj1H5hLSTPtXi2kF1nL",
+                                    "w7Mm2C3fj7xEON5apJ4wIMS4HVE2uzgTy37AxbQRifnYUk1jW5QEJAIqvflSGBLeESO4VwN5E24ym5Si2AWMax4GEpqc1bqxV6BRvoW9qSHNPrXS1ME4bICP82195jG0haJMyGVRqvwgWt8Q7EUimwZmySvD34vl6f7EN3ndyTlmflcmZ6xmuwIUh6pk2VF82NEPI2U8Ngu2BzhtxGP24pOlneGh1dp304KAYEIDM5ygEPJbnq5rHUN",
+                                    "XL1ofZNGA5dIfsyKG1ZpZhZu5DE5fUucyvANmg",
+                                    "BIjrOjrV0tYLG5fA34qgfcvCMtFRo5dZOoiCIBqA5odDls5opnFEza8dvO4LT9CzxV47ouHlSUQdfVtwa82JaaWGYSjK1WjrJny7R8tB2bG97axhizTlCH1ssccl8oMRLdZvlk6fvFpuPOEZgpkS6dkqqpMyNqiqD9NYtMeQrvd8jR7zgsreFEFXVjwAJO0",
+                                    "OdyxsS5cyY3YPdPbikHnzuKE276Hmm3aAtz2",
+                                    "2njbNGu3dYf598Efip736tShncWoszquOCFti9wn0Dk9EYgWggZmJJD6WrmgSMKHgh2yqzOi48kIZAEfQvtr7Zp3iLbbqVKGcM7udNNiV70MzxTqUnJ1e9WwM7z42bD6YKB3pglcfmZOLS6F7QHlZDKDDjIFvlElXfomnKyCYpqJixghnXvetfR6qzDNM98Jo",
+                                    "8lm1yE4zAO1qkK37PBftiYEFoK75wU2E7hFFVB6nh8NBSQAHkP2CNyi3ah1G3VcacJPZkWeB415WKFv4vpGaXQe077G22Tc7C26PQliUenIY352y"
+                                ],
+                                "tx-frequency-max": -1381486205,
+                                "maintenance-timer-range": "DRxq3AW9yiVfQlmdAuc7I9QzgCtkpu2UeAk928iAqePgrbm2yy1gzRHPl21Kp4EDwRMyZX0q3Py",
+                                "transmission-mode-list": [
+                                    {
+                                        "transmission-mode-name": "iWEhjbbXlHed4rpp6O2wZUXaqvcqCsQMom3Ix7xSOLYK4n1a33GVPv571apvC8hTuct2j0M7DCJHRCRVxqQeVNmWXLjsTAdoNGi6yW63zHKqctdJT3YPJcDyXX0Jp5Z4L9bb596EIQXUk2w",
+                                        "transmission-mode-rank": 243211274,
+                                        "supported-as-fixed-configuration": false,
+                                        "am-upshift-level": 78,
+                                        "tx-power-min": -41,
+                                        "am-downshift-level": 73,
+                                        "symbol-rate-reduction-factor": 61,
+                                        "channel-bandwidth": 1664865276,
+                                        "xpic-is-avail": false,
+                                        "code-rate": -71,
+                                        "tx-power-max": 109,
+                                        "rx-threshold": 21574,
+                                        "modulation-scheme": 20432
+                                    }
+                                ],
+                                "encryption-is-avail": true,
+                                "duplex-distance-list": [
+                                    642294422
+                                ],
+                                "atpc-range": 84,
+                                "performance-monitoring-is-avail": true,
+                                "auto-freq-select-is-avail": true,
+                                "tx-frequency-min": -888389627,
+                                "rx-frequency-min": -756713723,
+                                "type-of-equipment": "igEUCYTR3l0u8TEb7x6SQq2tssvpd3vvc1pOZaFUwxgwjVHisGba6dwrx1QKWlf0nwPeGm14MhB54inpQyzXDXoaQ6UFs1FHxuNeJOivYLsU4PjMgLJLIZWz6I6qCL798UfRBqerbGl7vxUDivpSndjtNpLpbSrjEG",
+                                "atpc-is-avail": true,
+                                "supported-radio-signal-id-length": -30979
+                            },
+                            "air-interface-current-performance": {
+                                "number-of-current-performance-sets": 85,
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "timestamp": "2021-04-18T10:13:55Z",
+                                        "scanner-id": "difpnYMTwmWoU5ZVQMqN64cVk4zcyXzL7O2vEOg22cqWhhJ0W1NU5ZQp3htt627eI9JeYZg03zXcQycEASzFRhXNyq8EtfK3ptinkynn7cAQLEmlwVSg4PVCg39BjTEIfO5rnk",
+                                        "performance-data": {
+                                            "snir-max": -14,
+                                            "unavailability": -384885713,
+                                            "rx-level-max": -123,
+                                            "xpd-max": -56,
+                                            "ses": -437081449,
+                                            "rf-temp-max": 118,
+                                            "tx-level-max": 109,
+                                            "es": 1840927906,
+                                            "tx-level-min": -37,
+                                            "tx-level-avg": 54,
+                                            "snir-min": 109,
+                                            "snir-avg": -60,
+                                            "time-period": 1459904108,
+                                            "cses": -1168441765,
+                                            "defect-blocks-sum": 15475,
+                                            "rx-level-min": -86,
+                                            "rx-level-avg": 65,
+                                            "rf-temp-min": -31,
+                                            "rf-temp-avg": -103,
+                                            "time-xstates-list": [
+                                                {
+                                                    "time-xstate-sequence-number": 37,
+                                                    "transmission-mode": "JKs3401vTBAq5pla3YfR9FQyybIsZJKAt4vqXwVQ8n8dMlnIkvzl2iUBtu3s5F2rJyRGWEo41oaFKpn4UPhX7bqAyl2D0W4BmNajryfsXp8zPnvBcMyjQQLobFT3CYFQDP15fhp4yxvfN0RZNhbv0WTbCMf6CMO8tQdAZCFx22FP3",
+                                                    "time": -1612463931
+                                                }
+                                            ],
+                                            "xpd-min": 114,
+                                            "xpd-avg": -84
+                                        },
+                                        "elapsed-time": "-9223372036854775808",
+                                        "suspect-interval-flag": false
+                                    }
+                                ]
+                            }
+                        },
+                        "label": [
+                            {
+                                "value-name": "fkla4r7178xvtKjknAgbYF0lxGKbM4Q1gb4dDbeKbMfEwqQLS7XREP4cnOnaK63Th76MbkomYDTnWJ8OIXxfNBr2hGcUM8FW7DAiXZxOuibq1b7C1EJO82IhIV3nVIb2lLlbKKZf22xV5Ep6b8MjavsTiw8dejfsWsDHcuO6od2tSrA3AeeKJGv14v6jGeLDGgcLK0R05TtXdVSNaYpLxN",
+                                "value": "BiLUZZxuGNGjpyahDWLt9ydOAcdmJS1c3MZ2Mwokc4vtuFLZtosCOGipKwDlgExjiwdWVB8ZxDs1b5TEll9aTrzDP4Y6Iop0UD"
+                            }
+                        ],
+                        "is-protection-lock-out": true,
+                        "tdm-container-2-0:tdm-container-pac": {
+                            "tdm-container-historical-performances": {
+                                "number-of-historical-performance-sets": -25658,
+                                "time-of-latest-change": "2020-12-05T17:05:04Z",
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "period-end-time": "2022-02-03T14:32:20Z",
+                                        "suspect-interval-flag": false,
+                                        "history-data-id": "pK2oZF46u7it1lsyuT5UQS67aAnnkr1JbV83B415cjy5ESv0LsUClSBvkYLFhEotAow3tx8xQzCmr7m5A9zN1aae1VTis9D",
+                                        "performance-data": "ml5tgOslG82DTwf5JouXnI0jpfHN12MofKJwy3J6bLC5aR2T7wQueIFvQmiRgW7wGRU6Uv5Y9H3jy5cFt22HDHct4mccakAR3uPPSUN1tIk1Fwz8qBHViLge7triF11IoIp8v59YNtSlRjlhU354OlbOOuYlnZ3LzlT4qUV5nFq6YMoKPtGvORbvl9QJ0MmA78wp2rui6VoWzEGgZfLG6Xbk6T3ZxhzwpXVkhqufdS"
+                                    }
+                                ]
+                            },
+                            "tdm-container-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 27862,
+                                        "problem-name": "ZeEkv17EO9r5zkWi2YJqxd43j5KThdLgjhtPjAtZJNWb7Kl2B4s0ax3tuFeESZU4hfTsHejj1gu10H3BLvBNUw8hcmVWeH0nPTPw08P1gbU9SXKwleb7CkoGybDMLv9AhQ6hZOa7R5gC2T0f7bnBnDiWHNIsiK2zA0QrG1zq6H20AU8zXnbl0l9z8R1qtVS4WInuBOUzwOs6AsyyPBLHWUh4Dam7663UPioi7bKvRctkE1SlCD2qpbm2mJ9",
+                                        "problem-severity": "tdm-container-2-0:SEVERITY_TYPE_NON_ALARMED",
+                                        "timestamp": "2020-07-05T02:21:40Z"
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-10-13T03:32:12Z",
+                                "number-of-current-problems": 65
+                            },
+                            "tdm-container-status": {
+                                "loop-back-kind-up": "tdm-container-2-0:LOOP_BACK_TYPE_NONE",
+                                "performance-monitoring-is-up": false,
+                                "interface-status": "tdm-container-2-0:INTERFACE_STATUS_TYPE_TESTING",
+                                "statistics-is-up": false
+                            },
+                            "tdm-container-capability": {
+                                "performance-monitoring-is-avail": true,
+                                "supported-loop-back-kind-list": [
+                                    "tdm-container-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "supported-tdm-container-kind-list": [
+                                    {
+                                        "tdm-container-name": "PT5m2YC5O1dlLu3vBVaBtjfpZLPUqwy7iDtctXaiQnDuSyZllaWOl35cOU66rweJ1zVux5MnliR5IRq4TnK6iQi7Kg5",
+                                        "tdm-container-size": -1218572281
+                                    }
+                                ],
+                                "supported-alarm-list": [
+                                    "kA6N8sP9p4soAfQ9muJsfpkZzoa4olc",
+                                    "VioVL5429oiCD0LSvmkCEwBdUE9bRmLEE9zhfvkoTC0pDDh0SBCw76JTCS4t6IZLRq26VenGJfXeLe6DHA9GGKsauovB6ueYU8WHfbgYrd44kaH1KIAjs2tWiZpplDfgE3PTf5Ryb"
+                                ],
+                                "admin-shut-down-is-avail": false,
+                                "maintenance-timer-range": "NTIhiFWF06p5O8wK1LvZ3dh2Xp81bjFQcfZuVV2V1rTIrhsk2XjX2sS0R0T2jyKoOJKBxMoq5h8wyBQsq1ittalk2eedEYBkAeV7SkpYBym215mr6wMsG7MAdTOSJhcbv0a"
+                            },
+                            "tdm-container-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "suspect-interval-flag": true,
+                                        "performance-data": "uFrZpvkJ1mBmQ6ghvsDpOez8WvmkSY1ewk5VPqEQM74u5lLsFpRlvitrOPMGFNV30SYPiuyWBCryX40utSPZaiiYZ4xxKkAKcrrnVZjpCCXrHQW2IL1KWcJN88cSsNuw6WTTVdapP0RoQFrqika6wLUF",
+                                        "timestamp": "2020-10-20T13:57:43Z",
+                                        "elapsed-time": "-9223372036854775808",
+                                        "scanner-id": "UKJQDDDIN3qFMOvjfVtA6A6JmDDs3Q6XAPF6kaO05eFJ332aYwKWYJGkmbEpTKemsTsMWgM1nkLinFsd3da1WIlaL0AECO04AsJoBnpYH28WIAaLNcFBUSMFKebn2cjuwUSZaaPRcXGMyQqd25POXBlAPwXJA867VQ65SOO5LuJjk9xe6e2WHnwo"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -94
+                            }
+                        },
+                        "address": [
+                            "i4irESc62t2cu2MfiM7lppiFg2bVDBZVF9ec2qaWTd9g7VvpzDDR2VoaQz6t3XgI7mM1NXXy2YO9McrdH44BRsMzUKUXz2xGpcz"
+                        ]
+                    }
+                ],
+                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_BIDIRECTIONAL",
+                "name": [
+                    {
+                        "value-name": "GcAsQW6DkTZK4zoE8aHcaxDlnAL1lGN1KglAcr6wc588wwMEGlJJTe48O",
+                        "value": "1agH3TXpl1IryVpGVN5AsLV3mGhjG5TA71hbUesgf2zFXQeLEjlYW81bHaun7nXfo6ibkCrsESZuJdffos5dA6o98Sxf7mmvtEGFgZ7VK7hlcwAtYFGqD4ALOZ0VlniGTRm2IlPsk6NxCfSsUyKpucaa33Xpi75bYj5zFU1Z0HouWgOJGz02D3cH61Yo9VrZfxyUrsLk1aOPiDqZ4r1zu6gs7eQ8290hyy30SOcLQ0B1v10rkT1GR98RgQZi0"
+                    }
+                ],
+                "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                "physical-port-reference": [
+                    "c942beda-266b-a670-ca1b-e78a3653775b"
+                ],
+                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE",
+                "extension": [
+                    {
+                        "value-name": "cUKL7xUlZ65FQBoD3n8v6uuxCsUxQRN3LpGKWA5VG2tpDR2z624cwrC0TwyKfdF0ClCrNzelBHK7qEGwGCJ4Vd5PJvrYI6QcjkD6LSrer4lSITghoRlj4q0FNrvnpdAIx5GaX8phcK1Mwh3U1p55H6Dvx8SPmkxLq6WfelwiXp4tH0fAplF6ratQjeFxy5aQb66hjuz9UvCtvS3UdATwLemWs2tT7DJaCHrV40",
+                        "value": "YnzjTjeFoOqUrxgnZaIK9mmjQ3KD7CAXS9gLkuiIbBCC8SSZVAK4O6gE10i9vS6fTf0dBaVMLphT99L4Jv9ytp4uhmvE6uTZBL4cORZzgglqh6u0tvqOMva4JGAI2mzD7EPNvGfEOA45yqYTWozILJEnh75"
+                    }
+                ],
+                "ltp-augment-1-0:ltp-augment-pac": {
+                    "ltp-augment-configuration": {
+                        "connector": "07wpeqzDCeErNGQsYiiaCfzpi0iDsCNsCbRIBjm5pSw4q",
+                        "equipment": [
+                            "c942beda-266b-a670-ca1b-e78a3653775b"
+                        ]
+                    }
+                },
+                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE",
+                "local-id": "XzA7g8RZu9we1F9DFb1U2Ww6s6cjjWY8oq7ErZDV0111Gawdex7gtveNui7FfXNDfVhGMMuMNnNuybHEIHU340Q",
+                "fd-rule-group": [
+                    "5ea42646-26ca-afda-19a7-ad7f7cc924e6"
+                ],
+                "label": [
+                    {
+                        "value-name": "zyquqaauW1np2SiUcDF5bxekgua7M27dtpHTrSgfLDENnXzzseEDDLXT701U207vhHhIzxYc2CZprqZLEvpa8e3g64a149wlIFW94Ul6ocwICnt9SKj1Zm9XjjYnknB32xcZjy5zKthfQLoBvHumVDceOau0x53su8rFyoeaSwpA9FbwexLa2X",
+                        "value": "Q7KRFHM73UqIkOPvGdU9mskSGKvQMs7DAJm7r86u3o5"
+                    }
+                ],
+                "transfer-capacity-pac": "NhNKcvNFDVL",
+                "external-managed-id": {
+                    "manager-identifier": "ysL0rbpfzdcYbXd4ReA9wXduA3ZTe9CEBfw2qWaZ1mPdc3h39S4GHh2ak13qbx4EMtz5pJWqXMD9HN4Qx8oepqoBsr1vQY1DrAAIbw81aE2Rr7AY7Y4xht8JM26D078jAI1D61EhFH8YGAONzTkQelr0",
+                    "external-managed-uuid": "pvfovyYdruks8B0HBQncFbDqnlwAEoX3U4rhuivVMHgMaguD6JPDMkVaxjKbIA6uwqL1I8OmP48Rcuvb6cGSpu2WNF8v76ZvwDweLdst9BcmXHp3M5WbzQ7nn7KmeCSKfgRStjdDMqRK7gFTlBWNk42z3MWhgO2vWTgq4tVRTMtT28EfCBUWxWvABjSRZMfWxveBY9sKNVDHWhOySJmhFRS83K02wfY3K4wA5RkS"
+                },
+                "client-ltp": [
+                    "c3794728-dc8b-5233-0c67-0b857c32ada1"
+                ],
+                "peer-ltp": "cb398360-6165-86b2-5b57-2fea3e77edb6",
+                "ltp-in-other-view": [
+                    "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                ],
+                "address": [
+                    "awgy4vcTXgYnGO8u5H5QqJ5AQaT"
+                ]
+            },
+            {
+                "uuid": "c3794728-dc8b-5233-0c67-0b857c32ada1",
+                "embedded-clock": [
+                    {
+                        "local-id": "zSzgZS2utSYSlt8xN7dsLeEaUA9zvWk4GUcxEe2ZYSSkdSR1Z4lDaRNXjWoOKJKivOQ12K1TCLdPDWIu0W73NN0ZBoNeZqwmemo96h2A27ix3STVO1YuGQth78n6yUlN8BOfSQHMXZb0S4NyXM2Dun",
+                        "run-mode": "core-model-1-4:RUN_MODE_FREE_RUN",
+                        "phase-aligned-clock": [
+                            "0b7BoMdU78PGiZPZmPfboWaxHcsgTLSLXZfdEs7LsPjKG8C2PJ56GfDfr5ndI7Yx7dKDxKgSzzufz69pQevot0vU5S7F0YdZ3XuBHKl8jPfKWo9ECw25wpSt9R91Hm0LbmeL6zTho12cp3Q2AKZ61JsbtBcaP5V0r1DyApPZqJ3HNUBnwBlycNJFgNQ5SDYcFBCfSj6i320QWt"
+                        ],
+                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                        "encapsulated-casc": [
+                            "F2v7IjrovoDQAwafwR6r0d1X0S4sla714C0MNk3aIG0i5apB2wU2JVRBFW31Y222wUHbeCmWam7fpwIjUudvhW6XK2YIWSDlEcwTOSHY7OewdOP7jUDAQBxBvnbs7ONE0bpO46F3N"
+                        ],
+                        "name": [
+                            {
+                                "value-name": "BoaAW4NB5ohk871UWT5OD1CbZg6CKlheJsGyot1tRjFRizLfkIVXJx8IF6dismw3O4B5xvqgOY7YxK5Rk1G3qOE6NJof5MaMQMJf99vP7CNweTfyUVtkC7ihIywO",
+                                "value": "Gs2kbhlcMacgYImJQUDDoP7n0o6yMMTleNxp5TBJ3NSToeC617JpXJEX7KnMw87CWE1TpvutaemytREmYgLNRhCQ20Cq8B348WPxrk0Cyf2T6zfWHSKyaeo4eTmfupbCe12xdU1D14p7DEWcpyKrM0vTTR8o9bSfcUMhHOVISkInQEz74byQbVB5FJlGVdVZ0H9Hv"
+                            }
+                        ],
+                        "encompassed-clock": [
+                            "0b7BoMdU78PGiZPZmPfboWaxHcsgTLSLXZfdEs7LsPjKG8C2PJ56GfDfr5ndI7Yx7dKDxKgSzzufz69pQevot0vU5S7F0YdZ3XuBHKl8jPfKWo9ECw25wpSt9R91Hm0LbmeL6zTho12cp3Q2AKZ61JsbtBcaP5V0r1DyApPZqJ3HNUBnwBlycNJFgNQ5SDYcFBCfSj6i320QWt"
+                        ],
+                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK",
+                        "extension": [
+                            {
+                                "value-name": "p2eox43XRD6xNxTsTxeo3vR4QqMpnN8NHmbeif39K9GxysRkR6IUtzYjRDAeqI174ddmkgo4h4uQol2gjK2Nb162wzgWhaVmn8Izg6Dp377jl9zETuj4ni6TRfP0pCmECXdSVQhQQpa3yBHk5Tos3ndUC2UTw9x86KSTs2KarMdRfN3lGsFJHTvbNh4cqBkoddixf2IyGVhVIl8gFORm",
+                                "value": "mxeEtq4WLl9QDGXxgnd4E0MZ9VEPMSg1huFKVBGyWHgrgdYwA3A64f652CUOnaHEwehrQPREx7YFcW3ESwLOLJTFdFlAP37dhoFZ5owCou9Aid7aJSYmtJ1Gom95"
+                            }
+                        ],
+                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE",
+                        "label": [
+                            {
+                                "value-name": "hfgZCYD36Hewqqs1v7DQFqVAh",
+                                "value": "hqmFmEUCDpB9kzIz50"
+                            }
+                        ],
+                        "encapsulated-fc": [
+                            {
+                                "uuid": "10cd9061-7231-3c7b-b09b-f00d66e454cb",
+                                "service-priority": "-9223372036854775808",
+                                "supporting-pc": "7KsG6ITlE5vvgMYrOJLuKhtDiUSNSfnRZQpXqijWoOrEshX91IDD0YgaK1Xugklf2L4kVn8b4zQoRNxKo2ng1vqLwfgMrtTu6",
+                                "layer-protocol-name": "ethernet-container-2-0:LAYER_PROTOCOL_NAME_TYPE_ETHERNET_CONTAINER_LAYER",
+                                "forwarding-direction": "core-model-1-4:FORWARDING_DIRECTION_UNIDIRECTIONAL",
+                                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                                "name": [
+                                    {
+                                        "value-name": "1YU29iMStNiWnUbVVwAbRsni7mOkUXxVNsQWCuH6aZUxT6kGuVSdffvmtbGn05aOx0K2nr0xqU4cSpSecKrjRXFk8dz9iKXQCzSZ1Soj",
+                                        "value": "tnpKgDOS57KUMWURw398SRKkBCdl0oSlM952MTMJSovwlqnJlxR6gBqSdv56TXrF6xzLimm3KSz5aXGvmxtC1TmegskapMPwbp9lDvonnYlxN1V9roDsa0GqsTAJxi7AzgVcMcz12MzPGuY7KtzUt7lN0Nxp5wZENNIzRaATW1ACnqJ8Ta2nif2aVrs0YjxL67cPhEAeGaIVAk3uuYJM5LP0dhT3AiO"
+                                    }
+                                ],
+                                "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT",
+                                "extension": [
+                                    {
+                                        "value-name": "izCtXgP00XJwSBeho0rOLIfy3zgdaCNsbpO0FDSyAt4lWaCd2W1NE9dzIlMTXzd1Q11wwM4Z70k4aOhcCaR8j4IUimNfO08EU22iOYhVYtR0i0cU3V3eSD8aZVhFOqkAsmS8d23bvN4NFgAI4vXW056RTfxzFJ175TfaVbmjQq6vyy6CV3yN0wFTM4kjNlrK7yVUB9drrcPZCVuqYUdQrKC5OWoBaHe9893",
+                                        "value": "a93BdSAHFW7vRdlaXXfMMvfWdt5lu0WE1Zf6JIOoEVTn0fxY4EKQaREfdBsHuoevgluZ3ioA59P6on4lTGb3pQaCrCcVTqj9DN8zXo12yQ0O5W"
+                                    }
+                                ],
+                                "fc-route": "X86ahuq9UFz6f2K8lmnPjpD38o3lrEHoMFq31QdVnMTCGDCU0RBb9e6hu2uVG3bsICnJksxI7icNWPzOyaRHpYRTSdHqhSSZu7BPA8pHqBmeiWUR6MqnCh9mvQMMIwD5DeU5ejMFM9L5XGO3kejOo",
+                                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE",
+                                "configuration-and-switch-control": [
+                                    "gJFEGWqP40cZHrXkFKZIUxaVqZWTim6z5L5Lzvsvvwn5XcpuWg5IGfEYesRpO"
+                                ],
+                                "local-id": "5WxbwJOOaB5YJTOXpAlhJq3TG6lN7gn44V8sEW8PqeF17mYwWbNGBQzaWUXV2lSYgSqMGrt6F90MvYajaPZLxrVllL9g6TeeLx0rYmqDnqhKgj3q834xuRSHC1XAU4OxBHZrVhWiH52Xo5go0cVm3NWyHL0tPP1ioSJj1xtICnx0kNolR",
+                                "lower-level-fc": [
+                                    "9bc11e2d-913a-2fa6-a64f-f01427c75d88"
+                                ],
+                                "fc-switch": [
+                                    {
+                                        "local-id": "AMMelajeVDvbLV45TQrnryG4aW94zWJ1JnfWxyas3xEPlAU6qdtJL9OOXXKoTlpuJFqg5AJ98fQtPCz7P3Rt4F9UuTifeIKXfa6kDHlLWb6DNxCvstYp07juStKY3mOiwUD9BYMp2KUHawcCS21S1cfTyRSBdyUBspLVfpkh26RcC3OmYIfZ",
+                                        "wait-to-restore-time": "-9223372036854775808",
+                                        "profile-proxy": [
+                                            "YlrWXmCeTVMrFPBiApW5Hp74bBE6RwrQRSMG6gVZ3ziJoT1"
+                                        ],
+                                        "control-parameters": {
+                                            "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE",
+                                            "prot-type": "pSCOygOyqpqRwHlE5e3lu6C346y2yyoQi0wQ8lpyKPp8oLNuRQPdOjhSiHUIfayp35gbixKUe13CEIYoqGBeZKZ9sLKzWaZR772pEEkSGfmcXlAf1clSOkUgYEIMOHDWOxdkcpcSEq4tLxIEJ4ppgjG6PgSDXnrDVFX741RBrNW5kxJVt8lJjTI89",
+                                            "hold-off-time": "-9223372036854775808",
+                                            "wait-to-revert-time": "-9223372036854775808",
+                                            "network-scheme-specification": "YQ5BLCqKzrt2SgYXtvzgYHtA1mi1nKFdADOdf6XGxiIizz7U4yaV8En1SF28hIlKl2Xs8N1y5JIwiPifgl2oZppJ4rRd15Xm7NH7sIFpjnOC56JljLJaa8U6rDbtI1PHOoP86upqK5UP4v2ngDyiLko4XzxyAf7gDWgCjG23DOKHjE5rhvJUP7YMywc1Lkho8q0r6UmBA6jLKgcTL"
+                                        },
+                                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                                        "switch-selection-reason": "core-model-1-4:SWITCH_STATE_REASON_NONE",
+                                        "name": [
+                                            {
+                                                "value-name": "mLkdvWi3ITn7wimWuwYAn24iQr8qy0dULpZgdhbV2y2zQhnkFdM2fQc5hdoPdtBYSA66Jh1MPWlx5IJKNvE2dQZv3nc8QG6BgcH0lAE2oZztzadmFRgTAfgvvkEd0KO9Pn12QF5ewwI5HVjeFrZfG7C3sg9kTXtAdmCV1H9peJmVxx1cY1jx8VAs4JNXz8xEv1zoJAOXk2KJADVyE65FTy7X9UMI3beqdNG",
+                                                "value": "gmLApnbZ06px4ncXVjN46zF1LTrYH7UXmxpLUACMy1juovjbH6gNGVOjO7hn63csAt5mVH8lJkPZP9bw7"
+                                            }
+                                        ],
+                                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE",
+                                        "switch-selects-ports": "core-model-1-4:PORT_DIRECTION_OUTPUT",
+                                        "extension": [
+                                            {
+                                                "value-name": "wJbVQoWvHfmZLT2CqIiWmJ40rHIMIv56682WpQkYXyYIr0cKAuGP5CPojpaTM70S82HxK1vHrlhSelCGQavNMccXBeRfmR0uLH1nAoW1K5LQqgw8q2W5682AmLPAuP47wXuYeiZQnLGO14Wj6So5SrF74uHzcEGAtbzztqpJ3Xx42lg06E5QXCX2",
+                                                "value": "xBb3hLokkYGLfpO5OL71T77x5YnHNpGcSJf1vEmHuUkBj1GZEN0xN8WKYjjLASYsB5m6BIG5u0zN1fEx3E4IE1kCcDgNv6773t5F3DCxwbcprQXmn1W1UgE7TMMhSTgVfdsaR5If8MEr"
+                                            }
+                                        ],
+                                        "prot-type": "ZDu1DlUcb7h6WsMEBYGoEv2sdziCGnFF01HwmtIpsRvoc9UNZs3EQX63xoxdE4Lw6s2sNDSfmfwyhiegLhMBfTwE93JN8uceOeyBJiJ6qfEHxSPa2CD9n9Nw5wc5TgjHuJb62Ucs9Q1yBQJvkmEHoj6tHayAqJiMstSmf4OoNPOgyxLSMhs2AqvhAVK0E2MYnxlCB1S",
+                                        "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE",
+                                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED",
+                                        "configuration-and-switch-control": "aPWR73WiwAon6P5PzRoF0bw3KPE0AxRLnFCuAyM60amYSrGrb4Zb7v6JcLJNityx021BtFztINsA70Ti4St3gzMscvfnQFURAOk3lLo3zQvGQh",
+                                        "internal-configuration-and-switch-control": "M1bPhKBKPZRcHp6yZMK28wqbX9zvRQlwRwd98PLXGC1n10O0MqUUWdYLex85nlteRHfSo0H4vJjwJZpnqbieggSuF0s2mV85uoPSgxOL80aJZr6hCgwTogf3gH5",
+                                        "label": [
+                                            {
+                                                "value-name": "bNeZ6UYfa5iepKIvYvc7RNjyN8HYxPhIunAthqIjnTyNvgauLetu2M3HMCxjjGUO3m9cMRw2C4H8cRCP5XkZJfyvR5HbLtRGP0TtJpnel4mxVQmTNyKoNjLFgkI2NrAujtQUKd85imu54JQRht75MTCU5cOTDpnOS5IvjRsB5XyaGpTPS1MwMgiRs7CXw0Lg5mLg56Ja3ikBzeqj7dHLtZCO67Lu7pL4LodQuW0p",
+                                                "value": "d0FjrYqwFbZxFNDMr8LQLIt1V"
+                                            }
+                                        ],
+                                        "selected-fc-port": [
+                                            {
+                                                "local-id": "P3y0kfavqzPXxaFoGXqjMIxwFLyRbgeSbMTw131jCJ91TOpADHLqhbWXWnO8DU0PGLdzO6TiP2jBIB3miOMARAxOXdOB7GiFsne8tZrb1KECdHYwnCYfcnV2AJDzhN6JacKvcbG5NkH1Txp99nomKbocMTD3yJFINpdZsMX7YE8S4p1dMhrosPA6A598GOIu5OlxAiFyPFiT5b6Jsy8MfASIGUQeArIGf45HmC73aqWfB3",
+                                                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                                                "name": [
+                                                    {
+                                                        "value-name": "WtYAIrliZf1dPsWnHStg65na7N6mh155u3F5m0nd7orXQfkp7FF5D3fKIe7Rf4WK7uHmu4zClSr37Ll6jS4WNjGwxFfNJcpJGY5",
+                                                        "value": "UwwfpXboBwnUorQ4KoAa4PPFT6or4luYK061QhpjFM5V5VZIbrS79zN2FbuJpQz9IxayOrJl6OhbBgTNIDURcHLRL7saXUbGrl68MQtSECWgTPVttPcxpPpaXJcUDnA5Az5epyZV3V3WCYhXOlv5aM77vjU1ymY0V3ect58w0bkvatsQOXVRJ2Q7dK8LZ6LU1R7uX7TXidksH"
+                                                    }
+                                                ],
+                                                "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                                                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE",
+                                                "extension": [
+                                                    {
+                                                        "value-name": "MUkUeSra0j2cY1FqOYqbCPui1PxnlIa7umTI7lL7wNbuOQMuGcxbU1tVR0a4Ad3WzWEG9pFF4Q2SzOefTLqNNLAwDLA5YD1pzy6JXDgUuiE3ZTaKwtpbeZHKC9PsMRSehYX6t50XoFSfqVZWog8u7HeKRWcDF4",
+                                                        "value": "WUG2oM3d2IY90L0W1gWvnEC7nyc0d8K13i3jW6oYGe7GZ7v0frwD50CkyOdDXXES7Hb4GrUeGUVF1iG9J4MH4o1u5eZ23DU3cX7KoTZ4NMCH4iQFeCmaSgEXuDZq8LtcAAXZlOV9sxQoHy3V"
+                                                    }
+                                                ],
+                                                "logical-termination-point": [
+                                                    "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5"
+                                                ],
+                                                "selection-priority": "-9223372036854775808",
+                                                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED",
+                                                "port-of-internal-fc": [
+                                                    "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                                ],
+                                                "label": [
+                                                    {
+                                                        "value-name": "anC5eeZXl4zlPyjslkksGhzz6JFr4e6eBIcIW3F98euXNNi0ZCsyLT7JCE2GS8NuRZ4F2JPaXj0CZiCYUWwxHwgc2jKVrxhawlQr4FBTQtoPLSGxH44osdsvwdiPKzS9MIAIf3tXxRNaClIbpEzSR2ff7xXR6PSSpkswgVtNF8Ph",
+                                                        "value": "xsL4TDVNS3Uh0EnHo76JzCZm5E16tazTCcXoPK3zFQQxm5eK4klvOkSMQTSc4j5ywUOdwSF4InB4lQGp22VReFv5qfhuyeVW0JaotHsb4W7pMOHGQup49U1z9aWAgRwgsyxWfRZcN7BrNi8vMprNklflvb"
+                                                    }
+                                                ],
+                                                "is-protection-lock-out": true,
+                                                "fc-port-direction": "core-model-1-4:PORT_DIRECTION_BIDIRECTIONAL",
+                                                "fc-route-feeds-fc-port-egress": [
+                                                    "Q1tn9vz9iTbri7OgJUN8q6cOjpdbjpP9jaxkxYtQREh9DXieK5m2bqQ"
+                                                ],
+                                                "is-internal-port": false,
+                                                "role": "Gwh691KqlM0L9al4UdIOSy3pTx0Vh9EPFVVPOxfaj8Vsa9oWm6Cexxvq4odd",
+                                                "address": [
+                                                    "BK26Bs6nVjXn8OJOCKg9sEJ0HE2ZCOx5yscaUipIBe5BVGpxqxySbhKLOECqt2vTuz3oS"
+                                                ],
+                                                "fc-port": [
+                                                    "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                                ]
+                                            }
+                                        ],
+                                        "hold-off-time": "-9223372036854775808",
+                                        "switch-control": "core-model-1-4:SWITCH_CONTROL_FORCED",
+                                        "address": [
+                                            "BTpRpoDbaMVW2J37bdQ8V5hAKI5do5IRQ8Bgo6rzSfnMYqT1vC2jHjTjTYx9Vf1LfC1EIl5sAkeqKZj7tlq3EjmqhLrc1sQ8WREw4JYw34WFW8Nptds0pHqGsRLlcBu0k0xhKnNFkCd8K0xd5Sduzv31nOfrhJrBJQSl6y1qa6yM6XZ3P5ygAtiPhxgq8A1JqMXwcQOeWe024ZXTWnaxQkm7JvpJ5jsn5hU97An3HnXLeVEbiGA1SO0Bjq"
+                                        ]
+                                    }
+                                ],
+                                "supported-link": [
+                                    "3o2qQpVmMSbYaFUiKvY09W6BGvhvl2Ygi0G0hum4mp2o4PHHkxzlmFO2b5pwZfN97t9pXvtcUvAQc9pwHYJVExPPuedtu0CBmL0j8lnUJQDVZ2ky13txBam5pzrLsVeOz7Zzsnm3dZZ41jvUeYrH1FFq763zT9fkgeUBtgEG7DD0O8V3YeCZMhhTfkk1urlCF7d9nKHmfcn4kaZbgBa2LsN0EZ10qnD6u"
+                                ],
+                                "label": [
+                                    {
+                                        "value-name": "pSgHwRN41v0CPVYkLHYRkFJpWuspM8Y406LxXqtZVltLhjX20NLctvChZWGE5wI5DluALYryjMbs50nXO8a9vEqnA71xvBD0O7tr",
+                                        "value": "UZ9H3BE3YCRZE0uijJKiCiN5NOTM9cC34LC7eha5LU4pMqz52jnEt3K8RDV0IxVMaqTozVlkHhJu"
+                                    }
+                                ],
+                                "is-protection-lock-out": false,
+                                "external-managed-id": {
+                                    "manager-identifier": "G2dPd9gVyZB5JZ8Y71mxMSE2x5oqrug8omXuv5p3501GR1FQ21fOLTJiZ7BqtJqS5feBlDwqwx6fqD6swl9i7Ss6RVocFPWK4adpOKH",
+                                    "external-managed-uuid": "9GjAbp2ID3SKVkIE86RNVNp0QDhwfZIox1QIjLqOOiyKv8gDe7iaNH2vkj1zaJQHCGqNrIBgT1So90To0bqNSsa5DbEGMmno3F4mgFC9HmpQni6nlw2dQcamnP213hp6Xtt51XeIcDqzVpO8NQlEUwS9dUag3zf0V"
+                                },
+                                "fc-port": [
+                                    {
+                                        "local-id": "JaH3p1r3QGpqW3VI8is3tg16XYy6uV75XO8mHzqp8PPWSKESUYWo6Xu3N219P0eFOe1nNjMN0tBS67D06rgcgC8Vx14e2aTQoV636SR7ekZksucyNtC3XKQuEUJGWuokhuoof7vtrmFT",
+                                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                                        "name": [
+                                            {
+                                                "value-name": "RjwcWAayiw457K1C9mTvC9KBE5U1CGKuZ8yNIAe17i6e3ZI4durPD4ia9d3MTF8KNyyo9EhgWfmRe5Nsrf94js6kF9YyOYaCxI0Ge9O3o2MC7A4qHenSGt4dv3Dj1NNqoF6COMFcPsHOULftRClpXpCsk7EeVjEjZLVFptKeNr3H4a2WMfdBEI4RPA5K",
+                                                "value": "J3KmRqMca0ZtVyx5AlJPzll9hcYRhBCTwnffF1rPUqaPYHNy3wfuRBD0FtJX4mItBXIgRaXDA7krO7RJE75nAAgf4Z40dMlOC4Wt6TYGSiZziRaWYgbqQjFMjKNoo05041laNjJxCI6UrhIhxLHf5n2gZHEnHBoMDJOi3xPx8Ojz5TRuwyJtNDJMkg2URqym1mwWMmlU2El7p4tWv4hiI1XU9ZO0pmfiBLfnZA917m0wrtkW"
+                                            }
+                                        ],
+                                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK",
+                                        "extension": [
+                                            {
+                                                "value-name": "fEqTWxbKSFEYbyXdPmHvCevJ52cKMEd2avN72YRMDnCPVA2DWB0zPwaNqfp4TD640Mb3KUHghc55MZAIss9aQkXgzmdkRboSXrNIlmYvyVskM2Vem4odgdlHAy2rKibHKYh5l7sT2U6OO1V3Xjg6xtNZ2HiM0ulKsDHNK2zFOFlvGgyvsGBZ9hQ3Q8PQu3sXy2CaW3PKIb7gjFMLdfCnwsqft85X3qMB",
+                                                "value": "pLgstS3w0jPxXBLdd8ByqQ1yOYB6D4q2QymbihHiBwQy7BDdBfL1XEs"
+                                            }
+                                        ],
+                                        "logical-termination-point": [
+                                            "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                                        ],
+                                        "selection-priority": "-9223372036854775808",
+                                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED",
+                                        "port-of-internal-fc": [
+                                            "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                        ],
+                                        "label": [
+                                            {
+                                                "value-name": "C68v32E2JwjXDCyhRNgjOaqbaPuE1i4vo40sYwmHVyxyaXPTLY4r8vuicYOdgKJFOBZ",
+                                                "value": "8dmVLLlNJ3Gm1LN18ijk80xpK8WrKN6K0kFE60rP3034DQ5L0hX19mqLvecf1aZTvwxtwRasRdouVm7Wv4XEqfpVlu2eET71hxuOgE87RwtNSA"
+                                            }
+                                        ],
+                                        "is-protection-lock-out": true,
+                                        "fc-port-direction": "core-model-1-4:PORT_DIRECTION_OUTPUT",
+                                        "fc-route-feeds-fc-port-egress": [
+                                            "rpeonzm7o25gwH6cWd13MPJf1rHEZZEqhSGEj3LI5QQtxWGl1zpOo0VirCWiusJLkphwk2epT4LiSrwUSNA8Nnq6SfoeH7ZUpgqJaw1VsM6c5CYXpqX4OgayvqM4qDQPT8qVEjRY5X32z1RQsPU85WysmkoEXflInMDU5mK3jN5KPXs9Em"
+                                        ],
+                                        "is-internal-port": false,
+                                        "role": "aLiOp0k25P9RVn2H2PIOMFmAByOUm4eoPwceoo9mdi58F0IIPqoBYC3zaJloOrMDXYKdeTrrbpAQpaqeAGHyiKZklcI9DuFskpyyaZSlgk3FumT42svd4mxqz8r4C6pPnXfxO7K5rOKV2wS4QfhVBHd2PE7jLo00lgy1fa6zQJmSfeX5l6SXN5RuCQOfeOfzWFBcQ",
+                                        "address": [
+                                            "091IzgLSxs28QSzQl43OjGI9k2UOXEWPFPpf"
+                                        ],
+                                        "fc-port": [
+                                            "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                        ]
+                                    }
+                                ],
+                                "address": [
+                                    "235wmzIak0ltE0udXSeRi4S72Gg1btV5wSBLscVMcg8IgCV5m1WFYGM0nU1yoODMH6x1ikFvANdIh1NwUK3KiPKFBD5RkAE1H3UZgzuQfAroteUnQX01EKG8gEZsevlVrfVHGhpNJQccXYsNOsOk4nscTkE7PZVg6IXNRfAB5"
+                                ]
+                            }
+                        ],
+                        "sync-ltp": [
+                            "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                        ],
+                        "address": [
+                            "Qyte46Cq75JkcLVWC9plaXCpYHG6S7uIGYPCWj33oMgsp3o1dFnfDZEBydArk410UQvI2yEicMLBP1v2HSikJON91fsecu66cBH61lp57aHOb4RSW14xHKyJZ1Xbn3arxRyycXEb7dZahIV5BZujJ2UBVJMaEWCbNaCRZ82YlU8"
+                        ]
+                    }
+                ],
+                "supporting-pc": "u3z6V3hwXb7LMMVqIxuoz6fyeawrWxVqsmofhFMeILZuxNN8khwMfDklFJMB8zUAVaIcImiq7aNxXsx9J3VQy8b6RPHZotrjE1nenFEvPjUMLrWmmR4MZfSIWszkVTvrUSFiycFfnz29SYneHs0zzLhwdJI0CeswYZOoblEzUGAMwXS5hLERwOnBx5B1b3x23eq6z4xmCZ0",
+                "server-ltp": [
+                    "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                ],
+                "connected-ltp": "cb398360-6165-86b2-5b57-2fea3e77edb6",
+                "layer-protocol": [
+                    {
+                        "local-id": "D",
+                        "layer-protocol-name": "ethernet-container-2-0:LAYER_PROTOCOL_NAME_TYPE_ETHERNET_CONTAINER_LAYER",
+                        "vlan-interface-1-0:vlan-interface-pac": {
+                            "vlan-interface-capability": {
+                                "configuring-pcp-bits-decoding-is-avail": false,
+                                "ingress-vlan-id-filtering-is-avail": true,
+                                "port-and-protocol-based-vlan-is-avail": true,
+                                "statistics-is-avail": false,
+                                "configuring-service-access-priority-mapping-is-avail": false,
+                                "max-number-of-protocol-vlan-id-groupings": -30506,
+                                "configuring-ingress-tag-filtering-is-avail": false,
+                                "supported-sub-layer-protocol-name-list": [
+                                    "vlan-interface-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_EDGE_RELAY_COMPONENT"
+                                ],
+                                "number-of-available-traffic-classes": 28,
+                                "supported-interface-kind-list": [
+                                    "vlan-interface-1-0:INTERFACE_KIND_TYPE_CUSTOMER_BACKBONE_PORT"
+                                ],
+                                "available-pcp-bits-interpretation-kind-list": [
+                                    "vlan-interface-1-0:PCP_BITS_INTERPRETATION_KIND_TYPE_7P1D"
+                                ],
+                                "drop-eligible-indicator-is-avail": true,
+                                "configuring-pcp-bits-encoding-is-avail": true,
+                                "service-access-priority-tagging-is-avail": true,
+                                "received-priority-overwriting-is-avail": true,
+                                "egress-vlan-id-translation-is-avail": true,
+                                "admin-shut-down-is-avail": true,
+                                "tagging-and-mvrp-is-avail": false,
+                                "vlan-id-translation-is-avail": true,
+                                "restricted-automated-vlan-registration-is-avail": true,
+                                "number-of-available-priorities": -24
+                            },
+                            "vlan-interface-status": {
+                                "statistics-is-up": true,
+                                "timestamp": "2021-10-19T14:17:51Z",
+                                "total-bytes-output": "-9223372036854775808",
+                                "total-frames-input": "-9223372036854775808",
+                                "interface-status": "vlan-interface-1-0:INTERFACE_STATUS_TYPE_UP",
+                                "total-frames-output": "-9223372036854775808",
+                                "total-bytes-input": "-9223372036854775808"
+                            }
+                        },
+                        "wire-interface-2-0:wire-interface-pac": {
+                            "wire-interface-current-problems": {
+                                "number-of-current-problems": -81,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 12256,
+                                        "timestamp": "2020-09-09T21:53:38Z",
+                                        "problem-severity": "wire-interface-2-0:SEVERITY_TYPE_CRITICAL",
+                                        "problem-name": "Uwu47s3pmzwX1zQKZsBfZ35RgXsF3TXXirTpMPO0odYhMG2D9DT8yQRGFjlI5aynujM"
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-03-03T08:30:27Z"
+                            },
+                            "wire-interface-historical-performances": {
+                                "number-of-historical-performance-sets": -4356,
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "period-end-time": "2020-07-27T22:13:10Z",
+                                        "performance-data": {
+                                            "es": 2131797298,
+                                            "ses": -455701179,
+                                            "low-power-idle-receiver-ms": 12707026,
+                                            "low-power-idle-transmitter-ms": 443922264,
+                                            "symbol-error-during-carrier": -2029473437
+                                        },
+                                        "history-data-id": "nx0BJ31yezQxEOHp5oTrTBv5W7WAGpT4XLxyGyYU7PkDvT3AiO13ho85nXG3mr7bdxBL5Ay5hSIMDDeVk7ZBvZzSWfVjGVmLsYxpy5uHPdlkQz8aG7EbYd3VkQ60DsEXq3nQ8RpPWK9FbhPRglUfqP2Ky0Dbs99Lcotk7T14DaJPkqyAEtH4aBHIBcU4lVHxbaRi3KezUXo6gOzM9gQkSp2lBOpW",
+                                        "suspect-interval-flag": true
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-03-20T18:00:53Z"
+                            },
+                            "wire-interface-status": {
+                                "rx-sync-role": "wire-interface-2-0:RX_SYNC_ROLE_TYPE_NOT_YET_DEFINED",
+                                "link-is-idle": false,
+                                "eee-is-up": true,
+                                "performance-monitoring-is-up": true,
+                                "rx-level-cur-list": [
+                                    12
+                                ],
+                                "tx-level-cur": 109,
+                                "pmd-negotiation-state": "wire-interface-2-0:PMD_NEGOTIATION_STATE_TYPE_NONE",
+                                "loop-back-kind-up": "wire-interface-2-0:LOOP_BACK_TYPE_EXTERNAL",
+                                "interface-status": "wire-interface-2-0:INTERFACE_STATUS_TYPE_TESTING",
+                                "pmd-kind-cur": "9nV2QxLvC2Sz9oZFujPZQCmsXlpx7iDhFqbnYWTsZDU01LGn4nmURAfGVE53OIcl9fIZctj3Yd3RZBe3QsQH3XgQtdLhWXC",
+                                "receive-signal-is-detected-list": [
+                                    false
+                                ],
+                                "signal-ordering-kind-cur": "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI_X",
+                                "pmd-is-up": true,
+                                "link-is-up": true
+                            },
+                            "wire-interface-capability": {
+                                "wavelength-min-list": [
+                                    -1000348181
+                                ],
+                                "supported-signal-ordering-kind-list": [
+                                    "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "rxlevel-high-threshold": -40,
+                                "isolation-is-avail": true,
+                                "supported-loop-back-kind-list": [
+                                    "wire-interface-2-0:LOOP_BACK_TYPE_INTERNAL"
+                                ],
+                                "short-reach-mode-is-avail": true,
+                                "wavelength-max-list": [
+                                    1781515954
+                                ],
+                                "unidirectional-operation-is-avail": false,
+                                "supported-pmd-kind-list": [
+                                    {
+                                        "pmd-name": "9nV2QxLvC2Sz9oZFujPZQCmsXlpx7iDhFqbnYWTsZDU01LGn4nmURAfGVE53OIcl9fIZctj3Yd3RZBe3QsQH3XgQtdLhWXC",
+                                        "speed": "5cOhG7cElfocJC7z5X90MpQfCCoqrSfw53FDbR9oZxAI",
+                                        "duplex": "wire-interface-2-0:DUPLEX_TYPE_FULL_DUPLEX"
+                                    }
+                                ],
+                                "configuration-of-number-of-bip-errors-per-ses-is-avail": true,
+                                "auto-pmd-negotiation-is-avail": true,
+                                "required-medium-kind": "wire-interface-2-0:MEDIUM_KIND_TYPE_MULTI_MODE",
+                                "temperature-low-threshold": -5,
+                                "maintenance-timer-range": "OjeNJOnLwxS3PRepGFB0nXTXHamn7wdOHstq8RbEgVz5EOudlXdAV6pu8LR8h5ORphhp0l4g8veNbI0pGdZtbpXbaPjkM7b3hks9FoiGMwtXelmMqefBDdMNUYZGXaBen3g2kyA643Viga5Goc91pOGbEGRBIkI5gY0AwAyAwlKEvHdTUeMb2lnG16aBrSzzQr1e1zOpUqWi89bUnQ5ibkQ",
+                                "supported-alarm-list": [
+                                    "r0FKS6jAxkO"
+                                ],
+                                "mii-kind": "wire-interface-2-0:MII_KIND_TYPE_DWDM_SFP_SFP_PLUS",
+                                "rxlevel-low-threshold": -127,
+                                "auto-negotiation-pmd-selection-is-avail": true,
+                                "wavelength-grid-min": 257427340,
+                                "performance-monitoring-is-avail": true,
+                                "auto-signal-ordering-is-avail": true,
+                                "configuration-of-rx-sync-preference-is-avail": false,
+                                "eee-is-avail": true,
+                                "temperature-high-threshold": -98,
+                                "admin-shut-down-is-avail": true,
+                                "mdi-kind": "wire-interface-2-0:MDI_KIND_TYPE_MT_RJ"
+                            },
+                            "wire-interface-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "performance-data": {
+                                            "es": -1107369635,
+                                            "ses": -534768849,
+                                            "low-power-idle-receiver-ms": -933681793,
+                                            "low-power-idle-transmitter-ms": 1085036508,
+                                            "symbol-error-during-carrier": -1838555829
+                                        },
+                                        "timestamp": "2022-02-07T17:52:34Z",
+                                        "scanner-id": "yGjdREOWHebbxXjGqj55iLpPumvP",
+                                        "suspect-interval-flag": false,
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 101
+                            }
+                        },
+                        "ethernet-container-2-0:ethernet-container-pac": {
+                            "ethernet-container-capability": {
+                                "supported-fec-interleaver-kind-list": [
+                                    "ethernet-container-2-0:FEC_INTERLEAVER_KIND_TYPE_NONE"
+                                ],
+                                "maintenance-timer-range": "sr3vezeyPAhy3Cx8OBq2N3Q12sxWwaxYBBmI2AgR2qi5UP5JjvD6zt8BVFqkHXabqwTs71c1rmZmb4XmsAt13tuQ8UaPKl02RLnQNzSeVJsYNplfZG8U9vL9pVQ18J40ujIhKsoxbQvZgI67g72pCFyTshVB0Rtu2bEME2jPSGG0pF8FM2XgHn99EWCEN51P9FtNHMurt3sKAAheCeujuvk8sXF7UGP3liIU55lq0N",
+                                "supported-alarm-list": [
+                                    "fjGRya22Fn2ZcH7YfWUA6umbrItrnDTDX",
+                                    "mnBph9Eb8QT7G03ABaXPdopHQNcBi13EgE3pNHBOpmVYmZqP1nF6M4NuJS51T0G2FBrkb28sg4qDVRsO67US4AeNscHdcf7RQzcTtcmKgEn3vHRCHMmLeBqGF7LRmT"
+                                ],
+                                "statistics-is-avail": false,
+                                "encryption-is-avail": false,
+                                "performance-monitoring-is-avail": true,
+                                "available-queue-list": [
+                                    {
+                                        "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE4",
+                                        "available-dropping-behavior-kind-list": [
+                                            "ethernet-container-2-0:DROPPING_BEHAVIOR_KIND_TYPE_NOT_YET_DEFINED"
+                                        ],
+                                        "available-drop-precedence-kind-list": [
+                                            "ethernet-container-2-0:DROP_PRECEDENCE_TYPE_MEDIUM"
+                                        ],
+                                        "queue-depth-configuration-is-avail": false,
+                                        "wred-profile-per-drop-precedence-is-available": true,
+                                        "available-scheduling-kind-list": [
+                                            "ethernet-container-2-0:SCHEDULER_KIND_TYPE_WRR"
+                                        ],
+                                        "max-queue-depth": 1115901426
+                                    }
+                                ],
+                                "bundling-is-avail": true,
+                                "supported-header-compression-kind-list": [
+                                    {
+                                        "header-compression-name": "7haecfht7O24qr5I6PdFvn637JsS8607f2mjhvMhcOlC7ic6ZiLmFSpMtRxBPxJ4zXnJk10wQd0PvdVuvzR2r8HM0efHDYM4N1N03FwLKxAfCoCZXl1gtI2lOh3r8HwVAbVvJkgtRJBl75k4",
+                                        "mpls-payload-kind-list": [
+                                            "ethernet-container-2-0:MPLS_PAYLOAD_KIND_TYPE_ETH_O_MPLS"
+                                        ],
+                                        "compressed-protocol-layer-list": [
+                                            "ethernet-container-2-0:PROTOCOL_LAYER_TYPE_MPLS"
+                                        ],
+                                        "header-compression-mode": "ethernet-container-2-0:HEADER_COMPRESSION_MODE_TYPE_AUTO",
+                                        "compressed-header-length": -20546
+                                    }
+                                ],
+                                "support-of-management-frames-without-preamble-is-avail": false,
+                                "explicit-congestion-notification-is-avail": true,
+                                "information-rate-min": -1578197807,
+                                "fec-is-avail": false,
+                                "burst-size-max": -26728,
+                                "ingress-policing-is-avail": false,
+                                "supported-fec-redundancy-size-list": [
+                                    "ethernet-container-2-0:FEC_REDUNDANCY_SIZE_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "egress-shaping-is-avail": true,
+                                "information-rate-max": -839787429,
+                                "admin-shut-down-is-avail": false,
+                                "bundling-group-size-max": 108,
+                                "supported-fec-interleaver-depth-list": [
+                                    "ethernet-container-2-0:FEC_INTERLEAVER_DEPTH_TYPE_12"
+                                ],
+                                "burst-size-min": -23641,
+                                "fec-word-size-max": -3363,
+                                "supported-loop-back-kind-list": [
+                                    "ethernet-container-2-0:LOOP_BACK_TYPE_BACK_TO_LOCAL"
+                                ]
+                            },
+                            "ethernet-container-current-problems": {
+                                "number-of-current-problems": -77,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 12217,
+                                        "problem-name": "QpZk7ePGQXh0O0m03ntI98E8QfHrKVDscuMkItSqr2i72EZX1tx3tcbjjSC3F7wKBaWbwOtPQMWKqOIs97vCjyODjqyYyWA17wdvdGk3k8OLWo55nsIH0ocjOCamzCoy9t3m1fhmn",
+                                        "timestamp": "2020-10-20T20:58:27Z",
+                                        "problem-severity": "ethernet-container-2-0:SEVERITY_TYPE_MAJOR"
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-05-10T17:56:00Z"
+                            },
+                            "ethernet-container-configuration": {
+                                "fec-is-on": true,
+                                "fec-interleaver-depth": "ethernet-container-2-0:FEC_INTERLEAVER_DEPTH_TYPE_32",
+                                "bundling-is-on": false,
+                                "fec-word-size": -26504,
+                                "encryption-is-on": true,
+                                "maintenance-timer": -784600257,
+                                "performance-monitoring-is-on": true,
+                                "fec-redundancy-size": "ethernet-container-2-0:FEC_REDUNDANCY_SIZE_TYPE_16",
+                                "maximum-burst-size": -28119,
+                                "ingress-policing-profile": "18e43d24-0971-5669-ee67-cba5faa4eabb",
+                                "interface-name": "kNYNZcx8RUbeu3QbH5WVyetdm64AZxFjcw74IwczjfONiwYRBMM107eeebHdImpVSoZtU325iQStfIkImZKf6Qtk12qCpPp95gCRbxXtfHOuq9dM0P16FnrzpR3GykIDAcuDJj6Z1NljWq5WfZUVelmD4pcCJU7b6uOQNMHGz2Znt5bAW6vajRFg8RSRLS2SmIA1vhIWbHcwEn7sluCFeaVm1F6Np0xDJ7F6gf2jO6QluXNP",
+                                "loop-back-kind-on": "ethernet-container-2-0:LOOP_BACK_TYPE_NONE",
+                                "fec-interleaver-kind": "ethernet-container-2-0:FEC_INTERLEAVER_KIND_TYPE_CONVOLUTION",
+                                "egress-shaping-is-on": false,
+                                "problem-kind-severity-list": [
+                                    {
+                                        "problem-kind-name": "SJ2bHqEYAIT7eLfWNN8yDjRnO1tGsYOkzQog927JD0IJEXFrCNR76IvUBYsVOh8nZww8qvJVnrE1hbsLYcL5U8Ro6cbMt",
+                                        "problem-kind-severity": "ethernet-container-2-0:SEVERITY_TYPE_WARNING"
+                                    },
+                                    {
+                                        "problem-kind-name": "kHxl824VqoArxLMaCYVzK3i01ucNXnPa5ev5hr0zHs0e6EpIuk97gr7hWb5LzMVw0iB9CBIjWBy27PCC1LJhcQz8UwUtaHZ20scuVUNRndTv2n748QdlyMlkafNkPEnHYrbUlYLJ4x66Ud2VV8glUBGXJl9ySo7QPiK38oMcNSjzXduSlC586L5H767RveHkwknEA1RfL2OIfbstFqBLbysawz11NBebNBQnvzCgBiRI",
+                                        "problem-kind-severity": "ethernet-container-2-0:SEVERITY_TYPE_MAJOR"
+                                    }
+                                ],
+                                "statistics-is-on": true,
+                                "maximum-information-rate": -1194868083,
+                                "interface-is-on": true,
+                                "queue-behavior-list": [
+                                    {
+                                        "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_EXPEDITED_FORWARDING_QUEUE",
+                                        "dropping-behavior-kind": "ethernet-container-2-0:DROPPING_BEHAVIOR_KIND_TYPE_RED",
+                                        "scheduler-kind": "ethernet-container-2-0:SCHEDULER_KIND_TYPE_STRICT",
+                                        "weighting": -56,
+                                        "queue-depth": -1082863711,
+                                        "wred-behavior-list": [
+                                            {
+                                                "affected-drop-precedence": "ethernet-container-2-0:DROP_PRECEDENCE_TYPE_NOT_YET_DEFINED",
+                                                "affected-protocol": "ethernet-container-2-0:PROTOCOL_LAYER_TYPE_IPV6",
+                                                "wred-profile": "18e43d24-0971-5669-ee67-cba5faa4eabb"
+                                            }
+                                        ]
+                                    }
+                                ],
+                                "explicit-congestion-notification-is-on": true,
+                                "cryptographic-key": "ou6cAWxWLlE4vSuX2giB0rzS6beDkNpI9vVCrkq4x412XvZRLikLBTvzXJc9pCSqZF2jRlnpporeTj5wth943xD0gQ1xkLYbiSuad"
+                            },
+                            "ethernet-container-historical-performances": {
+                                "number-of-historical-performance-sets": -19742,
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "period-end-time": "2020-03-03T08:58:36Z",
+                                        "suspect-interval-flag": true,
+                                        "history-data-id": "PjBHHSPpBps1LxdLS5yJsm4WEfCH1tKQNdpmX7Eqw6r9DxVnC",
+                                        "performance-data": {
+                                            "queue-utilization-list": [
+                                                {
+                                                    "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE4",
+                                                    "max-queue-length": 167296300,
+                                                    "avg-queue-length": 2027411742
+                                                }
+                                            ],
+                                            "fec-uncorrectable-blocks": -395583357,
+                                            "tx-ethernet-bytes-sum": "-9223372036854775808",
+                                            "tx-ethernet-bytes-max-m": "-9223372036854775808",
+                                            "fec-corrected-blocks": 925486286,
+                                            "tx-ethernet-bytes-max-s": 606297380,
+                                            "time-period": 221208160
+                                        }
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-02-18T19:29:23Z"
+                            },
+                            "ethernet-container-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "timestamp": "2020-02-06T02:55:55Z",
+                                        "scanner-id": "X71StV7DhnA8zO4QpkAzAPNULDoW3vmSCgLYbKBk73syRoh8IRHaym5c0t0",
+                                        "suspect-interval-flag": true,
+                                        "performance-data": {
+                                            "queue-utilization-list": [
+                                                {
+                                                    "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE7",
+                                                    "max-queue-length": 1826863894,
+                                                    "avg-queue-length": -1061482591
+                                                }
+                                            ],
+                                            "fec-uncorrectable-blocks": -854541831,
+                                            "tx-ethernet-bytes-sum": "-9223372036854775808",
+                                            "tx-ethernet-bytes-max-m": "-9223372036854775808",
+                                            "fec-corrected-blocks": 533952180,
+                                            "tx-ethernet-bytes-max-s": 1277330340,
+                                            "time-period": 1080914412
+                                        },
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 93
+                            },
+                            "ethernet-container-status": {
+                                "timestamp": "2021-03-26T16:48:17Z",
+                                "last-10-sec-data-output-rate": 108397254,
+                                "bundling-is-up": true,
+                                "total-bytes-output": "188632107574906816",
+                                "total-bytes-input": "3481976717732802048",
+                                "interface-status": "ethernet-container-2-0:INTERFACE_STATUS_TYPE_NOT_YET_DEFINED",
+                                "loop-back-kind-up": "ethernet-container-2-0:LOOP_BACK_TYPE_BACK_TO_REMOTE",
+                                "statistics-is-up": false,
+                                "last-10-sec-data-input-rate": 278631898,
+                                "forwarded-bytes-output": "7350806208057876480",
+                                "performance-monitoring-is-up": true,
+                                "forwarded-bytes-input": "2336460973161418240",
+                                "remote-site-is-faulty": true
+                            }
+                        },
+                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                        "hybrid-mw-structure-2-0:hybrid-mw-structure-pac": {
+                            "hybrid-mw-structure-status": {
+                                "performance-monitoring-is-up": false,
+                                "segment-status-list": [
+                                    {
+                                        "segment-status-type-id": 6616,
+                                        "operational-status": "hybrid-mw-structure-2-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED",
+                                        "segment-is-reserved-for-tdm": false
+                                    }
+                                ]
+                            },
+                            "hybrid-mw-structure-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "period-end-time": "2020-04-28T09:28:04Z",
+                                        "history-data-id": "GM6FLVWbIjVY8VbN8bgWkLUvjAnnE3ScPZRsMFvuQilQeo",
+                                        "performance-data": {
+                                            "rx-level-avg": -52,
+                                            "es": -1137264645,
+                                            "unavailability": 384904928,
+                                            "cses": -1561420483,
+                                            "ses": -1558434795,
+                                            "rx-level-min": -63,
+                                            "time-period": 13221578,
+                                            "rx-level-max": 108
+                                        },
+                                        "suspect-interval-flag": true
+                                    }
+                                ],
+                                "number-of-historical-performance-sets": 18954,
+                                "time-of-latest-change": "2020-08-31T11:04:38Z"
+                            },
+                            "hybrid-mw-structure-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -12223,
+                                        "problem-name": "44O5spHGjITF466s7k60wtHpBAa9ho2ll",
+                                        "problem-severity": "hybrid-mw-structure-2-0:SEVERITY_TYPE_WARNING",
+                                        "timestamp": "2020-06-18T15:42:43Z"
+                                    }
+                                ],
+                                "number-of-current-problems": 101,
+                                "time-of-latest-change": "2021-07-15T23:55:19Z"
+                            },
+                            "hybrid-mw-structure-capability": {
+                                "supported-tdm-structure-kind-list": [
+                                    {
+                                        "tdm-structure-name": "mMUKPUnh46YEOVnS2yUpi7ikuJQWoSkLxfvm1Kv5RtBxhRhbpbAzbKLFtBtSmNDTU07VCD0lYuTflaiCeS4puPWYjpQFc",
+                                        "tdm-segment-size": -1637767777,
+                                        "max-number-of-segments-reservable": 85
+                                    }
+                                ],
+                                "performance-monitoring-is-avail": false,
+                                "supported-alarm-list": [
+                                    "dFUPaN39hWguYzY4j2tOShMbGuQLHgKMNEtYrwZAkf4bGVf0XBOPSs"
+                                ]
+                            },
+                            "hybrid-mw-structure-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "suspect-interval-flag": false,
+                                        "timestamp": "2022-01-09T08:16:25Z",
+                                        "performance-data": {
+                                            "rx-level-avg": 71,
+                                            "es": -1837294717,
+                                            "unavailability": -552934513,
+                                            "cses": -1002673087,
+                                            "ses": 300365416,
+                                            "rx-level-min": -77,
+                                            "time-period": -50403255,
+                                            "rx-level-max": -107
+                                        },
+                                        "scanner-id": "T4Tte3CDXXQxfvx7JHHRxdWm39v8laz7ekssn5XcUNK2b99UQQDgVACYB77OhyVvSgP8lNc7s",
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -12
+                            }
+                        },
+                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                        "extension": [
+                            {
+                                "value-name": "BF0NHL39j5cfBUFKoCOlfCwjMlDJm0PXxIC6tGfEDkT6eqQD3wQa8etUz7wVZdKwVfuoNKVq4OxaffFaMnkUCOH3N5RMiBaeIEuvgpWc6lnlAUnmiH9UnQPaVGO5aYjSDOoTdc6jplwZ7TeptfbIX1LKzzPJy9u3XSO2WMedZC47oioRpsrmlc6UMWwcX07MKNOyAULrxPqV0PEp95MuaSgOGMSDMZhoM6WeSHyhxYcxNIW",
+                                "value": "GAiQlzw1lox0fOgTMd0xMyObwTIcBx09ZjZkSne5LDXSjeMYjMv5kbhQ4RUGgVPg6HAYWGVAjLsvZetiSYfc1wV6oPEEClUI2nyRVmr77TC605gSVvXWUK2irGO42BMWQdFLz6SGSuESrMCm9zb3bddDM2HGvlulya6Z8RF0lbKNXn1ZO"
+                            }
+                        ],
+                        "configured-client-capacity": "qQbDqq8a8YxQmvAlwrD6HdULJruiOWt7EwK5WS75QEV42npyHUwg7q1QSn1ybmFPTpMH9UERyrVAPc1o6pE5IxOsUP05byMWPzEZtiITKwmrIfHHEdMmKAOwhHtt7fhWGVV16wVI291KoIjUV69xyP3Iww3DDkscgfdeL0WN9XqpxJckHlR8aUQziT4N",
+                        "ip-interface-1-0:ip-interface-pac": {
+                            "ip-interface-status": {
+                                "errored-packets-output": -484541283,
+                                "last-10-sec-data-output-rate": 406838074,
+                                "forwarded-packets-input": "-9223372036854775808",
+                                "errored-packets-input": -1463642957,
+                                "ip-v-4-address-cur-list": [
+                                    {
+                                        "fixed-ip-v-4-address": "7lLHxJyn0tWLDP0kZoBJgijjWV0pwelvz656HDmH6ilB7dVZtwIJG22vPVMe98JB6OzOrVnp6A15NO48lFSTzUooPbCRbes9UTXePdDVNw0tdXByCtjbgIr5L4OWa8542ViJ0OE",
+                                        "fixed-ip-v-4-address-prefix-length": -4,
+                                        "fixed-default-gateway-ip-v-4-address": "w8ptKPX598dJAbuwZiy8fu22NL2thQxNQX9sE6y"
+                                    }
+                                ],
+                                "broadcast-packets-output": -553821757,
+                                "dropped-packets-input": -874911295,
+                                "loop-back-kind-up": "ip-interface-1-0:LOOP_BACK_TYPE_NONE",
+                                "dropped-packets-output": -1211853,
+                                "unicast-packets-input": "-9223372036854775808",
+                                "forwarded-packets-output": "-9223372036854775808",
+                                "neighbor-list": [
+                                    {
+                                        "neighbor-mac-address": "LwzWSXO2vOiZQkEBfZK5xpNmyg0xGGwj4X8XUWZhK98suF3JEFG34lpvBi2hYqB2nJZ9xRih0qJm5EXCbvxfRP",
+                                        "neighbor-ip-v-4-address-list": "s7EC54dZjORklICuA35X0BUuMiU19JMBQi5NfiEqYvLj5nF",
+                                        "neighbor-origin": "ip-interface-1-0:NEIGHBOR_ORIGIN_TYPE_DYNAMIC"
+                                    }
+                                ],
+                                "timestamp": "2022-01-20T09:43:34Z",
+                                "forwarded-data-volume-output": -106790903,
+                                "total-packets-input": "-9223372036854775808",
+                                "last-10-sec-packet-input-rate": -711351421,
+                                "last-10-sec-packet-output-rate": 783972282,
+                                "vpn-binding-is-up": false,
+                                "multicast-packets-output": -1946680403,
+                                "broadcast-packets-input": 635121920,
+                                "last-10-sec-data-input-rate": -2015848041,
+                                "interface-status": "ip-interface-1-0:INTERFACE_STATUS_TYPE_UNKNOWN",
+                                "statistics-is-up": true,
+                                "total-packets-output": "-9223372036854775808",
+                                "multicast-packets-input": -969070195,
+                                "data-volume-input": 205500842,
+                                "data-volume-output": 411889278,
+                                "fragmented-packets-input": 799974436,
+                                "ip-address-origin": "ip-interface-1-0:IP_ADDRESS_ORIGIN_TYPE_LINK_LAYER",
+                                "unicast-packets-output": "-9223372036854775808",
+                                "forwarded-data-volume-input": -1261176749
+                            },
+                            "ip-interface-current-problems": {
+                                "time-of-latest-change": "2021-01-13T10:40:43Z",
+                                "number-of-current-problems": -91,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -21271,
+                                        "problem-severity": "ip-interface-1-0:SEVERITY_TYPE_NON-ALARMED",
+                                        "problem-name": "9XOUkR7Bgf3A8DCNHnKRMPbIktaAXz57wLTQu0jL7elfKP2jcN2Ru5zOzBgoadnyZgglhs6oGjEi9yCddE4HKwnb7DraRPAIXR36b2vRl1",
+                                        "timestamp": "2021-10-19T03:43:48Z"
+                                    }
+                                ]
+                            },
+                            "ip-interface-capability": {
+                                "burst-size-max": 12480,
+                                "statistics-is-avail": true,
+                                "supported-alarm-list": [
+                                    "nUYmlhJfDa8MlIQt9DZD9Q29O6qguB9SnZ6AhHPUSYz5ypyH3pdc77dVeE3A7ckn4iXl0F7SvGX3YoKTFP5NXbA3HEDGIY3Mg178y703FQ6D",
+                                    "IoLymqvx1y6x3Mf1QUaJTih0bcyTi3R0suqOVNlOdrlh5saVmcw8nF8yRGj9K224wkSj857dwkuBNxp1JV96tawkIPmkRoogAgzIlHWJTidyPCArpBxSD"
+                                ],
+                                "information-rate-min": -1604407831,
+                                "maximum-number-of-ip-v-4-addresses": 30180,
+                                "fixed-default-gateway-configuration-is-avail": true,
+                                "maintenance-timer-range": "0BVKFK9S1irgd6tinBMBBqfpX73Xf5lfzgZe00YTaqaooDGD6k6IClZsl3hA0CPrSHyLHwESOGg4cOIi8OSK2S4nNlXFXM7Qlxt337VSG3WSJwaRl3tfNyCsTrZJ5Yzrv2mr19jHc7rVEuERpZ64pAw",
+                                "admin-shut-down-is-avail": true,
+                                "dhcp-client-is-avail": false,
+                                "egress-shaping-is-avail": false,
+                                "information-rate-max": 270898754,
+                                "burst-size-min": 24990,
+                                "ip-v-6-is-avail": true,
+                                "maximum-transmission-unit-max": -2973,
+                                "ingress-policing-is-avail": false,
+                                "maximum-transmission-unit-min": -32676,
+                                "supported-loop-back-kind-list": [
+                                    "ip-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE"
+                                ],
+                                "vpn-binding-is-avail": true,
+                                "arp-proxy-is-avail": false
+                            }
+                        },
+                        "termination-state": "core-model-1-4:TERMINATION_STATE_TERMINATED_BIDIRECTIONAL",
+                        "mac-interface-1-0:mac-interface-pac": {
+                            "mac-interface-status": {
+                                "errored-frames-output": -226828245,
+                                "loop-detection-result": "mac-interface-1-0:LOOP_DETECTION_RESULT_TYPE_NO_LOOP_DETECTED",
+                                "forwarded-frames-input": "-9223372036854775808",
+                                "timestamp": "2021-04-15T11:44:06Z",
+                                "multicast-frames-input": -2011699195,
+                                "unicast-frames-input": "-9223372036854775808",
+                                "last-10-sec-frame-output-rate": -88843919,
+                                "total-frames-input": "-9223372036854775808",
+                                "multicast-frames-output": 937479624,
+                                "dropped-frames-output": -1650964921,
+                                "statistics-is-up": true,
+                                "forwarded-frames-output": "-9223372036854775808",
+                                "flow-control-mode-cur": "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_NOT_YET_DEFINED",
+                                "received-ethernet-frame-format-cur": "mac-interface-1-0:FRAME_FORMAT_TYPE_NOT_YET_DEFINED",
+                                "last-10-sec-frame-input-rate": -561264935,
+                                "errored-frames-input": 803738346,
+                                "loop-back-kind-up": "mac-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE",
+                                "interface-status": "mac-interface-1-0:INTERFACE_STATUS_TYPE_NOT_YET_DEFINED",
+                                "mac-address-cur": "885sPrdOVon1O5IWn07hH0DRwlGj9LN9TSCBbHp65FZLCHzZIy8pzL85YPpZAc9m4DXgkeeiTe3wNvnn3oMC1NA0CZZ430q7DffYum8nA3Lfy1DuphYq4yiyxavAaVAO3HEx3M",
+                                "broadcast-frames-output": 2094291010,
+                                "total-frames-output": "-9223372036854775808",
+                                "fragmented-frames-input": -1217644665,
+                                "performance-monitoring-is-up": false,
+                                "unicast-frames-output": "-9223372036854775808",
+                                "broadcast-frames-input": -1153685413,
+                                "dropped-frames-input": -1157830457
+                            },
+                            "mac-interface-capability": {
+                                "supported-flow-control-mode-list": [
+                                    "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "statistics-is-avail": true,
+                                "broadcast-frame-suppression-is-avail": false,
+                                "supported-frame-format-list": [
+                                    "mac-interface-1-0:FRAME_FORMAT_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "admin-shut-down-is-avail": false,
+                                "maximum-frame-size-min": -23448,
+                                "loop-detection-is-avail": false,
+                                "performance-monitoring-is-avail": true,
+                                "mac-address-configuration-is-avail": false,
+                                "maintenance-timer-range": "LJe5ore5yvTDC1kakDXnihN1pv8JqBu3kI9A9nFAKr5fkppE3eTdoH6N4eouHSqTszuBO13qk9FEyWbtb4GzLMeQSCcrmClO3PhJIla3uPzUEKoPPWgsBual6fNsJ88FPpoxKqs6821MMpBtdJOOdQab",
+                                "supported-alarm-list": [
+                                    "vHXDmM2CbN3wTbyUXcbqyh9e5e47p2WUJTxXxzzBeC70FxMCJY2973nchscGm8sXUZUjrlMxQTxvik0Ua23hYrl7LxO7y8Wk0QDj3iQT3gpmApgCjbL9C6hfwX",
+                                    "W5ag5SLoW37H7nYlPfBrzM4Ah2RoqODmMFuRq88eb7VauUvj9YCALGbUIUi1JNnntS6T0e73lU6HOB0Qsui5alZLg9MRX1eqLkbDraHM4FmL8mtARLFT7EwnOa6Lck3XE6B5gaKcP6XXkqy345PbKlqqww3IQ6xm40kka4wR2mPeMfiQk7TWkjmQH"
+                                ],
+                                "hardware-mac-address": "cWjLJ91PhQg3ZxLbh36CEUUBoSWa1176XjJysDgBlwwcVho4kuHRgtkEdgP7hO577OFrjV",
+                                "maximum-frame-size-max": 13837,
+                                "supported-loop-back-kind-list": [
+                                    "mac-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "link-loss-forwarding-is-avail": true,
+                                "loop-port-shut-down-is-avail": true
+                            },
+                            "mac-interface-historical-peformances": {
+                                "number-of-historical-performance-sets": -29363,
+                                "time-of-latest-change": "2021-11-15T08:30:47Z",
+                                "historical-performace-data-list": [
+                                    {
+                                        "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "period-end-time": "2021-05-09T17:56:46Z",
+                                        "performance-data": {
+                                            "mac-pause-frames-ingress": -1267342767,
+                                            "tagged-frames-ingress": "-9223372036854775808",
+                                            "jabber-frames-ingres": -991004831,
+                                            "mac-pause-frames-egress": -881168895,
+                                            "mac-control-frames-egress": 1000541934,
+                                            "oversized-frames-ingress": -1262794589,
+                                            "undersized-frames-ingress": -1120141325,
+                                            "frames-of-1024-to-1518-byte": "-9223372036854775808",
+                                            "frames-of-64-byte": "-9223372036854775808",
+                                            "frames-of-512-to-1023-byte": "-9223372036854775808",
+                                            "frames-of-65-to-127-byte": "-9223372036854775808",
+                                            "mac-control-frames-ingress": -2102184827,
+                                            "frames-of-256-to-511-byte": "-9223372036854775808",
+                                            "tagged-frames-egress": "-9223372036854775808",
+                                            "frames-of-128-to-255-byte": "-9223372036854775808",
+                                            "fragmented-frames-ingress": "-9223372036854775808"
+                                        },
+                                        "history-data-id": "UpWTiyV0eYAfgwTzpJcOxc",
+                                        "suspect-interval-flag": true
+                                    }
+                                ]
+                            },
+                            "mac-interface-current-problems": {
+                                "time-of-latest-change": "2020-04-19T05:29:54Z",
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 12341,
+                                        "problem-severity": "mac-interface-1-0:SEVERITY_TYPE_MINOR",
+                                        "problem-name": "idVmZPRHfuXOKHEihVUquWZdm06HBy5LL07DHRcXd9LYIigZd2iHQ9Mc9KTKiQn4Qnzq6LnjM0huiplvjv42EQeNB0p",
+                                        "timestamp": "2020-07-16T14:32:13Z"
+                                    }
+                                ],
+                                "number-of-current-problems": 41
+                            },
+                            "mac-interface-current-performance": {
+                                "number-of-current-performance-sets": -104,
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "elapsed-time": "-9223372036854775808",
+                                        "suspect-interval-flag": true,
+                                        "timestamp": "2020-05-02T01:07:07Z",
+                                        "performance-data": {
+                                            "mac-pause-frames-ingress": -1807979239,
+                                            "tagged-frames-ingress": "-9223372036854775808",
+                                            "jabber-frames-ingres": -1189505605,
+                                            "mac-pause-frames-egress": 1154787454,
+                                            "mac-control-frames-egress": 1014821202,
+                                            "oversized-frames-ingress": 2059398890,
+                                            "undersized-frames-ingress": 1740368024,
+                                            "frames-of-1024-to-1518-byte": "-9223372036854775808",
+                                            "frames-of-64-byte": "-9223372036854775808",
+                                            "frames-of-512-to-1023-byte": "-9223372036854775808",
+                                            "frames-of-65-to-127-byte": "-9223372036854775808",
+                                            "mac-control-frames-ingress": -201351309,
+                                            "frames-of-256-to-511-byte": "-9223372036854775808",
+                                            "tagged-frames-egress": "-9223372036854775808",
+                                            "frames-of-128-to-255-byte": "-9223372036854775808",
+                                            "fragmented-frames-ingress": "-9223372036854775808"
+                                        },
+                                        "scanner-id": "2kCO3hvCrEtzxH05NJ6cClZW6Iav9CzcX300knuD1XcrwdojOuoqIfeOPobYTKaIO2I"
+                                    }
+                                ]
+                            }
+                        },
+                        "pure-ethernet-structure-2-0:pure-ethernet-structure-pac": {
+                            "pure-ethernet-structure-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "timestamp": "2021-06-01T16:21:11Z",
+                                        "performance-data": {
+                                            "cses": -666868725,
+                                            "es": -1613406381,
+                                            "rx-level-max": 61,
+                                            "ses": -2041160021,
+                                            "rx-level-min": 103,
+                                            "rx-level-avg": 15,
+                                            "time-period": 145845040,
+                                            "unavailability": -1584833651
+                                        },
+                                        "suspect-interval-flag": true,
+                                        "elapsed-time": "-9223372036854775808",
+                                        "scanner-id": "S645J03RbyD5UlWIkt2VQ77o5mEC94x22B7Et2vFt9CfuqQGTSBBSBSPXwj6sQ0uj00EUwbnFND1elIZdbB5MlMBR5IbNAF6AGDv4OKBCfCIAczOo2LanqMevmpjWXhpvUUzBw25MENmRe27hG9E6VTB9aMYZ4fmQ1VjxXoju3GdiIkzgtdmhYYi1C80GnnpoaIW07fm2NzkoLTE6Z1fXRyQtyR2W6jk81800gmV3Nfrq1YxSZMHIc"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 4
+                            },
+                            "pure-ethernet-structure-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "period-end-time": "2021-12-05T15:55:12Z",
+                                        "performance-data": {
+                                            "cses": -1429162301,
+                                            "es": -1565455713,
+                                            "rx-level-max": 107,
+                                            "ses": -322856841,
+                                            "rx-level-min": 123,
+                                            "rx-level-avg": 116,
+                                            "time-period": -1369738285,
+                                            "unavailability": -1684709345
+                                        },
+                                        "history-data-id": "o2aCX5q5xQYnfQeUxWY5RBePat5WR7I72SBZX1WmKUJRKXLaLC7DdmkoHhcqpUxrE1it2fQE1roMh1O2DVxR9R7R9b9y5HRBI94CgU9iepWvqKx",
+                                        "suspect-interval-flag": false
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-03-30T22:03:06Z",
+                                "number-of-historical-performance-sets": 26686
+                            },
+                            "pure-ethernet-structure-status": {
+                                "segment-status-list": [
+                                    {
+                                        "segment-status-type-id": -24412,
+                                        "operational-status": "pure-ethernet-structure-2-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED"
+                                    }
+                                ],
+                                "performance-monitoring-is-up": false
+                            },
+                            "pure-ethernet-structure-capability": {
+                                "supported-alarm-list": [
+                                    "UvmTwberT7lQ8RSzvaBLiMOqZ8WE4H5Q4rBtDPUoW874ZZwm177kLVCCWy8S7eA4Fbxa0rzOzGKqF8MH7TTLHvfvVof3CP7h0EsSXTypzaP6juNqfybO3rjRPyUjfTAfpUZeNxDeItlTP0j4znTuG4dnv7GKS8S93RoIh1XRmaKbaV8Ba1YQXbdsbL53UX5X"
+                                ],
+                                "performance-monitoring-is-avail": false
+                            },
+                            "pure-ethernet-structure-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -27741,
+                                        "problem-name": "xKDPEHbHzCOW7szPCB2JJUYsgosslyoKaTAGtLf2f3Rfwq40TYBvKAXSQhkbHAWJuoqX1FR9BAoZ1kZMat9V3YNTf0WOsKyO0QDUnn3YXjXQDPDNiEAdDgYK8MzAx7ppX2jchebfx05aPAQZfi4Sy2uyP39e2qvRkP4C3fRB7ODXplOwETg4NKDuOEAI46AgNEKQLtjSiPHzao5G9dLWXgjDU",
+                                        "timestamp": "2021-12-02T20:08:13Z",
+                                        "problem-severity": "pure-ethernet-structure-2-0:SEVERITY_TYPE_NOT_YET_DEFINED"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-10-15T06:45:49Z",
+                                "number-of-current-problems": -56
+                            }
+                        },
+                        "lp-direction": "core-model-1-4:TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN",
+                        "name": [
+                            {
+                                "value-name": "vdnXtAWi7v46hL3l1LWjIxNzZUNhEiR1v7YRzM1y95EqJIDKls33ZIDQui89BZaYY1PyNJYXGDfpdT9yl5tcF62ahabS2lQSeyiU9hJPUYfZJgxWl081Z3385e07rI0G8ashrbZd16cDmBzACAttDwBIKtIb3AJcKbl",
+                                "value": "ekhgquTN5kfzUIUpev0QQI1UiD6UOj63EgbWKWBHgQ93y3sMrsuh2obk197Ht5C7lNV5BxF"
+                            }
+                        ],
+                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT",
+                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY",
+                        "configuration-and-switch-control": [
+                            "lMdzx5ndfcDwBeIVW3MW6yMFIxJoC8nYUspjyFwFR9bloUgcPV8VlMs4b4kNcHDY2VhAAGfjPiE54N9UI9HVV2R66bMaTh0VchnE"
+                        ],
+                        "fc-blocks-signal-to-lp": "QFUmCZ9MLJVkFJmoHkAlulDu8HEvetZ40LqvCs9f34AAFWZf9zAvU50UNwp1RgXS1fnwHwLLsld0acfjLHOxNGjs4IlWQiGSxVg7j1SLn5DpaKANsgd7XwzT7UHX4nHBiXIBZsfeq",
+                        "air-interface-2-0:air-interface-pac": {
+                            "air-interface-current-problems": {
+                                "number-of-current-problems": -36,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 12483,
+                                        "timestamp": "2020-09-14T04:13:38Z",
+                                        "problem-name": "uduF4vXbxAY0",
+                                        "problem-severity": "air-interface-2-0:SEVERITY_TYPE_NON_ALARMED"
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-11-12T09:14:36Z"
+                            },
+                            "air-interface-status": {
+                                "xpd-cur": -41,
+                                "transmission-mode-cur": "3vj12pIc4eQmfR3a6a79YJxI26SQg5ykAKlu9Wzd2hsh8nj6yrfoaM64SQU1Vkdn4yS6mjbpADGI10Orj4PtINxBDjurDHOA7GGuZRLrnj1gbQHuMwXmbuXOFj7j0WT8urCmifNFyPVKxuebScx3ynKeGRpHNaPiBjELyjj686QFBXQ",
+                                "rf-temp-cur": -61,
+                                "mimo-is-up": true,
+                                "tx-level-cur": 52,
+                                "local-end-point-id": "KkaAjfnhkOi3pYkrpyNj29A2bUa5Nn0pHbR1qeaKVsOc",
+                                "rx-level-cur": 84,
+                                "link-is-up": false,
+                                "performance-monitoring-is-up": false,
+                                "xpic-is-up": false,
+                                "remote-end-point-id": "0EArjTtt",
+                                "received-radio-signal-id": {
+                                    "numeric-radio-signal-id": 45164,
+                                    "alphanumeric-radio-signal-id": "zbyboOotjUma3Mld7Q5Y7wcNpExj15Asg0wEGUZZOl2K7nX75VX4r9RJGh2zmuTCmp"
+                                },
+                                "auto-freq-select-is-up": true,
+                                "tx-frequency-cur": 1995406974,
+                                "rx-frequency-cur": 187793452,
+                                "atpc-is-up": false,
+                                "radio-power-is-up": false,
+                                "snir-cur": 85,
+                                "loop-back-kind-up": "air-interface-2-0:LOOP_BACK_TYPE_RF_TO_LOCAL",
+                                "interface-status": "air-interface-2-0:INTERFACE_STATUS_TYPE_DOWN",
+                                "alic-is-up": true
+                            },
+                            "air-interface-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "period-end-time": "2020-07-24T03:30:21Z",
+                                        "performance-data": {
+                                            "snir-max": -22,
+                                            "unavailability": -184367085,
+                                            "rx-level-max": -90,
+                                            "xpd-max": -114,
+                                            "ses": 194004520,
+                                            "rf-temp-max": -19,
+                                            "tx-level-max": -37,
+                                            "es": 1267359224,
+                                            "tx-level-min": -76,
+                                            "tx-level-avg": 8,
+                                            "snir-min": 104,
+                                            "snir-avg": -86,
+                                            "time-period": 658646868,
+                                            "cses": 699148662,
+                                            "defect-blocks-sum": -23349,
+                                            "rx-level-min": 89,
+                                            "rx-level-avg": 20,
+                                            "rf-temp-min": -123,
+                                            "rf-temp-avg": 14,
+                                            "time-xstates-list": [
+                                                {
+                                                    "time-xstate-sequence-number": -102,
+                                                    "transmission-mode": "HGpLMiy0Vj5OQVpqPDf5GYwtci7RB2iaAH",
+                                                    "time": 2113063796
+                                                }
+                                            ],
+                                            "xpd-min": -50,
+                                            "xpd-avg": 82
+                                        },
+                                        "suspect-interval-flag": true,
+                                        "history-data-id": "X1AplpmFivXoxKrMpkj3K4Cu4FAFhhy7j1wwqKbBg0ZNDjr2DKYfOsBK73hglQnwJU21w5CM6CsJVLDqotF4"
+                                    }
+                                ],
+                                "number-of-historical-performance-sets": 7303,
+                                "time-of-latest-change": "2021-10-13T23:07:31Z"
+                            },
+                            "air-interface-capability": {
+                                "expected-equals-transmitted-radio-signal-id": false,
+                                "duplex-distance-is-freely-configurable": false,
+                                "supported-radio-signal-id-datatype": "air-interface-2-0:RADIO_SIGNAL_ID_DATATYPE_TYPE_INTEGER",
+                                "rx-frequency-max": 931953176,
+                                "supported-loop-back-kind-list": [
+                                    "air-interface-2-0:LOOP_BACK_TYPE_IF_TO_REMOTE"
+                                ],
+                                "direction-of-acm-performance-values": "air-interface-2-0:DIRECTION_TYPE_NONE",
+                                "adaptive-modulation-is-avail": false,
+                                "supported-alarm-list": [
+                                    "jLdgcviEaxM1Sc",
+                                    "FUrXrQt3jqD3bT4IZTX61QoGOOGs5mHK91AAR3w2l15wV26MVVKOL8urPbUUpBwyu61e",
+                                    "qc781wbiikuiwIKbUngazMkeWJSPCX3U9b22HelRqH1WhL0b1gdAUyGI9zpLotxxwAA5GNW6uYVLBNXC32dQsTqCkQfIjN8PfIUVnI1RyOCaBrExmRfODFqPnGqGlynA89vvKoei5IkG2Z5oIkcdSDVfblOoL3YL5l8PBmZG4kf6bkuLxzZh4Uwf7cDKgtvlOvapR1YNldMop8aWH15",
+                                    "1EavJ7GlVy4rZt8Bu9QgWHGgNBiQfQs8mCD5BjixRnYJQYcc02sWK04xCmfR4HRqbuoFFGco327M1cYTejPYjTnV7uEc3vC7Z0MwzYVuSUgL6fEdyl3R6rF6NjiRPMYGFK5eA0IkMR6L6CYwY1fWkU286kZVZPtEzyK1qkldbjY9WOxUPFIarLixX9kWYOspeciFxDKAXAKTo9F5Offg0pNYq0MoG",
+                                    "Wv2Hr3E5MU4iH7shXagQn9aaaIlnMPSAcM9DHOBtAFDhE5zu7HkmQnw05RgRz0rLMAhugSPJptS4qjqq0KMJ7bB4URVtRefwHw0PgHyFajBtC1TDExmDIXIDHv6yCd4bBW0RErpGK01mUURqsd323DF",
+                                    "NC0UOvw4QThEojW7lUUGZGXoP7dw0iaNM2zty5pgYHVe0JllvfUmORKDQP1Q0bDMec7E9xU7eHd6iysNNe1B5M6Nt0Dl3809c7NlEAkS9xZs5j7Kx9euNkhgcUCgUCp6J5rgFL8O",
+                                    "Z8figZHp5bcqskueOK8i26U7xaEaaskaBrkJj28odcGyobMdNNvPThWjrstCVGMoZY7i07z6bfEziiM6XaVJrK2L4nnZ31fVZe5SdEYoMuQ4Eu2uEYdYAfJEuYwqZDlQKqAX5qeRU4NrqQV5G0V8fwEJm21dGm3iNE7K4ltRhgaIYXFEXsM4QjNclPp13kjQYrsVEVEO4Go2DVzAndE5wjhS0GL405MRo7EU2aIYQYTlTsN8Fjd4u"
+                                ],
+                                "tx-frequency-max": 1467865700,
+                                "maintenance-timer-range": "Gufl544j5sIF5Jcot9p1f6JP752xDqWbU4wS8AbeULLZmXoP6NRmLA3SyXi3f6e12CTbdWh7H2Z3ZfL62CkF4fqC4IxjGLkJg6Ut23sC5jx4yi2sMe8Rtylx8TQOw3pM9b7bes",
+                                "transmission-mode-list": [
+                                    {
+                                        "transmission-mode-name": "3vj12pIc4eQmfR3a6a79YJxI26SQg5ykAKlu9Wzd2hsh8nj6yrfoaM64SQU1Vkdn4yS6mjbpADGI10Orj4PtINxBDjurDHOA7GGuZRLrnj1gbQHuMwXmbuXOFj7j0WT8urCmifNFyPVKxuebScx3ynKeGRpHNaPiBjELyjj686QFBXQ",
+                                        "transmission-mode-rank": 248145962,
+                                        "supported-as-fixed-configuration": false,
+                                        "am-upshift-level": -20,
+                                        "tx-power-min": 92,
+                                        "am-downshift-level": 35,
+                                        "symbol-rate-reduction-factor": -74,
+                                        "channel-bandwidth": 2027522050,
+                                        "xpic-is-avail": false,
+                                        "code-rate": 123,
+                                        "tx-power-max": -111,
+                                        "rx-threshold": -25858,
+                                        "modulation-scheme": 29601
+                                    }
+                                ],
+                                "encryption-is-avail": true,
+                                "duplex-distance-list": [
+                                    -1157098235
+                                ],
+                                "atpc-range": 123,
+                                "performance-monitoring-is-avail": true,
+                                "auto-freq-select-is-avail": true,
+                                "tx-frequency-min": -2053086047,
+                                "rx-frequency-min": -1309884395,
+                                "type-of-equipment": "r55h5UQXC67ywShA2sTS83pk3rAFJ6d23bb851Yz758vQp6SJZCJ313YkwDVuRXp28yZ1oy0lywbXCVytxhoqdfLBKG5twunwUmyiNyEl4HbyDJ22Tit6xeHiMELi01PVnf5aNBoKjz",
+                                "atpc-is-avail": true,
+                                "supported-radio-signal-id-length": 13517
+                            },
+                            "air-interface-current-performance": {
+                                "number-of-current-performance-sets": -117,
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "timestamp": "2021-11-11T23:36:01Z",
+                                        "scanner-id": "QKJQhwb2Pb3yES4BMd5LBoMwiMsjWqtMadvjJGlrJpZf94QW9NHKcl8u7AN319I3m5nXDIgnZgu9cd5d0EX4Z5yZye2rnCmBHJqdkHA",
+                                        "performance-data": {
+                                            "snir-max": 33,
+                                            "unavailability": 346690354,
+                                            "rx-level-max": 10,
+                                            "xpd-max": 39,
+                                            "ses": 477856958,
+                                            "rf-temp-max": 116,
+                                            "tx-level-max": 51,
+                                            "es": 265461372,
+                                            "tx-level-min": 10,
+                                            "tx-level-avg": -22,
+                                            "snir-min": 49,
+                                            "snir-avg": -69,
+                                            "time-period": 1613957630,
+                                            "cses": -1480247569,
+                                            "defect-blocks-sum": 17598,
+                                            "rx-level-min": -63,
+                                            "rx-level-avg": 64,
+                                            "rf-temp-min": 89,
+                                            "rf-temp-avg": 109,
+                                            "time-xstates-list": [
+                                                {
+                                                    "time-xstate-sequence-number": 2,
+                                                    "transmission-mode": "JckEeSuHqNs1BguGy84aXdLKxuHXZDTIQde4XJDno5pZmLyMLCWJIHlf3U42yXLg3Zc0APgRMxQ0agMWLIFthSAkMFncu0spRwikdyb0XT072F3NfAgxsIJ7f6jKYE1I2j2gJ58GQ0O",
+                                                    "time": -1272860855
+                                                }
+                                            ],
+                                            "xpd-min": 10,
+                                            "xpd-avg": -35
+                                        },
+                                        "elapsed-time": "-9223372036854775808",
+                                        "suspect-interval-flag": false
+                                    }
+                                ]
+                            }
+                        },
+                        "label": [
+                            {
+                                "value-name": "nOVWRfAiA5AClDXmN4381y7nd2sPz7zPNmDFB5Pb2hOnVDJAzFIA5PXiRi7jhG852LCwQrzTJfgwKS6bxOMCD",
+                                "value": "MmLUFVsNSnqmLhNk2osiMcaSozy233vQqhC54WLWbbiWkX9m"
+                            }
+                        ],
+                        "is-protection-lock-out": true,
+                        "tdm-container-2-0:tdm-container-pac": {
+                            "tdm-container-historical-performances": {
+                                "number-of-historical-performance-sets": -20938,
+                                "time-of-latest-change": "2021-09-05T20:25:45Z",
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "period-end-time": "2021-06-18T23:40:17Z",
+                                        "suspect-interval-flag": false,
+                                        "history-data-id": "xv6a9lpv879fYValdvA5AF1JiLqO3cWAAUKJf16n8gu63Ejh9LmBqfkJ0Kp3Pdvp770f86u8eZ7iDqzF4N8u2t525m6Mzt3zB3GBaaKg1RyF97cdMkAOFxRLUPxlaBMLwsfGDZXEInbRnfX9ApY7WHSIoi4qLQ4hbjQGiFc",
+                                        "performance-data": "SHvh"
+                                    }
+                                ]
+                            },
+                            "tdm-container-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -23760,
+                                        "problem-name": "4J41WPG495rSkC46M2Cq0Xl7E5rrj4wfFsgB9Xxa2Y2es6kf1WF1LS0pYjJ9f7oVzEoABOLwENK7U",
+                                        "problem-severity": "tdm-container-2-0:SEVERITY_TYPE_NOT_YET_DEFINED",
+                                        "timestamp": "2020-06-14T15:31:38Z"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-08-24T13:51:39Z",
+                                "number-of-current-problems": 99
+                            },
+                            "tdm-container-status": {
+                                "loop-back-kind-up": "tdm-container-2-0:LOOP_BACK_TYPE_BACK_TO_LOCAL",
+                                "performance-monitoring-is-up": true,
+                                "interface-status": "tdm-container-2-0:INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN",
+                                "statistics-is-up": true
+                            },
+                            "tdm-container-capability": {
+                                "performance-monitoring-is-avail": false,
+                                "supported-loop-back-kind-list": [
+                                    "tdm-container-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "supported-tdm-container-kind-list": [
+                                    {
+                                        "tdm-container-name": "iX5rn20eDAgz5wmeGADC5VeuZMrEdgqv5nWthXzUpPmueIIUidpf1DJ0h3xubXZgdOBuDbh2SDxYl7LDdaKeNl65oDrztrIGfjaSmrMf4jdprYUE0ESG0YDgu4IXnqDCBNmY715bkitD9f91MTHEKcUehu3EUG9olnmsorwJBReC6oE",
+                                        "tdm-container-size": 2034338148
+                                    }
+                                ],
+                                "supported-alarm-list": [
+                                    "FPQD2SX47hHLglLCwcn8PQg0qAXfuc911ZEVJu0RDzCTUgorsLzhtIiTi70Fb1G41dZCHRtcqY5delE",
+                                    "IsWXUn"
+                                ],
+                                "admin-shut-down-is-avail": true,
+                                "maintenance-timer-range": "1qj7HNadAIeY4Cco0vMBYDQBK67ufkT9K4gjRjpj1D9Xfdm8I0BHEjagphKFtvG6zWhj7GC9kM6rZkrAl39Rmj7MsJjVfZTGNbZNRCW3gUn77OHkRQbe1aSlT390U2HzdGmXaa0qXnyW47gVYj1RtTdeOm7IoOaumwrpzjPwzfkDfAy5LAW6l1k2nrCE7M8mbrLKKs8"
+                            },
+                            "tdm-container-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "suspect-interval-flag": false,
+                                        "performance-data": "GOBSxK7E8U5NbGgRjMv6xCSmQF7JdEnUtYESBDxJqCotaFktrPsQkccaScM5Q1RbRn4s1t4jXkM8Z6tjNV1786aSiWP8PzcGW81PB58ypUyhS2AGPtFPzPHRDp0sQ41Ec2uN7udohMF1G7HvBnda4U2IbU21Y3G252PcoUBFG8HeggCRvPTABNaNHcGxgerd88qx3T4B1DQ9UsShhMRSr1x166yek0rt0J03C4FwAvxuPqLY4vIvog",
+                                        "timestamp": "2021-07-23T15:06:27Z",
+                                        "elapsed-time": "-9223372036854775808",
+                                        "scanner-id": "yP21PLTTgQqEqN3MCtpApUaNbqbxE08dP26xF0iNQIr8vvUZQjr86BVhU6Oy7ODOQKdoCvbk5vsASmrIFSILmD2gCJGBpkh8Wvwq0HK64cyWySx5KfR6LLefmVIM7ZU3milfZ5d"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 103
+                            }
+                        },
+                        "address": [
+                            "D4acCFxYSY0YX9Hv93yUIo9BnXOhPYpkUrww6WmQUnHJwo6xjxjTVsvaibr79Rk3iQrhMN7y2Gay586oFpaAKFK2I41RVlM545eQKehNUjdRrj87BizlXcfFggo3u20yZ7gBlpo7ICZaN79opAJeMYLU71Pt3QTUX1varMh9g8b3fckwN3K"
+                        ]
+                    }
+                ],
+                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK",
+                "name": [
+                    {
+                        "value-name": "a4Cai0ewVe5i2ZGpxE23TW0x3Q4dwF6HBJJTJPiw3fP56vmDaoHVczlghptOXznqa6cTNmiRB7OAC3dErMAweN",
+                        "value": "vc7b1yqsJoEuc0M3tTJ3oM926NuC1hgpmnsnVTHEhd9t5VozH0u5Mv7KbuecLutZRWnNP4j6aksf8IOPIbMnyL7JfmOTQhSA57fU4yTeLdtTVaAEdmTL70nfeb8XsSpy0EkW45aPivI6FaKKwvwEnTTCWTrgLQODm1zq6Bgh7QnE1ZppuN3RyOluzMKdurQQki9iTpzS7Wx0VOq"
+                    }
+                ],
+                "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                "physical-port-reference": [
+                    "c942beda-266b-a670-ca1b-e78a3653775b"
+                ],
+                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE",
+                "extension": [
+                    {
+                        "value-name": "tTsoo5RPHV3pLoFcHvYoF0RTJzcoOFG9y8xW6gEF4z4PXJ2xfSVMKMyldKBTqi2QirNgIjWEK0tzCn6J81vKG36LGHx6RrO2TtitMe7w7s6JQ4kQYPAwLy9jgGhZ8511zkmdqlCxNA8",
+                        "value": "EsduaO"
+                    }
+                ],
+                "ltp-augment-1-0:ltp-augment-pac": {
+                    "ltp-augment-configuration": {
+                        "connector": "07wpeqzDCeErNGQsYiiaCfzpi0iDsCNsCbRIBjm5pSw4q",
+                        "equipment": [
+                            "c942beda-266b-a670-ca1b-e78a3653775b"
+                        ]
+                    }
+                },
+                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL",
+                "local-id": "IoKl82ZtmOwHHFL3ZlE1HczUbz48LSrtg3Oo5NKjtgSaVveMQKNqWfc7Og8A0zVguKwrpgCTwuVjZ16ILL0H0cHHsP9sg4ACG636nxRL1M5SO3srOs1HEAg6hpqxl0127W0mtJ7mn4e37zvO1ovGYDEf2",
+                "fd-rule-group": [
+                    "5ea42646-26ca-afda-19a7-ad7f7cc924e6"
+                ],
+                "label": [
+                    {
+                        "value-name": "tl912mnB1ZOvixeCPnVIEmBLb0M6G4g9ph2rDhVE8Bar8gVXDIyh51U81y6zCmI2DClhL8VTKXcSd0IQIgZFhUNasUJX8jRMV43GdQrXGEHTEpCeFtUOnzYIlHFu0ogNsblFTNuzjclXtX31iXPGpOgKvN6obebDpxbbcFKvRXslMvm5l3DCRTefylDJzGeRdp2p5EUOCe1gCnlPrYraJxphSU0k",
+                        "value": "7bGw56tBSi5ZjmtzHi0GB2h8szTerdPygwXduqOeIU52gytXIlvbnNkHe5WFaL6q93DDtrK4dPYtgrjYMOa9tmRHrFnB"
+                    }
+                ],
+                "transfer-capacity-pac": "hJow62zQ6gPPABm5Ycgb3urzA1lCNKrWtPkrKUaQaZGLt2Ij7Yu2kVBUOOptyIhUxCd9wn0yfybIsMTrKftX2WJRK0c",
+                "external-managed-id": {
+                    "manager-identifier": "PLY6wuXUicvHa6Id28fXeyVFul1ZkUZ9FP83k5PuacccaMhcMx10X",
+                    "external-managed-uuid": "yrarquliES7MVjJCOLOSPZE73jw5btUJU43dyon49mIWGkzmXneNmKUq3qn7LhQxdTKDaZIjei7UuG8s4mfiY1A2jX146RBbDePN5pYjH55cEdwArLSqElkXalT94ukHA9mGycZ8i5cW"
+                },
+                "client-ltp": [
+                    "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5"
+                ],
+                "peer-ltp": "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5",
+                "ltp-in-other-view": [
+                    "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                ],
+                "address": [
+                    "uQfuYknRLH5Z0qBx63ytHSHcUv4HJeF6XMsN7PxKxCBxV4WT7mmPf3T1qXJ24g813AG2pdEOIgdvk2osoK9vG2x6R88Vo8OjInd0sKOa02xc4VEkyFQ6HncrvdeLlV54ia4KUKNMEkZI8v3G3LMK8Q3DVighdddno97aLMPq7G073VF6GjJO9Mj54Ae"
+                ]
+            },
+            {
+                "uuid": "cb398360-6165-86b2-5b57-2fea3e77edb6",
+                "embedded-clock": [
+                    {
+                        "local-id": "wNGXI905EEivmT6VhHw7H6zURci3WJPspvi7wi4aOey27EYhlugUAIOkU7nII42ZzkZ5u38jaGd9kbqyyzs899kV8IDQMFIeSHbmCbxMRLW4WeumNWvWXHJ5hmO4UwaM5d0Hpyu8bq47EymknR8cqSiI6YE0mOErTF0a5ubgMffj",
+                        "run-mode": "core-model-1-4:RUN_MODE_FREE_RUN",
+                        "phase-aligned-clock": [
+                            "0b7BoMdU78PGiZPZmPfboWaxHcsgTLSLXZfdEs7LsPjKG8C2PJ56GfDfr5ndI7Yx7dKDxKgSzzufz69pQevot0vU5S7F0YdZ3XuBHKl8jPfKWo9ECw25wpSt9R91Hm0LbmeL6zTho12cp3Q2AKZ61JsbtBcaP5V0r1DyApPZqJ3HNUBnwBlycNJFgNQ5SDYcFBCfSj6i320QWt"
+                        ],
+                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                        "encapsulated-casc": [
+                            "4sXuGwnjiN0ye57zZPxc1I6WvaqbehIaJFEh3UBlHtTOzTfqIECBeApJLQUZ7v9IaFZezsr9WdXv64VGIp9WZyFCorBnWC5ZiX5Rpw0lJPIHTvnBMopEX4gdoKBcmy3Ev8oVxg886JQR65lTuKxrHFwXp71My5i35GQCPRLNABEGGRr2uQlbwS0NZ1rp6Kt4ibG72rUu2r3BamvEdRHJJHoAJQ0HAlLKwkKr"
+                        ],
+                        "name": [
+                            {
+                                "value-name": "BD3kDfLnptuf7mBNT2yq3JvpUD41SnHmSCGvSjT9EfpDB0imVRMQsh7eUbfFyX1izzOjLzlpOKVhCdEpWq7oA7CmiSTJHM18eHkZgFgWhb6LhK3d22Cu96RkQK3ppWyDESCMpSByWHjdrmqlpUQqTzKJbN9ACzd8jPUIAn8o4rBnGTJXGznz0",
+                                "value": "abNbMpKZp3HcD9zLxE501LLKIrbXSb53nLe12Z0sUHEqId3fR87LTTntczj5Co8R1eS45Tw0sai3nli7uiSfbfBnGUsbas2cHVgEGMw0WO3baeiww2LzieWY8h1bB4naRDPphlhdalgcrzIXBloLskCAtDL5H0fqD4PUi7Zsk"
+                            }
+                        ],
+                        "encompassed-clock": [
+                            "0b7BoMdU78PGiZPZmPfboWaxHcsgTLSLXZfdEs7LsPjKG8C2PJ56GfDfr5ndI7Yx7dKDxKgSzzufz69pQevot0vU5S7F0YdZ3XuBHKl8jPfKWo9ECw25wpSt9R91Hm0LbmeL6zTho12cp3Q2AKZ61JsbtBcaP5V0r1DyApPZqJ3HNUBnwBlycNJFgNQ5SDYcFBCfSj6i320QWt"
+                        ],
+                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE",
+                        "extension": [
+                            {
+                                "value-name": "bXqg3vjmh6iA2uHOgn6oCVyGTC8iTkK4hacdxvrOtJhv5Qcd5aCI62oZwo9pITlR3xWs2n9nZqT485idfMVdOb4crdB9YWTTlPmfdvC4Nv8Vsi8A4WNKZSWr5ps4dlPy3bNgGiklNkg8DhIH5vk4n8nlyQhD3646aRmQ1y4PTkXoBFXG2hDqq0DQQ",
+                                "value": "tU0x02hfTiFX7q9WODtMbwVOOdHr3pdxb5448djTwQIvhRkXmNBybxeRKVaOlndwt9AtnLmLC48TNsIa8kIbRW3tSd95teBOo4hDPDorzwcmRVwZ76aY35jNj"
+                            }
+                        ],
+                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE",
+                        "label": [
+                            {
+                                "value-name": "wLH6AajYWLayeEbZBLSQbnN1a509pkhVXYTx1cnXYpvc3y3wjVfvj2otZougAE3xuWWv8jsYIXaEo62H1h4cbsx2QUiiylP29LyaW08xQb36h5NafSfqkMt3GDl6R390OzaDrja9u5fDa3NpN2I7H32fGgmxjnqZWAunLEp7JEKMzy3msLm9OgpvwLUH0kzWV3byAAGbfiXOQ13bMpkBFBY4eSLe5ka0geqQO61VhZC7SFaE4n7BYXFdQjjVv",
+                                "value": "NLI5Bo4DkluWkmtvSpSS0IPyVxJ7keBZ0b5tr1YLmkzGG23rrVbkw0SjqtqKH1Cz4zVwAT9WeJuMDy55lghR91bzuBb3vNDrmyPWjZKpAf45N920qjSzkV0OwbSTZnldN2261EotTszyBBzTVjs7esOCwyonVJAALuyF9W0UozlSbULY565bqTNWj3jeMMOq8fXhbX4sxpk"
+                            }
+                        ],
+                        "encapsulated-fc": [
+                            {
+                                "uuid": "07180e7e-4166-2bcb-ec47-59a81c4e02b7",
+                                "service-priority": "-9223372036854775808",
+                                "supporting-pc": "YYfostgzlmgmKfh2Uhm2bFq9gJW6BHpryEPSZ5rcjzzVOQYBZcv3SWc0F0Y8znrZT8RS5b4oKDcrla2dex86lkY0cW0LbjL4ruOwFTVioZJC1DPf2Xeo9cgl1h64AJ126PqLId3ZcEBdhitk7HI8LYtM7rJA3Ku9zUMa8Q9kmCyEMTYLAyTlwe0ExJ6AlABUuo4C65Pszf6l",
+                                "layer-protocol-name": "tdm-container-2-0:LAYER_PROTOCOL_NAME_TYPE_TDM_CONTAINER_LAYER",
+                                "forwarding-direction": "core-model-1-4:FORWARDING_DIRECTION_UNIDIRECTIONAL",
+                                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                                "name": [
+                                    {
+                                        "value-name": "Rx4S63FAWwj4m",
+                                        "value": "3"
+                                    }
+                                ],
+                                "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT",
+                                "extension": [
+                                    {
+                                        "value-name": "2zhFU96r7GdSRy3V8wD131aetMtACTawls3fB9yJQLtzkxmkV0dY1ncv1yXEr7aEzeM3nkE567Eiw1ur1HiUWmhXUeBemMSNSEQfRmlPmR7SStcL2myYIPVv4pJi3t5V0O2RanGo7F9Z8lDaz30",
+                                        "value": "SNMWcne7Rc2R0XI2cgrjVAbVNO5mRXvBKayPxEWgQR7IOHD0X4kSwvNjbKxUz2vk4V9CsXSaOSTuzonxsHhQ4X17zyT9sgtxcu9wrTG8LrCdPZK9y1ZuQ0tqymz1DUqHgzdHkTH6"
+                                    }
+                                ],
+                                "fc-route": "13uneMPi",
+                                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY",
+                                "configuration-and-switch-control": [
+                                    "B6ormuFh4LY4YMZPAe0tDD82Ls473EhwCyXY2ufY86UYKTFc7xGDaGxN9tU4Z4ACupAwMImUOhKq2qD2XbF0R4N0xA4xww10WBoAbKuRT6iWwVQm6veXz1QYtUvZjwR70fH3S3VD9drG0hU6E8V51L4vyrmRYeYQlxTdAORJTihTs3Z6bNc5ygA6HWPx2Ffo41tEPkgBvpuXtm3w17Bzn3yX0fmUVCaZDEwkYEV"
+                                ],
+                                "local-id": "luBSETJTe37OWAHG9z6NCTYIgYZ6XnGaSh3",
+                                "lower-level-fc": [
+                                    "9bc11e2d-913a-2fa6-a64f-f01427c75d88"
+                                ],
+                                "fc-switch": [
+                                    {
+                                        "local-id": "KIKQGWeAjiS2zLoIqNHaaMhGz7vItfAdPcVo02QjkAeMmCuMh3WrH67g5vQyCjDkvrIwtyHN0VrmpW0HRP0zV0P0nyrZR4bevTKQjkwk7XyxLz6Do64bYT3ljudargpW21Fllbxl86SMxQpVOt6Ne10yw5AXmZLo1qBeB1zC7joE1FrQ0pv6qnwWt7LH6x5ZPy6jzFVGRbcSIvIIU5Gdtd1WkNDicAiT8ocIVZgM2lFKQfkDl1IO6JCqo7I",
+                                        "wait-to-restore-time": "-9223372036854775808",
+                                        "profile-proxy": [
+                                            "R5HsMFFOMC64XS4Y"
+                                        ],
+                                        "control-parameters": {
+                                            "reversion-mode": "core-model-1-4:REVERSION_MODE_NON-REVERTIVE",
+                                            "prot-type": "tR7Q1dm4WGwPhiXRk4YhUDrjg2DZdyvyhChiIDfwcDdtVac86bh0GIkWDXVQnihENyPv34Tfz6Bv8NveYMfwmzsZogIDyZhlpYIsUBAuzbRHYmWP",
+                                            "hold-off-time": "-9223372036854775808",
+                                            "wait-to-revert-time": "-9223372036854775808",
+                                            "network-scheme-specification": "luCGmSW4vmVEIkDiExMe1lhKV86RX6UaBoQXgETL1OpB0UTEsxLlT26Ga4xZbjaEHSBXxmAyaR1aMUO6srjduhTwmiwpty3aqwZPSzf2qg44bKavcuAGLl4ZvAoY8r8rX7gPywJQMNVPqXkCrMa57e4CPlAPMAgCzxjZ33QHIDx0AJCUwMZv1V8IgAxV3GxCdIu8DkHePeepQRbmv2RoYR66kwTnciRh1lhExYSm57EVYP9l"
+                                        },
+                                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                                        "switch-selection-reason": "core-model-1-4:SWITCH_STATE_REASON_NONE",
+                                        "name": [
+                                            {
+                                                "value-name": "HSmH8qh4qqIkLf5tnhYIayoga0Gy7hTG17faxp6PPGasW7NboMTzc9Pm9oV8FGGyNNIccG21f4l3b9erN70ZgImh69hDPXbuCMGPkAIzE4CHdQ90P1Z5Jde",
+                                                "value": "mvk3koxX26EmGmWdqqUvh3n65f4GsaoPyAKKYiz0gdfWs31StWgCRDBWSxvlzT27tMSkWrccxr1Zm2JIYZkIvNwnc1AMUuTg9DA5XMau63lk542WWfEr2aOf4h1YLM6UqGSfl2Jj"
+                                            }
+                                        ],
+                                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE",
+                                        "switch-selects-ports": "core-model-1-4:PORT_DIRECTION_OUTPUT",
+                                        "extension": [
+                                            {
+                                                "value-name": "mLA8IPS5E58KVhsiwHHXNgywrbj67P0ustu3ae8Pjhr6qLoOs5LfdjEwmXDmEvQ6Yc91qiI",
+                                                "value": "r9HRU5Fe2il7tZEQO9csEUrv6swoKeZ3fGU1DrfxBAw5s2VgbZJQL2dJuJ77XYa4EX59gcySM4Xe7KnaB6Sm05XuO4BDUEHqBE"
+                                            }
+                                        ],
+                                        "prot-type": "shFk5a1v3QyTKlvQ63budrwjHmHWcdjwuYIr0KO4AmPcHkVFg6atxyM6Um2Yzdv335u4Pa0ixPu61pMhnOKVmx19TW7k9undAJhpThHiY4pZt3hRR1E5qxeblmvvQSAqtJInSpFQtWPPZ6yQ0cWqJau5oZsfKUxdDfsnx0d0WUHWTfETjsb3vF0Txk8h6GmBNPYkHbdv5UjQ2YJliNgNk8HRkH8qfn134ZnL",
+                                        "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE",
+                                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL",
+                                        "configuration-and-switch-control": "e1OBJVPvqj1xIggFXIkDo8hS6dHYiF3ozR0aEHFX0HuBXC8NksiABrkzE2qWHtl8cdbIUQFNp1ofDw2YZcqsDL1hNj6mErnQwyzio65G8lVLSPBR1UbEF4Vko1G2k3LItc1SiYqiklW4apV3jYHY2uaiwJdIEYr82kSciivuDryFQlI2jhSeL3w9MJSqzbqtviGFA3a",
+                                        "internal-configuration-and-switch-control": "uICcWk6fBZtf2SoGBgY3rpwWH4ua7EfBeSGa4MiyLDNFvbdZkc2LBqAav4kCAs6GcER8q1G4ElB2pP1J1VmudOEAKRdkjb1vPKD7Dc39xFbWu4xnRURXInxleCFpNyMCaiCFuFPTkSIGXf3G1MDC23X8FuytVkX5CzDY7sSrks09z3IBId5Cg2KWwahjn6hZyUQFmA6y26AB2i4Cn96E3QsATBTgH277WXMapL",
+                                        "label": [
+                                            {
+                                                "value-name": "4D20GYWVunPx44BdXzYKGT2eDhrFSKCOoEOWvLJZ0yoWvZ9sr047TYdo7F3ZhxNF3utq7ci7LGW8G5A75x6QvbeDQ9C8yiFCM12TdcSQTOYzMryJYEAtPG6yIBygLdKpeFikR2aKR1bvsJeqfGL5fKvXd35Y8Qnfnxz6zB",
+                                                "value": "iCUN4w"
+                                            }
+                                        ],
+                                        "selected-fc-port": [
+                                            {
+                                                "local-id": "551A6Auyn8ufcrPn8Gou4OGD5AvalGmrDnTJPfadnEsAXaP5IerEU0hZsN9OlnfYC0HrfRECnZ4c1U9J0BnUtxTVkUJF9QvLQ4c5OJA",
+                                                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                                                "name": [
+                                                    {
+                                                        "value-name": "IEgJypky0zkl65hiZ0X0RkLzpYxdH7ghLoScO4KGDX2K2j2UbSUU4Gutw1y50HmL56XTaAsNxuprFklI48D8OZucSUhSBvvzBlkLVMqk8ILN2ZoY716NSsRKn8uQvZp6kKJ7o1jxJ5cDWA",
+                                                        "value": "VtAAl2r5hrr0WjpUD1vDqwWXgT1THCnC5X4jRng1OI1C1iowcT9CqYryRsjzWG3Uv0dfntg4b9y4rXBDQC78AqGkT0LHyOB4GOj4ar0dAyiTvTpenwmYX3aIVVhtBTpizAeB1ePtM7naSMofaK5ZF7zA2R4EClO3W2FX8mjMtGWdkcsmXqeuxN5sw160mMWaGt0OPjAiZpvbBPxq7LVFrS7PT5Q7JMip7a5WtF6k4BvyiUQq"
+                                                    }
+                                                ],
+                                                "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                                                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT",
+                                                "extension": [
+                                                    {
+                                                        "value-name": "6a41sORB6UAsgHA0Siir1t2RRaOfaUy8WC9giTRhFjJV0bNSu6bnze6igUpiGXqvrrLJkvSZOtMHxArTGD87JepZ0OhGDz340HFl4ycSTZrqzLb7gjeZxvQxb76Oy9SyQpTUX6FJXY1wJdvZwJQ46GB9FHXdJHMr6xeWvTxkJyQlLdkaW3eUJH3ppS",
+                                                        "value": "0z8ryyFm3qTgar6v5cHf0KlVu2YLjJ7jagLIOq4JRPZ19Yoea5laIG54IWP2xWlH46qSpmug4t9djpjtmEw4ct0UhPOOE2wA0Otp2Xx6iyjCXuXk8tgkXh7eYV3uPr5Qfq7hfFoxdz134Zn4kvhhM"
+                                                    }
+                                                ],
+                                                "logical-termination-point": [
+                                                    "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5"
+                                                ],
+                                                "selection-priority": "-9223372036854775808",
+                                                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE",
+                                                "port-of-internal-fc": [
+                                                    "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                                ],
+                                                "label": [
+                                                    {
+                                                        "value-name": "LXRvWGoToou2yT9IY5bvbvsES0XEIf4m4VR0C8L0wf340cMQaPllcN04FPAg4FC0At04BD57K03K4PsewNAItsM0hfgdUSdue5zPIwPkwS4sAoH6b9PwBtxSIF5CqiZEnqtXWihk3dMDBtBECqb5MAXmf2ZFcQb",
+                                                        "value": "gFo4PFoSSanlwZ00h363D3qKYhi2Ztuf8SjQqzIaJYw7Xo06"
+                                                    }
+                                                ],
+                                                "is-protection-lock-out": true,
+                                                "fc-port-direction": "core-model-1-4:PORT_DIRECTION_OUTPUT",
+                                                "fc-route-feeds-fc-port-egress": [
+                                                    "RuTZ4wdPzX4GO2uh47rrP6uZ8LxE9EP00IS5e5MOVQmJKQSOYj8Fhuwig3WhzDhAl1Fs7j8U1mvLdnA3GAAQ468k1WBBzL3MMIeLTeFUBaFGp7J6HbOM9WY2SsDj5G5Rgcv1qaV1dBHCIiAilo4ucUx4m2frBlbJxGLXIGRV9qqSBS2W9YjlSQi7KxqlSB5h9QfSoYFyoXiZQkOZi7c2Xu1z2sVMVS45AbPY9mopcGp205Ta"
+                                                ],
+                                                "is-internal-port": false,
+                                                "role": "g0nAQpqsCI7Twr15jmMjE2GG5KxkvAVEsaearwC3eJWCbQHm4uFIwmgt6ONugA8IKeS3Kn7YYVB1DanHE3i2p",
+                                                "address": [
+                                                    "71S4JZuQgJvw9B62E2116eonv3LTGPcFIWKrV6h4IFARgGLUIFNHTb4o6IaMxek7b4yY2P2KmDtCbfwMUbtNfp3l758wksDvo3tqTob7TEK4L8IFk3kztoUstURNeuaCywVjUYqNu2JgbkVnf8WIoI3RDUxJgzeG59RR7awBc8JnsxKHFyi39dMM7bnfLBWIKFAJPYd26WhqtU00sa3BnQfmTDBE6p"
+                                                ],
+                                                "fc-port": [
+                                                    "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                                ]
+                                            }
+                                        ],
+                                        "hold-off-time": "-9223372036854775808",
+                                        "switch-control": "core-model-1-4:SWITCH_CONTROL_MANUAL",
+                                        "address": [
+                                            "v3qJ226dD45RWbOrRKUnEq441BvDrueWyxyAzwNdtL4hWLIFvv22VZ6PAusTYyIw58ZFwMKRpG9drJTXeVR2MPJej30aBIGzIx6ecQ6Bw7PQQIF5vwZalIoxLoHe6fNGNTVZBTA00pQQZvNvTEFemVLZkkeiATZnFMm8FW8xeQfdd3A6H7dW3YNfb1xLNo8s2mAH"
+                                        ]
+                                    }
+                                ],
+                                "supported-link": [
+                                    "ow6Vxdw6tAwqsMMezgpqT3O6Ts17obhMHnH6t65WyBeSfS6G9vZUqN0k82rw5AiNYST"
+                                ],
+                                "label": [
+                                    {
+                                        "value-name": "yJliToGVVQWD6U1Pj6Ih9fRXL2U7dXiDywVrUtfHjbciXe78kHplXhaIj4IoTS1soOTbi0St45L1jL2vsrIhAS0UPAaIscaR0W2aOMESRh",
+                                        "value": "2UOpff7wQ0oCHYEprQsaJg4L4QhXArBulpUAwTZeLnIsmnSF5cPGsTswBJl32WyodkQKdPYZ5HrrWb61fNIHG269DrdGoL4B5MdaC49HLt0zwYAMLatjczsQ1FwhisKfeYq"
+                                    }
+                                ],
+                                "is-protection-lock-out": true,
+                                "external-managed-id": {
+                                    "manager-identifier": "W6IuRVT5NpDov5J5HEz5A43yT",
+                                    "external-managed-uuid": "78utgqrQNjDGgr5THARrFyX6vpayXV353xqbQRTD2xbbQg4xINQflNlIdog2jc7fBxqrhcWbJ7mrnjY56Pckuy2zWbC7nJmY9FiiRelsmITBTJzZqLbVb6mZhY7w"
+                                },
+                                "fc-port": [
+                                    {
+                                        "local-id": "YFLkEwI1e4HEievuWzaIZTZ74ApomQDkngw1M7U03BwlP1PD",
+                                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                                        "name": [
+                                            {
+                                                "value-name": "SdkL4rHxQXTyA6WRCXDJKwNdU0VWQqgAEAdIUUfCJ1bj772BWGdG4SMYSHMA7VaLvnmh9tUSu54t4650EizI2lzU2dv18FFwV1NWmHHRELcIJhJoraYtvpopDTiDqX9dQX2dwJWbm8T5iulJEc51Btq6e",
+                                                "value": "KwyTKpIMu7niaJiVGAq2cW6hYHKgGQRqmqbYHMC3TZlVADQh68bi59zVQj3o1VOndSeUEQPpIakiF2rLbu38DC3mN6KOTz46jiSX8HeQJq"
+                                            }
+                                        ],
+                                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK",
+                                        "extension": [
+                                            {
+                                                "value-name": "6nTP6m7TfpOG02oJHXOE6FLfDvikzdhFBanHouAEMgcEbAoSp4wvC9L7EVr59BDCD0b2mLG8TSN4k3XJZl6BvRI1F27ODKi8CtaY6QZZAEWMHTny6uaBdKDSMCyheQqQbsOhbN9Lj5y0QVrWhBqvd3fSxO1Lwr",
+                                                "value": "IUhZ5X8Igd"
+                                            }
+                                        ],
+                                        "logical-termination-point": [
+                                            "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5"
+                                        ],
+                                        "selection-priority": "-9223372036854775808",
+                                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY",
+                                        "port-of-internal-fc": [
+                                            "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                        ],
+                                        "label": [
+                                            {
+                                                "value-name": "pss2DX6DAAGWoFz4y08xjqpg",
+                                                "value": "ZmhIMiZeD2Ks0n2sWRQtiN1iVqBmIRNH5WhR795K3Hc3"
+                                            }
+                                        ],
+                                        "is-protection-lock-out": true,
+                                        "fc-port-direction": "core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL",
+                                        "fc-route-feeds-fc-port-egress": [
+                                            "3hFjqXZlhgOizIo1jjbRPlltC7arW9DSqa3IZ24gbKrKkPED8PnQ3IjFHt6wuBoUErDvmzMxb59vUF92voSy635Fw3b0wrN2Liy7JcwUhxpbdq5AOQ0MT5si0vaoXXrI7ZHQ35KkC2nHsshhi9346nm6TwnQmOqlFZcI4OUyQh8bJpsUz"
+                                        ],
+                                        "is-internal-port": true,
+                                        "role": "25NeoOIJmzc8lhQXhVaSxHTAchOQYYAS3f6j3O2ifeqso8qF3sps1j2dsIViywaBLgU",
+                                        "address": [
+                                            "Sd3iAgdQ8KEan2tYKf7Kc4KNlYVmTJWDXZVp70f8CLiZODPyTXaXTVK6Lyswho26fXwnQ"
+                                        ],
+                                        "fc-port": [
+                                            "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                        ]
+                                    }
+                                ],
+                                "address": [
+                                    "VcuO3Y"
+                                ]
+                            }
+                        ],
+                        "sync-ltp": [
+                            "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5"
+                        ],
+                        "address": [
+                            "sXpJs7eQyNfD96yyXFE7vz5Geo1Y2Bcmqt5TAbB1YIEZG4xDJ4D6vIEKYGAS9Mez8bkIeWJcEn3lrtQ2xl023FETdfLmTRN1U8C84dcAtgNUJEP8ZHaVmHOrWsNHjBB6B5eFir7LHVyirfqqWAdb92C5miFxT8DmdS1nj09SVzamOAFC2SNcMq90IGytObP13IheAqYwR8KFAh9D2XHGfQHPpfadiZ7ezok1"
+                        ]
+                    }
+                ],
+                "supporting-pc": "jxxja4Urdpl262hOJ6dQgj87qeyGzAmSZLb9P5tUmOXkQe9rde9txitPw1n5tJPtm1u3YXYdENxm1yO",
+                "server-ltp": [
+                    "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5"
+                ],
+                "connected-ltp": "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5",
+                "layer-protocol": [
+                    {
+                        "local-id": "U7EOnnozkdb6WLn0HHUQXKNhLty9nv49CAPZYerijCg8nE",
+                        "layer-protocol-name": "pure-ethernet-structure-2-0:LAYER_PROTOCOL_NAME_TYPE_PURE_ETHERNET_STRUCTURE_LAYER",
+                        "vlan-interface-1-0:vlan-interface-pac": {
+                            "vlan-interface-capability": {
+                                "configuring-pcp-bits-decoding-is-avail": true,
+                                "ingress-vlan-id-filtering-is-avail": true,
+                                "port-and-protocol-based-vlan-is-avail": false,
+                                "statistics-is-avail": false,
+                                "configuring-service-access-priority-mapping-is-avail": false,
+                                "max-number-of-protocol-vlan-id-groupings": 21528,
+                                "configuring-ingress-tag-filtering-is-avail": false,
+                                "supported-sub-layer-protocol-name-list": [
+                                    "vlan-interface-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_D_BRIDGE_COMPONENT"
+                                ],
+                                "number-of-available-traffic-classes": -10,
+                                "supported-interface-kind-list": [
+                                    "vlan-interface-1-0:INTERFACE_KIND_TYPE_CUSTOMER_EDGE_PORT"
+                                ],
+                                "available-pcp-bits-interpretation-kind-list": [
+                                    "vlan-interface-1-0:PCP_BITS_INTERPRETATION_KIND_TYPE_6P2D"
+                                ],
+                                "drop-eligible-indicator-is-avail": true,
+                                "configuring-pcp-bits-encoding-is-avail": false,
+                                "service-access-priority-tagging-is-avail": true,
+                                "received-priority-overwriting-is-avail": true,
+                                "egress-vlan-id-translation-is-avail": false,
+                                "admin-shut-down-is-avail": false,
+                                "tagging-and-mvrp-is-avail": false,
+                                "vlan-id-translation-is-avail": false,
+                                "restricted-automated-vlan-registration-is-avail": true,
+                                "number-of-available-priorities": -33
+                            },
+                            "vlan-interface-status": {
+                                "statistics-is-up": true,
+                                "timestamp": "2020-03-14T07:44:13Z",
+                                "total-bytes-output": "-9223372036854775808",
+                                "total-frames-input": "-9223372036854775808",
+                                "interface-status": "vlan-interface-1-0:INTERFACE_STATUS_TYPE_NOT_PRESENT",
+                                "total-frames-output": "-9223372036854775808",
+                                "total-bytes-input": "-9223372036854775808"
+                            }
+                        },
+                        "wire-interface-2-0:wire-interface-pac": {
+                            "wire-interface-current-problems": {
+                                "number-of-current-problems": -103,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 13765,
+                                        "timestamp": "2020-04-16T01:11:43Z",
+                                        "problem-severity": "wire-interface-2-0:SEVERITY_TYPE_MAJOR",
+                                        "problem-name": "llo5oyYZu9F2im8d5909BA1b2ZR2Tr16Nq33Q12c2Hek3np0wq2703aU32WOlXM8fPb5IdhCMwWHTeAhEChwFriAl6gHV2H3JT8jYiNLGCkrQUImoRK4b2ww0N5VHNYjyZuw9i9PUmgK8QYxIItTCZhCMfpmUoFsf9Qor0ddelPm3NTDvmo7mGB0N1mHh11w3JUmBZAPcp"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-08-13T12:26:06Z"
+                            },
+                            "wire-interface-historical-performances": {
+                                "number-of-historical-performance-sets": -22060,
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "period-end-time": "2021-08-21T10:38:37Z",
+                                        "performance-data": {
+                                            "es": -1874706733,
+                                            "ses": 921034532,
+                                            "low-power-idle-receiver-ms": 1084757368,
+                                            "low-power-idle-transmitter-ms": 384832360,
+                                            "symbol-error-during-carrier": 324393328
+                                        },
+                                        "history-data-id": "EATCS82ZGRaeEqF1TgI1Gkss1OiOJdcfF5RxdToMKy0gRy9KORDm46O5MZLn4XCJ3th8exUR6N7Xlhz10cn4a32P2Nc6DPQyaZGhwt8u8fjlwSmpXBtZEnO",
+                                        "suspect-interval-flag": false
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-04-03T01:34:42Z"
+                            },
+                            "wire-interface-status": {
+                                "rx-sync-role": "wire-interface-2-0:RX_SYNC_ROLE_TYPE_FAULT",
+                                "link-is-idle": false,
+                                "eee-is-up": false,
+                                "performance-monitoring-is-up": false,
+                                "rx-level-cur-list": [
+                                    -54
+                                ],
+                                "tx-level-cur": 57,
+                                "pmd-negotiation-state": "wire-interface-2-0:PMD_NEGOTIATION_STATE_TYPE_DISABLED",
+                                "loop-back-kind-up": "wire-interface-2-0:LOOP_BACK_TYPE_INTERNAL",
+                                "interface-status": "wire-interface-2-0:INTERFACE_STATUS_TYPE_DOWN",
+                                "pmd-kind-cur": "xlX3GFKLAOkNkiTufkB0sJlt",
+                                "receive-signal-is-detected-list": [
+                                    true
+                                ],
+                                "signal-ordering-kind-cur": "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI",
+                                "pmd-is-up": true,
+                                "link-is-up": false
+                            },
+                            "wire-interface-capability": {
+                                "wavelength-min-list": [
+                                    417643622
+                                ],
+                                "supported-signal-ordering-kind-list": [
+                                    "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI"
+                                ],
+                                "rxlevel-high-threshold": -42,
+                                "isolation-is-avail": false,
+                                "supported-loop-back-kind-list": [
+                                    "wire-interface-2-0:LOOP_BACK_TYPE_NONE"
+                                ],
+                                "short-reach-mode-is-avail": false,
+                                "wavelength-max-list": [
+                                    -1414734071
+                                ],
+                                "unidirectional-operation-is-avail": true,
+                                "supported-pmd-kind-list": [
+                                    {
+                                        "pmd-name": "xlX3GFKLAOkNkiTufkB0sJlt",
+                                        "speed": "6eZhxWPKTKqqnbT3oyoGsSNMtG7c1sWZHNg6KXQvIgOXjz0H7ogr836BJ5FCxCB6hSc1H2phadeuM73Lvb5Efb7QgNtFhWMyGYso1RFbWUxA1BdoMiUTl2CBH59YTVoATQYUzvYvhvXaYbzLttwPn8i45rUZmjr81pUBUSY4gWee7NRs9o9wostuLnl0yM8",
+                                        "duplex": "wire-interface-2-0:DUPLEX_TYPE_FULL_DUPLEX"
+                                    }
+                                ],
+                                "configuration-of-number-of-bip-errors-per-ses-is-avail": true,
+                                "auto-pmd-negotiation-is-avail": true,
+                                "required-medium-kind": "wire-interface-2-0:MEDIUM_KIND_TYPE_SINGLE_MODE",
+                                "temperature-low-threshold": -114,
+                                "maintenance-timer-range": "o3eoC0o4Vq7L58w0YEaMk3VgketRQ9L6dZuHSSLNbSqg0PhQljvFmiWGohpfralwaIdUsQzDI0MAHVj2eOIAYw8nNxu6IPCKpHESxdn759IM4TPazpKxVSUAqoH06bKnTofitDqzE0dJTUTsjwR6oMHG2gG0rqocGvva8NJNNOoyJ9S2xJ1WnIuiQbihtyma4Rk4EVRjJ7Rk9BfGkguIQZ0G2aPnJbxN",
+                                "supported-alarm-list": [
+                                    "JRqwBJ8AssB3HigPEQFvIdpS3Nt6k81WSrsl3AVv3xrCHHsdpZJ7d8Z8Vle8t74lzoGCZuZUTiw"
+                                ],
+                                "mii-kind": "wire-interface-2-0:MII_KIND_TYPE_CDFP_STYLE1_STYLE2",
+                                "rxlevel-low-threshold": -67,
+                                "auto-negotiation-pmd-selection-is-avail": false,
+                                "wavelength-grid-min": -2134587249,
+                                "performance-monitoring-is-avail": false,
+                                "auto-signal-ordering-is-avail": true,
+                                "configuration-of-rx-sync-preference-is-avail": true,
+                                "eee-is-avail": true,
+                                "temperature-high-threshold": -99,
+                                "admin-shut-down-is-avail": true,
+                                "mdi-kind": "wire-interface-2-0:MDI_KIND_TYPE_FIBRE_CHANNEL_STYLE_1"
+                            },
+                            "wire-interface-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "performance-data": {
+                                            "es": -1076841065,
+                                            "ses": 504032312,
+                                            "low-power-idle-receiver-ms": 668107518,
+                                            "low-power-idle-transmitter-ms": 241128286,
+                                            "symbol-error-during-carrier": -1492016571
+                                        },
+                                        "timestamp": "2020-05-15T16:41:22Z",
+                                        "scanner-id": "dG4JJOv6hmy7yPjGUgrnAIP8qK",
+                                        "suspect-interval-flag": false,
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 86
+                            }
+                        },
+                        "ethernet-container-2-0:ethernet-container-pac": {
+                            "ethernet-container-capability": {
+                                "supported-fec-interleaver-kind-list": [
+                                    "ethernet-container-2-0:FEC_INTERLEAVER_KIND_TYPE_NONE"
+                                ],
+                                "maintenance-timer-range": "DjvKP1eso6QyUeqDgLv8KcDGnU0GFwnbHSNpL2R10zzUN0p3DMbfZHVe",
+                                "supported-alarm-list": [
+                                    "U0j93T1RiEL9GLI7xnZWiCBuRs3EGossoDBswujG04PGHpOeEN2X",
+                                    "vj1XmGvK0X0DqsaUDQVzyt8P9muXhj7MC8CYG7AG5"
+                                ],
+                                "statistics-is-avail": true,
+                                "encryption-is-avail": true,
+                                "performance-monitoring-is-avail": false,
+                                "available-queue-list": [
+                                    {
+                                        "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE7",
+                                        "available-dropping-behavior-kind-list": [
+                                            "ethernet-container-2-0:DROPPING_BEHAVIOR_KIND_TYPE_DROP_TAIL"
+                                        ],
+                                        "available-drop-precedence-kind-list": [
+                                            "ethernet-container-2-0:DROP_PRECEDENCE_TYPE_MEDIUM"
+                                        ],
+                                        "queue-depth-configuration-is-avail": false,
+                                        "wred-profile-per-drop-precedence-is-available": true,
+                                        "available-scheduling-kind-list": [
+                                            "ethernet-container-2-0:SCHEDULER_KIND_TYPE_NOT_YET_DEFINED"
+                                        ],
+                                        "max-queue-depth": -1198879045
+                                    }
+                                ],
+                                "bundling-is-avail": false,
+                                "supported-header-compression-kind-list": [
+                                    {
+                                        "header-compression-name": "ZLo6NO9andQDeM85W8oR8x5rCbfotcisQHqDnzFKEvnLanQYn6QvDNWgY3Ek8XMYw5tTw8D3wSOG7EEuKmZoaOw0R2k",
+                                        "mpls-payload-kind-list": [
+                                            "ethernet-container-2-0:MPLS_PAYLOAD_KIND_TYPE_NONE"
+                                        ],
+                                        "compressed-protocol-layer-list": [
+                                            "ethernet-container-2-0:PROTOCOL_LAYER_TYPE_TCP"
+                                        ],
+                                        "header-compression-mode": "ethernet-container-2-0:HEADER_COMPRESSION_MODE_TYPE_PROTOCOL_BASED",
+                                        "compressed-header-length": 21306
+                                    }
+                                ],
+                                "support-of-management-frames-without-preamble-is-avail": true,
+                                "explicit-congestion-notification-is-avail": false,
+                                "information-rate-min": -128672095,
+                                "fec-is-avail": true,
+                                "burst-size-max": -16408,
+                                "ingress-policing-is-avail": false,
+                                "supported-fec-redundancy-size-list": [
+                                    "ethernet-container-2-0:FEC_REDUNDANCY_SIZE_TYPE_2"
+                                ],
+                                "egress-shaping-is-avail": false,
+                                "information-rate-max": -1045080441,
+                                "admin-shut-down-is-avail": true,
+                                "bundling-group-size-max": 59,
+                                "supported-fec-interleaver-depth-list": [
+                                    "ethernet-container-2-0:FEC_INTERLEAVER_DEPTH_TYPE_24"
+                                ],
+                                "burst-size-min": -32008,
+                                "fec-word-size-max": 27813,
+                                "supported-loop-back-kind-list": [
+                                    "ethernet-container-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED"
+                                ]
+                            },
+                            "ethernet-container-current-problems": {
+                                "number-of-current-problems": -77,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -17553,
+                                        "problem-name": "hbxk1Js09jvnXN8s84MPiahqyqMXe55ngCHhe1ankFCisKKsPohZzyp7Y44491rpw8yCaIZmftEIdh2UFkU6Sb5Jf1No3fNrfe3pWUMcniMsrOnZ0h5Ts3CI4h6ZwMiM0l3O7HS",
+                                        "timestamp": "2020-01-02T02:29:10Z",
+                                        "problem-severity": "ethernet-container-2-0:SEVERITY_TYPE_WARNING"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-11-09T20:06:30Z"
+                            },
+                            "ethernet-container-historical-performances": {
+                                "number-of-historical-performance-sets": 29450,
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "period-end-time": "2020-07-04T19:22:05Z",
+                                        "suspect-interval-flag": true,
+                                        "history-data-id": "l3Vi9zdCWBAH6z9NfhoB6JwoNbpzTsN6oAoxaB965BFb2OQ9XeK3Q9kDcJ45bJbrkAYm30k0tZ3wFUFv0iyQjKlvthsx1DYl5PH1P11iS5GxZe2ZwtIPd3czdE6e9WzfL88s1",
+                                        "performance-data": {
+                                            "queue-utilization-list": [
+                                                {
+                                                    "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE3",
+                                                    "max-queue-length": -1803741549,
+                                                    "avg-queue-length": 668980056
+                                                }
+                                            ],
+                                            "fec-uncorrectable-blocks": 1365345500,
+                                            "tx-ethernet-bytes-sum": "-9223372036854775808",
+                                            "tx-ethernet-bytes-max-m": "-9223372036854775808",
+                                            "fec-corrected-blocks": 1689861896,
+                                            "tx-ethernet-bytes-max-s": -460261257,
+                                            "time-period": 1119040864
+                                        }
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-04-08T22:55:02Z"
+                            },
+                            "ethernet-container-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "timestamp": "2022-01-20T05:11:54Z",
+                                        "scanner-id": "0p2SD6yKNr7FXOZiS1wd9CKkd0s5ezl6YoQBuoe9PdPF1GXLHlYRYA33Av0G4dEVBuoXLC7sHO7",
+                                        "suspect-interval-flag": false,
+                                        "performance-data": {
+                                            "queue-utilization-list": [
+                                                {
+                                                    "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE7",
+                                                    "max-queue-length": -582503799,
+                                                    "avg-queue-length": 1726408398
+                                                }
+                                            ],
+                                            "fec-uncorrectable-blocks": 31689800,
+                                            "tx-ethernet-bytes-sum": "-9223372036854775808",
+                                            "tx-ethernet-bytes-max-m": "-9223372036854775808",
+                                            "fec-corrected-blocks": 1260068498,
+                                            "tx-ethernet-bytes-max-s": 150115860,
+                                            "time-period": -510893925
+                                        },
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -27
+                            },
+                            "ethernet-container-status": {
+                                "timestamp": "2022-01-31T21:46:31Z",
+                                "last-10-sec-data-output-rate": -1040667629,
+                                "bundling-is-up": false,
+                                "total-bytes-output": "4416822980602456576",
+                                "total-bytes-input": "637809197873096704",
+                                "interface-status": "ethernet-container-2-0:INTERFACE_STATUS_TYPE_DOWN",
+                                "loop-back-kind-up": "ethernet-container-2-0:LOOP_BACK_TYPE_BACK_TO_LOCAL",
+                                "statistics-is-up": false,
+                                "last-10-sec-data-input-rate": 1984470326,
+                                "forwarded-bytes-output": "4490383044429092864",
+                                "performance-monitoring-is-up": false,
+                                "forwarded-bytes-input": "5818068461145545728",
+                                "remote-site-is-faulty": true
+                            }
+                        },
+                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                        "hybrid-mw-structure-2-0:hybrid-mw-structure-pac": {
+                            "hybrid-mw-structure-status": {
+                                "performance-monitoring-is-up": false,
+                                "segment-status-list": [
+                                    {
+                                        "segment-status-type-id": -21049,
+                                        "operational-status": "hybrid-mw-structure-2-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED",
+                                        "segment-is-reserved-for-tdm": true
+                                    }
+                                ]
+                            },
+                            "hybrid-mw-structure-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "period-end-time": "2021-10-12T18:17:27Z",
+                                        "history-data-id": "JOI9dJwZAT72gXe2kCMKavh3fWlQlCM4jvew6CnGvvADkHFwbk9lHqoWeJNAdzEw4K22eiIJNbfZSUw36FgNXEKcfxMsYiZV3TX9byTQJ0QtUeo1TwOQ2qUhPGBOZABUmy3p6OgHOY2B4iuXOaFQBAZq8B6Z3HLp8HP6nXG4NIFRT1OzblqENh5WS3NWDzdL82RvRxzE86vT7bsbpKPc2M0UIGIl7W6fQPKAfcefa",
+                                        "performance-data": {
+                                            "rx-level-avg": -121,
+                                            "es": -686451257,
+                                            "unavailability": 302281436,
+                                            "cses": -753406355,
+                                            "ses": -1929377293,
+                                            "rx-level-min": -84,
+                                            "time-period": -1824774055,
+                                            "rx-level-max": 26
+                                        },
+                                        "suspect-interval-flag": true
+                                    }
+                                ],
+                                "number-of-historical-performance-sets": 21093,
+                                "time-of-latest-change": "2021-06-03T14:21:55Z"
+                            },
+                            "hybrid-mw-structure-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 30681,
+                                        "problem-name": "g26TK36HjDNbkdVSwhcZ0Xzrwb5W7hWfj21WX7D8CijWw7H2oTThRkIfnNbu40Kg2LcSKH0fZcbnbSprEbInvqCT5Of2ORiICusf3lu2pxqAqH14KKj82V18J8ap0s8uOABRN5LcD3MVDGRnqavk5osHxu6pW6LCznlmkZzX2dKFTtVbvqwtPYael8v9fgMODZ2YYBNTHqqATlMhMaKt0UzlU4v1c9HI8Ky7d",
+                                        "problem-severity": "hybrid-mw-structure-2-0:SEVERITY_TYPE_WARNING",
+                                        "timestamp": "2020-07-12T14:56:49Z"
+                                    }
+                                ],
+                                "number-of-current-problems": -126,
+                                "time-of-latest-change": "2021-02-27T04:19:51Z"
+                            },
+                            "hybrid-mw-structure-capability": {
+                                "supported-tdm-structure-kind-list": [
+                                    {
+                                        "tdm-structure-name": "72F63hah8WSn2esiXXFgto5aigY3RF6YHDWKU6122MqXSK7PHMY223dkbbgUQmLpRH9LO3GIP6FzIMgpqesl9FFdIN7q1SPSsQE8TcQAio102ihlwBGy8dLI1K82vPVXGr5rDNUNbVF6dOrCq7aqcV9dx98",
+                                        "tdm-segment-size": 379506304,
+                                        "max-number-of-segments-reservable": 51
+                                    }
+                                ],
+                                "performance-monitoring-is-avail": false,
+                                "supported-alarm-list": [
+                                    "ZxmWQRKCENybTDZc7hbhIo4RtCSBERwwgSs7B4BfS1qLFiYMz1Whp0"
+                                ]
+                            },
+                            "hybrid-mw-structure-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "suspect-interval-flag": true,
+                                        "timestamp": "2021-02-01T17:00:18Z",
+                                        "performance-data": {
+                                            "rx-level-avg": -25,
+                                            "es": 1049832450,
+                                            "unavailability": -218830189,
+                                            "cses": -61227359,
+                                            "ses": 1489095624,
+                                            "rx-level-min": -93,
+                                            "time-period": 585827532,
+                                            "rx-level-max": -27
+                                        },
+                                        "scanner-id": "U0c3HUbjkaxy2j3lGkZH09SaM4eYtdYf52iEXtYhwnHyGLTn5K4YTX8FTnvesltxoDbd61uuo435POsUzoKkdT068ncAJx77aac9cGDAKyFrnZeOoY8BJ0AJoEj74i6elafxQLZtjxMyw0mMRvgAvQcLmvK",
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -69
+                            }
+                        },
+                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                        "extension": [
+                            {
+                                "value-name": "sK9kCJUDVsGWrqdD5sVdMkwMdxpfIr52cemOX9jLtZHMhU",
+                                "value": "eecsSwYxJnWZ5o4Zsam87nsKQjjDB5UPb794D7BnmpejFij7sxgrUA4CLn7mt24E1dAEdbTzt7T8h4gJBo3nQ7ZBuZQP1UmUZWqc0kEtjpBBtJcW77bXe2rB1hiU3EO2Bf7BrL4KaFdDhiropCewExZGOhARWhLxwS0PD4rNBFiSPB96dfCSMtqsLSbH9W6x"
+                            }
+                        ],
+                        "configured-client-capacity": "pGscMoZVO2fVpvNYkAYdXm7P9eVaov8N3AZHQRvETKzbff9sP7xElEuvLhF1MFPHfGo5pTCbv3mDiv5ZuuEI105MhKNVquCx3SvsE7D12REleJcJ6Qj7QoT70yUq3oQYhdiNcOOeFtrU4EvauOhd42c4B7",
+                        "ip-interface-1-0:ip-interface-pac": {
+                            "ip-interface-status": {
+                                "errored-packets-output": 907075378,
+                                "last-10-sec-data-output-rate": -650824823,
+                                "forwarded-packets-input": "-9223372036854775808",
+                                "errored-packets-input": -584315345,
+                                "ip-v-4-address-cur-list": [
+                                    {
+                                        "fixed-ip-v-4-address": "DPEOJDQ0zmH8UaFZVW6KAwSWmFafe99RRNxsifsRC1RwcpnZltJNZtJl8UteVCXEpm6HCrrekiCwHZwVs7IrBkEJ67QTJNy0awAMP1SabmyLl4GF4g6FsCgqK6klUKmW8WAQPk0SGqD1vbGzkE6M8m5Klh",
+                                        "fixed-ip-v-4-address-prefix-length": -78,
+                                        "fixed-default-gateway-ip-v-4-address": "1k318DRPXJHvadwxo4YIA4nIiklDBrKCDNvLins769C8m0FDWvdwzA7SUsvnL8ZgVn16KldIuIJJIgmxMz3l225OmtcZB3"
+                                    }
+                                ],
+                                "broadcast-packets-output": -1543531437,
+                                "dropped-packets-input": -1211380689,
+                                "loop-back-kind-up": "ip-interface-1-0:LOOP_BACK_TYPE_NONE",
+                                "dropped-packets-output": 1903967244,
+                                "unicast-packets-input": "-9223372036854775808",
+                                "forwarded-packets-output": "-9223372036854775808",
+                                "neighbor-list": [
+                                    {
+                                        "neighbor-mac-address": "q8u2tALYiuzSKVpoulKofHdCaptDsJ2LRwNd6y3gUC9xxqVTLxiT7vnhMQV6zPRjlFwk5zASbBpA2ctFCDqJ0N0MENT5uCoQhU2flu7w6o60Asx45YN6DGShlDnQgLypyAET4Di21",
+                                        "neighbor-ip-v-4-address-list": "UuIkyOamMN2wXf2c5iXDzn5692Jr4DHR7i3x65LKKFgHViT0sJw2YB07DJqAe0jdimLgjo0348DRjoRLZfFYRFXuhg4ngnByBeOUCOQyWlp7J9TBoqrfYoC7EGuUW5kxj8kOWamLvES6NDH348bUpN1VlvIhB2PMb1sZ3PCylnw0S63Oe6IvTJrf71wI3dm66PY9wAHRP6JIcMwiT7OEQ7T",
+                                        "neighbor-origin": "ip-interface-1-0:NEIGHBOR_ORIGIN_TYPE_STATIC"
+                                    }
+                                ],
+                                "timestamp": "2021-09-24T20:20:47Z",
+                                "forwarded-data-volume-output": 2118382416,
+                                "total-packets-input": "-9223372036854775808",
+                                "last-10-sec-packet-input-rate": -1949021899,
+                                "last-10-sec-packet-output-rate": -655223237,
+                                "vpn-binding-is-up": false,
+                                "multicast-packets-output": -1863163009,
+                                "broadcast-packets-input": 451277220,
+                                "last-10-sec-data-input-rate": -1661778211,
+                                "interface-status": "ip-interface-1-0:INTERFACE_STATUS_TYPE_NOT_YET_DEFINED",
+                                "statistics-is-up": true,
+                                "total-packets-output": "-9223372036854775808",
+                                "multicast-packets-input": 811759150,
+                                "data-volume-input": -1942040063,
+                                "data-volume-output": -327091897,
+                                "fragmented-packets-input": 235662176,
+                                "ip-address-origin": "ip-interface-1-0:IP_ADDRESS_ORIGIN_TYPE_LINK_LAYER",
+                                "unicast-packets-output": "-9223372036854775808",
+                                "forwarded-data-volume-input": 1743719186
+                            },
+                            "ip-interface-current-problems": {
+                                "time-of-latest-change": "2022-02-07T07:07:37Z",
+                                "number-of-current-problems": -104,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 17395,
+                                        "problem-severity": "ip-interface-1-0:SEVERITY_TYPE_NOT_YET_DEFINED",
+                                        "problem-name": "83AqtEG7G2AGFr8K9q3siipzY8Wrv2UDYm4j0CqyE0ebjnWsFRMYabp8jlrOgdkeAgpASP1wHfH0uvkan60x9hxlCY1KclYMBfel4fRDnrvRW",
+                                        "timestamp": "2021-03-18T22:08:25Z"
+                                    }
+                                ]
+                            },
+                            "ip-interface-capability": {
+                                "burst-size-max": -1444,
+                                "statistics-is-avail": false,
+                                "supported-alarm-list": [
+                                    "TzZ61XAaj39tehO4uEMgjyRcNcGdeI48h36a0GkkBmFPDtT70xgj57nKc3XqD2qV5w5Y4iaFEPm9b89bFhmDgJ",
+                                    "sNlLqfbdkAbawlk4R2q0dy1oeaKJrl6T8jEryIwLazVGU8KLabEfJxDPIfy9Ax2BIzUh9qUj0PZMPKyZV4ewBJebQEkj3fUMGG3P6P8Yw7LmJbdw7s3I39MUN65RdRvLxqAvfAuLI77jilQpFLZAULmzKriPiNBPd3dkEH6eO5xYinfX06yUKUmm"
+                                ],
+                                "information-rate-min": -161900989,
+                                "maximum-number-of-ip-v-4-addresses": -21180,
+                                "fixed-default-gateway-configuration-is-avail": true,
+                                "maintenance-timer-range": "RMVnzvmTVKyF49kng6nvO7JdU1U07DtZphmQEACzc27hbjEjp1G50piVq4VyHhpZqDPWdjnqluHoNdI56oa7GlUYpHoZYNYgiFcwRAOcWnBKAbPyrRF7cr6C9utZajgsQkQHMEUJ1nlty2",
+                                "admin-shut-down-is-avail": false,
+                                "dhcp-client-is-avail": false,
+                                "egress-shaping-is-avail": false,
+                                "information-rate-max": 223456230,
+                                "burst-size-min": -25436,
+                                "ip-v-6-is-avail": false,
+                                "maximum-transmission-unit-max": 20010,
+                                "ingress-policing-is-avail": true,
+                                "maximum-transmission-unit-min": 27371,
+                                "supported-loop-back-kind-list": [
+                                    "ip-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "vpn-binding-is-avail": false,
+                                "arp-proxy-is-avail": true
+                            }
+                        },
+                        "termination-state": "core-model-1-4:TERMINATION_STATE_TERMINATION_STATE_UNKNOWN",
+                        "mac-interface-1-0:mac-interface-pac": {
+                            "mac-interface-status": {
+                                "errored-frames-output": -1883903181,
+                                "loop-detection-result": "mac-interface-1-0:LOOP_DETECTION_RESULT_TYPE_NOT_YET_DEFINED",
+                                "forwarded-frames-input": "-9223372036854775808",
+                                "timestamp": "2020-04-02T04:21:50Z",
+                                "multicast-frames-input": -874855485,
+                                "unicast-frames-input": "-9223372036854775808",
+                                "last-10-sec-frame-output-rate": 1967789200,
+                                "total-frames-input": "-9223372036854775808",
+                                "multicast-frames-output": -168163769,
+                                "dropped-frames-output": 106062916,
+                                "statistics-is-up": false,
+                                "forwarded-frames-output": "-9223372036854775808",
+                                "flow-control-mode-cur": "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_SEND_ONLY",
+                                "received-ethernet-frame-format-cur": "mac-interface-1-0:FRAME_FORMAT_TYPE_NOT_YET_DEFINED",
+                                "last-10-sec-frame-input-rate": -1992529461,
+                                "errored-frames-input": -1059772221,
+                                "loop-back-kind-up": "mac-interface-1-0:LOOP_BACK_TYPE_BACK_TO_LOCAL",
+                                "interface-status": "mac-interface-1-0:INTERFACE_STATUS_TYPE_TESTING",
+                                "mac-address-cur": "bZSpA8828UIx0mJefzftfSy21f5SmlaqcUPM3XG3RpBRDc6KLd5S5vNZKSRY5ToiN54I2DMMUnDxzB9cPe5MJSDlCujIfA03FWLIzxmlMZSdtTia7nOI7s3JOfj",
+                                "broadcast-frames-output": 308391118,
+                                "total-frames-output": "-9223372036854775808",
+                                "fragmented-frames-input": 754130888,
+                                "performance-monitoring-is-up": false,
+                                "unicast-frames-output": "-9223372036854775808",
+                                "broadcast-frames-input": -1635183327,
+                                "dropped-frames-input": -1991952225
+                            },
+                            "mac-interface-capability": {
+                                "supported-flow-control-mode-list": [
+                                    "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_AUTO_NEGOTIATION"
+                                ],
+                                "statistics-is-avail": false,
+                                "broadcast-frame-suppression-is-avail": true,
+                                "supported-frame-format-list": [
+                                    "mac-interface-1-0:FRAME_FORMAT_TYPE_802.2_LLC"
+                                ],
+                                "admin-shut-down-is-avail": false,
+                                "maximum-frame-size-min": -20762,
+                                "loop-detection-is-avail": true,
+                                "performance-monitoring-is-avail": true,
+                                "mac-address-configuration-is-avail": false,
+                                "maintenance-timer-range": "wY4YvZFASW0CKFa7wC22D4xhkOX64wZAmVrRMYjwMb8pRbwfFq9amGsHuhNzFE11rkKdi4K57KmYVS5sbfDxVX6i6TJLpKMQ5w4fsOcAqyqmjwOmLjTygSQmLz73cLT9aXoCDB441nikLYGoisWqkFNX6M0iqUjAJI4fb1bcotp1j5pBpdUBSzrZlr9LdtdP3i4ejfizAHATFZnWchy5",
+                                "supported-alarm-list": [
+                                    "fUlNure4X5HBDT66mutgd5pTba6UkTlzOzea0k6PpNj2yp8MTt36rsRuuYoORBfxalz3FFS4k3YSt6xerAdSU4moUC4Eeb3owDj3ic7DfXnA3UPmm2fgYtET6IxkTAAh5UkoYjT58gG33nqphFGf8c06VpqG01Q5N2lLeeQmnoqqLQP2vvivIaCvAU3s",
+                                    "W3iXHoqU5l49zngKWQjoBQnYNs7dpX4lTeaACBmHWrIoGQ0vyjTaa90PB820XYdQcniHQxgFQR3wHVTgeFigOi5pqZhgPuYUR9BAGJfwAaUa5OqblIs90pqjhHrY3pSMylme5BCxLxHId7UyHezAvZLEycDBBvn2JC8OdLdRaV"
+                                ],
+                                "hardware-mac-address": "eKeM1D71Z7hjsF3O4ShqSWNynQrU",
+                                "maximum-frame-size-max": 19879,
+                                "supported-loop-back-kind-list": [
+                                    "mac-interface-1-0:LOOP_BACK_TYPE_BACK_TO_LOCAL"
+                                ],
+                                "link-loss-forwarding-is-avail": false,
+                                "loop-port-shut-down-is-avail": true
+                            },
+                            "mac-interface-historical-peformances": {
+                                "number-of-historical-performance-sets": 31576,
+                                "time-of-latest-change": "2020-03-25T15:14:01Z",
+                                "historical-performace-data-list": [
+                                    {
+                                        "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "period-end-time": "2021-12-01T20:29:52Z",
+                                        "performance-data": {
+                                            "mac-pause-frames-ingress": -1595749259,
+                                            "tagged-frames-ingress": "-9223372036854775808",
+                                            "jabber-frames-ingres": -344733811,
+                                            "mac-pause-frames-egress": -708863229,
+                                            "mac-control-frames-egress": 1858120596,
+                                            "oversized-frames-ingress": -1415641873,
+                                            "undersized-frames-ingress": 271082258,
+                                            "frames-of-1024-to-1518-byte": "-9223372036854775808",
+                                            "frames-of-64-byte": "-9223372036854775808",
+                                            "frames-of-512-to-1023-byte": "-9223372036854775808",
+                                            "frames-of-65-to-127-byte": "-9223372036854775808",
+                                            "mac-control-frames-ingress": 1970525942,
+                                            "frames-of-256-to-511-byte": "-9223372036854775808",
+                                            "tagged-frames-egress": "-9223372036854775808",
+                                            "frames-of-128-to-255-byte": "-9223372036854775808",
+                                            "fragmented-frames-ingress": "-9223372036854775808"
+                                        },
+                                        "history-data-id": "nFN67yO54O2ByUql7CD9KAwA7v2W6KSlhxkh58m1WhvmbVHapcb2MzuT4oI38sgpZAyXAVQo4dK70jhivkkaTO3Y4D1c5htXK2MkPCJTIlSIF1S2l4ceSgcWL50RfuGZosjdWUYEgQfVR7X44aiWinL3sDMHZk",
+                                        "suspect-interval-flag": false
+                                    }
+                                ]
+                            },
+                            "mac-interface-current-problems": {
+                                "time-of-latest-change": "2021-05-17T03:21:45Z",
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -5111,
+                                        "problem-severity": "mac-interface-1-0:SEVERITY_TYPE_MINOR",
+                                        "problem-name": "c9CrtG8MFvUpjuzCpoM4ihDCWc3htB5FKHZdf7SUuMjO8Lip14ujdZN1bQawjf43O39321XpF95OUf5NbzYozLhCtr1EH5Hv0IrUJobhx85jn2YyCWW3z5xUxyyev8BvQ2isjlJIuG2RISikP6fgcNbJlJXRRqeAlo2EKLmergX11fmQmt6yg9huT6dC",
+                                        "timestamp": "2020-01-29T11:06:44Z"
+                                    }
+                                ],
+                                "number-of-current-problems": 71
+                            },
+                            "mac-interface-current-performance": {
+                                "number-of-current-performance-sets": 61,
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "elapsed-time": "-9223372036854775808",
+                                        "suspect-interval-flag": false,
+                                        "timestamp": "2020-10-22T19:38:47Z",
+                                        "performance-data": {
+                                            "mac-pause-frames-ingress": 1730884186,
+                                            "tagged-frames-ingress": "-9223372036854775808",
+                                            "jabber-frames-ingres": -1407473147,
+                                            "mac-pause-frames-egress": -1930157101,
+                                            "mac-control-frames-egress": 2103352840,
+                                            "oversized-frames-ingress": 1718353468,
+                                            "undersized-frames-ingress": -972428995,
+                                            "frames-of-1024-to-1518-byte": "-9223372036854775808",
+                                            "frames-of-64-byte": "-9223372036854775808",
+                                            "frames-of-512-to-1023-byte": "-9223372036854775808",
+                                            "frames-of-65-to-127-byte": "-9223372036854775808",
+                                            "mac-control-frames-ingress": 1170144684,
+                                            "frames-of-256-to-511-byte": "-9223372036854775808",
+                                            "tagged-frames-egress": "-9223372036854775808",
+                                            "frames-of-128-to-255-byte": "-9223372036854775808",
+                                            "fragmented-frames-ingress": "-9223372036854775808"
+                                        },
+                                        "scanner-id": "wBZUU3wC2LWLfmOSKSvnaR6VjvXUVl9rW8dR3Jl5naJuwxeghKvrBBmM6cyTxHcmHq5L1iIgsrLZQZf7BLy4mNQlZh6oYjKGBHju01LslorbnzjRcJVywELnVSMT3orE6K0YELqZ9K2pbdgnX3VlHzJCjvoeTPSRsSP6w8X"
+                                    }
+                                ]
+                            }
+                        },
+                        "pure-ethernet-structure-2-0:pure-ethernet-structure-pac": {
+                            "pure-ethernet-structure-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "timestamp": "2021-12-14T07:38:22Z",
+                                        "performance-data": {
+                                            "cses": 1014510138,
+                                            "es": -1982086005,
+                                            "rx-level-max": 55,
+                                            "ses": -942087987,
+                                            "rx-level-min": 14,
+                                            "rx-level-avg": -38,
+                                            "time-period": 426410210,
+                                            "unavailability": 1535701396
+                                        },
+                                        "suspect-interval-flag": false,
+                                        "elapsed-time": "-9223372036854775808",
+                                        "scanner-id": "8P4m4o8VmtTggScRgFGobawZAwtoCepK3l6ZB6MYAy6IqizzP7X09lRKRd0lrhXnu3e621WCr2cRkLq1Kf1UsSwb5wwpOlMah0gjT4Nc6Z4iCmjmucgW5M02bwjRS511Y"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 73
+                            },
+                            "pure-ethernet-structure-status": {
+                                "segment-status-list": [
+                                    {
+                                        "segment-status-type-id": 16839,
+                                        "operational-status": "pure-ethernet-structure-2-0:OPERATIONAL_STATE_TYPE_DISABLED"
+                                    }
+                                ],
+                                "performance-monitoring-is-up": true
+                            },
+                            "pure-ethernet-structure-configuration": {
+                                "problem-kind-severity-list": [
+                                    {
+                                        "problem-kind-name": "HdJocdGJ0hkgVnMeFaSLCfCMLdoD7rnGF65RbDt4MNcI2YWH1GtDWXhzbFca7rRMpOvBjYx6MJGOAuoBbR6ZGnyRVC223LGszbVSasQO4wuETS74B5Vist1f53h0GPsf1o03IIJE7da0YhWrmRJHcDW9y69fVtmORmRs5A64Gh4wq0XNRzmVci4Kg5Zcym0iAKKxcIBSRFgixeXgNjbZt7BKcBOLPO3hqNPDninfQEp",
+                                        "problem-kind-severity": "pure-ethernet-structure-2-0:SEVERITY_TYPE_MAJOR"
+                                    }
+                                ],
+                                "clearing-threshold-cross-alarms-is-on": true,
+                                "performance-monitoring-is-on": true,
+                                "g-826-threshold-cross-alarm-list": [
+                                    {
+                                        "g-826-value-kind": "pure-ethernet-structure-2-0:G_826_TYPE_UAS",
+                                        "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "alarm-clearing-threshold": -1546659263,
+                                        "alarm-raising-threshold": -1625064155
+                                    }
+                                ]
+                            },
+                            "pure-ethernet-structure-capability": {
+                                "supported-alarm-list": [
+                                    "7Uf1cO3SSR0SzCbsKVa7HZtixNIJoEavrqwD6rvZivJJ0U"
+                                ],
+                                "performance-monitoring-is-avail": true
+                            },
+                            "pure-ethernet-structure-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 4286,
+                                        "problem-name": "C1sqMh7Hrpm82KqiZ8WgwGC251Bt1iswcVOY4NyvdUD7EWpv4dLsLfmQgYja8EGkrmbvaJTnDwuakMFpZjRLyetP4NRcjpxKLI7Vr0a4px6JjM8a50Vv6hca43efsLZ6t6",
+                                        "timestamp": "2020-10-19T16:44:31Z",
+                                        "problem-severity": "pure-ethernet-structure-2-0:SEVERITY_TYPE_NON_ALARMED"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-01-27T02:45:37Z",
+                                "number-of-current-problems": 33
+                            },
+                            "pure-ethernet-structure-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "period-end-time": "2021-04-22T09:01:04Z",
+                                        "performance-data": {
+                                            "cses": -1436625431,
+                                            "es": -541359851,
+                                            "rx-level-max": -110,
+                                            "ses": 254354182,
+                                            "rx-level-min": -94,
+                                            "rx-level-avg": 110,
+                                            "time-period": 15783374,
+                                            "unavailability": 1883468950
+                                        },
+                                        "history-data-id": "HWAT5pQJpLMN4Dx2xySHStVZh0X1op85eAYbZHUosH4ocBiJa2i2w6UF6",
+                                        "suspect-interval-flag": false
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-07-22T19:58:45Z",
+                                "number-of-historical-performance-sets": 4912
+                            }
+                        },
+                        "lp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK",
+                        "name": [
+                            {
+                                "value-name": "Wd2NbFskiVKragobKY0CW636iFfqULyQYAv17PlpC6RMe7PY5IsUGvSY27oOKOxJhUCoKYOmWx12EQ0Jqlv7Io5Lnmr82YJjTlIvboR7VK9zt2aTfySXWQAb42j6S2qDg88rwSrjCsSXmURBsBzgr9sv3DCWy2zO2I7ysqRWTBUfnDRIeiYGri3vWFruzSaBsh9UISRtlDIJgrrmJh23A",
+                                "value": "yoDRS5J2G4bQYLAH6WkPFA8YXKfRNHHd5d4PiFJYJVGAyhhF5CmK4mAT6HDTpk6mx2cPAVGbImD9DVOIp2kloM7vuKgTWf7m9j3BfJNP6iYBdMcuGoQ5bXsFzIqvXxJ7JNAYwfFuyEYLia8ZqY4BNo8e6qJWQlVz8vpwL41jIRWT14SjUOVzcVNamp6cK1DSp2ga69lH0hsTekd000A4Vne9EdloeY8DSpFRq0qraSc"
+                            }
+                        ],
+                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK",
+                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY",
+                        "configuration-and-switch-control": [
+                            "dmEqErCs8Q0BiUxWpIi5Rv9UAdnHAT4N7J5L2H6aq6DI03whLGmu4ngEADd3ohQv0WhVvnXVtBvlETChAQDEdUaFxnIWErjxfskCPhyaK3ngPZxpH3VUX5suk2iYlunsWH5EZDOBy4Sf3hELkrxhoREIUWz7iOAfoFTfazQADIQz0mckOJC4t8Ff46mfUWuitnxvOg6sYW1Yad"
+                        ],
+                        "fc-blocks-signal-to-lp": "OFV9NsoJyLYkzsDVH2qwioQ9cJZnWadCH0Mus260N4lfpQ26KsuVRc43V3iJ6weNo0aR2gJIk4PBMRApb4kU9oQ4j8GhwU5",
+                        "air-interface-2-0:air-interface-pac": {
+                            "air-interface-current-problems": {
+                                "number-of-current-problems": -2,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -7972,
+                                        "timestamp": "2021-01-13T02:43:56Z",
+                                        "problem-name": "HccvESark6DJ4nhci5zZcfyvRETqSBrrNEWjo7LJ5gkaEteWzFODVe0ETT5DmwW92LtjK6UPmeR0I6P9DDMyJMduxa7TGW2BHnUjtO8QU0",
+                                        "problem-severity": "air-interface-2-0:SEVERITY_TYPE_WARNING"
+                                    }
+                                ],
+                                "time-of-latest-change": "2022-01-30T08:15:32Z"
+                            },
+                            "air-interface-status": {
+                                "xpd-cur": 86,
+                                "transmission-mode-cur": "HGpLMiy0Vj5OQVpqPDf5GYwtci7RB2iaAH",
+                                "rf-temp-cur": 60,
+                                "mimo-is-up": true,
+                                "tx-level-cur": -61,
+                                "local-end-point-id": "QNdkvLyey2tFZ3VvTtc0NsgyWELWHLoqyuKV7a2x4vcWy0rjtwj8QsyE6bBOWR6nlIisSk0WH4K744qpACpi4XXa0yQXpWkDwuXoHPdoUXwQ1O8tqxMunJxn9fkq4w3A11ZAI4Y",
+                                "rx-level-cur": 4,
+                                "link-is-up": true,
+                                "performance-monitoring-is-up": false,
+                                "xpic-is-up": false,
+                                "remote-end-point-id": "TmlNbt8t0UYnvnLwCXXGuShnL8Pu4FYX2jC5ELyFxoUVLxrong4R1d6MlV8ps7fuiRrXu0u2ggP2O8ibpeUqsS4NFdd7ksuCbVrGNVA4cpYSx8VWmPeOz",
+                                "received-radio-signal-id": {
+                                    "numeric-radio-signal-id": 50648,
+                                    "alphanumeric-radio-signal-id": "AgEQFHfkgg"
+                                },
+                                "auto-freq-select-is-up": false,
+                                "tx-frequency-cur": -355877827,
+                                "rx-frequency-cur": -591480927,
+                                "atpc-is-up": true,
+                                "radio-power-is-up": true,
+                                "snir-cur": 11,
+                                "loop-back-kind-up": "air-interface-2-0:LOOP_BACK_TYPE_IF_TO_REMOTE",
+                                "interface-status": "air-interface-2-0:INTERFACE_STATUS_TYPE_DOWN",
+                                "alic-is-up": false
+                            },
+                            "air-interface-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "period-end-time": "2020-09-04T16:33:02Z",
+                                        "performance-data": {
+                                            "snir-max": 6,
+                                            "unavailability": 1236050058,
+                                            "rx-level-max": -16,
+                                            "xpd-max": 94,
+                                            "ses": 1992465836,
+                                            "rf-temp-max": -19,
+                                            "tx-level-max": -121,
+                                            "es": 1843444546,
+                                            "tx-level-min": -11,
+                                            "tx-level-avg": -81,
+                                            "snir-min": 71,
+                                            "snir-avg": -124,
+                                            "time-period": -1087864321,
+                                            "cses": -995802601,
+                                            "defect-blocks-sum": 9394,
+                                            "rx-level-min": -53,
+                                            "rx-level-avg": 110,
+                                            "rf-temp-min": 3,
+                                            "rf-temp-avg": -7,
+                                            "time-xstates-list": [
+                                                {
+                                                    "time-xstate-sequence-number": 84,
+                                                    "transmission-mode": "HGpLMiy0Vj5OQVpqPDf5GYwtci7RB2iaAH",
+                                                    "time": -615645839
+                                                }
+                                            ],
+                                            "xpd-min": 90,
+                                            "xpd-avg": 75
+                                        },
+                                        "suspect-interval-flag": false,
+                                        "history-data-id": "A2H1a9CDkJHpO5RfhH9oi2OB8YAlYBByDazOj3jvF0Nt6wBfeCwoEkZFi"
+                                    }
+                                ],
+                                "number-of-historical-performance-sets": 16094,
+                                "time-of-latest-change": "2022-01-23T18:36:13Z"
+                            },
+                            "air-interface-capability": {
+                                "expected-equals-transmitted-radio-signal-id": true,
+                                "duplex-distance-is-freely-configurable": true,
+                                "supported-radio-signal-id-datatype": "air-interface-2-0:RADIO_SIGNAL_ID_DATATYPE_TYPE_NOT_YET_DEFINED",
+                                "rx-frequency-max": -741473289,
+                                "supported-loop-back-kind-list": [
+                                    "air-interface-2-0:LOOP_BACK_TYPE_NONE"
+                                ],
+                                "direction-of-acm-performance-values": "air-interface-2-0:DIRECTION_TYPE_NONE",
+                                "adaptive-modulation-is-avail": false,
+                                "supported-alarm-list": [
+                                    "PO8XwE0y1PLB3rzebFD0EfwT6nrlfEL4kTTJxUhqJ22FutTx0oyEv4qCkJXzfAvztoiTaAbMu5jQq4orkOXPKfr4Yh",
+                                    "ufc3h6l0tH9elyg8xqXJI8IwbamXcIeGXiK6pX6KwfZRFfZd",
+                                    "RWeRSTwnFRhuOkNNL2KLCAeycRtXdQp4FvNphbMW2ViRf5w00gDCIK2VBnKO61KDxp2OAGCuBVlQSJIS0emAYgnzE0fCTRfigh6IXBcqwq8g9Q114nu2wRt2JIEDrTVz2UhRvmhTMp9V7aPcqj6W2AQMau",
+                                    "YycBwuQqdySFoOMQSSOy29aXk1R5CjNtKRWglMGrdz6BfTk7D8xxiHmuAdz5peq96mpr0YSdpRHEK1Df1aEjJ0Gc6f9vuzEsNVLFTwTin",
+                                    "dR0NdhXYrp95U7oKxs0YMGOur3VvUc17WTM1aCZu10zN7QqFaqvP7bjqfeN1jG87AN8Cp76i7y6fgwMqOhfNtqdAF1BQHBX9o5MFcKYba4qiscJgmQ4Hh99OaKEKdtLCyp9C27Nc36vva6MwWI55ReTUYpEcKhGaHPMJPsVKyigIgU75ucalrWfhdLtY318KJNlqf8aFrifzcmEGzHU0D19INDyIwHkfmFFtNI860nG5KcLbTx3ozc7eHFOe",
+                                    "8lAFT3kB3rBjZG3bk65J1tidsoV8c1eceHR7CcA",
+                                    "v4ZuCUFWSCyT6Q6q7TyjMFo1mf0YjBwOxva9hIY9kw2ie1JlM9xzOVs22k1mVx2kV5u4Ns6ZY0a41LqGUP7BKzvMTw0HWV1J0nNFPTEFUGKNr2teRAHt1c7VB0uxVn8NLVssHY8tFKgYECcn4TQ66PTzPn6CC6pnTJQAAQV7s456GatK3bQ1SJA"
+                                ],
+                                "tx-frequency-max": -311732019,
+                                "maintenance-timer-range": "O4j67UF28wgnaVALaAvPpKJcOun6jQv7NO5UACOJ85YiSyV30iSq3uuJQRP9Hc8uT5gtH54HaVZ2lNXm5IM048KUZrVyE33p8bSPgPoiKfd522j0K5SGduA4WnDsqyRqJB7Siv2ULfSNibFU9yBm23jQrWaJu1a5vhXNN0Ay7sdhDL4MbF15AkWT8YDCSFznWp2BhC1oW7yASCe3970JrOvzN03FFDUtUO5bjYrf5ZHPBWKK3Lmn",
+                                "transmission-mode-list": [
+                                    {
+                                        "transmission-mode-name": "HGpLMiy0Vj5OQVpqPDf5GYwtci7RB2iaAH",
+                                        "transmission-mode-rank": 1493797102,
+                                        "supported-as-fixed-configuration": false,
+                                        "am-upshift-level": 8,
+                                        "tx-power-min": 55,
+                                        "am-downshift-level": -16,
+                                        "symbol-rate-reduction-factor": 47,
+                                        "channel-bandwidth": -817773787,
+                                        "xpic-is-avail": false,
+                                        "code-rate": -45,
+                                        "tx-power-max": -19,
+                                        "rx-threshold": 4085,
+                                        "modulation-scheme": -15905
+                                    }
+                                ],
+                                "encryption-is-avail": true,
+                                "duplex-distance-list": [
+                                    1271184610
+                                ],
+                                "atpc-range": -110,
+                                "performance-monitoring-is-avail": false,
+                                "auto-freq-select-is-avail": true,
+                                "tx-frequency-min": 1237015756,
+                                "rx-frequency-min": -862718939,
+                                "type-of-equipment": "EuBk8tGyPKLmBGVPoZr5nomz1UrZsVg6hJiqdYQUAtgba30yUkvaIKJJE2AYQQW7AepF5fzFJIRLLJby3GIDijeWlPM3xIb7XsE2IezjWqWz27ZXFHtYSHM6wz949k36NA0nOsyCSu3Mt3K8C5YvMLBbcK7lX2kCCcZiEpUpLYbe1NeDSd0xQBI2ePfbRzNmM",
+                                "atpc-is-avail": false,
+                                "supported-radio-signal-id-length": -6852
+                            },
+                            "air-interface-current-performance": {
+                                "number-of-current-performance-sets": -45,
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "timestamp": "2020-03-29T23:09:45Z",
+                                        "scanner-id": "38JkanghwIqE4fAkGdP01G1XnOEFdim8qXlAdBJJb9ffpPr52hXVXQSdwoKKHYK7V5A0ybJKdYRCFbzzsouh7fmDDYfcW0kKXMKoXm0acRES25jmmOwtVS6yJeLFeXh3BUry",
+                                        "performance-data": {
+                                            "snir-max": -121,
+                                            "unavailability": 1443414906,
+                                            "rx-level-max": -75,
+                                            "xpd-max": 52,
+                                            "ses": -654960899,
+                                            "rf-temp-max": -28,
+                                            "tx-level-max": -96,
+                                            "es": 724483106,
+                                            "tx-level-min": 11,
+                                            "tx-level-avg": -74,
+                                            "snir-min": 48,
+                                            "snir-avg": -5,
+                                            "time-period": -113875217,
+                                            "cses": -538915883,
+                                            "defect-blocks-sum": -7588,
+                                            "rx-level-min": 18,
+                                            "rx-level-avg": 59,
+                                            "rf-temp-min": 60,
+                                            "rf-temp-avg": -40,
+                                            "time-xstates-list": [
+                                                {
+                                                    "time-xstate-sequence-number": 89,
+                                                    "transmission-mode": "JckEeSuHqNs1BguGy84aXdLKxuHXZDTIQde4XJDno5pZmLyMLCWJIHlf3U42yXLg3Zc0APgRMxQ0agMWLIFthSAkMFncu0spRwikdyb0XT072F3NfAgxsIJ7f6jKYE1I2j2gJ58GQ0O",
+                                                    "time": 17745664
+                                                }
+                                            ],
+                                            "xpd-min": 78,
+                                            "xpd-avg": -21
+                                        },
+                                        "elapsed-time": "-9223372036854775808",
+                                        "suspect-interval-flag": true
+                                    }
+                                ]
+                            }
+                        },
+                        "label": [
+                            {
+                                "value-name": "4po4pY0deemSrA9yqh3jyJ2ZBsiLku9gUykbokguqDnSdoiDFlO6WQXyifjuJlKvTWz98PEzkTjxhB3OORULIJjSYunAP7XAWoK4egDy1WYip16eKTRsu2dtwAVmzSOv9qsnG5NHUDRbEQhhB8J5aWqHolVQ6JdfaFuIL9ixN9IjZ",
+                                "value": "AA0cGb06KpkFfigsxi011L2ja"
+                            }
+                        ],
+                        "is-protection-lock-out": true,
+                        "tdm-container-2-0:tdm-container-pac": {
+                            "tdm-container-historical-performances": {
+                                "number-of-historical-performance-sets": 21165,
+                                "time-of-latest-change": "2020-05-20T01:49:08Z",
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "period-end-time": "2020-08-09T15:40:58Z",
+                                        "suspect-interval-flag": false,
+                                        "history-data-id": "E3bMyaKiYZrAXoct8NnsBrbvUtjVq134X7QnhsFfj6H8nUCvzZPaj0F5mQTMSWIH3r4kTKs5I9dXVPkuH2xS2cXg3QUNFDmI4qVP2nMDw0skHNOgPl8Jq60lOM0tpm4lEZ3zeP4KHw4pb",
+                                        "performance-data": "bJf4Xpk8HWqGxijYmIppVRW9G2Yvtmaw5pAUGU2fIlV7D6YROf9B6XKERA2kW4Q1tiO14"
+                                    }
+                                ]
+                            },
+                            "tdm-container-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -16750,
+                                        "problem-name": "hnaT8L6tEb282xdRMkK3xByVHirqldXCAZnAKt4oEYwynKi9W25lDDgcNzC8NzLfq0QauMr0CPzZrR1nT6IoBQApqcpdD2k33a5xWwxqmYqNPr3A",
+                                        "problem-severity": "tdm-container-2-0:SEVERITY_TYPE_MINOR",
+                                        "timestamp": "2021-09-15T15:40:44Z"
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-07-09T06:26:17Z",
+                                "number-of-current-problems": -87
+                            },
+                            "tdm-container-status": {
+                                "loop-back-kind-up": "tdm-container-2-0:LOOP_BACK_TYPE_BACK_TO_LOCAL",
+                                "performance-monitoring-is-up": false,
+                                "interface-status": "tdm-container-2-0:INTERFACE_STATUS_TYPE_DORMANT",
+                                "statistics-is-up": true
+                            },
+                            "tdm-container-capability": {
+                                "performance-monitoring-is-avail": false,
+                                "supported-loop-back-kind-list": [
+                                    "tdm-container-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "supported-tdm-container-kind-list": [
+                                    {
+                                        "tdm-container-name": "hqqhZcxjTBHYd0zn2ShqY364NFzOm0VDilUhxkAjVa902InWAxfyAlvf04VeWQR73MgB6RMTTVUVD9J6GYE9b9o35chU291YNhrL0dEL0qyDAiJ88ghkhynnKF9EG2Ctj36c8CX83wEvGnDOvV8Nlo25VbBBd6Wo12A2EqazOO4u4IazvjmIzoFurg5EeT3gNvijVkTJ",
+                                        "tdm-container-size": 1362875394
+                                    }
+                                ],
+                                "supported-alarm-list": [
+                                    "yBTS6l0hrOTtIAvLvYBg19VihTDXQDUo7Fg508mjW8EFAa",
+                                    "tTEh7GlJhPf2RrWF2IPLZp4L9siNnV1JGF0Oedpv2wxLXljRW8uVxyyzSJm8EnRlUJ18XivROVDEgWn44S0tqq2b9gjGva1iTUiI4OASB5oR1MWXEOiW6d7glqWRAP1mBj4F7EpABOkuA8j6WC2UHa22AYL3FMp86tF50"
+                                ],
+                                "admin-shut-down-is-avail": true,
+                                "maintenance-timer-range": "xgwUrTC099uBqr7wcaMZGWit9b5a1afqqLdRwHRyRd19w8FIbkHJg0cp3hzWsGnKksuQ9dg0rh9XqPGt9fch7ozby07SHmC1O6JYk0QDh0szH02Ig6ZnvqyVryN0Mh1BoCrAC95M1xdIy8iOeabJACwT2jTOBMhRpAjTKoxLVL"
+                            },
+                            "tdm-container-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "suspect-interval-flag": true,
+                                        "performance-data": "uHZZBj2Em03awBBKr1qhklJJYABsSLefkdeVp9AL9DVx6waypAHJVqkTSOeLzs0Ty6OXfgAgMvOSUYijqZVli762VcNmxF75EOUT4maQRQBDOTPeLKrVJpXxCDT",
+                                        "timestamp": "2020-06-14T23:01:58Z",
+                                        "elapsed-time": "-9223372036854775808",
+                                        "scanner-id": "HSIDeKmXAXBgIqml2NgD4eaGRWH1PFIoxi1L2nJuccCVuY8oDp1Hvcge0P7PvP5276G1uhvGt7tPXCdA1eaoiiCi7JZCr4xybdsxmX5PX"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 49
+                            }
+                        },
+                        "address": [
+                            "O0vlag2Mp8ZEDJi61KRUVqVRolymzLgfLMAN2uzjDrP827e4RYQEgDnFYOTqzaFcO8ZICr1fSQnMPuIysqcA4"
+                        ]
+                    }
+                ],
+                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE",
+                "name": [
+                    {
+                        "value-name": "NzfAQMdjWtvftW7OcHtrl7f",
+                        "value": "C7agV7KIyRiovnAkQ5zk2G86ftxsAMe4MokHn4hVOrcjOEDFJ4ZDCZJKs9cVNqZrPk04gh04A4gpILWjINPcMqW6z91fzTGgdzllQdijhqIZbEaLjZY5qU3R356vYFD36YgW3y7kYPb2leNEdLBvyF"
+                    }
+                ],
+                "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                "physical-port-reference": [
+                    "c942beda-266b-a670-ca1b-e78a3653775b"
+                ],
+                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE",
+                "extension": [
+                    {
+                        "value-name": "A8TVHKpjel6d6VxdwBSZdMbZhNFowMO6VzUucjGqEMDCH2P5Dz4Rl7IuVfSjU",
+                        "value": "pH7bbbuRt0v6C50jawK7f56Xr15bkZJCGJNJUaBgaYeF3fY6LJd0GjP0dUbpLV1rwP3iZEy1uNGy2xEF8JxO2mG79SxUFyebfht6N28hPGPJdlol4V2Z9I6iAD574ji"
+                    }
+                ],
+                "ltp-augment-1-0:ltp-augment-pac": {
+                    "ltp-augment-configuration": {
+                        "connector": "07wpeqzDCeErNGQsYiiaCfzpi0iDsCNsCbRIBjm5pSw4q",
+                        "equipment": [
+                            "c942beda-266b-a670-ca1b-e78a3653775b"
+                        ]
+                    }
+                },
+                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE",
+                "local-id": "KS9gljg5LxIEufsHVE9TNu9oHHPT13ILWK1939eHHOdb3FLQbMKZ8LfHkWAl0b6OVZXY9bxQZKTVhwDtinki0r0knAFfLD",
+                "fd-rule-group": [
+                    "5ea42646-26ca-afda-19a7-ad7f7cc924e6"
+                ],
+                "label": [
+                    {
+                        "value-name": "tClYsSuvYkLNocUAaCE4XSSu5v5B3CQxe3nGWR3U4HzsTu2V6y0VqShonnZjZHQ6KdMGXQt1pUli",
+                        "value": "fdeO5aeXrCdGtwy2eENrilg0GhpBCzRSN6yS8MIrhN8KjyNx4sQmN7fugEXL6OvTM3DUHdmY0mBbUgAYIjcnijJyYGb4nyP9Bk4bqi1iECuqK4gkfkIxEj6u09qfI7objkmJuo20SoqDkyXATx7xR5TJfjYPqm0Jzfl3vn4fLmS5VIxOfFdYK6HRhFGzUzatGvo3KsinP3lCLSqSxvRaty1K6Aj01tlzZBCB4UZLXkfAcFtC2kMvKFfIf"
+                    }
+                ],
+                "transfer-capacity-pac": "29fH19pHKKOGI3opGYEK5TUz1Weu9bH4kWLd52VHEJfmFELduiXzbJ05yfzHq8LC4oP1qCJ4eYiTuW6Z6Vqhwre4GFEYNhsRG9TYMuV0s5TX1RO7Eeh2Fn7d3L3Q2vIAFtzjXmjhr46lNUkr9ttGRsMU5PC8dc",
+                "external-managed-id": {
+                    "manager-identifier": "NXsc7VUwOhtiTbLf4fj2597JWFXPdDWStg5AbRYZ8k91vU9z2kt7tBIh8x6lbU6E236dU552peWU15l3hO2KpC1x9ZLkMRQOUXUGUZAb5o56li9C63m",
+                    "external-managed-uuid": "FfVP7G1LpSrbHdRBckMiIJo41qG7tVv92jQ1RJMht6kaj4DoohG60W2TeBTIwgJyzzAraeAEkUGwQkUeBsduo7fDI8d6pWFQn79xdJ3qwKWeWQtpiyTyF13g9gmq4Thr0iZ62UwqEsEsaZSspD0XEWdGcz6hlfAdyrjsm"
+                },
+                "client-ltp": [
+                    "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5"
+                ],
+                "peer-ltp": "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5",
+                "ltp-in-other-view": [
+                    "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5"
+                ],
+                "address": [
+                    "GiwvYe6czmxw9rniattCZyK3J2ebGwqmOWJNaPRCbg0kInvSQYmHo6K71ZiHnIW4wFJHnA"
+                ]
+            },
+            {
+                "uuid": "10a628be-c9b5-073c-5a38-d99ae443b00a",
+                "embedded-clock": [
+                    {
+                        "local-id": "WIb2lniXWE9lKml3q4sFUnsrxZdGN76JIhD3ENSsr2O3g17G5zmRWGamFf2kn03XiySWmLpFF5BV6IB39PUXvXb2c5mr6hooQhc4UBJzycmEUXHVFuLarW5",
+                        "run-mode": "core-model-1-4:RUN_MODE_HOLD_OVER",
+                        "phase-aligned-clock": [
+                            "YVeiPwRShBgjzQZvC8Zx7SnUMwm6JiLAdZK2vtNM43XDTX0o5SV5KiRoH5uiofKt7uoCXbhT6ewZ3pf1ha6TlXiUVMcjUXE1j2D95M2b1r34Qi57l30yTa"
+                        ],
+                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                        "encapsulated-casc": [
+                            "GI24xLIb5y9NdPh1Yzu4xRqGMoeBy8ieQkifY1i3rrIE9Zx7q13XKtDpJJ0hRioAvGHtz0o1jZxsY5rhYveJYK0Al0R5a7xxOe0f6hgq8GK6LcnJHukx6cZrcJwfQ3MEaFUgO2"
+                        ],
+                        "name": [
+                            {
+                                "value-name": "2rX0JlozuAvg46PCj395TQ1ykEALAFhu76mQrKhOdM4hSML3PU9ILa8XOJBgoKDnQZ59CmXP02YLGJOnwX69Z66FPzO6jrt9",
+                                "value": "zjUN8BO2rrI376z54IWaGCSgiYzJjBTSUGG"
+                            }
+                        ],
+                        "encompassed-clock": [
+                            "zSzgZS2utSYSlt8xN7dsLeEaUA9zvWk4GUcxEe2ZYSSkdSR1Z4lDaRNXjWoOKJKivOQ12K1TCLdPDWIu0W73NN0ZBoNeZqwmemo96h2A27ix3STVO1YuGQth78n6yUlN8BOfSQHMXZb0S4NyXM2Dun"
+                        ],
+                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE",
+                        "extension": [
+                            {
+                                "value-name": "t9TI5zKH7qtx1sSCPsj3u7y9YeopSC6eL0WJzyiyYE506QuNiNJMU9VKoc28O8mr8a2zIl0zRXrXNVLYBmCvvq8TCa2iigBrjES1RSsIQTxvHatiw6F2oNV0XPagYDzhhra0cDIUo8h5iLfPJNJ7AwZqe1GcE7tOyDOC8pwxpOuHrCo2p71ZwS",
+                                "value": "KLXWh4h5vUM733wsscW1vyipPhiHNaYxNWl4SC2fpGfkBDE3PAWc1eBQwTpbVoJIcWE4rGcIer2P4yKL0HP1NiKb39nYp6yBU4ylLK3R3XH7njKo0zpGR1RU3eKsca47eukR"
+                            }
+                        ],
+                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED",
+                        "label": [
+                            {
+                                "value-name": "9m5BFFEMLdJHNGKtaCBss33LEOEquckEqhf5XTRAYtaL1U6bwIvQLqBpe7HBb1fBjmG87qA5TKIUEO52osS9SmqYt7zF1Ggc2Pk1fUY8Fy2bfZeDj6F3k51O5tl69ti4iuXxgWxVuzZJqdfJbUEwRGcW1xU2046by4IPS8CeHBQ0G5BKRg8IOkxPJrRBwQMWMnDwv",
+                                "value": "K4JsWixy2gG2ZumwbXP2qdK5awsN2PVFLx7IPx8JNOLEa7alW0fm50rfoLVjsQQenXO4mWN2KyGUxJ7lBmIGe1WDNROfzEl"
+                            }
+                        ],
+                        "encapsulated-fc": [
+                            {
+                                "uuid": "ed41eab3-1279-3e65-0b2f-9e7cd5451369",
+                                "service-priority": "-9223372036854775808",
+                                "supporting-pc": "noy02iH8zFgeMhgW4AfBbCYNyhJ6EYCTm2TpkspT7FZTX",
+                                "layer-protocol-name": "ethernet-container-2-0:LAYER_PROTOCOL_NAME_TYPE_ETHERNET_CONTAINER_LAYER",
+                                "forwarding-direction": "core-model-1-4:FORWARDING_DIRECTION_UNIDIRECTIONAL",
+                                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                                "name": [
+                                    {
+                                        "value-name": "lvM8VQlDWw0WrpwGB9DOrVJcKmYKtF0G2MHXD2BrytnZKUymV32mZLrB0pelWe2ZSBWnDpP3K4UvQsJLwD0ngrQgI4uEaov3ZsquJ7xucjR2MsGa5ypdZfuHcYdmeJpd3QHMX681pRW3ju5g2mu1CQAGGF2Ugk7j2GYZEYTVQPR1bWadjE6Nmyt2dnWuHVFJtDBZ",
+                                        "value": "uUkbDdmAnrL1xqn5Lha85EQSkrdP2cjoZDr"
+                                    }
+                                ],
+                                "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT",
+                                "extension": [
+                                    {
+                                        "value-name": "qClVRAIZ1ehDw1L4dURmWAjhexxIrgDRLQNuqnmruDX0EA5JmO5iggzvO7d7fIZSzMnR1Jbve8oSAttX9z7pPzUvy7DNIuy98V09wbxKbV",
+                                        "value": "MgXJpoQG6hBtPA6vas3jAYkKmv96H4stcp4tOM9M4KfTdeonGjHh91Tvo2tX6VialmD11MN5pUQu87RPqqYAjR5ITzxRuQTHcwAdafaza13a8NZy5P8py6ZjFw21mVBrrbwujH3tIZDIEv8Jch0LfZ4Uw7NK2gbmsIQLh"
+                                    }
+                                ],
+                                "fc-route": "rmXv1aHa3bwNEBIN8Dilk4Ad4y2CAPq13fp4iY6l9C0N6Bse6KAqG2vLAyf2fxWiMle4jlhkPa7VLr2R4C9KEEn64C9j95BOiQKt3UNS4MGH5Iq9czUI59OaMPlNMXBWFepA84k4Q0LWAb5EKRmH13RFKdsx2Wlz2L1aP",
+                                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL",
+                                "configuration-and-switch-control": [
+                                    "2gTrdeRzf2nlZTs2Ad5wFEIyjlbkl8anp3Guap3hrqDibXkLaiiPO0g7drszACWRyDlA2pRmPmw1kJEm1O4HHkOUL8tlDi43NqDHPm3wJspVbWh4KlLrFrmrAHE5ZJ8M1LmQ7heIJwDUsNQ48BwG3KZvjDAjeIXfljXkB43cAyZUlPYmjm2mYTJiojtDTiKeCIq5Ml9eU807YQlh5fv38edxpG2iZMotmOq02zeWI6VyX9H2ocXxi3WHJYRAC"
+                                ],
+                                "local-id": "3GIkD1CnoMi4VcYcz4tYO6eh0iDMffwbV6vq7ZFoMYkz2jLBnfz3dFk5YQJd5go0eLieLYCpOWYQ7BjmQLpVqCSgsCuxKKpYoHc9xGqlvo3uZnRI88vqKoH4S3BCNSAbsFcZdCdISgdKDWkD4P4H5LLXOfrt7UxzzJzMeMn6UAIqo23sKZ1HCNxi2YM1SbBjM2Y0GdZANz03CWveVpVqckI6bm73xIfkC5cii",
+                                "lower-level-fc": [
+                                    "9bc11e2d-913a-2fa6-a64f-f01427c75d88"
+                                ],
+                                "fc-switch": [
+                                    {
+                                        "local-id": "iVty0oFGnqz6IookFx3idr66QhzWSS02NtsNJ7m6yV48bksQRn0XO73wgvt0",
+                                        "wait-to-restore-time": "-9223372036854775808",
+                                        "profile-proxy": [
+                                            "RnMdvdt72UZezNEHdkwcXhKr83I5fT568ScDXxKZjBeTpKAC47GTgrlomVlBGjAO3Mr0b4ZvF5g4HIyMH7xXqSeMOzfuSPbVtCVFGN2eKias0J6IQDx8oLUcl9y"
+                                        ],
+                                        "control-parameters": {
+                                            "reversion-mode": "core-model-1-4:REVERSION_MODE_NON-REVERTIVE",
+                                            "prot-type": "wyH6SBciaXYWhZgrzmUc7RuR89Ggd3kJC1QmD2xF",
+                                            "hold-off-time": "-9223372036854775808",
+                                            "wait-to-revert-time": "-9223372036854775808",
+                                            "network-scheme-specification": "t8mJAO5u05dmWdwuuJxOs1Hagc5NRWak5xVxd1T5Y6rUbXgxGNd1HV3PZ8CJ5E323RzgKklIiNutCK1bp646T7VTgpCd4xf7gGg00BIigcDLWwWeD0kw78hnpLAlbHlrnBsf42xdf3Y3zMhcMuBLuS1TEB7PbkgqVAGRD5WS8UNIyXUkjn6Ng7yMAFBDZJ4MkKwXPsHQfmyNbk0uIYhQXQCpn53fO7T0JhPqCogRDGwO1ojBeA"
+                                        },
+                                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                                        "switch-selection-reason": "core-model-1-4:SWITCH_STATE_REASON_NONE",
+                                        "name": [
+                                            {
+                                                "value-name": "l33OnQpv4vVZr3",
+                                                "value": "LnTDCUAqTvP1Sa2gv5jbs1AP65CXox09MMMoyeHjCwkuGmC3jNeMHOtFL6C1"
+                                            }
+                                        ],
+                                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK",
+                                        "switch-selects-ports": "core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL",
+                                        "extension": [
+                                            {
+                                                "value-name": "WkQaEh01BYDVhREqIqQW2jQcNuS8X3SMnBW2SXVtNqg5hUnSk5Ofhxr41b4ReXDtqrnigiDWJTT0N8SZezevYFrRQwIWldqLxNVN6qJHbCzYLkPRT4eRBxAk3bggoyTVmGBk6cThPs7sMXbxThguOROK2X0ivM6JkH3rTOAAhAU3p5t",
+                                                "value": "mJE3AlNCiFVNr1xMAs5t9x4q7QloWOGaydd0y0DQyqvZjUDTfAeo0aO711wPQ4Zg958HXLpv3VnmPS74lmslw8kxaQmSNe0Wb8w0MVoPQL4yv3uQpX3WXolZ6ARTOJIRSeRw1fdSS9igdMYCB2qzqMyomia2TSTDYC9ZKnJ"
+                                            }
+                                        ],
+                                        "prot-type": "0lWw4R1AEPmNC6sHaNL8TmDnhUbJwijow7UAYVauKphfvBWyozGhNbE45PGB0ZZwYMYOz1icqrrN2fdqHTAu56r2O7wGYv4W92CJ3MVtdm97tmxa8ZF5667M5Ds31wR2ylLu7GXcUYjolQqtI5qG3xs03MVWaEYIZK4Yi2a5StldcLyUJYsEoUFjysfI75iYHnX0h7X9tifFVNrEETbUFQddakN9p587sXZBWOLp60WTFnyb8J5NraSt",
+                                        "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE",
+                                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED",
+                                        "configuration-and-switch-control": "ZJ1keOZMBT0ebbG4MEEu9bCxXwJaxafoLgJZ5AMyuEExPcBBQ750jzx859iDbp1WGCWDdA3zeI6WUApDHnDSW2S232xesqb0V7D0zyzN8xBV71yHo3rkXke1mDfOWqORpjRYKqESX7FX85ww8XJ69XZwtecpxTgWcZNWhjH6qm3zsrXspG",
+                                        "internal-configuration-and-switch-control": "qwpWZw1o3UwRYvENMPmS8IOH2fwnw5NXB5LAtEQwyenpBUcfBy7J8Ni3VPqjU5gv2UXvyFTZT9ou3sJESIgSoyVbndu9bLEdxtB50uWTDcfyEQ5orlhPT409imil7Xywi1ujwq41vkA12xqtSHaLD2UVp58o2HVcAhn6zs04Es6GZw2R5cuI7hwwmEMgdzkOQIMqaEuO6sm5YoOVBbEIk26yySGMs0saI6AKLXqRp",
+                                        "label": [
+                                            {
+                                                "value-name": "vai9PGH3f0xLcUjzomScswT80yLY2M",
+                                                "value": "pXDyMcfHr775k1gTpDDtXae62MRSHE56tJx7NEO6MV3YOkJ6XmzMoOSisCa18g0BRxIw3oCPcGN00oYPLqt16mkqQusYCkrlR9RUpmCBUhuMGstj"
+                                            }
+                                        ],
+                                        "selected-fc-port": [
+                                            {
+                                                "local-id": "0aTT6gk4pPGT75heaNTHFpOsUj2sCVuu5fn3vzZUhyGoDPDOuon9NbCAmE2YrokoDIj8hiVyQtPmik2NIhWwsqYHW0xngSLTA4TJfOaX9Zbsb5fTm3hPmfoi7VynNb8fg2ZnI1kSSoc3trWQmexIlVTtQjQEuRLKTCZtDcdnApq3IfT5l",
+                                                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                                                "name": [
+                                                    {
+                                                        "value-name": "FGlq94JSAeJlQuYQPt23RCshx3or8JJFq56z1HjBV2WEoMuego97StgpwFIEoscOpagqRr1NmPjKCNQK3ZRVt7cZEVw3fAJEKR4BjXgFEzh8e0ShZB4kB9cf4AabaMPUvLnGAEd6d",
+                                                        "value": "fkvZBmByH4HLjDlmOn0v9vgwcIapOgM3A933wwB5AaQLF37lqZQzvY5zG8QnoDqQMlTaJnfbpXX50WiiW1JjZHKyPAV55dVKrGU232etZbqS7IaVBM6t"
+                                                    }
+                                                ],
+                                                "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE",
+                                                "extension": [
+                                                    {
+                                                        "value-name": "sI2VzGZUJCVXK0BDLwyrh5qDfqOHaEjCmdqNUhAvUnswnW20kAsBxK6EaVllzwPNC7Bop3TjqePO2RGmk8XJLWgVJB8a0QXCXqSetLpUR7ATY8fah5M2T2PCvQMvGJZv2RKvv9hegJ87Sf91cVV5PCHlslI8XAEZjgmOpwVyf3FZaG0nCNkjqUESffTcP",
+                                                        "value": "38FqPWWKm3F13PAV44Bhn1b2Lqhwv6Ny6kQVhEFDIcxDU7qY317qUisyBBW6zKwG4ftdT1JBd8677pYai5A5gVDRwrXY3lw8AZdu0WX64W53l3dD1OIhBd07FXXIatIDlW7dKWbHShK5cQ"
+                                                    }
+                                                ],
+                                                "logical-termination-point": [
+                                                    "bc478ce2-7d3c-9c53-dff2-7724bcef25d4"
+                                                ],
+                                                "selection-priority": "-9223372036854775808",
+                                                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY",
+                                                "port-of-internal-fc": [
+                                                    "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                                ],
+                                                "label": [
+                                                    {
+                                                        "value-name": "Q1ajO7oTU0cAVfwXtROEhGDRJrtvxWQgP0zv7XgTYttLARA3IgzRX4Jyv43VST3zLCWKr4DhxY27Qu2qLBiAyT83P3QHOT8zn4bP0G6yw1xensF0VXAtIIpxD76r16So2352B4A850mkk1lfQVJqw0X97VB81lp3pu60yy0vynQSgb07",
+                                                        "value": "JpuJnwQa7Rck8fJulC3UuqkR850b57aGoEhL2ZW1I0mQf5ltzgf4yrNHoNSlM21bzaOB2CDKCZtKWG5oOkkmDZV2FOnrIhu9jbDlN8YiZjUNZZ3Nbf1OfXQUD6ddnAfGLSUqSSARbuw2lAPwPId4FVQa1WogwDXhnJzfBa6EEuGS4ngU5tQDhzNiv3rTGg23ZBisLg6iLEaHTqtQMcl3L9d8cE1LU3OTwZli7jAKX"
+                                                    }
+                                                ],
+                                                "is-protection-lock-out": true,
+                                                "fc-port-direction": "core-model-1-4:PORT_DIRECTION_BIDIRECTIONAL",
+                                                "fc-route-feeds-fc-port-egress": [
+                                                    "unppWTO1aVUpdEuOVtJO0cPh0bpfvvNZK4gGQ4A0Zmi50ETN7uu7HjhHmyOJ3tBFyRegOO8FaqKbWwQ40k3HvkgRS4tNq4lQVz6BnehxxTAtprpiDtZ9N8Sy4ldupycd7iGuxXU4Jup0NPiriasXakneyBBX9N296Jvvypr9MQazFkSXukNExaL5LmUN1XW7yjuYJV0nMaWruHhR1Wvq68vKuqpwfdvFw0v7VvuzFj1"
+                                                ],
+                                                "is-internal-port": false,
+                                                "role": "DMLLT5IKHwykWwcShJ8PVgqS4J3OdpuQb7tW43yDzYXnm18ELglyoMiknd9sDvaGCDvGy3c029ng3vUODge2UwehKnCfSMNmiiVQe7Q886obBjZ7r59lCnueD6lnT8K3jFTpMCxUIN6b6Xip3rKxHfLclYz66j9hQVGux5h7TfiRcBh721EB8hNm",
+                                                "address": [
+                                                    "7xm64b4MepnRCjQQVE1Cpafun55sBpHIW3G07KEd214EcUm8qgKPqRkNWpgpOXZCSGCRih4ka"
+                                                ],
+                                                "fc-port": [
+                                                    "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                                ]
+                                            }
+                                        ],
+                                        "hold-off-time": "-9223372036854775808",
+                                        "switch-control": "core-model-1-4:SWITCH_CONTROL_FORCED",
+                                        "address": [
+                                            "OJepDEQ3qhjEztGklrYbW7bGmU2LONmCoAT17KWx1f4sJCMW4K8SKbq6XsJLf6fDy9wFTs5MI9ejL0fHDnrfqRdokX9rVpXtqt1jW65wfbPS34sykTNKL10X"
+                                        ]
+                                    }
+                                ],
+                                "supported-link": [
+                                    "lZXV6Lvcz31IK36OTvYWrxxho8Uv3TqhKgcQ1z3AC4ae0hULMSH6p6fF61aaUsrxIvnC4q4ynf"
+                                ],
+                                "label": [
+                                    {
+                                        "value-name": "RF466H8D7",
+                                        "value": "ASFLTCpBvB2IjXVClM8FgRklXr25W2lxUSiFuzgZ3jAm8nYt960pXlCNMxKAz57lPh1kRhbUsDgA06W1dWj2hVPVssw1xvffNgzEpCqKgGk8M8aR5tMegt2J"
+                                    }
+                                ],
+                                "is-protection-lock-out": true,
+                                "external-managed-id": {
+                                    "manager-identifier": "H1HOCSqsxYJhWf7y8uATLMl2xlIoexvOqdCUXVmvLYMAdT0eft7SflVNGv3U2zAkE5eB0s6DqK5Ew6KLzREOcrtSWxFQY72Ccgd4IcA1WFFkLh6k8C1d3mXRLuzJCBdGRrLrvlsj0ZEEgCQheRu96jSROrtiUGYDZB4uWpGPoklxWbO2Va31tVK9e5r8EiLDTH0I6GpnSKMONA",
+                                    "external-managed-uuid": "ICLBXye7MbqMPIptuYlcX1tcLdYr0q9B2M4ZkiYYuhCbZ1ElZRpOKS0v5YWYo5riJvi3G8T2pvdhoKCgB24mU5J"
+                                },
+                                "fc-port": [
+                                    {
+                                        "local-id": "qsFyNklQYOyvyMz8g2pT3dK75bePrSuRc1h0dCQbrhGR3f0b9hW5vGcsKrhbbEUoF3oLF6WYnvIjCAuMRjRmR3GBmQEquyO1B4M9aB7q6PJIh5m9odng94JnUoNgWBhqxWzAxy0vgJ5xOsG5x4dy0WWMkJ29dbrK7SkwqcTyVZ6CjEzIAMhsIdeVW8W1knMj7YQxbJYYAWsLs1u3NLnoQCbEK7GWmkgta6SlHQcaMEV7Gh2l2pJSTMpwT5s7pI",
+                                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                                        "name": [
+                                            {
+                                                "value-name": "zGlNg3ZiIvdP3vRppg0aaNzGyw0GVJ0mhl1ppSH7oVOriFIzVJJXwavWGwut7vIgQJG7un6KaU3krMUfvvcTyAPeYkA5PidxTTxf9DZjq3wRPq6cNb5lLMsJ62GNcLdXFKdGfcZFfnpWNv8tGdOj08UY2sEeeJcLlhrAti8BGxxl2GOBLvMDvHuy10MfJQ047jwtuE4abtn614HNrliW2Mu4E9bfZ4b7nIsRewTqZ9w1d5GEqYA",
+                                                "value": "D5h96sp5wA4MawvpUhPUqdNDal9sjJNOGWYMpnKNPOr0dXh766Twby1dTaF5TlTshR6y6QeOxFOKu5RA3DY6bZb51QaV3VfdFlLL4ZrBx7lT44m7zk5LcgIdZK02FffktTYxKp09xd3BhpBRJyuNH4"
+                                            }
+                                        ],
+                                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT",
+                                        "extension": [
+                                            {
+                                                "value-name": "nHgYCUDJgmmnuIFFlsl5d0Nrpa5fIpQ5673I1zkiNGFhgcWCFazKaecsp9HZyx4Ew0nyrzI67fnnsbZZdrJoFVIW4hVuOS9dSoLbXlh4Awr2zj",
+                                                "value": "NKv3hiLef29JI1SVL8yO5T51utto3EaQgFTxXwLcyNW8GG4kPC8Uw6WSzh8uVic3X5AVBm719VaPC61rIad681YHi745hg8feJaPX9J65TNzZP0zR5yZ7oypnCnFTvU76WO35p12aHB1otBfz16GpE5N9ksUQmTWazSfZTa9sL3Q7EXGF3e4AbJJwbDmpoazXUHWGRY8u1RBxO94Kn0kzKV5VqjdOlMLgtAWcy4HrNaYCk2eHUq8El"
+                                            }
+                                        ],
+                                        "logical-termination-point": [
+                                            "f7872522-16c2-ce17-fc7a-083c8517e7b3"
+                                        ],
+                                        "selection-priority": "-9223372036854775808",
+                                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL",
+                                        "port-of-internal-fc": [
+                                            "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                        ],
+                                        "label": [
+                                            {
+                                                "value-name": "GO1At9IGuBE1dVTns6qWfPp6qXseEw7ck0NG9vmDYSwbNpy8nY4DFtBYi44Xsb1FbOllbzQ1rfdeEDe2uix1D8ZW43LxeEcqlpDwYlqpADv78K1CUyEyGDmLzZiNDm5YLAnJWN0wivDi7EV2crsTWOwvFGba2g1NRgoNVob5LPnTliVyBnjy3P3AneKpnD46TkTOIWTlL9e7r1x3gItbpoLMDobS17YNrJt1FfmjotiHuPCDp5OO",
+                                                "value": "AAZYDRRKPwbq045fqovTycgfPTEUzsg927ZFYJhFfk57o3mPjRASWI7LtMx3eG49N4GMFYjUih2HkgoD0QvWzvz2hYXnE2wsY56v3hhdybMSs2okTL8kgzepxcNc6bw4gCrbTIhkU34eYsyR6ybm7pMEtrIzCevLIWWuF5Or1KFZ5dQbLTpKa3oEuZ575tKOpGaWMQnNA2EF7mQKfguhjLNGKTFPmpvDXFs"
+                                            }
+                                        ],
+                                        "is-protection-lock-out": false,
+                                        "fc-port-direction": "core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL",
+                                        "fc-route-feeds-fc-port-egress": [
+                                            "fGsO2gr7ROhFAtoz6akKXUJZMPRSJMhQkCEeS5dCLuhdXFNVH7FFThEx6npH9Gxma3A39OFMiO08tNV3MtIFKe4IBtpD1OZcRz7SfE"
+                                        ],
+                                        "is-internal-port": false,
+                                        "role": "eyeZmO2jlM3HlWCdBniVMcJ7LLSMVAZ10d",
+                                        "address": [
+                                            "rKj40FEWR4SqvyBl2NfgmaGvG1A8EZFXJR1JwGxfKhG8P9tRWBZiLFNrygs4fZ1YQ3zeBYud72dPbHy7ayhV5XeEdyAsyCioxRD0HZ5O1jDc04b2CsXHp3duCOWai6qPXVHwUMdV5QZXUaZovO6MSjhu75whcO61KFywsLkptjngmeER3CvVOMhNSF54t355JDC3gWsK"
+                                        ],
+                                        "fc-port": [
+                                            "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                        ]
+                                    }
+                                ],
+                                "address": [
+                                    "z86HSjQS45S0Rg7F02V4ofMeS3RQUuslCq2mJT7FQZyI7FfZH235aHb2C3TopdJTDEgfpnMfekXd04cz7gxhPAbsvWQU9sGN6WUnbGCp1sCToGkvWREEkQ6PMOCO8it66nth3YyWi2"
+                                ]
+                            }
+                        ],
+                        "sync-ltp": [
+                            "1c7e2c79-af6e-8d12-d18a-957fe616ceeb"
+                        ],
+                        "address": [
+                            "i8tBSRuj8a221O58qxcAtbOXwG3EhcBzkWa4FEnOGhIA5NIvcUXy6Mvukr0tDB2Qy4U5JaTprtZpgzMlmKTkogOAHO3dh53H1PNKRy2b2TAalevHYg1exHO6nJjEGeeIW1sN"
+                        ]
+                    }
+                ],
+                "supporting-pc": "mYtgqEBF1aDibKPSyV7a7LQlZy9STXkfVNnejQTl0oD38kNz7UJeGzsx8Bq1yK8mpwAJet4fRziST6r0Sa7qJzYJagCJSDXh1pSfSWuBnFl8DM9vWgWyPM9R2E",
+                "server-ltp": [
+                    "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                ],
+                "connected-ltp": "f8aa5a5b-6b21-eecf-5f43-21f52446eae5",
+                "layer-protocol": [
+                    {
+                        "local-id": "pUmySfwJi30SJskwiOFCy51jtEzghwkyqH6bWvU6qUY9nbxxR41ha2ADGaLPG6gZFeaBJWIaJyb6BJvsFwKHycd7mYOVW4MBjW5UKF4t58rHRW1okD6LQjS49yZ6vLzOzEAcbFFhNZQwNJM8nST53D9d31byEKe6hPismPB1Orpu3buq4fnZSocNp",
+                        "layer-protocol-name": "ip-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_IP_LAYER",
+                        "vlan-interface-1-0:vlan-interface-pac": {
+                            "vlan-interface-capability": {
+                                "configuring-pcp-bits-decoding-is-avail": true,
+                                "ingress-vlan-id-filtering-is-avail": true,
+                                "port-and-protocol-based-vlan-is-avail": false,
+                                "statistics-is-avail": true,
+                                "configuring-service-access-priority-mapping-is-avail": true,
+                                "max-number-of-protocol-vlan-id-groupings": -15346,
+                                "configuring-ingress-tag-filtering-is-avail": true,
+                                "supported-sub-layer-protocol-name-list": [
+                                    "vlan-interface-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_D_BRIDGE_COMPONENT"
+                                ],
+                                "number-of-available-traffic-classes": 26,
+                                "supported-interface-kind-list": [
+                                    "vlan-interface-1-0:INTERFACE_KIND_TYPE_C_VLAN_BRIDGE_PORT"
+                                ],
+                                "available-pcp-bits-interpretation-kind-list": [
+                                    "vlan-interface-1-0:PCP_BITS_INTERPRETATION_KIND_TYPE_6P2D"
+                                ],
+                                "drop-eligible-indicator-is-avail": true,
+                                "configuring-pcp-bits-encoding-is-avail": false,
+                                "service-access-priority-tagging-is-avail": true,
+                                "received-priority-overwriting-is-avail": true,
+                                "egress-vlan-id-translation-is-avail": false,
+                                "admin-shut-down-is-avail": false,
+                                "tagging-and-mvrp-is-avail": false,
+                                "vlan-id-translation-is-avail": false,
+                                "restricted-automated-vlan-registration-is-avail": false,
+                                "number-of-available-priorities": -71
+                            },
+                            "vlan-interface-status": {
+                                "statistics-is-up": false,
+                                "timestamp": "2021-07-17T19:03:43Z",
+                                "total-bytes-output": "-9223372036854775808",
+                                "total-frames-input": "-9223372036854775808",
+                                "interface-status": "vlan-interface-1-0:INTERFACE_STATUS_TYPE_NOT_PRESENT",
+                                "total-frames-output": "-9223372036854775808",
+                                "total-bytes-input": "-9223372036854775808"
+                            }
+                        },
+                        "wire-interface-2-0:wire-interface-pac": {
+                            "wire-interface-current-problems": {
+                                "number-of-current-problems": -102,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 27668,
+                                        "timestamp": "2021-09-17T16:59:03Z",
+                                        "problem-severity": "wire-interface-2-0:SEVERITY_TYPE_NOT_YET_DEFINED",
+                                        "problem-name": "0IqQa4qiCIzPFEn7KHZ7uIMfQlLgAEKAnajp7JHJj9yZNV6pvXpZxb6gwRw7ogzLjS2qCJ1VSrMGeKXJHmA7qHnOqT"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-12-28T03:03:51Z"
+                            },
+                            "wire-interface-historical-performances": {
+                                "number-of-historical-performance-sets": -7315,
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "period-end-time": "2020-05-04T22:53:25Z",
+                                        "performance-data": {
+                                            "es": -83399647,
+                                            "ses": -1372181095,
+                                            "low-power-idle-receiver-ms": -1016949291,
+                                            "low-power-idle-transmitter-ms": -1609026745,
+                                            "symbol-error-during-carrier": -2027018767
+                                        },
+                                        "history-data-id": "JydU7pfnNrXowOTEfG5ZWhjDytv37JWQa9ChqRwdattG",
+                                        "suspect-interval-flag": false
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-08-17T13:52:15Z"
+                            },
+                            "wire-interface-status": {
+                                "rx-sync-role": "wire-interface-2-0:RX_SYNC_ROLE_TYPE_NOT_YET_DEFINED",
+                                "link-is-idle": false,
+                                "eee-is-up": true,
+                                "performance-monitoring-is-up": true,
+                                "rx-level-cur-list": [
+                                    2
+                                ],
+                                "tx-level-cur": 17,
+                                "pmd-negotiation-state": "wire-interface-2-0:PMD_NEGOTIATION_STATE_TYPE_DISABLED",
+                                "loop-back-kind-up": "wire-interface-2-0:LOOP_BACK_TYPE_EXTERNAL",
+                                "interface-status": "wire-interface-2-0:INTERFACE_STATUS_TYPE_UNKNOWN",
+                                "pmd-kind-cur": "LFZDk712ifjFD0udBApkR4wFO38dPjgBZ76j67doeoWSoi50SmcJiIg6EgbtAk4rraCq9POg6K8m35mNrypJ9FINWTgoddPxfjXh0Dx6gFtbKHY38nMhVu4Jgc7lhOSx7HO7ll6BSzMu8Kxg0jpVGlEWyD9Hr2eqBUpW7vxZWbt5W0dWcDJSYnGo0H6jBcBd",
+                                "receive-signal-is-detected-list": [
+                                    false
+                                ],
+                                "signal-ordering-kind-cur": "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI",
+                                "pmd-is-up": false,
+                                "link-is-up": false
+                            },
+                            "wire-interface-capability": {
+                                "wavelength-min-list": [
+                                    -920849701
+                                ],
+                                "supported-signal-ordering-kind-list": [
+                                    "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "rxlevel-high-threshold": 103,
+                                "isolation-is-avail": true,
+                                "supported-loop-back-kind-list": [
+                                    "wire-interface-2-0:LOOP_BACK_TYPE_NONE"
+                                ],
+                                "short-reach-mode-is-avail": true,
+                                "wavelength-max-list": [
+                                    712242164
+                                ],
+                                "unidirectional-operation-is-avail": true,
+                                "supported-pmd-kind-list": [
+                                    {
+                                        "pmd-name": "uQXTh7qJf0snKs9pNu8EDRjW1Q86oaHK0EwaLWT1OlgyGhPtMXZpGjdA1lGpvf1oTxyxljq9wyHcPxxBmx13I6DJsb0Pr15czvBUO14lrDph2XKpmDk4KXN40NTrOREfm7ab1eosRNBUKmb6Zv2BkHFkmrE3iaiwhsHiyXLiLm4nAfmsKg3WYBgk2Ufc4yIe0iwrfhJSwN86UuywKCsA5AV7n2bjATxt34Ubdv3JabQ4xosaSUKXmxW",
+                                        "speed": "A73aTsDOwpZKUVtW6b0wskGkeqaBY6cy67ARA6F6vxIis46qf7",
+                                        "duplex": "wire-interface-2-0:DUPLEX_TYPE_HALF_DUPLEX"
+                                    }
+                                ],
+                                "configuration-of-number-of-bip-errors-per-ses-is-avail": true,
+                                "auto-pmd-negotiation-is-avail": true,
+                                "required-medium-kind": "wire-interface-2-0:MEDIUM_KIND_TYPE_TP_CAT6",
+                                "temperature-low-threshold": -70,
+                                "maintenance-timer-range": "pgyvGFuvnOZ9eM57xZcI0pmBc50YcOsBWSZDxl0M9ZVfM0mbSzMKQ0l35eTiUdLR5CmuYmh7d4fRXB3P2HzTHUOM0HWVUAMRc0lamuarzpjwSedNVMyCyegzVdmHN0qZ0",
+                                "supported-alarm-list": [
+                                    "2e84FHtY5dci074qBuESVr5h0KhqB94vncz3T2TY8Y80XcrzyXjupgLp0VIt4MZkQyfBt0rtYztODMfbKyF1OjiG6012E0mmrtXMuo7kPA8sfnERVbSBu29s3b"
+                                ],
+                                "mii-kind": "wire-interface-2-0:MII_KIND_TYPE_XPAK",
+                                "rxlevel-low-threshold": -57,
+                                "auto-negotiation-pmd-selection-is-avail": true,
+                                "wavelength-grid-min": -2005534709,
+                                "performance-monitoring-is-avail": true,
+                                "auto-signal-ordering-is-avail": false,
+                                "configuration-of-rx-sync-preference-is-avail": false,
+                                "eee-is-avail": false,
+                                "temperature-high-threshold": 80,
+                                "admin-shut-down-is-avail": true,
+                                "mdi-kind": "wire-interface-2-0:MDI_KIND_TYPE_SC"
+                            },
+                            "wire-interface-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "performance-data": {
+                                            "es": -1279133141,
+                                            "ses": -1552849717,
+                                            "low-power-idle-receiver-ms": 1231109960,
+                                            "low-power-idle-transmitter-ms": 1629566086,
+                                            "symbol-error-during-carrier": -1478930465
+                                        },
+                                        "timestamp": "2021-04-24T10:47:57Z",
+                                        "scanner-id": "jct3LHvS74fWv1J33YngeITXNpuLmW8F0BADb6wi2D6xEIBzGYPMyAKmZ6Zl27TUBlyMjWWmz3L6Lexj4n6DPIZPOQ2RPNDq1b4k71yzWkxHy40vjY89GZQvPKewyRXzVTL2MktIE0h4Xazg8zhPy7cfSiMi9BJ4muZ9OkRkd1h2bIibis0Iz4Qjmuto5ckjHbsnwcAB5RDgzNrJfk",
+                                        "suspect-interval-flag": true,
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 87
+                            }
+                        },
+                        "ethernet-container-2-0:ethernet-container-pac": {
+                            "ethernet-container-capability": {
+                                "supported-fec-interleaver-kind-list": [
+                                    "ethernet-container-2-0:FEC_INTERLEAVER_KIND_TYPE_BLOCK"
+                                ],
+                                "maintenance-timer-range": "LMKIbI9WrI1i7qRE5Sp4bFlOkspwCEAgrcYCU7rmHswPKflQZKMbiZRCr88WMAc5M2Iz21NBtji6rwWq8Atqrc2Sk3G7vSciNMJHNwa9Htf8Z3r7DUy47sOjnvqTfv3UhMB5iM6Z7l0Yor5TdvPcQvwd0O68j9UBVoy52EX9ZX",
+                                "supported-alarm-list": [
+                                    "g48tsPyak4ndSmd4n7Fbv5gxJdGA2FPiCPM4Ec6Ygt30Pg45oBgTywjhCRJExyX1fBXTN3KVwFNeWKjcdz",
+                                    "MXgVz8F6x5Vylov63qIYWoD2cndotElfCCa3KH19NWH0c46fuP5i5JdhYiFrX0yruJm6iof5cO5pS4"
+                                ],
+                                "statistics-is-avail": true,
+                                "encryption-is-avail": false,
+                                "performance-monitoring-is-avail": false,
+                                "available-queue-list": [
+                                    {
+                                        "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE",
+                                        "available-dropping-behavior-kind-list": [
+                                            "ethernet-container-2-0:DROPPING_BEHAVIOR_KIND_TYPE_DROP_TAIL"
+                                        ],
+                                        "available-drop-precedence-kind-list": [
+                                            "ethernet-container-2-0:DROP_PRECEDENCE_TYPE_LOW"
+                                        ],
+                                        "queue-depth-configuration-is-avail": false,
+                                        "wred-profile-per-drop-precedence-is-available": true,
+                                        "available-scheduling-kind-list": [
+                                            "ethernet-container-2-0:SCHEDULER_KIND_TYPE_WFQ"
+                                        ],
+                                        "max-queue-depth": 1580016710
+                                    }
+                                ],
+                                "bundling-is-avail": true,
+                                "supported-header-compression-kind-list": [
+                                    {
+                                        "header-compression-name": "QR3IhwmGinUYIcp4qNAz5QzmbSc0BSmjCh1LOfr6udWcpdhH1RgYzHdLspD3aReE98pPfQNKVBOdO5UHObygSL1c2w7comQpm7eBPTdLu2YaZSSGVqWG3PS5l0aBe00A06bPZpAlrqwiboY6GUMJJxOXxYyLRzdRxoyxF1",
+                                        "mpls-payload-kind-list": [
+                                            "ethernet-container-2-0:MPLS_PAYLOAD_KIND_TYPE_NOT_YET_DEFINED"
+                                        ],
+                                        "compressed-protocol-layer-list": [
+                                            "ethernet-container-2-0:PROTOCOL_LAYER_TYPE_VLAN"
+                                        ],
+                                        "header-compression-mode": "ethernet-container-2-0:HEADER_COMPRESSION_MODE_TYPE_LENGTH_BASED",
+                                        "compressed-header-length": -17258
+                                    }
+                                ],
+                                "support-of-management-frames-without-preamble-is-avail": false,
+                                "explicit-congestion-notification-is-avail": false,
+                                "information-rate-min": 729154470,
+                                "fec-is-avail": true,
+                                "burst-size-max": -19934,
+                                "ingress-policing-is-avail": false,
+                                "supported-fec-redundancy-size-list": [
+                                    "ethernet-container-2-0:FEC_REDUNDANCY_SIZE_TYPE_2"
+                                ],
+                                "egress-shaping-is-avail": false,
+                                "information-rate-max": 873248546,
+                                "admin-shut-down-is-avail": false,
+                                "bundling-group-size-max": -90,
+                                "supported-fec-interleaver-depth-list": [
+                                    "ethernet-container-2-0:FEC_INTERLEAVER_DEPTH_TYPE_3"
+                                ],
+                                "burst-size-min": 27413,
+                                "fec-word-size-max": -8299,
+                                "supported-loop-back-kind-list": [
+                                    "ethernet-container-2-0:LOOP_BACK_TYPE_BACK_TO_LOCAL"
+                                ]
+                            },
+                            "ethernet-container-current-problems": {
+                                "number-of-current-problems": 39,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -26136,
+                                        "problem-name": "x7GMp0vGNdfLV5gVwRq1zTYUVNc84esCl1gL1DjPQzADwIzUzZV0KTVFG7FDd77z8ncaTvZJ4rft9OnIFbIh4vWDutgIAfhBCtLnYC7V3mg42vMzGmQLSEgm7w4zLdafyNDxhCkcQAgS52jEh9p9NFnU3klGpoNYbinlUHxC9Om6QFK7O18tyoftIB97ZPX27knU1Vw2JL1rqLr7FrAdP",
+                                        "timestamp": "2020-12-04T13:42:12Z",
+                                        "problem-severity": "ethernet-container-2-0:SEVERITY_TYPE_NOT_YET_DEFINED"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-11-13T17:45:53Z"
+                            },
+                            "ethernet-container-historical-performances": {
+                                "number-of-historical-performance-sets": 26531,
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "period-end-time": "2020-11-24T14:47:41Z",
+                                        "suspect-interval-flag": false,
+                                        "history-data-id": "zTT3ba0Mv4pVWW9l34d4aAo9yiE6DDaco38z50dA5un1qwettkyDUONl6rrKWCOkxOLDPY5UstNLR1ekdEQ8lDlrWM3TgKdGyZbfPg9aBOVlI1FVGnV10gkX3gIb0NRqE2GubHwEwjZ6kx10UXTV56K0mkce7VEMYc81MEFaXFg94h2Y6VLcTncfHglPc0t24t3I7ASW78XbiZagNVsGjxOSN9zZ121YvWGuxziwz8IJ7S0UFstQZ9JFi",
+                                        "performance-data": {
+                                            "queue-utilization-list": [
+                                                {
+                                                    "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE",
+                                                    "max-queue-length": -418232463,
+                                                    "avg-queue-length": -1390537601
+                                                }
+                                            ],
+                                            "fec-uncorrectable-blocks": 581634768,
+                                            "tx-ethernet-bytes-sum": "-9223372036854775808",
+                                            "tx-ethernet-bytes-max-m": "-9223372036854775808",
+                                            "fec-corrected-blocks": 541263934,
+                                            "tx-ethernet-bytes-max-s": 1445613720,
+                                            "time-period": 389920298
+                                        }
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-03-30T04:18:45Z"
+                            },
+                            "ethernet-container-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "timestamp": "2021-04-22T14:58:39Z",
+                                        "scanner-id": "xT9Q0OiA2ZiBpBbGTJU6gtOzWbojhRPOKYxCFP4zOn25YdDSWyY41EDPHU8YDXEnObZlS3UziWEh9a1YIR2Bnyr4kzUXpyc5C3quYc3h0Aq1KjZs2U3pkmlEWftdFxahAAMqEHHEhZF1ixlkrhBLvWhj3CwJ9G0B8E1MmBivAQpLnKXOTzrpnAIr472dF2OOzPsViDqTtPwQstwd2Puih5JlcLyRFexeV",
+                                        "suspect-interval-flag": false,
+                                        "performance-data": {
+                                            "queue-utilization-list": [
+                                                {
+                                                    "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE7",
+                                                    "max-queue-length": -1104802233,
+                                                    "avg-queue-length": 783581132
+                                                }
+                                            ],
+                                            "fec-uncorrectable-blocks": 1906878520,
+                                            "tx-ethernet-bytes-sum": "-9223372036854775808",
+                                            "tx-ethernet-bytes-max-m": "-9223372036854775808",
+                                            "fec-corrected-blocks": 1921193774,
+                                            "tx-ethernet-bytes-max-s": 1240458554,
+                                            "time-period": -261835077
+                                        },
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 74
+                            },
+                            "ethernet-container-status": {
+                                "timestamp": "2021-09-23T10:31:53Z",
+                                "last-10-sec-data-output-rate": 620444774,
+                                "bundling-is-up": true,
+                                "total-bytes-output": "8966463508453429248",
+                                "total-bytes-input": "4801935990791327744",
+                                "interface-status": "ethernet-container-2-0:INTERFACE_STATUS_TYPE_UNKNOWN",
+                                "loop-back-kind-up": "ethernet-container-2-0:LOOP_BACK_TYPE_BACK_TO_LOCAL",
+                                "statistics-is-up": false,
+                                "last-10-sec-data-input-rate": 1873739780,
+                                "forwarded-bytes-output": "4853951588118128640",
+                                "performance-monitoring-is-up": true,
+                                "forwarded-bytes-input": "8910476393520873472",
+                                "remote-site-is-faulty": false
+                            }
+                        },
+                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                        "hybrid-mw-structure-2-0:hybrid-mw-structure-pac": {
+                            "hybrid-mw-structure-status": {
+                                "performance-monitoring-is-up": true,
+                                "segment-status-list": [
+                                    {
+                                        "segment-status-type-id": 17201,
+                                        "operational-status": "hybrid-mw-structure-2-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED",
+                                        "segment-is-reserved-for-tdm": false
+                                    }
+                                ]
+                            },
+                            "hybrid-mw-structure-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "period-end-time": "2021-01-01T19:03:26Z",
+                                        "history-data-id": "z27nKTM6b7BNylSZJaGz7tGU99cuK3pbXoqz94Fdb80Cu",
+                                        "performance-data": {
+                                            "rx-level-avg": -101,
+                                            "es": -1849356151,
+                                            "unavailability": -30466485,
+                                            "cses": 929647576,
+                                            "ses": -1259661973,
+                                            "rx-level-min": -10,
+                                            "time-period": 215814892,
+                                            "rx-level-max": -32
+                                        },
+                                        "suspect-interval-flag": true
+                                    }
+                                ],
+                                "number-of-historical-performance-sets": 11331,
+                                "time-of-latest-change": "2021-11-22T13:23:15Z"
+                            },
+                            "hybrid-mw-structure-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -29695,
+                                        "problem-name": "cAp1OWVbigi",
+                                        "problem-severity": "hybrid-mw-structure-2-0:SEVERITY_TYPE_CRITICAL",
+                                        "timestamp": "2020-06-22T07:32:44Z"
+                                    }
+                                ],
+                                "number-of-current-problems": -5,
+                                "time-of-latest-change": "2021-03-11T22:47:49Z"
+                            },
+                            "hybrid-mw-structure-capability": {
+                                "supported-tdm-structure-kind-list": [
+                                    {
+                                        "tdm-structure-name": "eVFrJxbMQwzyWJSCvRaOjEYShH28k4frRVSsk363zFBnglSEd2koyagHRiQ4eXvXKfhXio0KVB74ORI1L2pj4xTWPBS3yf0bua8Ey8olBopp",
+                                        "tdm-segment-size": -2070149105,
+                                        "max-number-of-segments-reservable": 78
+                                    }
+                                ],
+                                "performance-monitoring-is-avail": false,
+                                "supported-alarm-list": [
+                                    "TTA4Y8XMXywT7LLa7ViLlq2HTiYipQtiJ4nzckd1TJUSuy2BtcfPuhonzexY41hG5wf9QtaB45lzvf2YrhFVyVa72IY6J7EGDUPlfZXjWa"
+                                ]
+                            },
+                            "hybrid-mw-structure-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "suspect-interval-flag": false,
+                                        "timestamp": "2021-01-19T07:32:23Z",
+                                        "performance-data": {
+                                            "rx-level-avg": -104,
+                                            "es": 347728748,
+                                            "unavailability": 1127159280,
+                                            "cses": -861935487,
+                                            "ses": -1407764965,
+                                            "rx-level-min": -113,
+                                            "time-period": 100125446,
+                                            "rx-level-max": 73
+                                        },
+                                        "scanner-id": "OqPPfEDqWLIjcNs0ON7C19u7qxU8hLq5b7NiLqAI3bTfYlfM9mhaoL9Oi4WzHmxSuc37CDPFGJUF41j5nA7Lmhswdg6UDvEZHH6bdOITxuqtvCrScywqH",
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 106
+                            }
+                        },
+                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                        "extension": [
+                            {
+                                "value-name": "I1nD0mqXypCpT0Ikrg9EmsMtX7775U7NNuqNQIDg7fG0fgcHwedSGZevYlC3fBIU50INIl4HsCHISMho0m8ymm3cHygW9QJ7RrUrEQ96sIGcuPAmcJUq5QCNgKBpBkokDbL91U8mDGyZw1mAK8SHYuue7YwIaU2OXFPRAX55ED42wiugrmYhIkw",
+                                "value": "aUplGj1EZQvrGAwk5AeCTIKc"
+                            }
+                        ],
+                        "configured-client-capacity": "LbsAs8dpZj6zLbFqZTk0jamNNqXR92ZUdjmxrzWjT2KEeh453hXmjja6B7QK1Hw60TEk",
+                        "ip-interface-1-0:ip-interface-pac": {
+                            "ip-interface-configuration": {
+                                "maximum-transmission-unit-ip": -13875,
+                                "l-3vpn-profile": "18e43d24-0971-5669-ee67-cba5faa4eabb",
+                                "dhcp-client-is-on": false,
+                                "fixed-ip-v-4-address-list": [
+                                    {
+                                        "fixed-ip-v-4-address": "1ezL5z9EhGr61bx49S5IE9qYkUBqAF6CTxfR6gvgXOeYSLV1v0J291SuNtMo0TSUqZDpf0F4GT3yxQsUI3WR5OdK9002LKW3JrsRjZVZLYyaGS4oVT8SzdvB5vDQgrMRS6Ib6E2JuAT3kPrgIr0aFvLK1ot9P70zdBKb7MUtfNwzvQHdhInOd0r6oMfdT8M6BoaI343aKABfijkrTAg6AH5Zlk4ek",
+                                        "fixed-ip-v-4-address-prefix-length": -87,
+                                        "fixed-default-gateway-ip-v-4-address": "VZmv2jr4V1G2bRmCKWSIprNgM0kSc350VjvPuWUpPsrSbGvNufvTzb9d3m6fh3fceL2JzO0hgk1j0w6uEtodEpqHLoX3jcfyP99hX1q5lrolYuQuY6HunZ49g14z5jZNl04i2monNEBD9j7ZpGtMGxNWqRno3nbon7GptWFgBgUCzTtQAWu8mi4E1j24Gds4k1lNP0WigIUHBnx3c2bqc74drZiZ4K3hDh4thSLqAy74NxZZz3hLaeYt58t"
+                                    }
+                                ],
+                                "maintenance-timer": 1295916714,
+                                "ingress-policing-profile": "18e43d24-0971-5669-ee67-cba5faa4eabb",
+                                "interface-name": "fsug1RA5vS8hmlOVS2P7IODv04wwH1TWlf4f7wkugkMCFsqyufx53aAV7YkGR5udkqsjXEOdYsIEM84gftlawV5DMhbDmFQz5aS2Oy8NSIjEIfNXI87eW4JImUdAz49x6UrVkrId9TJR8wGIxNPtSy36l8GU4IjbuL6",
+                                "arp-proxy": "ip-interface-1-0:ARP_PROXY_TYPE_REMOTE_ONLY",
+                                "statistics-is-on": true,
+                                "maximum-burst-size": -16149,
+                                "loop-back-kind-on": "ip-interface-1-0:LOOP_BACK_TYPE_BACK_TO_LOCAL",
+                                "egress-shaping-is-on": false,
+                                "problem-kind-severity-list": [
+                                    {
+                                        "problem-kind-name": "fv7I36EIDDA4GRPJXG42OxczOCYlRH2741HZ8dILQiQp",
+                                        "problem-kind-severity": "ip-interface-1-0:SEVERITY_TYPE_NOT_YET_DEFINED"
+                                    }
+                                ],
+                                "interface-is-on": false,
+                                "qos-profile": "18e43d24-0971-5669-ee67-cba5faa4eabb",
+                                "maximum-information-rate": -1366968655
+                            },
+                            "ip-interface-status": {
+                                "errored-packets-output": 1507279982,
+                                "last-10-sec-data-output-rate": -504741853,
+                                "forwarded-packets-input": "-9223372036854775808",
+                                "errored-packets-input": 1865958704,
+                                "ip-v-4-address-cur-list": [
+                                    {
+                                        "fixed-ip-v-4-address": "Z5c1UC5tiAjvrTyqXr7Xzcxd3PVkQksHqwBk0GFigZOIKe0HF0w7c3k7K7rtrTaRiL3ikJtAA9aknbTU3q1fldn6kOzMAJvSnz2",
+                                        "fixed-ip-v-4-address-prefix-length": -85,
+                                        "fixed-default-gateway-ip-v-4-address": "n9Kwk4TnXOqfHFBVUH7J8LbJh36QXF0lPKR1GDgvjGD0deN8NVJVyUwPPDxEapZZ1JSHe85pGIhUO5UtSDgqpM8ehxSsXKjYlcyrcvQTd7FT4zmW4CftofzGMj0JVjA8n0zAvhtAp0ttzPivjpYHEpfiAfUwzuEWm6oRnRrERU0iBiNUzDt5U"
+                                    }
+                                ],
+                                "broadcast-packets-output": -576069243,
+                                "dropped-packets-input": -67779129,
+                                "loop-back-kind-up": "ip-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED",
+                                "dropped-packets-output": -671249559,
+                                "unicast-packets-input": "-9223372036854775808",
+                                "forwarded-packets-output": "-9223372036854775808",
+                                "neighbor-list": [
+                                    {
+                                        "neighbor-mac-address": "vYh1pDxeZvCITm9p5VpooH3a8zEdtftY5KRvghJ7MdQxzRXFNeV3WQeWpSaT7DJcftznKavoodOP4DmJRhNF01CpLEaK9UWgnoEZy1nOe3EiG02qaP5aIzzldK5mwTDTh9SIa7wo3aGJ3A9dh7nZGOkUqh8WbDPsMz2OzzcCBLdElfRDm6u2",
+                                        "neighbor-ip-v-4-address-list": "POd6Pa9kRu7jwNS50mHLzdYO5B2365QNLWLs6VNPhM8NzSTr6s",
+                                        "neighbor-origin": "ip-interface-1-0:NEIGHBOR_ORIGIN_TYPE_OTHER"
+                                    }
+                                ],
+                                "timestamp": "2021-07-16T11:51:40Z",
+                                "forwarded-data-volume-output": -350443529,
+                                "total-packets-input": "-9223372036854775808",
+                                "last-10-sec-packet-input-rate": -1652300731,
+                                "last-10-sec-packet-output-rate": 868913988,
+                                "vpn-binding-is-up": false,
+                                "multicast-packets-output": 1086264830,
+                                "broadcast-packets-input": 1243356270,
+                                "last-10-sec-data-input-rate": 284123076,
+                                "interface-status": "ip-interface-1-0:INTERFACE_STATUS_TYPE_DOWN",
+                                "statistics-is-up": true,
+                                "total-packets-output": "-9223372036854775808",
+                                "multicast-packets-input": 789128316,
+                                "data-volume-input": 1342820380,
+                                "data-volume-output": -321986015,
+                                "fragmented-packets-input": -1576801695,
+                                "ip-address-origin": "ip-interface-1-0:IP_ADDRESS_ORIGIN_TYPE_LINK_LAYER",
+                                "unicast-packets-output": "-9223372036854775808",
+                                "forwarded-data-volume-input": 911067796
+                            },
+                            "ip-interface-current-problems": {
+                                "time-of-latest-change": "2021-04-13T04:17:44Z",
+                                "number-of-current-problems": 14,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 31383,
+                                        "problem-severity": "ip-interface-1-0:SEVERITY_TYPE_NON-ALARMED",
+                                        "problem-name": "ZYxF1U9y3H2hYkgafAlXHlWAlIVegH67FDMzpWZsDTJt50EksR924XupypwO6CVEfA5FoW7TPRnVJ173Kh5O6AdERBkQd8ulIr06nZR4IeZj77nRgkFmML1EmlmstQN39F1wETAfZsy7rNQH8oVM1WinaEHvmurv9sTGdmVdOtcf92OhiJ3jyeHASg5fLwKMREs40f9GBlVKgB1ykWSS2rkVHqakOM7xirCa",
+                                        "timestamp": "2020-08-25T19:05:49Z"
+                                    }
+                                ]
+                            },
+                            "ip-interface-capability": {
+                                "burst-size-max": 5710,
+                                "statistics-is-avail": false,
+                                "supported-alarm-list": [
+                                    "UHABsc7hfTh5ygZgXg347hvs7CpquHxggZSI4R0jC9gap7ieneauvFWD9d3DNsU3jEEnnwHZFX155jbkpePVTDyVJtqwNcr6Q5u5t3490X6X99aynZthuT4deuB1H30p0mvuprvppBfqKpY0gkhK5lQkPjdoe5OfrjBQK681znrbEibUCkwHxmTfG7DUcr1ECu",
+                                    "Xi0q"
+                                ],
+                                "information-rate-min": -1310387209,
+                                "maximum-number-of-ip-v-4-addresses": 13168,
+                                "fixed-default-gateway-configuration-is-avail": false,
+                                "maintenance-timer-range": "gaM1Yc3Qv4yAHsuCyKs1tWUotHLKDXbM0PNY2IHpN7Zmzl",
+                                "admin-shut-down-is-avail": false,
+                                "dhcp-client-is-avail": true,
+                                "egress-shaping-is-avail": true,
+                                "information-rate-max": -210721601,
+                                "burst-size-min": 24770,
+                                "ip-v-6-is-avail": true,
+                                "maximum-transmission-unit-max": -23098,
+                                "ingress-policing-is-avail": false,
+                                "maximum-transmission-unit-min": -14442,
+                                "supported-loop-back-kind-list": [
+                                    "ip-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE"
+                                ],
+                                "vpn-binding-is-avail": false,
+                                "arp-proxy-is-avail": true
+                            }
+                        },
+                        "termination-state": "core-model-1-4:TERMINATION_STATE_TERMINATION_STATE_UNKNOWN",
+                        "mac-interface-1-0:mac-interface-pac": {
+                            "mac-interface-status": {
+                                "errored-frames-output": -891649587,
+                                "loop-detection-result": "mac-interface-1-0:LOOP_DETECTION_RESULT_TYPE_NO_LOOP_DETECTED",
+                                "forwarded-frames-input": "-9223372036854775808",
+                                "timestamp": "2020-08-24T22:44:20Z",
+                                "multicast-frames-input": 699365940,
+                                "unicast-frames-input": "-9223372036854775808",
+                                "last-10-sec-frame-output-rate": -894106623,
+                                "total-frames-input": "-9223372036854775808",
+                                "multicast-frames-output": 1337716624,
+                                "dropped-frames-output": -157116857,
+                                "statistics-is-up": true,
+                                "forwarded-frames-output": "-9223372036854775808",
+                                "flow-control-mode-cur": "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_RECEIVE_ONLY",
+                                "received-ethernet-frame-format-cur": "mac-interface-1-0:FRAME_FORMAT_TYPE_802.2_LLC",
+                                "last-10-sec-frame-input-rate": -1812932813,
+                                "errored-frames-input": -818615179,
+                                "loop-back-kind-up": "mac-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED",
+                                "interface-status": "mac-interface-1-0:INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN",
+                                "mac-address-cur": "Wpml3KBIClfY",
+                                "broadcast-frames-output": 141724578,
+                                "total-frames-output": "-9223372036854775808",
+                                "fragmented-frames-input": 913641270,
+                                "performance-monitoring-is-up": false,
+                                "unicast-frames-output": "-9223372036854775808",
+                                "broadcast-frames-input": -1466132143,
+                                "dropped-frames-input": -1040549959
+                            },
+                            "mac-interface-capability": {
+                                "supported-flow-control-mode-list": [
+                                    "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_NONE"
+                                ],
+                                "statistics-is-avail": false,
+                                "broadcast-frame-suppression-is-avail": true,
+                                "supported-frame-format-list": [
+                                    "mac-interface-1-0:FRAME_FORMAT_TYPE_802.2_SNAP"
+                                ],
+                                "admin-shut-down-is-avail": true,
+                                "maximum-frame-size-min": -11841,
+                                "loop-detection-is-avail": false,
+                                "performance-monitoring-is-avail": true,
+                                "mac-address-configuration-is-avail": true,
+                                "maintenance-timer-range": "K5jOKeqHZ5ck7hzRRckJQGGBHxBNwsc9pwX9CfJtcVFj5e3WjnF1VdCDL5i9yniPT7ZnnIIzvnTACOxVb4WYirtVwM4W1fMUeD9BdR3I6OjICIvFMkDWL7R9LO6MVKy9fHDkqG2wud76VCDAWgwzfgJ0WH",
+                                "supported-alarm-list": [
+                                    "jcSyLvSbbMAxSHvFb8f0hEzwMixIZbraojA1PkdS7FqZmNwpWMpdiZJ4h8E9c5bAoMB56GY5lg4z3tZR7oWpfylxGZyS4JkkvOqumgzIww9rZ0b6h7vwFI3eHt6D5jXs7fWtvw3T25d15o7mvuTb4OpLangfGdHFlE1Q2WC41PX7dWlIi6LmV27XqfcYsLwNhxwjl8fnXcm20zKiGoEtqDqISuzdf5SpugIPgY452q730Kdy8K1qfj90NI5UFX",
+                                    "962YmS3sMlzHdjNLjxMKM5TEKtJF8HY9NS71C2thg3QteD7y2LiPJ3ltw50EERNjBMk6HOnPRda5JhDL3NsMQO7mT8SxZxQscayLYVAH1KFKUavPYYtOEA3xAVWrlMUxOsiFgKehmTTg4g5U6yAK1D9Br5VMJPjy9t5pdjyz"
+                                ],
+                                "hardware-mac-address": "RrrmRUJU1tQJDSlMidjonERWO6851adSCE6lyP8raYaNIvs1ALhYh8M5eU2f57ZzL5MbNUCXLMDta5mKIDA",
+                                "maximum-frame-size-max": -8745,
+                                "supported-loop-back-kind-list": [
+                                    "mac-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "link-loss-forwarding-is-avail": true,
+                                "loop-port-shut-down-is-avail": false
+                            },
+                            "mac-interface-historical-peformances": {
+                                "number-of-historical-performance-sets": 20883,
+                                "time-of-latest-change": "2020-10-02T07:22:22Z",
+                                "historical-performace-data-list": [
+                                    {
+                                        "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "period-end-time": "2020-04-16T08:52:58Z",
+                                        "performance-data": {
+                                            "mac-pause-frames-ingress": 765538956,
+                                            "tagged-frames-ingress": "-9223372036854775808",
+                                            "jabber-frames-ingres": 2143917006,
+                                            "mac-pause-frames-egress": 1886343186,
+                                            "mac-control-frames-egress": -634769535,
+                                            "oversized-frames-ingress": 2009752000,
+                                            "undersized-frames-ingress": 1888952182,
+                                            "frames-of-1024-to-1518-byte": "-9223372036854775808",
+                                            "frames-of-64-byte": "-9223372036854775808",
+                                            "frames-of-512-to-1023-byte": "-9223372036854775808",
+                                            "frames-of-65-to-127-byte": "-9223372036854775808",
+                                            "mac-control-frames-ingress": 440655352,
+                                            "frames-of-256-to-511-byte": "-9223372036854775808",
+                                            "tagged-frames-egress": "-9223372036854775808",
+                                            "frames-of-128-to-255-byte": "-9223372036854775808",
+                                            "fragmented-frames-ingress": "-9223372036854775808"
+                                        },
+                                        "history-data-id": "XRpLrfIbIpkoWhori0bG6ka4SeXMBk5q4m3vBDyb3TzRaYakYlSWy2S",
+                                        "suspect-interval-flag": true
+                                    }
+                                ]
+                            },
+                            "mac-interface-current-problems": {
+                                "time-of-latest-change": "2021-07-08T10:57:24Z",
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 21633,
+                                        "problem-severity": "mac-interface-1-0:SEVERITY_TYPE_NOT_YET_DEFINED",
+                                        "problem-name": "8bpn1xLAqKfZeIZggfH9w7f6mC3X2C0aNpxGWigmUvd06dhekYfRXuXc6S98u1i9rHPnRYCLlPLjU2x7SMQI8FUeyVe2Wo4n5LDW",
+                                        "timestamp": "2020-09-04T23:23:57Z"
+                                    }
+                                ],
+                                "number-of-current-problems": -41
+                            },
+                            "mac-interface-current-performance": {
+                                "number-of-current-performance-sets": 33,
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "elapsed-time": "-9223372036854775808",
+                                        "suspect-interval-flag": false,
+                                        "timestamp": "2021-10-10T12:07:48Z",
+                                        "performance-data": {
+                                            "mac-pause-frames-ingress": 992714006,
+                                            "tagged-frames-ingress": "-9223372036854775808",
+                                            "jabber-frames-ingres": 329522812,
+                                            "mac-pause-frames-egress": 267953474,
+                                            "mac-control-frames-egress": -898938543,
+                                            "oversized-frames-ingress": -1014127019,
+                                            "undersized-frames-ingress": 2063739480,
+                                            "frames-of-1024-to-1518-byte": "-9223372036854775808",
+                                            "frames-of-64-byte": "-9223372036854775808",
+                                            "frames-of-512-to-1023-byte": "-9223372036854775808",
+                                            "frames-of-65-to-127-byte": "-9223372036854775808",
+                                            "mac-control-frames-ingress": 960035790,
+                                            "frames-of-256-to-511-byte": "-9223372036854775808",
+                                            "tagged-frames-egress": "-9223372036854775808",
+                                            "frames-of-128-to-255-byte": "-9223372036854775808",
+                                            "fragmented-frames-ingress": "-9223372036854775808"
+                                        },
+                                        "scanner-id": "n66Z5yOTLWu0Cc0XKAyQ47tlV1r8DUiT0gK5OyQrmlsZxkOaNe0JltXhvoh0izTaHD7o3XPqa9hIu5S9jKSw5PNA54Bnvupd0wB3mqlwAC6WzQ5KAPh"
+                                    }
+                                ]
+                            }
+                        },
+                        "pure-ethernet-structure-2-0:pure-ethernet-structure-pac": {
+                            "pure-ethernet-structure-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "timestamp": "2021-06-22T08:18:53Z",
+                                        "performance-data": {
+                                            "cses": 928796092,
+                                            "es": 900742052,
+                                            "rx-level-max": 88,
+                                            "ses": -1289240505,
+                                            "rx-level-min": -48,
+                                            "rx-level-avg": 72,
+                                            "time-period": 450503844,
+                                            "unavailability": 822468844
+                                        },
+                                        "suspect-interval-flag": true,
+                                        "elapsed-time": "-9223372036854775808",
+                                        "scanner-id": "EWTkYMhV7a7pjJZF2HZigrdC1BzZcm6QaR30DkVCmU2FDTkFBbXJu2lnDMeI8cqa4tazF5c1R6HuRT1kXR4jLpHpcVZc0pn4LxDivHkmNTJxECRBlVV7duophnthMQdpgJIDqUR6NADj5mNqiAxv4VMdafnXYAe6bWJCQsAv35H0ruqB4Q60LKdW0ALQ3ROeOpIwRiUMfBMHX5a1Vh1y16mTz7BC"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 106
+                            },
+                            "pure-ethernet-structure-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "period-end-time": "2021-03-22T16:40:36Z",
+                                        "performance-data": {
+                                            "cses": 1532827066,
+                                            "es": 1351735362,
+                                            "rx-level-max": 26,
+                                            "ses": 619114456,
+                                            "rx-level-min": 76,
+                                            "rx-level-avg": 52,
+                                            "time-period": -1356173983,
+                                            "unavailability": -965682697
+                                        },
+                                        "history-data-id": "i7yfcI87R1xL0UwzT0bKhTh6kdw4UQVdPlk1Vl0FmqqmkOVdOYY6S74ccA87i3c8gw14RUJ6k1sEPgJwezCYHybT0bSi",
+                                        "suspect-interval-flag": false
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-01-02T04:34:37Z",
+                                "number-of-historical-performance-sets": 31095
+                            },
+                            "pure-ethernet-structure-status": {
+                                "segment-status-list": [
+                                    {
+                                        "segment-status-type-id": -9573,
+                                        "operational-status": "pure-ethernet-structure-2-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED"
+                                    }
+                                ],
+                                "performance-monitoring-is-up": true
+                            },
+                            "pure-ethernet-structure-capability": {
+                                "supported-alarm-list": [
+                                    "8I26ui06cAv5ze5jLVJeLc"
+                                ],
+                                "performance-monitoring-is-avail": true
+                            },
+                            "pure-ethernet-structure-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -9610,
+                                        "problem-name": "N3mKuJ8lIdkK7b5B21EylMQvQe5JyIPdLbQgMYtnbN7iZ4TT6pkjc2O2gTDHtsM7vCnaAQxDwwVnBG8zYsSauG4DsHkV162wBhG305HoCuL53LE16o3sW75oGhcHg65RgEU8BBw569a1UG2S45l1c",
+                                        "timestamp": "2021-07-14T00:31:09Z",
+                                        "problem-severity": "pure-ethernet-structure-2-0:SEVERITY_TYPE_CRITICAL"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-08-06T06:36:02Z",
+                                "number-of-current-problems": -93
+                            }
+                        },
+                        "lp-direction": "core-model-1-4:TERMINATION_DIRECTION_BIDIRECTIONAL",
+                        "name": [
+                            {
+                                "value-name": "m40A29hktD15EIo3cr7GJ3V62Fv7sMmGIe9KnqWRWYWsGcoKEvqnydmsKRz4vWLeaUYqcVh8L5BjhZ3Nml3Uypmi8OmDKZRMTIcYvl68qzrAqufMPiGfHVxHJLdlL4ZwE4m1pt9IUAal4p7LIG0htpZ4bcpO8gcFkzGCUQkOiu1fT90tP1LaqCetOD9OLml6N2IHKUn2gp99yaDfbgptSDXy86eTkAR7CrGed48ttiDT",
+                                "value": "80vghY8MNGUMUF6mp6YIM4WQ5pbnUWH2W4a52iRIQDmDbsZAqQadU6VZwZeqVVlKZvP"
+                            }
+                        ],
+                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK",
+                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED",
+                        "configuration-and-switch-control": [
+                            "lvfSBxOGA5vWpPYnqYd3ZUz6VkK7NcK0zRSagHIIEex3VvjdtwgljQr623dPfPIPGARX9AxGG4BBAUOVr5gCNHIPCVxSKfziHi7JKFpqJ0TbVI7eFfQkXq1rdqbXxK7fV7QFMf"
+                        ],
+                        "fc-blocks-signal-to-lp": "7RrUry06NIiC8c4lC7a2SahFh7k3eiidaJ8B90APJKjROf5jnfl7pCMGB6BHhUUjvUUFVmuEZNnN3s6iArpRVbqo91XqNKJbEwQrKcXJRdpMFn47PtZCwhTGaQ6QAQ17eJqYNoAEBZj8mf83B7y7grNqhUgKC9RIS9GFxgc07n9uChpdgXdoo0OyMXag61YR2xoANsANPB9kKyxSwKgMD5",
+                        "air-interface-2-0:air-interface-pac": {
+                            "air-interface-current-problems": {
+                                "number-of-current-problems": 38,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -9505,
+                                        "timestamp": "2021-07-01T02:58:55Z",
+                                        "problem-name": "X1NpLLV8k8ba6rn2VxIYPRY3wC3115KQ7p7KaVKn3Vx9eN31kLZ2DX51s83l5N444bOe6qB2d13rO7s0Sk2n9ZpB7sX5719b4Yh3gT5uM8Vs7gk0AffJeEde62j53s87iq2zb73X8QhfYB7qQn251fb0huXcO6bZweqHdlwd3Nl2gsk7He4Bt7tCtqGhoS8UYyt3TZhPEuJVW3UwiQ7DPs8iSOr9yAVw0pA",
+                                        "problem-severity": "air-interface-2-0:SEVERITY_TYPE_WARNING"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-12-28T01:37:20Z"
+                            },
+                            "air-interface-status": {
+                                "xpd-cur": 106,
+                                "transmission-mode-cur": "tmbm4Dglu20fyM7WAI2dXAjalik4jyPMVS8Rvo4Zi47IIeEbOGoL8zVtJ7p2y6OlYW4mc8dn4k5MqKXfid0rFOMoV4rta7",
+                                "rf-temp-cur": 39,
+                                "mimo-is-up": true,
+                                "tx-level-cur": 41,
+                                "local-end-point-id": "ExjTWLT4",
+                                "rx-level-cur": 104,
+                                "link-is-up": false,
+                                "performance-monitoring-is-up": true,
+                                "xpic-is-up": false,
+                                "remote-end-point-id": "2l86sdTkL50Nh4HlSSNQ58mCjfyW0uf3Po19BVteSu2aqBvbmb1rbf3nvtjnYriFPkPi7ixZEr152p8gs1HDgC0D6c14DbJkvyCuJ1ufsncnMkveldKuPC7NO0RrctLHTg4ChySCN4RAhmGCri69V6WJ6G3a9GS2WWx6mhA1drBuFaZ7sX8nV4Z2K24LAWOpKdnYmX0zgtWVvNUYK2dy74sJ6wvzlbY5glWCaO3q9Z",
+                                "received-radio-signal-id": {
+                                    "numeric-radio-signal-id": 43128,
+                                    "alphanumeric-radio-signal-id": "R3z0nRQtXOOrZvabQn7MHxZQNzxgxZDo24giNYDKMr3DW6OFlWrUtjK8K9gh8Tx3XNdCDQep9hU6fJDAx4v0f7009g9h1HcYmps07GhhXcf5NSFkO2c4"
+                                },
+                                "auto-freq-select-is-up": false,
+                                "tx-frequency-cur": 863334722,
+                                "rx-frequency-cur": 1220131710,
+                                "atpc-is-up": true,
+                                "radio-power-is-up": false,
+                                "snir-cur": 20,
+                                "loop-back-kind-up": "air-interface-2-0:LOOP_BACK_TYPE_RF_TO_REMOTE",
+                                "interface-status": "air-interface-2-0:INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN",
+                                "alic-is-up": false
+                            },
+                            "air-interface-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "period-end-time": "2020-08-17T14:23:40Z",
+                                        "performance-data": {
+                                            "snir-max": -57,
+                                            "unavailability": 2061930876,
+                                            "rx-level-max": -117,
+                                            "xpd-max": -101,
+                                            "ses": -1144244685,
+                                            "rf-temp-max": 125,
+                                            "tx-level-max": -53,
+                                            "es": -423538077,
+                                            "tx-level-min": -66,
+                                            "tx-level-avg": 30,
+                                            "snir-min": -53,
+                                            "snir-avg": 26,
+                                            "time-period": -1715890515,
+                                            "cses": -2085683507,
+                                            "defect-blocks-sum": 17887,
+                                            "rx-level-min": -82,
+                                            "rx-level-avg": -18,
+                                            "rf-temp-min": 26,
+                                            "rf-temp-avg": -60,
+                                            "time-xstates-list": [
+                                                {
+                                                    "time-xstate-sequence-number": 57,
+                                                    "transmission-mode": "JckEeSuHqNs1BguGy84aXdLKxuHXZDTIQde4XJDno5pZmLyMLCWJIHlf3U42yXLg3Zc0APgRMxQ0agMWLIFthSAkMFncu0spRwikdyb0XT072F3NfAgxsIJ7f6jKYE1I2j2gJ58GQ0O",
+                                                    "time": -2045365529
+                                                }
+                                            ],
+                                            "xpd-min": -48,
+                                            "xpd-avg": 63
+                                        },
+                                        "suspect-interval-flag": false,
+                                        "history-data-id": "0PfAMznc6jk7RsdRX481dt7iMANCQ93RRijDJGHPS2PJm2scYBd34klQM0kDanm1Fxwg566X0NHmH1qFCDIGPWouWIZ6Xd7uKwLPCJNCwmQ5nhK0MkyugXY5xXbnabRUHCBbdoNJKDO8Mq0zDy3TnTYNI2aS51EMw7PJwCl8718Ms8d5H8QW1HJJBLtGFZkb69UuD7"
+                                    }
+                                ],
+                                "number-of-historical-performance-sets": 4552,
+                                "time-of-latest-change": "2020-10-04T10:14:18Z"
+                            },
+                            "air-interface-capability": {
+                                "expected-equals-transmitted-radio-signal-id": false,
+                                "duplex-distance-is-freely-configurable": false,
+                                "supported-radio-signal-id-datatype": "air-interface-2-0:RADIO_SIGNAL_ID_DATATYPE_TYPE_INTEGER",
+                                "rx-frequency-max": 2131054468,
+                                "supported-loop-back-kind-list": [
+                                    "air-interface-2-0:LOOP_BACK_TYPE_RF_TO_REMOTE"
+                                ],
+                                "direction-of-acm-performance-values": "air-interface-2-0:DIRECTION_TYPE_TX",
+                                "adaptive-modulation-is-avail": false,
+                                "supported-alarm-list": [
+                                    "7q094PWK660cuHhCqQWBVsFGMM91dCkcVdmR2aB08u4Dblft4b4ZwCFigGjtaEG5RUWLWqD5UHI5UXrY0vXw7uPfa0Jlwhqf3f0ZFvWzcww7lXXmlVKkprAssbNYk56fkY6Ru3",
+                                    "R01VtapjbOHT7smIt8cXR1PS9v4Q4zSNzTB2W0d7GU0FefnHfzw6slYtRVkNucBVX4PT42TCOLaU0xtfZ0erd4V4Z7Sljl88hX2dRVPxGZjzpNGoFUHSZuPQBz4MU4V32XgLK5biXu",
+                                    "Rk4tnQp6TUhImVJFjjjLyVaU94DezGHi1LLot3meXvObqyRBJ2e9YoV7lydUfV48yPo2SK8I7XLxvC06xefvDauYBIKQvOY3veXgY6Y53Buq6m",
+                                    "m9qCOcjz3GoMhXQWJURMOG2siZDAO7c2hCEXOQoKwEwFteB40kQP0K9aCMLqTXt2rZS7PgRlVf1otutuPbbHOkSi6vARk3ULVEKKUCYHRRYdljH2uKKa4Cs273LrYx4LbOw6imF2dDfqWOtjq5lmHOoGJ1Zzz3dKJJIUXoW2T3sIJN19Smvr2LZDMY5lTi6vTGpQ4dSQgcyZ0r0KFv4Ig3d22a",
+                                    "x6slKzmUp0RqRtX0Q2ugxUrQeyhkLMjaSLvudKoCK7UCASCrUYHjS09Yziic4CnOfSbsur5fzRJ9Jdsvb1GW2QUt05FXH2DWNOhhgewP57QHkb4wcLs6tezt",
+                                    "DAD05Fu3g4FYrlOnJ2cZ0iPXdqjvwFT98o9d4w9csObU2Z9L2lCUErKJJ37gB0hJhjWdP5p9MA3Gs4jmqV84mKF5GMdhFn0OGO1nMqwqTs6dwhzWczSqkqn04B9BQ1pwPqLtJ9TCtRP00gOcPzC",
+                                    "NseadUz3RMNHU07LSyLCd8GNgCTbw3rjwFuJzVFiAkZmk684wLzCM7h2JadfewrC3VdDISVi5NFpLFmaiVM4237M6c1kBsWEf19QM50RKF8ncuxvpbrs7q6dv"
+                                ],
+                                "tx-frequency-max": -537441665,
+                                "maintenance-timer-range": "43Y7IFa6mKD5X3DVMNpuNw6KLVods22x50wFyGLUigRfjn2X2rrQYpABkQPFKR4PJAmh873qgNxrazhcSI2I0ukcd1RXKVFln1vv1yV9dsAnTRsEsmesRyE4ro13jypHAU4Bk0KykcN647KouYQlpmhIKaMWJ3vbXzM9rozEAfKwmmUQcC3",
+                                "transmission-mode-list": [
+                                    {
+                                        "transmission-mode-name": "JKs3401vTBAq5pla3YfR9FQyybIsZJKAt4vqXwVQ8n8dMlnIkvzl2iUBtu3s5F2rJyRGWEo41oaFKpn4UPhX7bqAyl2D0W4BmNajryfsXp8zPnvBcMyjQQLobFT3CYFQDP15fhp4yxvfN0RZNhbv0WTbCMf6CMO8tQdAZCFx22FP3",
+                                        "transmission-mode-rank": 1740720812,
+                                        "supported-as-fixed-configuration": false,
+                                        "am-upshift-level": -53,
+                                        "tx-power-min": -21,
+                                        "am-downshift-level": -28,
+                                        "symbol-rate-reduction-factor": 94,
+                                        "channel-bandwidth": 400104144,
+                                        "xpic-is-avail": false,
+                                        "code-rate": -56,
+                                        "tx-power-max": -115,
+                                        "rx-threshold": -2409,
+                                        "modulation-scheme": 11410
+                                    }
+                                ],
+                                "encryption-is-avail": true,
+                                "duplex-distance-list": [
+                                    1171238540
+                                ],
+                                "atpc-range": 23,
+                                "performance-monitoring-is-avail": false,
+                                "auto-freq-select-is-avail": true,
+                                "tx-frequency-min": -182245743,
+                                "rx-frequency-min": -324639007,
+                                "type-of-equipment": "4YnlAQXU6P2GA5QUwlpEmzERbLnMHJGLzVY1MWWKDQi5V0ZjmgXAQtr1fHGOierR1pTNdPpJFHOsIGMWWBwE5Qycp60HkrylIr1W8qxN0d8ATUoIvUesCEE1KwAWP1aysbmttL8tYgVKajky6y0I5xCP34ML5WbqZpTs",
+                                "atpc-is-avail": false,
+                                "supported-radio-signal-id-length": -19215
+                            },
+                            "air-interface-current-performance": {
+                                "number-of-current-performance-sets": 26,
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "timestamp": "2022-01-28T17:49:39Z",
+                                        "scanner-id": "S4Ms61GnrKUmDKxGlga5GfDvczL3ELvoP9QN2o3t8XPDzebNvmK3tfyFPkIlX5KEeskgRnCZcrvLyGq3236nix27RClGH",
+                                        "performance-data": {
+                                            "snir-max": 23,
+                                            "unavailability": -1441478999,
+                                            "rx-level-max": -44,
+                                            "xpd-max": 24,
+                                            "ses": -2081865353,
+                                            "rf-temp-max": 87,
+                                            "tx-level-max": 98,
+                                            "es": 67548356,
+                                            "tx-level-min": 121,
+                                            "tx-level-avg": 43,
+                                            "snir-min": 51,
+                                            "snir-avg": -69,
+                                            "time-period": -2075415947,
+                                            "cses": -694256609,
+                                            "defect-blocks-sum": -8770,
+                                            "rx-level-min": 15,
+                                            "rx-level-avg": -3,
+                                            "rf-temp-min": 0,
+                                            "rf-temp-avg": -4,
+                                            "time-xstates-list": [
+                                                {
+                                                    "time-xstate-sequence-number": -84,
+                                                    "transmission-mode": "JKs3401vTBAq5pla3YfR9FQyybIsZJKAt4vqXwVQ8n8dMlnIkvzl2iUBtu3s5F2rJyRGWEo41oaFKpn4UPhX7bqAyl2D0W4BmNajryfsXp8zPnvBcMyjQQLobFT3CYFQDP15fhp4yxvfN0RZNhbv0WTbCMf6CMO8tQdAZCFx22FP3",
+                                                    "time": 1166684042
+                                                }
+                                            ],
+                                            "xpd-min": 100,
+                                            "xpd-avg": -126
+                                        },
+                                        "elapsed-time": "-9223372036854775808",
+                                        "suspect-interval-flag": true
+                                    }
+                                ]
+                            }
+                        },
+                        "label": [
+                            {
+                                "value-name": "GzuwcQ1fa1PBJ0GvYBnuABNop00gnH23gosletAhmiS5aqB81YvuraKIaKZxrTtAiNVo8vFvFpsPPVYJLlddvXVFzM40GpsQcnelLUIqba8166KRjPWOEKldoh5WHyMLN16yNORYRZZPXBygivWW791vq7k7x6L",
+                                "value": "ZRDMyuDhlu6i6Eqo1md0vewNdQNCOyPOhssHO5Y9A4jyBJOuX1vk817lJUYpsF5CZyjNDiO5e7DHQkcFlHZtA6Hb1xAlcGX369IBjwHxvc7dwjSKSRdkXUvQjX4vvTqB28ddEML1YKen367NXc7NZuvirrGXd6q7fvlLh6N"
+                            }
+                        ],
+                        "is-protection-lock-out": false,
+                        "tdm-container-2-0:tdm-container-pac": {
+                            "tdm-container-historical-performances": {
+                                "number-of-historical-performance-sets": 6464,
+                                "time-of-latest-change": "2020-02-22T23:32:09Z",
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "period-end-time": "2020-09-10T04:10:30Z",
+                                        "suspect-interval-flag": true,
+                                        "history-data-id": "ivjB5xzBVyjBI7T2ELnZ5tqcp0QrS0M3nXEtm6WhEfSeeDgLpECmZ3yoVhPF9tIwqfRMlNVZVO61jmMISp5Skv87EQMNjvkCK3o5RcWE0UFbhkU1JRTVe22TKOy3bKFVOWSx8Hb0BIbK2XMDGxqVrsGbh67sREgFA0cAHfsbXwNStrnaZOXq8vuhBBKsfS7ISbasqDvg9i0u",
+                                        "performance-data": "KltpeZdNMTeGD7ADEQlW76b2cJdy50yHd16r0b7F4llzkWcZExNLvQFHzSfwSFd5ybprmw6jJrS3fXUTmHwSpbzY3HuNmzLVCaeZykahL2kTR7EeOb66ex4aerXt0IgDKuuiOErryEciLRwrUCx81Cig38JVQRytlUL1q5sRJF9uoFVi9tiaXBiSJ1NrKeU58y6rDrieYrIeYvw7QO9NhsF0llk6ze3zE20"
+                                    }
+                                ]
+                            },
+                            "tdm-container-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 30491,
+                                        "problem-name": "k3AMJluW6EJki3k5fYW4ulq8OH5V7BijwSYgek4kYNE8QQe5O22anki32oZ1Zhcn22DgmHsduZlcPzawC4GRoRVifUb63gt5iZdFGGK3x57mxhK1ljSCaNUhzYnDeIIoHW3guFb1Lifi",
+                                        "problem-severity": "tdm-container-2-0:SEVERITY_TYPE_MAJOR",
+                                        "timestamp": "2021-06-14T13:23:58Z"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-07-18T18:12:30Z",
+                                "number-of-current-problems": -119
+                            },
+                            "tdm-container-status": {
+                                "loop-back-kind-up": "tdm-container-2-0:LOOP_BACK_TYPE_BACK_TO_LOCAL",
+                                "performance-monitoring-is-up": true,
+                                "interface-status": "tdm-container-2-0:INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN",
+                                "statistics-is-up": true
+                            },
+                            "tdm-container-capability": {
+                                "performance-monitoring-is-avail": true,
+                                "supported-loop-back-kind-list": [
+                                    "tdm-container-2-0:LOOP_BACK_TYPE_BACK_TO_REMOTE"
+                                ],
+                                "supported-tdm-container-kind-list": [
+                                    {
+                                        "tdm-container-name": "k6aqqbLWTTxp77TYGr1rjcktjoMHRY0443mme7a70Ho0OhQmAROT30nno148ZWc3Zy",
+                                        "tdm-container-size": -716235617
+                                    }
+                                ],
+                                "supported-alarm-list": [
+                                    "HPRLGnlX9n74tBTmnxR",
+                                    "xLWurZ2QH73oWM9uamkbJrg4U9qiGae5V3AeUC4BJ7ZxM02Wme75xnarwsB4CIapLKDxeA1Qz0nlTh9"
+                                ],
+                                "admin-shut-down-is-avail": false,
+                                "maintenance-timer-range": "5q8uiPL8beZZ7VZmigfegeas92Sq8iJdJSHTHlUKzLKyGBNYJ24Z97ji9cBhmku54cRDpLoYw0o5BbVd60cf7wx8A0pWlTUhXLVmojcMjBRMENZKF4REAhMah36uO0MMDH0105GbyxPc"
+                            },
+                            "tdm-container-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "suspect-interval-flag": true,
+                                        "performance-data": "RcCqaR3gzEEhsApWfAP0S4akWl87pps8BWyDNuTf0yws8Vgnn5gf1iAYwA5VZq3tmt62X0hPqFhyspNPuV4w6wuCYrxQRsb6Vh0L9hsrWKZg1F5ws1UyqgagHz6r1hxPrxssGUUuwLKyqHWTIQj06uhN3f6XxDMY26iISccpYWPgvL16tl6zPfeKvlH2QlSTra",
+                                        "timestamp": "2021-07-21T23:34:37Z",
+                                        "elapsed-time": "-9223372036854775808",
+                                        "scanner-id": "duit03n6oI4Xpk39PoRR74B0wDtIS9b5wlrwgOuEoyBNSwWHVFq2K1U8xnIppTnV6Gjm"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 29
+                            }
+                        },
+                        "address": [
+                            "RuXLTak5bY4UlvAN1MKt0eeAZiErMieDE4hyeBDirz4M4ErXibiiqpShHoIlyPZdT8DZJ89aHdODRfs9qCjQT37BjIWSxNXiVshwArG9EuEoBYp2sJKmEKPYkDIRrx1eZiLrBjs8G6ohWNbooWK3yrTS5tBo0CCRUfiozCofAMowzAMYwpTWQEOV7pj71OYN383uKrJcd0IFAuv6TgUCUIx1ZJ0SxQxAYt5AUGM0Gm"
+                        ]
+                    }
+                ],
+                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE",
+                "name": [
+                    {
+                        "value-name": "DIFRgwD6PMSKHM3GmAkd77Mb2K5pP7tkP0b5pO3esVYaITQ4m3at2Ow5ytmgAHAhIEe7sidVd3XNOFK2IMvLATI0eW8ODB5dfkcHupuHsrn97ZbHLHkdsUdHIenePtr4FED9V0IgrXpqWA0z9cMCZSbH6yVV1fZyTuzGuaWO7d64O",
+                        "value": "DXbiraaCRgbF34UUvFo4lTeazmnFi3MN1P5kZ7XIf0fi49czOtw2eK4NYrs8v6WoVTIM1xvgxKzCMD3s6zmkcq7aKsj7y7vu0581DDaagBEUeImdhJxt1xwLZPSxWnTOl2QYxS0FtFzHnOUwxkS"
+                    }
+                ],
+                "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                "physical-port-reference": [
+                    "c942beda-266b-a670-ca1b-e78a3653775b"
+                ],
+                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK",
+                "extension": [
+                    {
+                        "value-name": "VOB9SEhMmuVW73BUud6k27Iv6ilrB9HpYjyIXIvc4i8bdBXHG3UJ2u69MrAftaEjtd1iVouZHv2UYZuFVggPKmYoFrD8tijWnl6aJt1iY35OUzt",
+                        "value": "PJxrXnPDGsD9KXX7a49Tpa4fd930IxHp8eQ6CxBaZekC3hBddL7CV3R1cV1UkIbkPTqjqTth0NL35fhaSgNFjwGvrzhDisY7lgiDaLUazydwNmGFClcNSTabsrPCTFB6VTBXFo76WduBz284okJ8dUjyl027xE5tpHiW5q21vouWrC0PWCX2w8AR1CQy8WTqvcmAuhtZFX"
+                    }
+                ],
+                "ltp-augment-1-0:ltp-augment-pac": {
+                    "ltp-augment-configuration": {
+                        "connector": "07wpeqzDCeErNGQsYiiaCfzpi0iDsCNsCbRIBjm5pSw4q",
+                        "equipment": [
+                            "c942beda-266b-a670-ca1b-e78a3653775b"
+                        ]
+                    }
+                },
+                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL",
+                "local-id": "FEREV",
+                "fd-rule-group": [
+                    "5ea42646-26ca-afda-19a7-ad7f7cc924e6"
+                ],
+                "label": [
+                    {
+                        "value-name": "RocI547Tk1HFVpDkhD0Circxf64EiW51chJ9lJ2FCBkx1PJalJND3Z3iX7P8VU9ZbL8ou246DgvEY6HjQmOLlR3aQKiDEkCHXC6jE2hiaMO8Svj",
+                        "value": "R8d4Z97IThlyBQ7ys5RZ70haMXaxluZ4Cd9tm8b7pxF1fFrzKbySbHUQF4f0y64aj5ExdHFD6cwlRXVC0tmc38UIc9ILfENrKjYX1vs7AYtrO"
+                    }
+                ],
+                "transfer-capacity-pac": "dPMmT8YXx",
+                "external-managed-id": {
+                    "manager-identifier": "MhpViOOxyC220zn8c29zYhnoY9qQ34iPlADvor2P3WRVv6Wz851ZfofdyF3tBebWOOj4fmTaaCYGBU7JR8AYx",
+                    "external-managed-uuid": "cXn7qZdBN1p7YwlJzvex3Pjbq2b11IJ5F64YXizLbRK1n5LWAZlEGEH6zSZsBAx8zB6oLy1XpLYEQBtjsOP8lw7UoYmRrLS0eQo0oqPF3FcM9F5BtUKOiJAGHOq8zi0G8hGpznWCU8o3NlF97hXp0qYH6oIGyAeyRUXq9U33Uj7"
+                },
+                "client-ltp": [
+                    "c3794728-dc8b-5233-0c67-0b857c32ada1"
+                ],
+                "peer-ltp": "8c3c44ef-f7cd-2ef5-98fd-50ff802d3158",
+                "ltp-in-other-view": [
+                    "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                ],
+                "address": [
+                    "niCpODZxEuo4ucYUH299wiCnPraOSQBf86FWJwmf0CbnO19n3iwrA0GijR6bzziIFXwgmSnemzBa"
+                ]
+            },
+            {
+                "uuid": "1c7e2c79-af6e-8d12-d18a-957fe616ceeb",
+                "embedded-clock": [
+                    {
+                        "local-id": "nm4AnPfrMsr04RxlMwsQQJcB0kYgMVh99lJw3RXPjgQnZfAMMUuuvy5vTWMFJVGT8qhb97TknBHfQ9Tu3nYqNWOGSsdtnUencwrdDkx",
+                        "run-mode": "core-model-1-4:RUN_MODE_HOLD_OVER",
+                        "phase-aligned-clock": [
+                            "wNGXI905EEivmT6VhHw7H6zURci3WJPspvi7wi4aOey27EYhlugUAIOkU7nII42ZzkZ5u38jaGd9kbqyyzs899kV8IDQMFIeSHbmCbxMRLW4WeumNWvWXHJ5hmO4UwaM5d0Hpyu8bq47EymknR8cqSiI6YE0mOErTF0a5ubgMffj"
+                        ],
+                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                        "encapsulated-casc": [
+                            "bLc95SC275hrCKkjnWA91yYCKPAgSzt3kF4ppyjxDAY8karA7TJ0jACWpcc9LF45k0mKyxh3773jhmLogvoz5"
+                        ],
+                        "name": [
+                            {
+                                "value-name": "V67Df08af6A3UgBEIH85tmlFSMSv6hoTnnoCooEDn6yhnaW5RW3cioR32Bq0SGT749JsynXNto4QySOhORtZ7c29Fk9p12w53",
+                                "value": "ptmegPCdy25ebM5ELcIFlfRuESo2Pj96Nvl3dX8D06R3SOIv0i2dyTH4EXZtg0A3wVZBKZ6C5XGXDgkDqmIYghVUeUfmUHiiu9Lf8RJeGh3jxoOYKwOSNBETnUgatykYH65PPOVw6ZHvfotZMaKsLol1atbE1vCAtHijndHt4oZjEkbrmVT0b61mA4SBzm433meirVEwbvHQPSh4F24R85"
+                            }
+                        ],
+                        "encompassed-clock": [
+                            "zSzgZS2utSYSlt8xN7dsLeEaUA9zvWk4GUcxEe2ZYSSkdSR1Z4lDaRNXjWoOKJKivOQ12K1TCLdPDWIu0W73NN0ZBoNeZqwmemo96h2A27ix3STVO1YuGQth78n6yUlN8BOfSQHMXZb0S4NyXM2Dun"
+                        ],
+                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE",
+                        "extension": [
+                            {
+                                "value-name": "Ef1toe7seeZnZl5YgNNm6PrBYAKqsaAYhtrFIy7OFYbwjhuzWaV2ZevPPf79hHZy3qdDRcrwaD2mMoVIyJCqP7fwenxvWwVZP8uGcW4mrYI5ewNN7hdWgktuH0REpMveM0MYOQcfGVkUjZHqgMmw7HSGAJkZnI51IRZwzbDfYP9hOJHWn4kuD43dNn42593FS23r5yG4nId3rVRORbbufeAUtwOrGR6qL",
+                                "value": "SJAqNQ80TzNLgEOj1WxtI0ZxjxgiY2kQLM8qChioIY1YuPhvDGQmzQTSf12d3mVG14YDl9T37UUBC3ZfKPtbxe3Ng60bkOSdSIR5RC0YxMs1Qjgs8CvyQql"
+                            }
+                        ],
+                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE",
+                        "label": [
+                            {
+                                "value-name": "I15cAjgveCJwVEajQF1GnLPrrRniZknIlkUVD2jRE2nrzqLh5MXkxEDQv08mcn4xHQlkSE3oyjQ7JBoGfd1EJwv6pvtBTp9A8uN00Qhy17yKAOrHUklDIIK7edJZuSrCeeD6XMwYL4BdL2UFe7iWQUWW7FVupm6vtBBin7884JlPD7mRfEG5ruTq9GUq21VnCoF0nO0rpe83luMA1kxsOqSX6Nf1G2giqOaOu37ThgWCKJdL3C5K3Yz1DPUjR3",
+                                "value": "iRwYdz56QlVkYwxBr2Hb5xLYasLljGOtpkrCTxABKvWITlklnTokq9bABOVNuBgLWAnHZPbJdZk6kwrApQUPRXhlL407FgStI73HX6j25D8h9sRy"
+                            }
+                        ],
+                        "encapsulated-fc": [
+                            {
+                                "uuid": "dd7bb813-ed17-f734-d80c-b406b6a8eda1",
+                                "service-priority": "-9223372036854775808",
+                                "supporting-pc": "APCPrGDYT2XQVWgLinSFYLgyK7t5T7BlOe37MG5xA2fnR",
+                                "layer-protocol-name": "air-interface-2-0:LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER",
+                                "forwarding-direction": "core-model-1-4:FORWARDING_DIRECTION_UNIDIRECTIONAL",
+                                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                                "name": [
+                                    {
+                                        "value-name": "JFshKzZLDIxYWuie",
+                                        "value": "qeUzbTSyK5EkyX35hcIQbttL0jImtObUU5l5R6Dt3hFB6JzoNheZCAKuTkQn0T9VRu0AAw3vNI7Ujyi7HoYjYAFKNn7Nh8A0CBA57DAMdzypZIoG7eR5O"
+                                    }
+                                ],
+                                "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK",
+                                "extension": [
+                                    {
+                                        "value-name": "mc8UA3HZIzj7izHSkSW4kBzyMosSIRW",
+                                        "value": "4WQwRxvzZOz9fg1A8PwljXT5leP35DZ1zPprfUSeBrnQIgiI5GVgDPeZ33U0HUU8BbrQYkWzLjhlrsWp8RFEyTDtPpmob8oNjQv92sINDS15cPucG1Q7NlsuLOSWOgJ0Y790zSGcCH9OoD04xJ3k4wOPcyE1Gf1FmaFVUd0oU94aN57cGaoKy4sLC6MalFPIPnDCAD0nN5xs2EwIHUkfYM0ASEKebsO1HjvhXvwCs4WuAs4heppcbpE"
+                                    }
+                                ],
+                                "fc-route": "4sMexgqAj01oidHCvhD3GsJtT9jx8ZHcjtiQJJqUBjjUw0oUaTXQlzj7IDwQudVNzdvaOO5i7g4E8sqidf9zOsGoX4",
+                                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE",
+                                "configuration-and-switch-control": [
+                                    "UzqyQexPcj9nwpuseYdNIlgfcvzQUd6OEpfvDMcH6m4uLqORo2EZfV6siFa4S8Tox0T2MYKKcO6X7VHvPlm48swj7ynRH886819NRTx3zETGrA4gNikWLJ7KhmuQvCXvvYinJQiambRNLN3r5ffIYmt8I"
+                                ],
+                                "local-id": "pnJGBvovPXZWxLb2L3tuQnpUThF0dInD56jytzVjoV7WyiQjlkG4z5YsnvkAdH5bFhB9QxkfkrbSB1bXdRTMPJ64eiwsZCDxT6GJD0YXj1HUVLJ8uuVjdTnscUM3ohAhn8S10JQbKq6xbHGFctZpmeJq0vugM4xa5i351L9DbfbmOJ204TiqZ1RSpd839y5eQ8cJUle5spkg0e94",
+                                "lower-level-fc": [
+                                    "9bc11e2d-913a-2fa6-a64f-f01427c75d88"
+                                ],
+                                "fc-switch": [
+                                    {
+                                        "local-id": "9JdirKcK8Q0tq4tR9Vqnf9qM1DnBiEQrnVBOxGrFoj9OguGpp6EE74i1AFCSbkczgFfNlGlJ0uygQ6x74bMb8WcICHsN1we9cuPp2a92wzamxHttT7E14JByi3dbAklEG23I4",
+                                        "wait-to-restore-time": "-9223372036854775808",
+                                        "profile-proxy": [
+                                            "Uw1tnTlbZMuRnbNn5zzY3VM7WTw1rY4mn6HKR2NIGhA4lfriOT9RGVQuGevZ5AdsyU4pPJ8v0ArdPLovExeckXGSb4R8w5A4RwlGft483vlKgJfM8mYkjxcmB4v7153SCorJKvRF05q9GxNPTE943erEiWDb1y3vWu7yZYeS3wTKVyrPcsTfGcLQ8g12O5pDrw3j"
+                                        ],
+                                        "control-parameters": {
+                                            "reversion-mode": "core-model-1-4:REVERSION_MODE_NON-REVERTIVE",
+                                            "prot-type": "ZheEkpDEu4zDRIa7Q",
+                                            "hold-off-time": "-9223372036854775808",
+                                            "wait-to-revert-time": "-9223372036854775808",
+                                            "network-scheme-specification": "XLKnaxRxqh0W8hbMBsp7OtGrcoBj6xD4ifjtMbS4sS1A14evwDCk7jDbz6vGE0CWfVhTY1YiLZSNV6irCUDB58MFe9lS9XHgKQaJS01DRMiMKA5enIPsQuZ4DcPF1wVMeXn6XoCO2UsFnxTC7JWPdWMI8BnaZbWd0bcYzGEus79Pw2jwDglI47rcAGerR2xSdJIN"
+                                        },
+                                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                                        "switch-selection-reason": "core-model-1-4:SWITCH_STATE_REASON_NONE",
+                                        "name": [
+                                            {
+                                                "value-name": "DADNO2v9vg9295LKv3NIefUrTAlXjp1WRxBFzYH5eQ7fVKZiFF0TUNdGnyvyYomHNYfnWWk3Ejir3aJIPBtBoy9M7EcXVzwIpLXdH98lsrMntn5iZrLnRV1QreFeFcX4XM9xWiSoJxM4UJmL2Z9UU2Ke8isNuhJr4TY0bJgM82QUE4Gy3HsQJ54SnoxJGh2Ca1CdCKZCFPojTWRWDcMf9IZo7o7",
+                                                "value": "F9hH2LUwvT02Apltl5iR9WYaFXyEdFbTGksJ5n7s88vJxI4KFmBOjzYQoomCVxnCJPdG4k0dkvWR60CLf5syxigNzChu1E6KmbqqoqvIOjsMc4pr1RRy27eBBvXCaWeo7wOnWk6CDyoPuO8nxZWr62UzxSbHOh5NNMbCY9etHvb3bjqAbe29gOJOyUne4l2RZ5tXeAiN5tI8N8IYfC7vjIbRvr6zM0qL5UAbuSYreyz1G9"
+                                            }
+                                        ],
+                                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT",
+                                        "switch-selects-ports": "core-model-1-4:PORT_DIRECTION_BIDIRECTIONAL",
+                                        "extension": [
+                                            {
+                                                "value-name": "7Dt3KcgYJmJXuGqEqC4k89sSBmxOfWsmrNhbZp2BMLqgkIUCkRWkSh4lDBaTpufRhp29O4KAI2R2KDE4msh6JlsnXC8m6n5nM0wt483MaMGMicJwF0Dol5LiHTxF9C2NCrgzrcduYUg86ZFDZi2dnFvWrUBspvfTOosgAyKqk0ziSeWJoY",
+                                                "value": "LvkHWeaoDFwpuMRCeheEB65UYbIIzyEk3YTS538ABEZXiJzw0NbuT8gKkYkToY6rPZbMVkmoQel9XMFPrIjcRrWbp84N7a7O2asPuGddUqmJ4TzvCKzlcowtws9vv8bxiDmNkr06ReQV7piB1RWdfszMNIhiQtP8Y3NimNpdT701wiCp1rDhT4VyM4QCp"
+                                            }
+                                        ],
+                                        "prot-type": "TiLkXPvDsK3QUhS0AzeUpmr4AWfiUBaOLV0JCve48hM2yw2068Unuds42zfW2pCOkCpP0vL8MqacW44UcRiHWKDYbSVdhp1u2ij2N42rmcvj8AdkjnTf7xeap1ozqpVsA6mn2o",
+                                        "reversion-mode": "core-model-1-4:REVERSION_MODE_NON-REVERTIVE",
+                                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL",
+                                        "configuration-and-switch-control": "h3qFW2BmtizO3GugsloIeipjIUDeXWJ7Z2MN4f9qxAethAJBVZb2iAl0uY6kMQrDKdqOts6S2klbV4MIWYK6qY6NOc7BUy6ELxl6RrZLEcXz9B95rMbSK9FqdE18c0EPxRWgjN1XZQo8kp5LbgvNh2evG7DS79Aw1oMc3G12wh3IG8uKhRxyUL3ATylSANpBbbFe",
+                                        "internal-configuration-and-switch-control": "G8gPbYvck7l4FTYiPq3fDWPqliBoXH8vQgkT6I5rPivuclNTLQ8pEYHZgbg6SoBAEWuKwr3lKqIOLnHp5POKFnBWyR2rfv1LjnwPPz3r0D7D0O2XvIH36bZE2TXagZVAejhVLkmDXtgP9bNxTmAZprwsctuskh2rBcmmoBZe4736iIDcXd3mErGQNaa7s5qVhNhFo8TkfPiqpV",
+                                        "label": [
+                                            {
+                                                "value-name": "NEQbXrmOWNUvrUV4RHE23pSuDqVwZXfMBXXyocekZ9HjVDnNcUHgbACOSqcRnrwYgloFxCRpDzIz4Xe8RVo2n1IgjU7GdvwuRU1owKF2bnB7dPg4CEZ0xHgQufozDU3uOWKdzqfKFISS",
+                                                "value": "8P1EO1cn9UJhjjUdegU307CiemYW6IlexeTd8XB9Rkq2vc8Ks2Nl1p"
+                                            }
+                                        ],
+                                        "selected-fc-port": [
+                                            {
+                                                "local-id": "FTt6IDvXDy4Gt0SBmHLRkXp5NbD7KHlpsGv3c00Pq4vTWon",
+                                                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                                                "name": [
+                                                    {
+                                                        "value-name": "X01aXj7KmKK6k5vEMSHYKzFavbVjrauoany7yGKUiuSurf957IVJiBLNMHZ",
+                                                        "value": "Rtl2IU1hsL3C7WZzb0EbIAU03yGHfFMY07SATURdFNQNBHeMHSPpkCifaYWhvIfnI0XBUHPrux656kJN5rch3ux5ktmP"
+                                                    }
+                                                ],
+                                                "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT",
+                                                "extension": [
+                                                    {
+                                                        "value-name": "6bDieMxD168A8Rs73kyRZrGtCEOqdNYbRtl",
+                                                        "value": "gSA9YIBZr46mgw68PEBkjhKo4BzN4UKcMllCVXtfTrt9Qrhx6KRh1CFY56D90omEBH8owuDpVZrDqIbwl2Fewk4BiIDaYZOryPPXblm6kNCCoN1BHGP61Mzbm4mc32DuRkj2FF1RlvuBav4RbTP4xhgTlC"
+                                                    }
+                                                ],
+                                                "logical-termination-point": [
+                                                    "bc478ce2-7d3c-9c53-dff2-7724bcef25d4"
+                                                ],
+                                                "selection-priority": "-9223372036854775808",
+                                                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE",
+                                                "port-of-internal-fc": [
+                                                    "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                                ],
+                                                "label": [
+                                                    {
+                                                        "value-name": "t4Mt2fnB4H5tN2z0De5WrmZNLW8fiPbEUX7Ocnp94muRgWRLaOIB3zhOwpVG66k03",
+                                                        "value": "G8H5hDjDmzz6dKUVdXmuEKLzjSGDSBPrJwwS1Iwo95umHo9NewhS83rrNZXxBMYcbn5c5tAeq4B0lKNz8Wr9RKAECxc5cahnxezuz2J06c0rWF0XBj6tWyZ"
+                                                    }
+                                                ],
+                                                "is-protection-lock-out": false,
+                                                "fc-port-direction": "core-model-1-4:PORT_DIRECTION_OUTPUT",
+                                                "fc-route-feeds-fc-port-egress": [
+                                                    "8uPhuLcyLYTFkH4"
+                                                ],
+                                                "is-internal-port": false,
+                                                "role": "scIAMVV5bOdadrlvsJ4K0Z5A5rY7IFoaR6LwUyt5eGfs7AXrjTckKhUHAKGih5t1b6xXE02SHakGK90W2c8MlUtVx26O7rPaxm83",
+                                                "address": [
+                                                    "oVWiAtbkOGOhQblAe7pbEyrqUVnbrYOHTC0l5bFMSl3IohaDoAOU07cUUAXlqD3jfVwl647Qh2rGjBbz3Zm4YyYS0O5qr0BHV8UUc1CtV317xcGs"
+                                                ],
+                                                "fc-port": [
+                                                    "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                                ]
+                                            }
+                                        ],
+                                        "hold-off-time": "-9223372036854775808",
+                                        "switch-control": "core-model-1-4:SWITCH_CONTROL_FORCED",
+                                        "address": [
+                                            "yO5X1Z4TSs3mS5Nnezr9755YzvnbTQtrEzhyqdjiynwiskxyTYHSVMIu96F2O1msADS0IcagzGyTS5rDV0wIE6cO4KISL4ddH55i9fyINZtyWMbKEzsjGxZKhHD2MQ7lNcDXr4x631ERFIBkhWvPtuAC35wHNDVsPqp8uXepQL9ntKHKy4s1q2vuZ13EEY6tpoBTdIb3tkiWWSyvW0onUUJLNMpsLoNaMpVZ7YUsicg74OuTHS8tERfkDwM"
+                                        ]
+                                    }
+                                ],
+                                "supported-link": [
+                                    "NBWDTbmBuxPxgCb3xC0FRJv54vNTmTk1m8F7c1JGqy5G3gBsSu7B5vG90m2m7egteVAqObYfK4VFcpZ5TZyYuf7mB1JI7Z3lMD"
+                                ],
+                                "label": [
+                                    {
+                                        "value-name": "HtUG93OJ3jcDgb8QYdioC97SQe6HbN6Tg0rpVg1YzdBPpBxnOHLrRKbzYig25eNd6ev1mwZNJsu832nSB1bkLmTCw2wtgbznp4oEsgr3IWcEQrojsrE6FxAcr6FIh65yalcuBEycsKIi36Bop7u4x4gY2OGjUDJXZWrssZEUBe4Fkx3JFpG4lW2nCJypehm55Fyxx4j8jfFvFA7cRNgcBireTZv89RdeoLEVIXW15BwK4DWVqc02m",
+                                        "value": "8grDoAmtGC7kyPauQfXeRTKFP2RH4584lrzBTN5AqcUQT4cBb9PU3zzKCijyorvJTWlEKie2m1SfX4Q15xV07vCBNV13noN8l0MXaTZwURLRNBSS0GT7bnAQjuUySzG5rk2B5T7ZCKJpdtad1VdciNVB9H9U8HZzUU2ZN1RiLsHYNRbPEoTX4Oq5nAZv9RW3DYViZEAC6iAL1EAG2mvYaV4yn3VxMSspIfIATicRsFvmjXUdjp"
+                                    }
+                                ],
+                                "is-protection-lock-out": false,
+                                "external-managed-id": {
+                                    "manager-identifier": "89TSGKvWaf3EcODOarU5yGLv6dxlsgRAiDkYfPVpWQV0FyOHRIMhhpMnucIWssoKXIBcpwtdehdLP2szC6ILnv8RzJN",
+                                    "external-managed-uuid": "3bw0L74a"
+                                },
+                                "fc-port": [
+                                    {
+                                        "local-id": "U4FnL7aZlv1ArRJ57lH3ga4pal15wH0iLFFoEPfZcgsD03B7gaawdeNnrOlPnl78SEpomEfyVz4VDF2TH4iUa5aBMvq9QpaA3zYpd5Y0F2NizH3gLl3Njdo5IG6q5g01PQq3VgVAiJKJiO0413Jcg09QGggEw8FmY5hLmcmwVYg6E82G3LKbLU1sahYGhD2fAj0Ooelb5thJtjhw52HQWIa6R8E8DHfeS72gefsjAJ233kz0m8Q",
+                                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                                        "name": [
+                                            {
+                                                "value-name": "Q1gz1UHFtWLeWNmaVGtvivzdP0d393dRWlrQ80ntX8HLN4VICo6ULx7txkwygCq4XRU5R9rGh8r54eFHuLtgiBJIV7g3BG0zpUw94XPdY9iUnYtSBX0UyBulAKhcjhDI31RZZzdPInBXd5HP2HBsa5FLHWX05AJ9B",
+                                                "value": "8s1d9JBLzOIgvCQY403BDDqsDv2ewwHxQIKSkdDT2d1pPJoLCjmfWEIs2CGy0n5J6IB"
+                                            }
+                                        ],
+                                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE",
+                                        "extension": [
+                                            {
+                                                "value-name": "c4ePJa7p2qDlUsH0z4fEset0GqfEbqnomt55E4myvZ",
+                                                "value": "hkt9TpgpJvTJ3jYHmpWKDqIBWMXu9X7qhAz2RQsBddk8ojIKAEndW5OSJEeTBmbKODMGl69qjtyHEgk6NHcJM0unwA87OcJDPobamcAGF0fchzi48uFUn1aTCaTqmuVbKYd7aFFIGUUPm4LurqhGkjrWtceQH21j07q3M5LsSx96tUsUdJsxUUto6z6FB7Zu6hxTnad7Hnd2hFPuhh1b3mr2OxzpxqLDIioXkC"
+                                            }
+                                        ],
+                                        "logical-termination-point": [
+                                            "f7872522-16c2-ce17-fc7a-083c8517e7b3"
+                                        ],
+                                        "selection-priority": "-9223372036854775808",
+                                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY",
+                                        "port-of-internal-fc": [
+                                            "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                        ],
+                                        "label": [
+                                            {
+                                                "value-name": "V63Pj4f8OvTqG7xvM7XGKveCTclRUW1P24xd8MlO966P6EcSL1qnxE0qIl9uaac4eJienv3wC9dINqsrrSOYoOgZ2htcrFgxoqMLWP9qYn0EFk5Y4TPsAXjCfNOysW6JnKmjzwBpLBVqVSgZE5je3DQaqwIKsGlHqI0Ret9Z44hZPxQ",
+                                                "value": "vaHqFps5N2H7J3P1LHLRbUI7QZ7FoP0LRzbwYDtDG3Lh6saJ9VscPaky1j5p86b0FeowKS1iVMzT6JCgx4se6MM75Kw6Qz6nGmLqeNI1r9UyKoGhk0wqNaxKUWQCnOS3bvtha3jC4d2HCAYWAmfnpM0bAQOYxy1A3nRei2IngK4KcUGM9V2yA2JaKp0hX2J1pB7HDPWLrSvDN4pORrejtPu6fun4o7XFA4f5Lb"
+                                            }
+                                        ],
+                                        "is-protection-lock-out": true,
+                                        "fc-port-direction": "core-model-1-4:PORT_DIRECTION_OUTPUT",
+                                        "fc-route-feeds-fc-port-egress": [
+                                            "Ltj3m4xKJigSgkPhi05dHKpef6sgoVe1gx5CBufcNn43HLcSEi5l2mrasTiQGwJW3OrwjGIYVETui6mWoj9iFAkZlDH29rQ57htqPcgKIa70gtOwNPGkh1kDE1xFknCsx6Kea1ZSb6LjrrP6hvjyoD32wAAJYcbnaVBkWsdZqYiSh7Qqv9ZTEUO3vgMlkXIvKbPzE2q4SJO2Ixs5GjZdeFgJV2W7RwCtHsUdmlaf4QhEnJKW3B998hKVbG"
+                                        ],
+                                        "is-internal-port": false,
+                                        "role": "ji26JfuTWiQep6iVfClxPBygh1OGQTNa3H8MWCxKUgYcm87tClTsOrA5kpDbiillZt7O6wySMp41p4u2pfmdHWaTlO4vYhQQDPEBe4t0lq1LuoNTD9Yc586jO2ONcxvP",
+                                        "address": [
+                                            "0OLnX2g1YDs0j0zIp0m2AEjxZVBSEKGEqr1omipkNJc6JLG0D23dzmCq95aFPRj8adownFI2oU80yG03B39ahLsiRCXyl9GweWUBBvD0hD0HjSLUOUW5xogoT5P6enuskpVVMyN3bFLnyo9ma6jHmrY7xNeDaIY"
+                                        ],
+                                        "fc-port": [
+                                            "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                        ]
+                                    }
+                                ],
+                                "address": [
+                                    "IQ0p9vzYT5sd1oIuIEDW3207kE3gV5fDNgVWDmVojnCdEcHeQc3Mf3LrIGHDDO8q43eAh9YBpsOVEn9nrc1GgM7YsGtXnBnjxBTODKhU4XPJcY6E37"
+                                ]
+                            }
+                        ],
+                        "sync-ltp": [
+                            "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5"
+                        ],
+                        "address": [
+                            "12WLKFIuaBkHnMI55Qp6sUEblRhJ4rkYl9B6GcAQNUp2z70wQpCac8lpZD0WWdMi"
+                        ]
+                    }
+                ],
+                "supporting-pc": "ngUrIDeu29329sSq42C5gTWTUSH7EZlU7flPSskNBfPCHz2EtxJJqxucq4jWVwI3MWSwo4bRkSlTjnxNM8o5GLhYPtMCZvFDrq2HmdqG6Lsp0Z4N0lSGY1wFuihmFXZ6f1FB75a5ICmJtrotE81C9xhwIqSnfJmuDTY",
+                "server-ltp": [
+                    "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                ],
+                "connected-ltp": "f7872522-16c2-ce17-fc7a-083c8517e7b3",
+                "layer-protocol": [
+                    {
+                        "local-id": "iMUCsDGAUpKCNwE9Y0f9XN0C10VzwaBHWvjg0RRV9txORcXP44Y2RQwKQkjfu",
+                        "layer-protocol-name": "wire-interface-2-0:LAYER_PROTOCOL_NAME_TYPE_WIRE_LAYER",
+                        "vlan-interface-1-0:vlan-interface-pac": {
+                            "vlan-interface-capability": {
+                                "configuring-pcp-bits-decoding-is-avail": true,
+                                "ingress-vlan-id-filtering-is-avail": false,
+                                "port-and-protocol-based-vlan-is-avail": true,
+                                "statistics-is-avail": false,
+                                "configuring-service-access-priority-mapping-is-avail": true,
+                                "max-number-of-protocol-vlan-id-groupings": -23573,
+                                "configuring-ingress-tag-filtering-is-avail": true,
+                                "supported-sub-layer-protocol-name-list": [
+                                    "vlan-interface-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_D_BRIDGE_COMPONENT"
+                                ],
+                                "number-of-available-traffic-classes": -37,
+                                "supported-interface-kind-list": [
+                                    "vlan-interface-1-0:INTERFACE_KIND_TYPE_UPLINK_RELAY_PORT"
+                                ],
+                                "available-pcp-bits-interpretation-kind-list": [
+                                    "vlan-interface-1-0:PCP_BITS_INTERPRETATION_KIND_TYPE_7P1D"
+                                ],
+                                "drop-eligible-indicator-is-avail": true,
+                                "configuring-pcp-bits-encoding-is-avail": true,
+                                "service-access-priority-tagging-is-avail": true,
+                                "received-priority-overwriting-is-avail": true,
+                                "egress-vlan-id-translation-is-avail": false,
+                                "admin-shut-down-is-avail": false,
+                                "tagging-and-mvrp-is-avail": true,
+                                "vlan-id-translation-is-avail": false,
+                                "restricted-automated-vlan-registration-is-avail": true,
+                                "number-of-available-priorities": -125
+                            },
+                            "vlan-interface-status": {
+                                "statistics-is-up": false,
+                                "timestamp": "2021-04-30T07:39:52Z",
+                                "total-bytes-output": "-9223372036854775808",
+                                "total-frames-input": "-9223372036854775808",
+                                "interface-status": "vlan-interface-1-0:INTERFACE_STATUS_TYPE_DOWN",
+                                "total-frames-output": "-9223372036854775808",
+                                "total-bytes-input": "-9223372036854775808"
+                            }
+                        },
+                        "wire-interface-2-0:wire-interface-pac": {
+                            "wire-interface-status": {
+                                "rx-sync-role": "wire-interface-2-0:RX_SYNC_ROLE_TYPE_NOT_YET_DEFINED",
+                                "link-is-idle": true,
+                                "eee-is-up": false,
+                                "performance-monitoring-is-up": true,
+                                "rx-level-cur-list": [
+                                    7
+                                ],
+                                "tx-level-cur": -3,
+                                "pmd-negotiation-state": "wire-interface-2-0:PMD_NEGOTIATION_STATE_TYPE_NONE",
+                                "loop-back-kind-up": "wire-interface-2-0:LOOP_BACK_TYPE_INTERNAL",
+                                "interface-status": "wire-interface-2-0:INTERFACE_STATUS_TYPE_NOT_PRESENT",
+                                "pmd-kind-cur": "xlX3GFKLAOkNkiTufkB0sJlt",
+                                "receive-signal-is-detected-list": [
+                                    false
+                                ],
+                                "signal-ordering-kind-cur": "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_NOT_YET_DEFINED",
+                                "pmd-is-up": false,
+                                "link-is-up": false
+                            },
+                            "wire-interface-capability": {
+                                "wavelength-min-list": [
+                                    1443173668
+                                ],
+                                "supported-signal-ordering-kind-list": [
+                                    "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI_X"
+                                ],
+                                "rxlevel-high-threshold": 9,
+                                "isolation-is-avail": true,
+                                "supported-loop-back-kind-list": [
+                                    "wire-interface-2-0:LOOP_BACK_TYPE_NONE"
+                                ],
+                                "short-reach-mode-is-avail": true,
+                                "wavelength-max-list": [
+                                    2098172984
+                                ],
+                                "unidirectional-operation-is-avail": true,
+                                "supported-pmd-kind-list": [
+                                    {
+                                        "pmd-name": "5e7JI0Y1qiL4JkSUuES4vw2EF381qT1v716H1XJk7uoQG8DaMveaT8GqcOsCIl7Pm6pg38AauYSbYndLKsNEAtWMhooZCoHYmYeh6GrswbvvzJ8bbVPDoEqx2GpwWYviWBzUiSeO4KbvtjGw6o9u2rUW8jl4hQf",
+                                        "speed": "jGZtzdavPlSaxqGDGI",
+                                        "duplex": "wire-interface-2-0:DUPLEX_TYPE_FULL_DUPLEX"
+                                    }
+                                ],
+                                "configuration-of-number-of-bip-errors-per-ses-is-avail": true,
+                                "auto-pmd-negotiation-is-avail": false,
+                                "required-medium-kind": "wire-interface-2-0:MEDIUM_KIND_TYPE_MULTI_MODE",
+                                "temperature-low-threshold": 113,
+                                "maintenance-timer-range": "n10WFGEFhFzGPEqN0S0jvTtCeQT33oDjpvf4bLBkqa07OiMG2MZqyk2MbOH64chlHwiL9T5s4YzKgejb0aBqvv4GjMEfQWBqkT3uE8WA6ndfBwquGTUboZRADoPtkiLE3O8IXWiVkv2V1khAdcLC",
+                                "supported-alarm-list": [
+                                    "vcOTT9dcVJfBSXqG8e0vgOpB5ZO9Kik7m00ga5sXPHqzxRfx582lOrOTiD3V"
+                                ],
+                                "mii-kind": "wire-interface-2-0:MII_KIND_TYPE_QSFP_MICRO",
+                                "rxlevel-low-threshold": 7,
+                                "auto-negotiation-pmd-selection-is-avail": true,
+                                "wavelength-grid-min": 843734042,
+                                "performance-monitoring-is-avail": true,
+                                "auto-signal-ordering-is-avail": true,
+                                "configuration-of-rx-sync-preference-is-avail": true,
+                                "eee-is-avail": true,
+                                "temperature-high-threshold": 23,
+                                "admin-shut-down-is-avail": true,
+                                "mdi-kind": "wire-interface-2-0:MDI_KIND_TYPE_OPTICAL_PIGTAIL"
+                            },
+                            "wire-interface-current-problems": {
+                                "number-of-current-problems": 44,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -1984,
+                                        "timestamp": "2022-01-25T18:18:45Z",
+                                        "problem-severity": "wire-interface-2-0:SEVERITY_TYPE_WARNING",
+                                        "problem-name": "C3kNOcSb6NL3lk6EzpmhrWWK5BEpWx1qBmdpqXtpKes6qzCZYY8hNW1"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-06-04T06:16:38Z"
+                            },
+                            "wire-interface-historical-performances": {
+                                "number-of-historical-performance-sets": 13412,
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "period-end-time": "2021-03-04T11:25:18Z",
+                                        "performance-data": {
+                                            "es": -555721133,
+                                            "ses": -1472173973,
+                                            "low-power-idle-receiver-ms": 249278442,
+                                            "low-power-idle-transmitter-ms": -1612289701,
+                                            "symbol-error-during-carrier": 1599038292
+                                        },
+                                        "history-data-id": "tEHYvpW7v8MxPkyUOdhdLZwfEn0jcj2FYCvl1jlwsZ49ju40HddtcJIQZA13M4JCy6PrqaYS9U1lgXlY2qje1TW0mY48UFCsLrTbuJVDvPQEM3CPtNVvGSv2Ir2C6EWSYHVsjRXGGOkkRO1lBPQazdchFfLDLznJgj3r218APkUy9OLCDtM4HZle66RJxftNqw7sp726rOFsui5ZMR3lIozGmiqTpLzP9y9zF3F6Scze",
+                                        "suspect-interval-flag": true
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-02-03T20:16:13Z"
+                            },
+                            "wire-interface-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "performance-data": {
+                                            "es": -1168391087,
+                                            "ses": -1787168311,
+                                            "low-power-idle-receiver-ms": -1894799239,
+                                            "low-power-idle-transmitter-ms": 1427229662,
+                                            "symbol-error-during-carrier": 1914607278
+                                        },
+                                        "timestamp": "2021-06-19T07:01:14Z",
+                                        "scanner-id": "Fzo50SWQR57E11orrpFoAj5R2VHImN1TehY6aMWTJWpDXN4g4CEFVBoQw5qKLrDRJtYLgUEZI3uxIrNM3sjQVIGsF74iqI21b0MjMibvdF2V6IA12LSXtqh1pmbI4dJ7dor0yunM1hz8Z111NTZ8cg9BClbyyVGEbZwJtTvu2Xu2Yw3LhUUt33Xxg86HVEl6DRQYCdkE2HG1dCMmoyQ",
+                                        "suspect-interval-flag": true,
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -121
+                            },
+                            "wire-interface-configuration": {
+                                "auto-signal-ordering-is-on": false,
+                                "number-of-bip-errors-per-ses": 21030,
+                                "short-reach-mode-is-on": true,
+                                "transceiver-is-on-list": [
+                                    true
+                                ],
+                                "fixed-signal-ordering-kind": "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_NOT_YET_DEFINED",
+                                "interface-is-on": false,
+                                "performance-monitoring-is-on": true,
+                                "remote-wire-interface-name": "0K7Hjx8QoonloizcBnXUSSPG0JQgE8qxSxeb4nUlD9y1r753v2XnNEVNnL3ULlrDSFHOUB1xKAqczv74qWkdAf0PTVJE82aSARyukAU42c8BIfy0bK5DZXlKKWhSZjKzaiVuKPqE2z8CGGuSizn9wIUgx30wmKXoUSS",
+                                "restart-pmd-negotiation-is-on": false,
+                                "maintenance-timer": 1561380866,
+                                "problem-kind-severity-list": [
+                                    {
+                                        "problem-kind-name": "bx05Fx0FVmhSK3KuAcEEOgPMyzeAAfRLMRIjgIYb473ObGaDSPhzX7dnysX8HOMmyuFOdES9DNYOl0s6HBxEAK18cQ9MxV85hNLujvEXjuDwu5C4z9I9UCaYsbKR6KOnysKRXgG8KkF6hhaQjLS5nU3H5Gz3",
+                                        "problem-kind-severity": "wire-interface-2-0:SEVERITY_TYPE_NON_ALARMED"
+                                    }
+                                ],
+                                "auto-pmd-negotiation-is-on": false,
+                                "eee-is-on": false,
+                                "loop-back-kind-on": "wire-interface-2-0:LOOP_BACK_TYPE_EXTERNAL",
+                                "rx-sync-preference": "wire-interface-2-0:RX_SYNC_PREFERENCE_TYPE_MANUAL_SLAVE",
+                                "interface-name": "2agV",
+                                "unidirectional-operation-is-on": false,
+                                "isolation-is-on": false,
+                                "wavelength-list": [
+                                    -612104255
+                                ]
+                            }
+                        },
+                        "ethernet-container-2-0:ethernet-container-pac": {
+                            "ethernet-container-capability": {
+                                "supported-fec-interleaver-kind-list": [
+                                    "ethernet-container-2-0:FEC_INTERLEAVER_KIND_TYPE_BLOCK"
+                                ],
+                                "maintenance-timer-range": "bBqb6UkqiI0ocQw21Ziy",
+                                "supported-alarm-list": [
+                                    "pWhmFXPF",
+                                    "0hf3n1oGjYG"
+                                ],
+                                "statistics-is-avail": true,
+                                "encryption-is-avail": false,
+                                "performance-monitoring-is-avail": true,
+                                "available-queue-list": [
+                                    {
+                                        "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE7",
+                                        "available-dropping-behavior-kind-list": [
+                                            "ethernet-container-2-0:DROPPING_BEHAVIOR_KIND_TYPE_WRED"
+                                        ],
+                                        "available-drop-precedence-kind-list": [
+                                            "ethernet-container-2-0:DROP_PRECEDENCE_TYPE_NOT_YET_DEFINED"
+                                        ],
+                                        "queue-depth-configuration-is-avail": true,
+                                        "wred-profile-per-drop-precedence-is-available": false,
+                                        "available-scheduling-kind-list": [
+                                            "ethernet-container-2-0:SCHEDULER_KIND_TYPE_NOT_YET_DEFINED"
+                                        ],
+                                        "max-queue-depth": 751495034
+                                    }
+                                ],
+                                "bundling-is-avail": true,
+                                "supported-header-compression-kind-list": [
+                                    {
+                                        "header-compression-name": "FSb61pzLBwq8KN3p5u0bTwV8Z89b9yTGq4NslmdWSv5vb8UgCMrnbnwanxdw67do30QpeWl6ritCjgLV2cb5rzgOYtd4AqlEib3o7gmrzQVS6GF0TI6c9m18He4awpGGtB4ARqTigP2evAfgaltkzms8AoiYOYE9zIJj0vBhkwnH6CQgPbs",
+                                        "mpls-payload-kind-list": [
+                                            "ethernet-container-2-0:MPLS_PAYLOAD_KIND_TYPE_ETH_O_MPLS"
+                                        ],
+                                        "compressed-protocol-layer-list": [
+                                            "ethernet-container-2-0:PROTOCOL_LAYER_TYPE_ETHERNET_MAC"
+                                        ],
+                                        "header-compression-mode": "ethernet-container-2-0:HEADER_COMPRESSION_MODE_TYPE_AUTO",
+                                        "compressed-header-length": -29386
+                                    }
+                                ],
+                                "support-of-management-frames-without-preamble-is-avail": true,
+                                "explicit-congestion-notification-is-avail": true,
+                                "information-rate-min": -320378321,
+                                "fec-is-avail": true,
+                                "burst-size-max": -1610,
+                                "ingress-policing-is-avail": false,
+                                "supported-fec-redundancy-size-list": [
+                                    "ethernet-container-2-0:FEC_REDUNDANCY_SIZE_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "egress-shaping-is-avail": false,
+                                "information-rate-max": -2134772413,
+                                "admin-shut-down-is-avail": true,
+                                "bundling-group-size-max": 9,
+                                "supported-fec-interleaver-depth-list": [
+                                    "ethernet-container-2-0:FEC_INTERLEAVER_DEPTH_TYPE_48"
+                                ],
+                                "burst-size-min": 27824,
+                                "fec-word-size-max": 24557,
+                                "supported-loop-back-kind-list": [
+                                    "ethernet-container-2-0:LOOP_BACK_TYPE_BACK_TO_REMOTE"
+                                ]
+                            },
+                            "ethernet-container-current-problems": {
+                                "number-of-current-problems": -123,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -192,
+                                        "problem-name": "IOPBANYLTvpJl9JoOr0DmutL1Ww69GTJvBk5gbI2",
+                                        "timestamp": "2021-06-21T19:01:38Z",
+                                        "problem-severity": "ethernet-container-2-0:SEVERITY_TYPE_WARNING"
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-02-15T17:40:26Z"
+                            },
+                            "ethernet-container-historical-performances": {
+                                "number-of-historical-performance-sets": -17677,
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "period-end-time": "2020-09-14T10:01:42Z",
+                                        "suspect-interval-flag": true,
+                                        "history-data-id": "lK1EhEkCU1TK5x4it8W3RJ5Uq6zohCjCmd8DRt7Du1nrqjKLrGOjiT5IREY8",
+                                        "performance-data": {
+                                            "queue-utilization-list": [
+                                                {
+                                                    "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE",
+                                                    "max-queue-length": -801087387,
+                                                    "avg-queue-length": 1092491390
+                                                }
+                                            ],
+                                            "fec-uncorrectable-blocks": 1542402416,
+                                            "tx-ethernet-bytes-sum": "-9223372036854775808",
+                                            "tx-ethernet-bytes-max-m": "-9223372036854775808",
+                                            "fec-corrected-blocks": -234427171,
+                                            "tx-ethernet-bytes-max-s": -2060906669,
+                                            "time-period": -499522785
+                                        }
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-03-17T11:40:03Z"
+                            },
+                            "ethernet-container-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "timestamp": "2021-11-03T00:10:55Z",
+                                        "scanner-id": "pve0Hj8STaqTWc2itR6DkZ9gEO0PkLzB8NtQZBASMTDI5F0qxYVRQ4ZuLRc5uDyDq1lhuV2gOFQLdJcKz7tp4kUPbYMxBkaTdvbHj5Y7KGLXpXzZWUo0eaPh0BPBNRn0fqAyvqxf6i5w7En4zLWFOMXOfMiVvxVKXnisNQHU0Mi8jF4Si0p6EmNM0XHwuugrSrLF9kr97J9io52H6rFCOkoGhX4Dkl4c",
+                                        "suspect-interval-flag": true,
+                                        "performance-data": {
+                                            "queue-utilization-list": [
+                                                {
+                                                    "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE3",
+                                                    "max-queue-length": -322652545,
+                                                    "avg-queue-length": -522352559
+                                                }
+                                            ],
+                                            "fec-uncorrectable-blocks": 404423250,
+                                            "tx-ethernet-bytes-sum": "-9223372036854775808",
+                                            "tx-ethernet-bytes-max-m": "-9223372036854775808",
+                                            "fec-corrected-blocks": -55611663,
+                                            "tx-ethernet-bytes-max-s": 268800366,
+                                            "time-period": 1673337286
+                                        },
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -73
+                            },
+                            "ethernet-container-status": {
+                                "timestamp": "2020-04-04T02:33:14Z",
+                                "last-10-sec-data-output-rate": -361036619,
+                                "bundling-is-up": false,
+                                "total-bytes-output": "5972595826839902208",
+                                "total-bytes-input": "2414279544308661248",
+                                "interface-status": "ethernet-container-2-0:INTERFACE_STATUS_TYPE_ADMIN_DOWN",
+                                "loop-back-kind-up": "ethernet-container-2-0:LOOP_BACK_TYPE_BACK_TO_REMOTE",
+                                "statistics-is-up": true,
+                                "last-10-sec-data-input-rate": 444840762,
+                                "forwarded-bytes-output": "1426741458691005440",
+                                "performance-monitoring-is-up": false,
+                                "forwarded-bytes-input": "4019166423930496512",
+                                "remote-site-is-faulty": false
+                            }
+                        },
+                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                        "hybrid-mw-structure-2-0:hybrid-mw-structure-pac": {
+                            "hybrid-mw-structure-status": {
+                                "performance-monitoring-is-up": true,
+                                "segment-status-list": [
+                                    {
+                                        "segment-status-type-id": 17077,
+                                        "operational-status": "hybrid-mw-structure-2-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED",
+                                        "segment-is-reserved-for-tdm": false
+                                    }
+                                ]
+                            },
+                            "hybrid-mw-structure-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "period-end-time": "2021-07-05T19:40:51Z",
+                                        "history-data-id": "H6j3QqDnO15WtVDaBPWOIuR2AbgBNgcmmvh4NVrBWwphk2rVKnBkRsmjvCMaKYxZtO38JnJxL0O537SNuu7dOlwkYiuA8TzBIvBjKcRvdxtgFdV1zUfgfDA5WWG4Q7yqC1BmekKrS5HpiuqKgx0nbstZo1V68loLn0ZBkJ24OBtZ5MJdjBAu33tj4hq5CGQZGHATrCX7djYa5znoaY",
+                                        "performance-data": {
+                                            "rx-level-avg": -50,
+                                            "es": 1978649216,
+                                            "unavailability": 1885813040,
+                                            "cses": -248987899,
+                                            "ses": -1208203719,
+                                            "rx-level-min": 16,
+                                            "time-period": 2062013896,
+                                            "rx-level-max": 40
+                                        },
+                                        "suspect-interval-flag": false
+                                    }
+                                ],
+                                "number-of-historical-performance-sets": -27482,
+                                "time-of-latest-change": "2020-12-27T20:54:54Z"
+                            },
+                            "hybrid-mw-structure-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 12385,
+                                        "problem-name": "h9dkMwF6CC4FSwLl7LeKs4uPnCrh8WkpXxJK3gIyKN5DbQYit43N9pDw1WO1K8qIy2kta21VH6qSOg3ilYXufs08oG91HzJftVIEXKrxIRpx7kHsiEOx7HFnnOo4gZbBUU7Kwyh6hyDpTcJ3RytQ705mHujPluq8gyKMY1TgroxcBg8kGBaNtfaaBtZXPiX6IHSGADOT2l6vu6Pa",
+                                        "problem-severity": "hybrid-mw-structure-2-0:SEVERITY_TYPE_NON_ALARMED",
+                                        "timestamp": "2021-01-18T15:57:31Z"
+                                    }
+                                ],
+                                "number-of-current-problems": -107,
+                                "time-of-latest-change": "2022-02-13T23:05:03Z"
+                            },
+                            "hybrid-mw-structure-capability": {
+                                "supported-tdm-structure-kind-list": [
+                                    {
+                                        "tdm-structure-name": "ti7WkZ7P6sy8mCzbWbtsnMETDPd24luywumQltFsN5AaH1lwcPYzBus7by1gLnOhR275vExbJZlj0GP5nFERaZQlxRBi6hsQjzVHekSPjd8bLXg1vVSFUISjrmtpDVfXn2EBmoiFBrRegZfLU7iGH",
+                                        "tdm-segment-size": -1490333177,
+                                        "max-number-of-segments-reservable": 53
+                                    }
+                                ],
+                                "performance-monitoring-is-avail": true,
+                                "supported-alarm-list": [
+                                    "ply28FRvInY4LhCmIlBYkQC7QMFxPxyeKYhSD0gdoei9vUo5fZWrHyypceX2Dngnlp7Qqn4OCmXZ8l5fc1GMrf3Dl0FYfOdAdkjvInjcB9bJm8Yz9wdsDg6Y9DWoj"
+                                ]
+                            },
+                            "hybrid-mw-structure-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "suspect-interval-flag": true,
+                                        "timestamp": "2021-08-02T15:29:38Z",
+                                        "performance-data": {
+                                            "rx-level-avg": -62,
+                                            "es": 1574776222,
+                                            "unavailability": 1298994180,
+                                            "cses": 1699089334,
+                                            "ses": 1487091704,
+                                            "rx-level-min": 13,
+                                            "time-period": -1020483635,
+                                            "rx-level-max": -18
+                                        },
+                                        "scanner-id": "wboqxmN1sC31tT4sL92Y5z1cN90I2ndrztJYIxRa1U4nG0Pj9Ri6ibi5kbNfySy7l953yW6AJ2Xh2MAbvS9N3kSgvFn3pVbKW8GvXE5yGUPIypL3aUQdeAlJ7IFwvQ8sQGPNkM",
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -13
+                            }
+                        },
+                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                        "extension": [
+                            {
+                                "value-name": "Dr6yBmqKXtj",
+                                "value": "7na22k7OiNgcfZ7YgXOLgNcJ9Cl6XE2415Z4p6KIL0M"
+                            }
+                        ],
+                        "configured-client-capacity": "kIlmpSOzuIHBeNhM0atMQeRHfGFSXPV9x8nW0bvuT5XZKeDKg6x6dgGsOddL20Mz89o8cLuXQrWtFsdWqCUDSsYGFbjzbX1j6pja2N7LeWeLorzG4mkOOanmdyNowOzu5SF8FETLA7wQqYxmkJ30Tie6Q2meQNJOxgW4UHPnGd5Ybudn5goYyCWgwavfPe3mmRq8yfn6lt4wXhU3xaTXEIebKJqAPlObcfbCmzIH2M6R40Mt2yjG8xR",
+                        "ip-interface-1-0:ip-interface-pac": {
+                            "ip-interface-status": {
+                                "errored-packets-output": 832205052,
+                                "last-10-sec-data-output-rate": -602673463,
+                                "forwarded-packets-input": "-9223372036854775808",
+                                "errored-packets-input": -1705246009,
+                                "ip-v-4-address-cur-list": [
+                                    {
+                                        "fixed-ip-v-4-address": "Ffgvcgg1HbAcA8x9zH4Hw5l71GGPsFbZVru7HC9gOBlgKShjrd0QieXkMD16jd66Es5e56mLIHTkzbDTovJzByTocUun7AlE3qK0x6DfOwzfz48Qr",
+                                        "fixed-ip-v-4-address-prefix-length": -7,
+                                        "fixed-default-gateway-ip-v-4-address": "3iajm4NJ4g4AjmkbTqO06crmMnmCP61Kg33C7Qd369DhvPkh889elBs7YPBFNup3xkxw3KA1L5j8NDpVEz1Z2uY0jrG6NX1kiyIlaamVgx333tQHURyWloWwPuCusvOC3oXdzj8PR4KUxstjj1fxh336qysK38m7"
+                                    }
+                                ],
+                                "broadcast-packets-output": -1152764811,
+                                "dropped-packets-input": -842035651,
+                                "loop-back-kind-up": "ip-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED",
+                                "dropped-packets-output": -971895895,
+                                "unicast-packets-input": "-9223372036854775808",
+                                "forwarded-packets-output": "-9223372036854775808",
+                                "neighbor-list": [
+                                    {
+                                        "neighbor-mac-address": "c5udMdhoZGQsZ2l6zC1uAr22b6ax5HI9E5mrivPabGuaAQ89kaDVByPNwSctrNC5SRw2mecqMHAmpJnJT0wmqe1W66hpTUuDDTFR7KhLjK7Iluj6mIsNOuBMATblFxYaiv1hfb2yV988vkeSUGxI20uuLxPq4FsnbuEixHRsIRA63GYXenFhf1D1",
+                                        "neighbor-ip-v-4-address-list": "ljv0MS38omFX5ZGWrMS7CPlRnu6g8ZPtjklX4p5sDKiIBYw2Co966uPtZ",
+                                        "neighbor-origin": "ip-interface-1-0:NEIGHBOR_ORIGIN_TYPE_NOT_YET_DEFINED"
+                                    }
+                                ],
+                                "timestamp": "2020-11-07T04:34:08Z",
+                                "forwarded-data-volume-output": -3545415,
+                                "total-packets-input": "-9223372036854775808",
+                                "last-10-sec-packet-input-rate": 1709175750,
+                                "last-10-sec-packet-output-rate": -971064857,
+                                "vpn-binding-is-up": true,
+                                "multicast-packets-output": 1467914114,
+                                "broadcast-packets-input": -300736697,
+                                "last-10-sec-data-input-rate": 72293232,
+                                "interface-status": "ip-interface-1-0:INTERFACE_STATUS_TYPE_DOWN",
+                                "statistics-is-up": true,
+                                "total-packets-output": "-9223372036854775808",
+                                "multicast-packets-input": 900421964,
+                                "data-volume-input": 2060191688,
+                                "data-volume-output": -694433427,
+                                "fragmented-packets-input": -534054771,
+                                "ip-address-origin": "ip-interface-1-0:IP_ADDRESS_ORIGIN_TYPE_OTHER",
+                                "unicast-packets-output": "-9223372036854775808",
+                                "forwarded-data-volume-input": -1458470981
+                            },
+                            "ip-interface-current-problems": {
+                                "time-of-latest-change": "2021-02-13T14:21:09Z",
+                                "number-of-current-problems": -117,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -9844,
+                                        "problem-severity": "ip-interface-1-0:SEVERITY_TYPE_CRITICAL",
+                                        "problem-name": "l5ZkKpEIUcvs0ftsJEBGF9Na6NL0i3oD9nYTEuuyyR1r7mTITmpyw4JCSmC2qSFzfvkMSGkqydRxsCflZwTvBuZlRtn9m2ItqUfiBsA1xkyZWFkNc6aFs9SjvfsJ92crPkJqEcjb",
+                                        "timestamp": "2020-12-05T07:26:33Z"
+                                    }
+                                ]
+                            },
+                            "ip-interface-capability": {
+                                "burst-size-max": 32584,
+                                "statistics-is-avail": false,
+                                "supported-alarm-list": [
+                                    "nVDGFpWnkC0Dt3GpKWpt1FECjXAeDaA05dyCuuRG6RbrUSQwG8SHNojYdL",
+                                    "byX0fG3WNHxpOMcomDUjewxBP4wkaQ3do1eDz9rmQQDxDPVRkIay6z1WDp8Ofc1v579EhsS7jwwOdsFyaHYgg04Uh5Axht2mB3SKwKRH8gneIUEKBCSJuXvM2Xbbr5xU9hEx1n62DtgdnUXQoIrTxXxrUICdN1ZOivlbLrdgMtu9fjRE1jpy8OZ2ot83uZSMv5Ygp3wbpSdE44a5nrwvfnqvRqzdpjSMoIUNLjRab4Hf0RdgbJLiY3OH"
+                                ],
+                                "information-rate-min": -1175293615,
+                                "maximum-number-of-ip-v-4-addresses": -1233,
+                                "fixed-default-gateway-configuration-is-avail": true,
+                                "maintenance-timer-range": "Tu6KSjDHO42C3SD3fP7uHtSpl6GUmhF7DDJnXn4LjZfnJSqYHpkoS4F52d0ovFn8b7w8msLFj022SlSsK4Iv8gAatAyY8OZjVnj9HWOTWJNGWy0yCJ3LZwVkYmb6a2hXps66oMRcnFLbdLKPmFAd3oq2KB0UDaR2CP01BK5ZpQ2uuMjIkMOnaepUPqGkApe4e6XPQ3G7LJB7nVIHzwXBCmnjE3D6",
+                                "admin-shut-down-is-avail": false,
+                                "dhcp-client-is-avail": false,
+                                "egress-shaping-is-avail": false,
+                                "information-rate-max": -324365715,
+                                "burst-size-min": 11472,
+                                "ip-v-6-is-avail": true,
+                                "maximum-transmission-unit-max": -8307,
+                                "ingress-policing-is-avail": false,
+                                "maximum-transmission-unit-min": 20088,
+                                "supported-loop-back-kind-list": [
+                                    "ip-interface-1-0:LOOP_BACK_TYPE_BACK_TO_LOCAL"
+                                ],
+                                "vpn-binding-is-avail": true,
+                                "arp-proxy-is-avail": false
+                            }
+                        },
+                        "termination-state": "core-model-1-4:TERMINATION_STATE_LP_NOT_TERMINATED",
+                        "mac-interface-1-0:mac-interface-pac": {
+                            "mac-interface-status": {
+                                "errored-frames-output": 600941966,
+                                "loop-detection-result": "mac-interface-1-0:LOOP_DETECTION_RESULT_TYPE_DETECTION_SWITCHED_OFF",
+                                "forwarded-frames-input": "-9223372036854775808",
+                                "timestamp": "2021-10-22T20:10:45Z",
+                                "multicast-frames-input": 2098637250,
+                                "unicast-frames-input": "-9223372036854775808",
+                                "last-10-sec-frame-output-rate": 1850177520,
+                                "total-frames-input": "-9223372036854775808",
+                                "multicast-frames-output": -431880877,
+                                "dropped-frames-output": -1060810285,
+                                "statistics-is-up": false,
+                                "forwarded-frames-output": "-9223372036854775808",
+                                "flow-control-mode-cur": "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_NOT_YET_DEFINED",
+                                "received-ethernet-frame-format-cur": "mac-interface-1-0:FRAME_FORMAT_TYPE_NOT_YET_DEFINED",
+                                "last-10-sec-frame-input-rate": 1378924264,
+                                "errored-frames-input": -1598150341,
+                                "loop-back-kind-up": "mac-interface-1-0:LOOP_BACK_TYPE_NONE",
+                                "interface-status": "mac-interface-1-0:INTERFACE_STATUS_TYPE_DORMANT",
+                                "mac-address-cur": "C08tf4krHnvecQwdCW",
+                                "broadcast-frames-output": -1402675607,
+                                "total-frames-output": "-9223372036854775808",
+                                "fragmented-frames-input": -624263939,
+                                "performance-monitoring-is-up": true,
+                                "unicast-frames-output": "-9223372036854775808",
+                                "broadcast-frames-input": -1490466201,
+                                "dropped-frames-input": 1610108078
+                            },
+                            "mac-interface-capability": {
+                                "supported-flow-control-mode-list": [
+                                    "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_SEND_AND_RECEIVE"
+                                ],
+                                "statistics-is-avail": false,
+                                "broadcast-frame-suppression-is-avail": true,
+                                "supported-frame-format-list": [
+                                    "mac-interface-1-0:FRAME_FORMAT_TYPE_ETHERNET_2"
+                                ],
+                                "admin-shut-down-is-avail": true,
+                                "maximum-frame-size-min": 3903,
+                                "loop-detection-is-avail": true,
+                                "performance-monitoring-is-avail": true,
+                                "mac-address-configuration-is-avail": true,
+                                "maintenance-timer-range": "P3rrfxGb65d2IKTR5B9k9Ov7defIXoMEjdXyDDJBAWviyp9vSiQ16l8czoUoEzUXMRnhmYTWMgekFfQpyGrwTrI",
+                                "supported-alarm-list": [
+                                    "vIl4uiIlx0HvLD91JuzYcYoKhVDJDPq0pM4TWFemFNRiiTj1fKRrJg3SbGtGnMHMqDFmiLIPys7QdjJs3ATEIWpTuSsRE1D4wajPVTwldw3qHMSCeD9XryIVi2EP39LAj4h6QF",
+                                    "V3umKg6nnKoc3WUZ6XvVSFHkYDt5l9ohcTvP1B4odsAhon8ucDi4iZ"
+                                ],
+                                "hardware-mac-address": "Yy3wMdOyDr7kBxu2cxHihMJwhfKqvTUlrPJ62yExZDKsa6umv4wNQgbZnNpSGb500P6UfKk6n4zp23LxZ9kHp",
+                                "maximum-frame-size-max": 15946,
+                                "supported-loop-back-kind-list": [
+                                    "mac-interface-1-0:LOOP_BACK_TYPE_NONE"
+                                ],
+                                "link-loss-forwarding-is-avail": true,
+                                "loop-port-shut-down-is-avail": false
+                            },
+                            "mac-interface-historical-peformances": {
+                                "number-of-historical-performance-sets": -21405,
+                                "time-of-latest-change": "2021-10-01T19:13:47Z",
+                                "historical-performace-data-list": [
+                                    {
+                                        "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "period-end-time": "2021-12-09T12:36:18Z",
+                                        "performance-data": {
+                                            "mac-pause-frames-ingress": -451522471,
+                                            "tagged-frames-ingress": "-9223372036854775808",
+                                            "jabber-frames-ingres": -1458070055,
+                                            "mac-pause-frames-egress": -1284153671,
+                                            "mac-control-frames-egress": 589841718,
+                                            "oversized-frames-ingress": 745881080,
+                                            "undersized-frames-ingress": 1145385184,
+                                            "frames-of-1024-to-1518-byte": "-9223372036854775808",
+                                            "frames-of-64-byte": "-9223372036854775808",
+                                            "frames-of-512-to-1023-byte": "-9223372036854775808",
+                                            "frames-of-65-to-127-byte": "-9223372036854775808",
+                                            "mac-control-frames-ingress": 2104869422,
+                                            "frames-of-256-to-511-byte": "-9223372036854775808",
+                                            "tagged-frames-egress": "-9223372036854775808",
+                                            "frames-of-128-to-255-byte": "-9223372036854775808",
+                                            "fragmented-frames-ingress": "-9223372036854775808"
+                                        },
+                                        "history-data-id": "5L1Y0UnwqjnaKLSHzzZjWlrzgITcI2cNG5DGRT49csjO54vwvnQjAhSQZL3HFfnlc0T3TYcXioMfs9LPoB8ZT0PKDKkaZHw3zh6l7jipHWE16iQmTQlEI3pdNJnFqTIZbPci0vAHr6ApoiMa8ZOI2dVQWine456fMipMFRlZYVoe52o52dNWiIE711l5ZjcLutq9lL0bzppwjOCdTpab8Oi1QwYHPasbDKlQol1X",
+                                        "suspect-interval-flag": true
+                                    }
+                                ]
+                            },
+                            "mac-interface-current-problems": {
+                                "time-of-latest-change": "2020-12-23T15:13:59Z",
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 8105,
+                                        "problem-severity": "mac-interface-1-0:SEVERITY_TYPE_CRITICAL",
+                                        "problem-name": "79uJYrJgbFtEXlxuPiEi4aTT0Vi5cVnk5JV32EbdbwS0Shvzz9RvbLhbyrhLnw5kfSfipinAO7Byo67Y7ZljCuu2WDFj9CvhvKzU2WuQ45ps3oibfwuR0QMWmr7n4CErmdlg2H76NoqIMJT2ffL7",
+                                        "timestamp": "2021-10-22T14:54:59Z"
+                                    }
+                                ],
+                                "number-of-current-problems": 71
+                            },
+                            "mac-interface-current-performance": {
+                                "number-of-current-performance-sets": -92,
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "elapsed-time": "-9223372036854775808",
+                                        "suspect-interval-flag": true,
+                                        "timestamp": "2021-02-09T16:52:01Z",
+                                        "performance-data": {
+                                            "mac-pause-frames-ingress": 823216724,
+                                            "tagged-frames-ingress": "-9223372036854775808",
+                                            "jabber-frames-ingres": -695877643,
+                                            "mac-pause-frames-egress": 1214478518,
+                                            "mac-control-frames-egress": -2145815917,
+                                            "oversized-frames-ingress": 896275872,
+                                            "undersized-frames-ingress": 940523408,
+                                            "frames-of-1024-to-1518-byte": "-9223372036854775808",
+                                            "frames-of-64-byte": "-9223372036854775808",
+                                            "frames-of-512-to-1023-byte": "-9223372036854775808",
+                                            "frames-of-65-to-127-byte": "-9223372036854775808",
+                                            "mac-control-frames-ingress": -277423781,
+                                            "frames-of-256-to-511-byte": "-9223372036854775808",
+                                            "tagged-frames-egress": "-9223372036854775808",
+                                            "frames-of-128-to-255-byte": "-9223372036854775808",
+                                            "fragmented-frames-ingress": "-9223372036854775808"
+                                        },
+                                        "scanner-id": "xKPn1THKXgxDuDxW4Ap5KRSaJgfcydUXPBkRnTBk91PEwestPJyrAiCbrJnRW9OEL0v8LYkUR1qofKJWu9oWrS8KBnBpph3a9qaUpmH8n7ouK7regHaAzakaqWzP5vZfV19cnQlKQJ6ARxG7eQzFTUPjIh8NMZ2zScMf27RKQXcznSztB89uUQFC7NqLEsdwwZDr6mbObogy8P2JPbdK1Se1xEE3Z"
+                                    }
+                                ]
+                            }
+                        },
+                        "pure-ethernet-structure-2-0:pure-ethernet-structure-pac": {
+                            "pure-ethernet-structure-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "timestamp": "2021-10-17T14:18:44Z",
+                                        "performance-data": {
+                                            "cses": -796306927,
+                                            "es": -2117141363,
+                                            "rx-level-max": 102,
+                                            "ses": 1588654246,
+                                            "rx-level-min": 43,
+                                            "rx-level-avg": -35,
+                                            "time-period": 797329802,
+                                            "unavailability": 1247833078
+                                        },
+                                        "suspect-interval-flag": false,
+                                        "elapsed-time": "-9223372036854775808",
+                                        "scanner-id": "ioK7V1GBPmdvuhNfwTiE6rAn92P7uEAN2kMPlsj2GwqaNdpb6II49asic9pGFZlHb7pxrAr76RiL"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 51
+                            },
+                            "pure-ethernet-structure-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "period-end-time": "2021-08-25T02:25:25Z",
+                                        "performance-data": {
+                                            "cses": -1116248633,
+                                            "es": -297334019,
+                                            "rx-level-max": 3,
+                                            "ses": -1560870505,
+                                            "rx-level-min": -36,
+                                            "rx-level-avg": 65,
+                                            "time-period": 850998126,
+                                            "unavailability": 225272582
+                                        },
+                                        "history-data-id": "AJzfAVOM25buFCBDuLpqletuLsNsT7ltRUArPg5Smge1THxftWFG20aNsPflXAGGug7cp54Lla",
+                                        "suspect-interval-flag": false
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-09-20T05:01:33Z",
+                                "number-of-historical-performance-sets": 11059
+                            },
+                            "pure-ethernet-structure-status": {
+                                "segment-status-list": [
+                                    {
+                                        "segment-status-type-id": -13902,
+                                        "operational-status": "pure-ethernet-structure-2-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED"
+                                    }
+                                ],
+                                "performance-monitoring-is-up": true
+                            },
+                            "pure-ethernet-structure-capability": {
+                                "supported-alarm-list": [
+                                    "WGJ99793"
+                                ],
+                                "performance-monitoring-is-avail": false
+                            },
+                            "pure-ethernet-structure-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 31989,
+                                        "problem-name": "erSPT1yvbg13nlywVSQjKX91YBf3X6C4xmTigsNrAPmX2VtXNb9p1iiZTxUIDoE2Lqk1SZkkGHhJCCyhGHyHRQGCntdSRRMuhYn1XIlEpufT7F2FfAm6q2JFnWpfNbJX97YYHcu6GJRFhTcwtyCLtlqQ9P5PSHM1GCRnGmlfX4UeX7Kixf30stJCaGr2n5VVHEig0vvQzhWwgzOOOJ",
+                                        "timestamp": "2022-01-19T06:41:13Z",
+                                        "problem-severity": "pure-ethernet-structure-2-0:SEVERITY_TYPE_NOT_YET_DEFINED"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-11-10T16:07:48Z",
+                                "number-of-current-problems": -66
+                            }
+                        },
+                        "lp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE",
+                        "name": [
+                            {
+                                "value-name": "OrpZHqQqdZUKFLOCtTGjNxaj9SDsZ0mNrEM8Wvr9mlL2YAwjldD8CNjMxPexPtcgZZgVmHWAUHCL914ueHuQmOu",
+                                "value": "vBrk4Ds3uIQIiMj4lNPvOUZ2BuLYa7KFIbRMGjH3TpL3348pSXMGRLBl7eb9lVO4YxIEQiHCHlFDpNU9LGIujjPjpSsKN9ODGpapHJ1g4GTuuFv7ldBForYNbiyZreu0DEpcoqlk66OsMcz7pbEOuuBFN1w6g16LxvQNVb8UhOe30O3qZH6l4H0JJpPRqOuPbkD7vLTFz7IsNLSElYZhxS08hHZznmozG1y4ErJ6qjyeXiSagKrFCjO"
+                            }
+                        ],
+                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE",
+                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY",
+                        "configuration-and-switch-control": [
+                            "cXu10ygbauKScExioBaaWcAfSIEClMLxB8yBGGFJbptnW0xktHmqTXxDxcfSYTqA1Y3zxIaI0EXWEu883uqOrXrZ9zJ0s1sl0vUp6576J4Ufq2ntwNhQDAHM9qMBs6WkCJJIGIGhMsw4uMxSrGI48p"
+                        ],
+                        "fc-blocks-signal-to-lp": "InLauAm6b5GRFe8jGwn",
+                        "air-interface-2-0:air-interface-pac": {
+                            "air-interface-current-problems": {
+                                "number-of-current-problems": -96,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 22294,
+                                        "timestamp": "2020-03-03T20:14:03Z",
+                                        "problem-name": "UpQjTQv6MC65Wytf6f2Rx3lDsdzOjYDeflp0bM7PhdNdM8sKnntUqOpK1YrcP4q4hH5kucaDhXQV5bxky0eQOwAHu1UbXcg6Mdr8pBLGqtunE1z42NMIbfiG84R68ZcUcD2B6NaohEDNxcKzSwa3LkBUotSwk",
+                                        "problem-severity": "air-interface-2-0:SEVERITY_TYPE_NON_ALARMED"
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-03-28T17:29:09Z"
+                            },
+                            "air-interface-status": {
+                                "xpd-cur": -82,
+                                "transmission-mode-cur": "HGpLMiy0Vj5OQVpqPDf5GYwtci7RB2iaAH",
+                                "rf-temp-cur": 107,
+                                "mimo-is-up": false,
+                                "tx-level-cur": 111,
+                                "local-end-point-id": "NMMdgmaRMidotFHjLrehBRcxRUbKNiGAWkN4GPVk79BAGiMrJSIcKMJtyM5m4DOSXuXwbKQjTrLrBpScisoUfZfNDk1zYIsNchjn12yNtce5B7hLryFGpUm37fCXXWK1dWp7YPUr10ov7ygr6OZnIl",
+                                "rx-level-cur": 78,
+                                "link-is-up": true,
+                                "performance-monitoring-is-up": true,
+                                "xpic-is-up": true,
+                                "remote-end-point-id": "HBVEqRhsXdR4byYusYTXYj5hhTgEuuXb5SQnB7Pycyun7sRzjCo9Ntq4nGBRay27iKvLJccVLGiS12jkwHtkaLgxrRguhbtzVQlF3xAO5Ly6FRq3yLnAww0QngcFrF6fwjUzQmfWZN2EElI46XwvtwdJNpo64mlsG71ou8clV70rsAnqxUNTq0C",
+                                "received-radio-signal-id": {
+                                    "numeric-radio-signal-id": 40237,
+                                    "alphanumeric-radio-signal-id": "TzlITbG5Z3SjdUwoSrBCHLFLYvfCMeGxG1gz4OE4KxfXjLd35OFMrcqqIx2uMAUkBaTFQyBAXJpgmCjrqQeS3waD3"
+                                },
+                                "auto-freq-select-is-up": true,
+                                "tx-frequency-cur": 1634867154,
+                                "rx-frequency-cur": -972642269,
+                                "atpc-is-up": true,
+                                "radio-power-is-up": false,
+                                "snir-cur": -67,
+                                "loop-back-kind-up": "air-interface-2-0:LOOP_BACK_TYPE_RF_TO_LOCAL",
+                                "interface-status": "air-interface-2-0:INTERFACE_STATUS_TYPE_DORMANT",
+                                "alic-is-up": true
+                            },
+                            "air-interface-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "period-end-time": "2021-02-27T05:10:59Z",
+                                        "performance-data": {
+                                            "snir-max": 109,
+                                            "unavailability": 2092122734,
+                                            "rx-level-max": -118,
+                                            "xpd-max": -44,
+                                            "ses": 1760228322,
+                                            "rf-temp-max": 105,
+                                            "tx-level-max": 56,
+                                            "es": 887824306,
+                                            "tx-level-min": -106,
+                                            "tx-level-avg": 97,
+                                            "snir-min": 109,
+                                            "snir-avg": 116,
+                                            "time-period": -1920083029,
+                                            "cses": -137884981,
+                                            "defect-blocks-sum": 8408,
+                                            "rx-level-min": 3,
+                                            "rx-level-avg": -71,
+                                            "rf-temp-min": -102,
+                                            "rf-temp-avg": 65,
+                                            "time-xstates-list": [
+                                                {
+                                                    "time-xstate-sequence-number": -126,
+                                                    "transmission-mode": "kowKc",
+                                                    "time": 2025098158
+                                                }
+                                            ],
+                                            "xpd-min": 78,
+                                            "xpd-avg": -58
+                                        },
+                                        "suspect-interval-flag": false,
+                                        "history-data-id": "5KQ0GknsXgpeTCAhPVwkB6CRYCFhVyKTisTRM8jBoIH9chrT5PdG"
+                                    }
+                                ],
+                                "number-of-historical-performance-sets": -9353,
+                                "time-of-latest-change": "2021-05-27T09:34:05Z"
+                            },
+                            "air-interface-capability": {
+                                "expected-equals-transmitted-radio-signal-id": false,
+                                "duplex-distance-is-freely-configurable": true,
+                                "supported-radio-signal-id-datatype": "air-interface-2-0:RADIO_SIGNAL_ID_DATATYPE_TYPE_NOT_YET_DEFINED",
+                                "rx-frequency-max": -1414694323,
+                                "supported-loop-back-kind-list": [
+                                    "air-interface-2-0:LOOP_BACK_TYPE_IF_TO_REMOTE"
+                                ],
+                                "direction-of-acm-performance-values": "air-interface-2-0:DIRECTION_TYPE_TX",
+                                "adaptive-modulation-is-avail": true,
+                                "supported-alarm-list": [
+                                    "uNwmh1xblERJ5wPNeD3Iu6TOFWPA6y0AdoWmplyDShePN3C1GyC2EnJbjyMhYMJ32xqkTYXDf3s27WWFuyA1Vjc7JYoIC8LFFbZq1OVgRfjQc7wyF6zshMz0KQInYmUvpLOrzJHiZS",
+                                    "ChqpvDKPJexySDxzEiHBMM17LpOVBcW5memJS6qBcX15szE7JdIn0BuDTarmefrAuNjmLJPXzQU1hr00EAnw4R2XTtb8ICI4hUi2v7RWQMQ75Q0Jrn8v72k0vv05ZJagvsaSsTPixxhCnheGFm3EofELKFQJgSRDd1vFNcPkJ6XZobFVpBzFQ5qtC84STWn6PTDCXkXHqMGGXdBeGaTx8b0Kj4vcSSaIDFcBZ1aqNI6CVAQuCB1K",
+                                    "Tv6P0aISdioSuZSw1abJ8OwIw0d0TXMMsKCkNc50utKYkCmlEy4NesnCtACeqh1S1vdGHiy3Dj1XNgasO67UymwTP18fi17bwcK5mi8ZB1Op9YJX4QJD48wT9w8jx8m3c60rp",
+                                    "rZPrc6vMNpQ5tmIzthcQa6qWWTUTgv0AmQ1rWpdBOWHhapIDyMlILDwHxisFNkf2a9lYyyAem9owy617TnHw0edpwx5cRc6UlrSLRkSelgKUeMTZ1svTGAj57g9ZkfLyGvjxQ3D3jgXyUIpV",
+                                    "VOBvZGv7Pms470CCb2kfFoqNdQHOguRbbsya13aQ",
+                                    "qS279b5S1aACFFK3qLAr47zj3Dp34G4nz6uA9zt2BVFgshkT3Uk71Li4gI0lg4IP24i3DL67yDn1UHMXtYXvJ",
+                                    "3ZxBwvbZMXqMzgnW6JIu0tirUT1dKTeFLLhh8kgU9HGIP3xWE7qxBAYvlZA6LOLwrUFz6Wlfv2QcXf8umq1X0RlmJVkmCXSVSpnQdI6ICOVsVVWhmP7eGkAh7UDBKnxuNMk0miBZ6orTjf3x4aMCmeUt1p5LNufs"
+                                ],
+                                "tx-frequency-max": -470714075,
+                                "maintenance-timer-range": "vMyXlcdEc7VGUG0GVpsWeGCyIh0UZKmuwNsKZxobEbJqKK6F9ruf76NHnFBfpQJOD3yuAOG60hwK1vhbWLqVJeC7T5ebVPZqTpNldlkdCQPEd7P1K7WudqtZwHajw",
+                                "transmission-mode-list": [
+                                    {
+                                        "transmission-mode-name": "668ats0mntmCUGX0m7FMFVSlEXu1D6ZB47MpzELO80i2y7VU6sHMf",
+                                        "transmission-mode-rank": 1029159214,
+                                        "supported-as-fixed-configuration": false,
+                                        "am-upshift-level": -36,
+                                        "tx-power-min": -122,
+                                        "am-downshift-level": -123,
+                                        "symbol-rate-reduction-factor": 36,
+                                        "channel-bandwidth": -281373697,
+                                        "xpic-is-avail": true,
+                                        "code-rate": -111,
+                                        "tx-power-max": 86,
+                                        "rx-threshold": -30892,
+                                        "modulation-scheme": -5180
+                                    }
+                                ],
+                                "encryption-is-avail": false,
+                                "duplex-distance-list": [
+                                    381145436
+                                ],
+                                "atpc-range": -94,
+                                "performance-monitoring-is-avail": false,
+                                "auto-freq-select-is-avail": true,
+                                "tx-frequency-min": 276704786,
+                                "rx-frequency-min": -198178981,
+                                "type-of-equipment": "T1qEEBTZsQreNvPHBwAN7K0BvItSju1cvsQ1VB0frjt6OaNqGf5GR5",
+                                "atpc-is-avail": false,
+                                "supported-radio-signal-id-length": -8798
+                            },
+                            "air-interface-current-performance": {
+                                "number-of-current-performance-sets": 0,
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "timestamp": "2021-11-06T18:58:09Z",
+                                        "scanner-id": "c14d3TnKedQLEn2CXmmYaJgr7W3bV3P74Td8NsK1xsEcHyOEU2vXMDoLzjWmfLlbEqbjTVcqfIuXgjt3lY0ZBgK2sygHjuSQU41FReY7WsW5Lh8Zg0YJgBEI9Uhlg23364IPaGOZ1C4MU4D24uLkXh364kjkmmnkj62tEIsFlok7sP9wjMR84M78YqkdFIxYGrjcaEKn2",
+                                        "performance-data": {
+                                            "snir-max": -96,
+                                            "unavailability": 1429619344,
+                                            "rx-level-max": 9,
+                                            "xpd-max": 72,
+                                            "ses": 98259972,
+                                            "rf-temp-max": 118,
+                                            "tx-level-max": 115,
+                                            "es": 1138654458,
+                                            "tx-level-min": -20,
+                                            "tx-level-avg": -80,
+                                            "snir-min": -49,
+                                            "snir-avg": -91,
+                                            "time-period": 2092634072,
+                                            "cses": 2045796578,
+                                            "defect-blocks-sum": -8749,
+                                            "rx-level-min": 102,
+                                            "rx-level-avg": -70,
+                                            "rf-temp-min": 26,
+                                            "rf-temp-avg": 13,
+                                            "time-xstates-list": [
+                                                {
+                                                    "time-xstate-sequence-number": -109,
+                                                    "transmission-mode": "3vj12pIc4eQmfR3a6a79YJxI26SQg5ykAKlu9Wzd2hsh8nj6yrfoaM64SQU1Vkdn4yS6mjbpADGI10Orj4PtINxBDjurDHOA7GGuZRLrnj1gbQHuMwXmbuXOFj7j0WT8urCmifNFyPVKxuebScx3ynKeGRpHNaPiBjELyjj686QFBXQ",
+                                                    "time": 1464622502
+                                                }
+                                            ],
+                                            "xpd-min": 43,
+                                            "xpd-avg": -72
+                                        },
+                                        "elapsed-time": "-9223372036854775808",
+                                        "suspect-interval-flag": true
+                                    }
+                                ]
+                            }
+                        },
+                        "label": [
+                            {
+                                "value-name": "0Fkg1IPACnwgG7m6qMcf4XpcHISb1GWUdgafYZHsedJUcX0CK5KO291BSLELrAFEIHLyyk1MxCGJzzebEYSyZL1JwxnP72lHC7far8XRKvsc4ynAof0g01Zoqmdphz6LyeVZmKI7g3bcByN0ON8GH757maxvJvgh",
+                                "value": "39YOJXWM88gGV8mBgVan0hB2G6M4e3Ni4LYOAUsI2IhQ"
+                            }
+                        ],
+                        "is-protection-lock-out": true,
+                        "tdm-container-2-0:tdm-container-pac": {
+                            "tdm-container-historical-performances": {
+                                "number-of-historical-performance-sets": -11424,
+                                "time-of-latest-change": "2020-05-24T21:18:38Z",
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "period-end-time": "2021-11-01T09:56:33Z",
+                                        "suspect-interval-flag": true,
+                                        "history-data-id": "9uQOQe30KP52e75Tog0JnwC112i89LDaflZ5zUXcJU6PTcBhkt",
+                                        "performance-data": "LSV72m1ss3KZ2Krok7HRn0kvMcXt76fKY2RSoLkJGXIIz17U8OLnHXKtazO9F3Tv5DnmgA5WpFEYGDKGko31lNmneawU5qp23Fojfl7E0Luyhf6"
+                                    }
+                                ]
+                            },
+                            "tdm-container-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 10318,
+                                        "problem-name": "EU17Aq3fbqdjupyyM2idAPC62n0BOMDsyEz84ug7MtqgKYPw0ZJAOdzIArbh5OJDlbLhF",
+                                        "problem-severity": "tdm-container-2-0:SEVERITY_TYPE_MAJOR",
+                                        "timestamp": "2020-08-08T16:53:23Z"
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-12-06T02:46:01Z",
+                                "number-of-current-problems": -29
+                            },
+                            "tdm-container-status": {
+                                "loop-back-kind-up": "tdm-container-2-0:LOOP_BACK_TYPE_NONE",
+                                "performance-monitoring-is-up": false,
+                                "interface-status": "tdm-container-2-0:INTERFACE_STATUS_TYPE_DORMANT",
+                                "statistics-is-up": true
+                            },
+                            "tdm-container-capability": {
+                                "performance-monitoring-is-avail": true,
+                                "supported-loop-back-kind-list": [
+                                    "tdm-container-2-0:LOOP_BACK_TYPE_NONE"
+                                ],
+                                "supported-tdm-container-kind-list": [
+                                    {
+                                        "tdm-container-name": "1K11VOuC3Hrvo70w74V40GpadwTgRYgKI9EvY00THrh5r9Cqdxud6Tnbh8r16zLPJpczpck7EB4XCGfP6J24uhfMqyNo8q5JQia7uu60YbPAJ4iHNkLauSOMrtarTg2BqcBMGHNwSu7uzpbeBPo5H4J0xUjj2lUsxn6e5TKPgJjP0n",
+                                        "tdm-container-size": 736476538
+                                    }
+                                ],
+                                "supported-alarm-list": [
+                                    "epDxu6LSFttKnxnza7sj1ublIi8Ua3bosONPNyzs124hrrIuqaNjxQw78E1jzcz2SnJFNaZHd3YwmG0EINX7wleE0fPzjhtcE4JjfJ0kEQQToRx7wn62IlzIsgaMxvY3AznPaf9P6ZAuI7tfms95NIFfZH1wdRANrPuB4viamKx5KSc6kl3ZWJ7Vi0jvSLabAEEx9PHwz6tjZFib0lbOWiBfiVK2yV51rKyBz7",
+                                    "06sk57C8ZXbOMlh1E4DyDyEw0o4tP3sP9M16TDfKtiqfEI8aMLIhcmN4CJxjNR9WDa3oGa09sjg61o8F1RXd5ChImG19p2XU5SaLUbUfu2dnim2jdRpiuGSQfMREGGrLzBwtMiI8kWvuaqOnhdxDLilS44pKLQokrUF6dgep4KUe2AtbF0PqiabefAR0qfcR9JXeZ4wVOq1ISuTxvIPFL0USALK00WK1xz8pDEkjWm1OQVldv2"
+                                ],
+                                "admin-shut-down-is-avail": false,
+                                "maintenance-timer-range": "rLobMO557ZrTjYhp4ebH3rifgjCbNGn6rMh5se3rdukoktOhHZQDi8KyjeBYUZ5dDmj5BmwGII524LbDK1g220sl6Vk0U"
+                            },
+                            "tdm-container-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "suspect-interval-flag": true,
+                                        "performance-data": "hwq871WlsxNLI4QpGtCR6Lo02IfKb6asCABCtpPVOCyxzoOfRq6Q3mI6XXI83SsysV2Od",
+                                        "timestamp": "2020-10-17T19:56:53Z",
+                                        "elapsed-time": "-9223372036854775808",
+                                        "scanner-id": "qUye9iw70AmIGjxors8L0sH"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -63
+                            }
+                        },
+                        "address": [
+                            "AxLQkXrlrNrpjmldjc9IaLiVDXOvIwuj371f4lAw0UNj80ordx1nacjO97bJvxUz"
+                        ]
+                    }
+                ],
+                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN",
+                "name": [
+                    {
+                        "value-name": "BetyJUdyL4N3aj702nbpH6jESBKNXqZyElZnf4VS0ANaTV2Oae5Skoo4Z9RXzIn53etajg2jJIuuDwaFC7xWvWSn5",
+                        "value": "cwkrBnGWyZ5saOaEaF3llFsKuQGmdDYh1aIDxozXfEqq"
+                    }
+                ],
+                "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                "physical-port-reference": [
+                    "c942beda-266b-a670-ca1b-e78a3653775b"
+                ],
+                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT",
+                "extension": [
+                    {
+                        "value-name": "4sce5fjjxec3Ro43WFLR64Z9",
+                        "value": "ijZquHvWLJ2SUlh0xdRN9MBPplVuc4runqUJZhGKSADMNUEc7oZ92BYsWLW0Hnu4FgFFqlhiNUXAHBMGZMP2fFu3ii3ZFpVkxBRXO9gCV5cuGR3GvSAKq4FIeAITZv5o6XmV6upTzBo7krNPbfrBb6cpyMaphgOg52b3wAWX3k4oDK5PZxi3"
+                    }
+                ],
+                "ltp-augment-1-0:ltp-augment-pac": {
+                    "ltp-augment-configuration": {
+                        "connector": "07wpeqzDCeErNGQsYiiaCfzpi0iDsCNsCbRIBjm5pSw4q",
+                        "equipment": [
+                            "c942beda-266b-a670-ca1b-e78a3653775b"
+                        ]
+                    }
+                },
+                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY",
+                "local-id": "CNU81MymgoMUQ7zdO24Pw3HrNW3ytTz5ytdz7DVn1HaJGJXmMT3aOKutGx21it7QWch3QcjJLttr4iNQ3RTKBn5aMZb4siMov3kd7vOSY9j2r6LnPwZjL4tx4wtoPfNcaZhhu59kfkeyiRV8nMr8RMxNi0bZ7Q3hPkqbqzvxTC5ctTcRFDRohh3zhfzh5CqNXRQfqeEcQJgjus2",
+                "fd-rule-group": [
+                    "5ea42646-26ca-afda-19a7-ad7f7cc924e6"
+                ],
+                "label": [
+                    {
+                        "value-name": "s4v8ZIlF251SEnX9debfXGNd7CtMULYnHlnH3IeYFfIjCytIMwXBcCHj72X1NWou9D35lh31wDc1bxJ",
+                        "value": "3yj730ra2gb"
+                    }
+                ],
+                "transfer-capacity-pac": "V0vDZ4kAXD4MDa5Bka3ArdqcjjiI1GpWGUrxQE",
+                "external-managed-id": {
+                    "manager-identifier": "R8HzC3a5myr0GsuISD6s4QP",
+                    "external-managed-uuid": "z3O4XEGOMffgjqdFQEypZ27Ry5bCV0Vm4BrTfZzTfO1y6f5XTvmSqlBYqMAlFnHBR0u603SfJTFQ"
+                },
+                "client-ltp": [
+                    "c3794728-dc8b-5233-0c67-0b857c32ada1"
+                ],
+                "peer-ltp": "bc478ce2-7d3c-9c53-dff2-7724bcef25d4",
+                "ltp-in-other-view": [
+                    "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                ],
+                "address": [
+                    "DtqThGQjJTHbPw62BmFdsmcZFfu1Ayad2sYj0OvBz4MgBSi47Qhz4tyJB2DbBNgD7eO7UbAtgmJR6UVdC4MGxcq0f33IIjdHp1Gj5gElug4saRGMVkskpKdEFgefArWRku3pKHC6Xyz7h7Lcj6pIICeoSsvkTkc6OfnrO0xMqYLI5pMpvb75NmtyGRKsbWyR3ViSNIw6G9OEyA3"
+                ]
+            },
+            {
+                "uuid": "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5",
+                "embedded-clock": [
+                    {
+                        "local-id": "0b7BoMdU78PGiZPZmPfboWaxHcsgTLSLXZfdEs7LsPjKG8C2PJ56GfDfr5ndI7Yx7dKDxKgSzzufz69pQevot0vU5S7F0YdZ3XuBHKl8jPfKWo9ECw25wpSt9R91Hm0LbmeL6zTho12cp3Q2AKZ61JsbtBcaP5V0r1DyApPZqJ3HNUBnwBlycNJFgNQ5SDYcFBCfSj6i320QWt",
+                        "run-mode": "core-model-1-4:RUN_MODE_LOCKED",
+                        "phase-aligned-clock": [
+                            "zSzgZS2utSYSlt8xN7dsLeEaUA9zvWk4GUcxEe2ZYSSkdSR1Z4lDaRNXjWoOKJKivOQ12K1TCLdPDWIu0W73NN0ZBoNeZqwmemo96h2A27ix3STVO1YuGQth78n6yUlN8BOfSQHMXZb0S4NyXM2Dun"
+                        ],
+                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                        "encapsulated-casc": [
+                            "7gK2VHHr"
+                        ],
+                        "name": [
+                            {
+                                "value-name": "k4qK96lOm9wsTai5HTzWETVWOXOELaBX61If734u4sOYu6VbRv0vgVk4K0Anabkh42w4Ysq2Ne0hcOt3btrrgLnSDPfO0rXWml0kOqetw7KIV5M6y5pGQEqttF9lZ69lsax8sLBZSdzFjdDJiUq0yQuTov",
+                                "value": "fugAWq7WKKpBvCb2NgGxzsPzTxVMVrT2V9CJrBx3eWFJqID6YbDxEs7xZUbNl4P85kJoVgs147CnPgtFr6d5qcuh6G4kCMkA64YTciVhppE6FZM75R4nVzET7B5"
+                            }
+                        ],
+                        "encompassed-clock": [
+                            "wNGXI905EEivmT6VhHw7H6zURci3WJPspvi7wi4aOey27EYhlugUAIOkU7nII42ZzkZ5u38jaGd9kbqyyzs899kV8IDQMFIeSHbmCbxMRLW4WeumNWvWXHJ5hmO4UwaM5d0Hpyu8bq47EymknR8cqSiI6YE0mOErTF0a5ubgMffj"
+                        ],
+                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK",
+                        "extension": [
+                            {
+                                "value-name": "nxnuZecK19E5FzKgnkMSayIwii85mLqBiN591aT3bp0QQD6eXKYZaHwsZExdhXOrCMAwOmrZLjPuWNILxGDzf917FqkWg1fSFPot3PsP99bXWTBlreUzfNGU5SIlTXeyEuTIclpluAailDDMRxdYcTSiMsDxhJYOeRwq5NDrfNKAjne2Vs17lLhZeVx",
+                                "value": "EnbKezajmFLBln3EKiGxKHxXtOPzJeWgB00Pz31OIEh31lHLvgb7XI4ioTR0"
+                            }
+                        ],
+                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL",
+                        "label": [
+                            {
+                                "value-name": "nqblm26yk1PCjlIYkmXh52w0tbMsMR31",
+                                "value": "fmv9s4tmL5F7GvjUtt0nZSQ2wiOodPps3VBoZXKC2hJAMVvfonCffkiMu62IOr2Jew75tJIn0jYNetUuQpKXBUB6SvOyXIi3eh9H1R5123G9otD6Sf3l9xr227sRQKV424E3NBWHwvQUYuSIBV3D"
+                            }
+                        ],
+                        "encapsulated-fc": [
+                            {
+                                "uuid": "ae5ab176-ed11-7669-59b8-ae752a75fe04",
+                                "service-priority": "-9223372036854775808",
+                                "supporting-pc": "m4OWJLn424Eo9eZRQNA2UN5ChEJXJAHXEwTg98cccQAdWs4E7wH2jMwAj7x2H7ZevKuETGQXprblL70SEzMXliqwqPyZWpdr2H6NgOCF7NSSVKLrjxgxIG30w",
+                                "layer-protocol-name": "wire-interface-2-0:LAYER_PROTOCOL_NAME_TYPE_WIRE_LAYER",
+                                "forwarding-direction": "core-model-1-4:FORWARDING_DIRECTION_UNIDIRECTIONAL",
+                                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                                "name": [
+                                    {
+                                        "value-name": "9BA52cMbbVcy7ElzkL4XeQi87ZZSK3CTE4ZygDBjqFRqj4ZwQVl4ED4Du3oe708DWZ44CFn2l6kwak207oWD11hoWFCVxCzlBDh5aE0vKk2UEW",
+                                        "value": "EcBh6uqujX6emJNHciYituiQ6CK19HGNT94ZwntPks3H3Jgf17xmBPdIsXBBw9oiik9OzDvUXzt0aJf3QNqkCv24kDxREN1W0aDzF0tCzOCJySNgx5A1Au6U7vDDjwsjH5Sm5eZx2t8sdVBKSbMsGKfF7KbqhD"
+                                    }
+                                ],
+                                "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE",
+                                "extension": [
+                                    {
+                                        "value-name": "jGXf7wAL2paYmjo3yPg0XXgHrLWj38WeOMtWa3zdlBbzVrulgKd5zuMS7A42IShxwKlHGUUTwXsjpWwxzCv069L5KP7szoR694FPZzAno2",
+                                        "value": "FQ4dhyAaEJVJtCRO37x1gCGXt7xQwrgbacgjLQthAg1VKKBOR9P0DoX6vnW1G45Qgl21cvjEEcrgO3Wx4ExH2nNxCBziFE1VR3P3y8z4k1l0W9xSN5zPkenWHOeekf1biQ7JQyF2r02f2A7PFyFRMUNlATrU1tXbbWU2vA4Ws74uHbceKR5oDKKdD37wwWIITCCg4G4pF8LekXs4Gpkj9WwF0vbwkT6doAlk9pBOyn3KcnGTN0cOXBtX6xl"
+                                    }
+                                ],
+                                "fc-route": "KIumwnBiG68piUiyW8pnEZFU78iRMe1oWvLkLeCrkCQvo0Vl8cIMcfGbnR2953yTrb54hInCc5ZB5UWd6w0aEym1hg3mct7vwdzNNWhZ1gAY2ob1N33rupkLyn0CI77eky27mjZfsr5uIgnvcrOGQ8jgojS6jRlDhfDvyuC0VHnDQK02bOAUPT2d5NbowwTODob4SO4GnjbdWc77SHTHtWMqBYO7mzN0YZ4IF0o2ks88Ef7",
+                                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE",
+                                "configuration-and-switch-control": [
+                                    "6Ye7yClR45Kz5eYRD3t2pbv33suQ6eC4cQ3Ltouxm67rkXaX1DRiGelCzIsFW4C0NFD8W7Fa5EBquLfngZFXdTrMBTkpQOpvl3Dh2aj8HUqbxFqGwXvCQWgjHAIpg0UCVp"
+                                ],
+                                "local-id": "NNBzyYbHEVGGaM1eXtei5kyIwutomrk96VBFTMepzM6Jz7Pos3Gyff8LBC1X3l62hzH2dVsMAqn9pcpK75amci0NU1CQfBSwazqgmK2W2qXsue4CceYowQ4rKGhZ91nkANAOyuDAU",
+                                "lower-level-fc": [
+                                    "9bc11e2d-913a-2fa6-a64f-f01427c75d88"
+                                ],
+                                "fc-switch": [
+                                    {
+                                        "local-id": "Phh0ATUgbJ9UjrAT0MxM3ckiWm4m3q7SHgKaaEqlfrfqTIjLuRpx3JPR6Td1bkLTBn3D2lY9M6AxOTbaCAHxkphiaubmHWfajaNdvDnhJPHpISzds9CEqTWAo7OXV37f5UkApzS9orqZj0cD1OirA61Y6IN1DU8JGtj5236ruxiFpujqatRKzKAFkfHY9PHH",
+                                        "wait-to-restore-time": "-9223372036854775808",
+                                        "profile-proxy": [
+                                            "mVzd8nj056ECafCQPG8qEQ5ArRxuUUCgHblQqFInDeRNumwj2EBGmy9OhGacBMkaPG08dAvIPnwbJ2mDyXkMntAE1CIuo3F6BxeO8JoPYUSHOede3x1qStWT6FgmAVsbsyRsifh821QIf3XasQAcbpX94dwE8QHtpyV"
+                                        ],
+                                        "control-parameters": {
+                                            "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE",
+                                            "prot-type": "3v4pQG7ghetPbonxZ6clmIC1K7uSN3CRyG8gegxvm0kxgHWfF9s2J43t4plRkPASvJ1BZq6diiCy0zFxA7rj4nM8M0ZZPAJdbKO2aNfs5RSXixvSFW3JbIRYAIPhayulbbnlQuGVeyLwY8h",
+                                            "hold-off-time": "-9223372036854775808",
+                                            "wait-to-revert-time": "-9223372036854775808",
+                                            "network-scheme-specification": "ce8UX6uxNMIl8VwbjK1NiP1QAqGIzbELpMGeK2MxO"
+                                        },
+                                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                                        "switch-selection-reason": "core-model-1-4:SWITCH_STATE_REASON_NONE",
+                                        "name": [
+                                            {
+                                                "value-name": "0Fd4LwqaO6zahRcCAPbdhJxxivGZcga5V",
+                                                "value": "1yLjJrhaty2F2CuePMPnj7SR6X78UUnVt0e4jweMWgsZTO5AAUXLTIvZxu0rpneKgkOzQ2mFjGw4uB"
+                                            }
+                                        ],
+                                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE",
+                                        "switch-selects-ports": "core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL",
+                                        "extension": [
+                                            {
+                                                "value-name": "QqQZLgSqw3IKxVPcYlbJGrtqMdM4y8npreg4m9vS45uCTkOJxSkdjFw5Sa1jjoICCYGQZ3I415yUhevO6QUhviegsfzLE9f8ZWZZ",
+                                                "value": "zV0wtMNHiCG0oXnG4D8j4MP51Q5XHWP8RHFcusTEWrwkhTSlp1wtFezG4wwDsdLbUqngL8MHAiUJcM4tFsWkGnTCLhfduTogbLxWUjwmui5G411ClXOUdHwYYE4kxkBIY0xKj36Nl3lhWmLhcA3h9A7063cvoN5eNCYZxWEKR02NeFWi70r9sz9qClVS106OvWN2KkNBcHgqe5BmX2vptwP6JCQKuPrZ"
+                                            }
+                                        ],
+                                        "prot-type": "hwg9TfN1grSdArsiRLr1VDKBNvSytsDKZULS1zTh0Dus5WLOAcPnHzYu5JVqby22kNUlmGDebZH8OsWoEDDd5tI2cvsg3uigh5BwDeKO6rPULDahhNvmg5otAIBvcTLlQnRttCazVZtHuDQDilZzqfUSXv",
+                                        "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE",
+                                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED",
+                                        "configuration-and-switch-control": "F5HH6pimk7wEXZQ0oGak",
+                                        "internal-configuration-and-switch-control": "GYUoFnN5ieKnWkulCIyJ6cy53ylBIFuoDgNa",
+                                        "label": [
+                                            {
+                                                "value-name": "XnuIg457BA72Rn8Bvsh4bjiQuYeqtH5q4r0cv6b",
+                                                "value": "yb0hq8SVs1ZDcilH8z7Bg4TcvMg0KsYiDYz3YjYrcP4oZi58R5B01v4xhlp1NobieCddN3wZSsnKKlSuqtm"
+                                            }
+                                        ],
+                                        "selected-fc-port": [
+                                            {
+                                                "local-id": "wOTuyrGA78xsbGcINjFvIFHlYml12u9qb3UJmsbtAJVDhZe5aTsTq26hosiiOjIZeCBA4M3wnQ2FHgKS94Dr6JIu30MKcmJqQc1MZWbmNd1mtDeuIJVGlE3gwP0I4C1UOUHNQSav53SqzYU9AHPVdSbKAckEOdyu77iQRkdOnXeWW05oANjNFmxfyKTeXkJ5jTNbd0ZsY6hMYe2y1lmzHLO8vAelMPi5I58NX08N6pr4vtvxOR6ouMo0e",
+                                                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                                                "name": [
+                                                    {
+                                                        "value-name": "d0svY2s6Qp6Y54fw1K0w9Gn7WRUkJ0XO1hjRjDP13WR0S6wTRopSXE0LoM67MVOF47ofDehy28yU7WOQd5IaKIV8mT71GVGKV50yb96d9w7gsN6FTPHDpvLEoKFXGlHtiz1tIZGSvG0Xl7veOcJ5HmJY7oVNCu8MW9gw0OgvmhkIgHW4Uy1tULr11eGvBOixPq3P6kctBpbR6ZN0xOmkrFllU2Q",
+                                                        "value": "I0UyqXfx9sSCR3lXU8QkP4E8JRlDL40u4UUnK9MTBEokzJilS0Fz4bzN3VjOZba3Y4iIe4tHIR29tcvdcaM8elVh86X7i8384lQiqbS0VUao6FBaPfa3s5cB4aIe"
+                                                    }
+                                                ],
+                                                "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE",
+                                                "extension": [
+                                                    {
+                                                        "value-name": "nZL4BdgJ1IkvNgHYGz",
+                                                        "value": "UIhMe2Ie3QQi5H39j9p228eyNufM2OVPo4BvYbJ1TrcZ878jgqdjyrRdN6"
+                                                    }
+                                                ],
+                                                "logical-termination-point": [
+                                                    "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                                                ],
+                                                "selection-priority": "-9223372036854775808",
+                                                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY",
+                                                "port-of-internal-fc": [
+                                                    "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                                ],
+                                                "label": [
+                                                    {
+                                                        "value-name": "Lme74pp7hp23zi1eLbW0lRli4We6wsgaOmhKLGS25U5x56LQ9HJmzWFvSLtgeJqU5zFJ7pL5bJCgPnZZXAdowSTgwmwKXPwUo3DwshBE0dMHsLypdMNJwyR2UgEJ53wt61Zris5aFRS0vipI4dktLbvyr29w5FSbzJCRc",
+                                                        "value": "UJjEJOW1oTeImRMJh5LjCQYm2p5w9963LhHu5vvlgBWClImCN7VhQMvS3BgcCefnvOKsc7OsJC5WcjqZie980ES3718C"
+                                                    }
+                                                ],
+                                                "is-protection-lock-out": true,
+                                                "fc-port-direction": "core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL",
+                                                "fc-route-feeds-fc-port-egress": [
+                                                    "Ix0kLrM02O9"
+                                                ],
+                                                "is-internal-port": true,
+                                                "role": "g1n7geACICbEtxdY23BlhtUzAGsqbIjrBGyKN1mvvp1ZW6PR2icbLYKeE4wHEP0gwz0bseyXDAOsyDjAWnLzloNRsbq71qfpZ7Ajl89QAXi9BBBpYfYbDEUXPkWQLb7CaHWnQXeiUwjn0VMY2D2x9WuY9rHUuOwFok2698o4FIjxvYnxBp4CeqsnJ1heQFL6SFc1OsXlah",
+                                                "address": [
+                                                    "bJ0GHchB5INWJU523n"
+                                                ],
+                                                "fc-port": [
+                                                    "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                                ]
+                                            }
+                                        ],
+                                        "hold-off-time": "-9223372036854775808",
+                                        "switch-control": "core-model-1-4:SWITCH_CONTROL_FORCED",
+                                        "address": [
+                                            "zRC803m5wIUy5b2B00duIXYpoY3vKjVj2yr2tNZRoThl4bXW32iMZh3g76LRhy2kYtej86awZsSWDHKHJVlA4oQbvtUE2WY0h5kpbmO2OyYs7B1IomisK1D7upMwdCpmHBLSXrVMR"
+                                        ]
+                                    }
+                                ],
+                                "supported-link": [
+                                    "XhZfkpVKXjzsVqgcBXEcfVc1x7riWTnM2f1mwOYt0xNVP37jSEv7zz1Yyk8mdw87D2t9IjuIIhEqkDJ49e4IN5ylhHHu5IBICWRk7l3PuzfOcY"
+                                ],
+                                "label": [
+                                    {
+                                        "value-name": "QAmcxA34up5XC0",
+                                        "value": "fLBT59vkHCXSV6voW5K0uk4zHlEwPwW49pPfzcz8HoSCuf0ic"
+                                    }
+                                ],
+                                "is-protection-lock-out": true,
+                                "external-managed-id": {
+                                    "manager-identifier": "ZkL5MNMKsUy5zGKkyx4bYgJfNjNIj",
+                                    "external-managed-uuid": "caEYfiD22YOs3g0FArdwC3MdarwYaH9mSFc7XI1RGQcB6cgGDl48hRlriSpsrrHj6Lr4tsN9aZCg4TOz6THnC3PUN6fexOywzRs3bf4m7Hu3sbCq4kOGfvs2tz8TnGpXpRSBYWP5vj0PuDgqP4Y4rr6U0eFgN454VXFMLuJ9GKY2fet4ar8tK6gDcVTZ0Y"
+                                },
+                                "fc-port": [
+                                    {
+                                        "local-id": "eRoIOgvNh40AZHQZWPZ2m3X16d7Za4UoViZBzmoQrhiqY8hMP9HccE5iJ59T13aOm1pNnFvOWNfUNozCx8GJMETnJ3hK6jqkkP7Huuorhvd4TEzrM72qLWOuR56Pgw2Ad19Iwp1FU6COL3fpa9QW5EiOBpwRNyj1zkBXKuDEs7k5arvkBlgyRznkQL3vjmoKyZAal5POc1TmtgG4BPC",
+                                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                                        "name": [
+                                            {
+                                                "value-name": "gRE6CHBNV0quR0E55lThnEvIV3MoSgJ88f6CXIqSAQejILoN694lOr3BuHRnYsnYIuAxcShEAwXihmXfvTtbk",
+                                                "value": "EP6w44YrUyVm577nDHTBS2XP9kJCoV12K7qO3hgXP3bV3iaG03hKX6r6j2BHYCBIBUpEbxtSAENDPXk"
+                                            }
+                                        ],
+                                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT",
+                                        "extension": [
+                                            {
+                                                "value-name": "tXxxHwVhldUTZ7JJAjdyE0e4s6TFjwPFlec2K7b6d6ZcdJOG216y1cDliwSuUz9fNl9yklExjvCo6q41r3rkf4GqsqUe03tNgvdAIR81fKhd2eethGFoCdO5EAbEDFjL2xmKgmDnYMB00Pl9n0y0eeXSP",
+                                                "value": "okFz6z6kbfGOCEtdwtVRDiR3aXhZHY0XjFxhfvBqCh7fNAkjV7aqqTtsJDsqBsoMZN36aExNNw2AYeTTmVcEHx6qaqQES6iKLmQWSfJGLDgBR2n5XzJw6IW90FNTD5vpjllcB4Kez0QiUdoKMZgKz5TAKylnwQMPbZTEVDTuwJFiW32AUbkmg6W0EhfaZUS2TDHH9A3xjIP7DKHyVTUbZI3ERiGQ4qSY4zF51ICkjrj"
+                                            }
+                                        ],
+                                        "logical-termination-point": [
+                                            "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                                        ],
+                                        "selection-priority": "-9223372036854775808",
+                                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED",
+                                        "port-of-internal-fc": [
+                                            "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                        ],
+                                        "label": [
+                                            {
+                                                "value-name": "StrHASGTV9sTLVtmHKSShdDKRiny8zf03GADr8oehIZ2vkgd50XedAYWTev1NKTQjllCtBQKjPEH9MU6MJlRkbO5pjYdVR365hIySyb4fHLh",
+                                                "value": "Fn0gISAUGxbRvoEfkLkBtKt2Nx9niqJPOJ6otya16mStKxI4aUxDx1xkyHHJ7iyN2w4n5ep3shw5G71QTzmqATD0scBsv2fpybMvq3yKlXPTWRCPiY8SRDKkPmMcoTtO58knbS7oHPiDGUlYStIB6kNNyrSOdlD"
+                                            }
+                                        ],
+                                        "is-protection-lock-out": false,
+                                        "fc-port-direction": "core-model-1-4:PORT_DIRECTION_INPUT",
+                                        "fc-route-feeds-fc-port-egress": [
+                                            "iQHMUaY63f00lr2A8MQd2cpOUYs4pzJIhqm4tkaor2gMlimtX4HR9YF3W07ezQWQ9aUuu5SVZ8HljVGgZf78eF32FbgeT44"
+                                        ],
+                                        "is-internal-port": false,
+                                        "role": "P16aPKAqIgp5Hd5F41gJ1wDdYDluTtTAuRCbB4tckSh15ez9fHKgdgucTPG",
+                                        "address": [
+                                            "M81DQ49HfQpj8i9cJOhLpT5"
+                                        ],
+                                        "fc-port": [
+                                            "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                        ]
+                                    }
+                                ],
+                                "address": [
+                                    "UQT38mKGJNqWa6PPYTENuZCtwYLHahfWZ007nCFYp5Mr3thUnNHJMkcbaYSc7Z86S067CL5TJSdEluqA98kVko6mmQylQykAzqH33MXEwajKwJkFJwsVVzh9hHvZgPz"
+                                ]
+                            }
+                        ],
+                        "sync-ltp": [
+                            "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                        ],
+                        "address": [
+                            "8q7bjVMXdHQqhtVxE2ueYNDKwDJcTkS1C05VNJK0qAiH3deI7BW6orQU4zZXLRRnJOixx2pPuAxyND8NeWTuoBhk2gaOZ1bJHm86gpVLZkbFYbscZdHfOYAI6Kw5DAGkWGi465HXqKuoVWsV112HRCqXmOVZoBbcit9gzQ5ZBAfoozbqBe7kQpade54uGgHQBQYay411E8q2IBkbPknyJxDPCHkbXT1rBSB1Wv3Avtu54PgM9EcK3PAGwMR"
+                        ]
+                    }
+                ],
+                "supporting-pc": "xKN8Cg9qDcS9xneu4n8dTkXW9pCxblLI6qIAzKTcOLdm0sQ4PYhAi7wjw1IAmuakUTNlvGyjrLFs5nwMlGmvNTGbUpL8TWtFHg14Wrnf4VzaaYWwEbTj4AuQZ8YKWrhvzazntOvyB4AMUwaqH3J",
+                "server-ltp": [
+                    "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                ],
+                "connected-ltp": "cb398360-6165-86b2-5b57-2fea3e77edb6",
+                "layer-protocol": [
+                    {
+                        "local-id": "1jvedNNnEnZZY1iorJsUyXCn3CSfr2vtd0zrNmOkJFbAylQ04iMD8gSbSKibENwSO5btrRF3oRvWclO9wAEwQwHA9ZMNEaxsgAOHjtCHc7whlkqRN4nDsW6BNShr2GMah",
+                        "layer-protocol-name": "air-interface-2-0:LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER",
+                        "vlan-interface-1-0:vlan-interface-pac": {
+                            "vlan-interface-capability": {
+                                "configuring-pcp-bits-decoding-is-avail": true,
+                                "ingress-vlan-id-filtering-is-avail": false,
+                                "port-and-protocol-based-vlan-is-avail": true,
+                                "statistics-is-avail": true,
+                                "configuring-service-access-priority-mapping-is-avail": false,
+                                "max-number-of-protocol-vlan-id-groupings": -26719,
+                                "configuring-ingress-tag-filtering-is-avail": true,
+                                "supported-sub-layer-protocol-name-list": [
+                                    "vlan-interface-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_EDGE_RELAY_COMPONENT"
+                                ],
+                                "number-of-available-traffic-classes": -91,
+                                "supported-interface-kind-list": [
+                                    "vlan-interface-1-0:INTERFACE_KIND_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "available-pcp-bits-interpretation-kind-list": [
+                                    "vlan-interface-1-0:PCP_BITS_INTERPRETATION_KIND_TYPE_6P2D"
+                                ],
+                                "drop-eligible-indicator-is-avail": false,
+                                "configuring-pcp-bits-encoding-is-avail": true,
+                                "service-access-priority-tagging-is-avail": false,
+                                "received-priority-overwriting-is-avail": false,
+                                "egress-vlan-id-translation-is-avail": false,
+                                "admin-shut-down-is-avail": false,
+                                "tagging-and-mvrp-is-avail": true,
+                                "vlan-id-translation-is-avail": true,
+                                "restricted-automated-vlan-registration-is-avail": true,
+                                "number-of-available-priorities": 0
+                            },
+                            "vlan-interface-status": {
+                                "statistics-is-up": true,
+                                "timestamp": "2021-09-07T17:35:26Z",
+                                "total-bytes-output": "-9223372036854775808",
+                                "total-frames-input": "-9223372036854775808",
+                                "interface-status": "vlan-interface-1-0:INTERFACE_STATUS_TYPE_UP",
+                                "total-frames-output": "-9223372036854775808",
+                                "total-bytes-input": "-9223372036854775808"
+                            }
+                        },
+                        "wire-interface-2-0:wire-interface-pac": {
+                            "wire-interface-current-problems": {
+                                "number-of-current-problems": -109,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 15239,
+                                        "timestamp": "2020-03-31T01:08:32Z",
+                                        "problem-severity": "wire-interface-2-0:SEVERITY_TYPE_NON_ALARMED",
+                                        "problem-name": "GCLriGBPrTjmOep89YYNvfX01zeHAsG84rAfZbWiWgEDm4DvUBiiJfaKGoj8QShNbRUbUQtQY8lk4YPQs08b7iNOG7WpRd424YdYGHHxHURDTztdzCoGM3mt2jKTwOWtE1jcISBhNlUyUgLlK9TwcgRfzB0XhWqNYCSyutQhOCPAKsVuBHTGXKNoeNdnKw3A8V8CgQM5ltx5Wlsp2d5RPK73ykjaQmCQ9Ktpt7mGAMDo75O1"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-04-11T11:30:11Z"
+                            },
+                            "wire-interface-historical-performances": {
+                                "number-of-historical-performance-sets": -20509,
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "period-end-time": "2020-02-01T15:15:24Z",
+                                        "performance-data": {
+                                            "es": -985300121,
+                                            "ses": -2110793149,
+                                            "low-power-idle-receiver-ms": 143959938,
+                                            "low-power-idle-transmitter-ms": -451976429,
+                                            "symbol-error-during-carrier": 83079052
+                                        },
+                                        "history-data-id": "bEkJIjW75F3XuMJl1ecUtQtTJ0XPZDob9IMS1IZ6gUWKzx5AD9n6ZQRBJOiIkGLtoxdh85goZc0yBX9e6wdXe4qXLIy5obyE",
+                                        "suspect-interval-flag": false
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-04-25T14:27:12Z"
+                            },
+                            "wire-interface-status": {
+                                "rx-sync-role": "wire-interface-2-0:RX_SYNC_ROLE_TYPE_NOT_YET_DEFINED",
+                                "link-is-idle": false,
+                                "eee-is-up": false,
+                                "performance-monitoring-is-up": false,
+                                "rx-level-cur-list": [
+                                    -64
+                                ],
+                                "tx-level-cur": 47,
+                                "pmd-negotiation-state": "wire-interface-2-0:PMD_NEGOTIATION_STATE_TYPE_COMPLETE",
+                                "loop-back-kind-up": "wire-interface-2-0:LOOP_BACK_TYPE_NONE",
+                                "interface-status": "wire-interface-2-0:INTERFACE_STATUS_TYPE_DOWN",
+                                "pmd-kind-cur": "GfJDJjN2LpYjZB8f66JF4UfRHmn9kYO0dywOJbRuAHFsjNHhUqOQd4zMiWWuUKnZaTNT4wnw6VYpIxyuYmk3iTPsHLXtocsy58s1wHpCCgTdNrzDGMGQxojf18Ipk3Qh3aarRz4mHPrv900PEzxc",
+                                "receive-signal-is-detected-list": [
+                                    false
+                                ],
+                                "signal-ordering-kind-cur": "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI",
+                                "pmd-is-up": true,
+                                "link-is-up": false
+                            },
+                            "wire-interface-capability": {
+                                "wavelength-min-list": [
+                                    -1332829039
+                                ],
+                                "supported-signal-ordering-kind-list": [
+                                    "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI"
+                                ],
+                                "rxlevel-high-threshold": -74,
+                                "isolation-is-avail": false,
+                                "supported-loop-back-kind-list": [
+                                    "wire-interface-2-0:LOOP_BACK_TYPE_EXTERNAL"
+                                ],
+                                "short-reach-mode-is-avail": true,
+                                "wavelength-max-list": [
+                                    217262506
+                                ],
+                                "unidirectional-operation-is-avail": false,
+                                "supported-pmd-kind-list": [
+                                    {
+                                        "pmd-name": "GfJDJjN2LpYjZB8f66JF4UfRHmn9kYO0dywOJbRuAHFsjNHhUqOQd4zMiWWuUKnZaTNT4wnw6VYpIxyuYmk3iTPsHLXtocsy58s1wHpCCgTdNrzDGMGQxojf18Ipk3Qh3aarRz4mHPrv900PEzxc",
+                                        "speed": "QrYQ1g2WYjZ8tjR3n5C4w7dp023zA7oiqe1sm3gkn8kQrcLGhgKGfYXf0SGs04DqbEKxz1KW14Fs8i8qySYOIVVBFC3xyyYB4A1EtLsuP7OYiOgIz6whTkSyWO6meWYjoZPSKherhVhrJp9ivyAgSkPO8N2nB0yZRnJtwQVNL4eumgFJO70GrPmsuoH5hf48uGC0",
+                                        "duplex": "wire-interface-2-0:DUPLEX_TYPE_HALF_DUPLEX"
+                                    }
+                                ],
+                                "configuration-of-number-of-bip-errors-per-ses-is-avail": false,
+                                "auto-pmd-negotiation-is-avail": true,
+                                "required-medium-kind": "wire-interface-2-0:MEDIUM_KIND_TYPE_TP_CAT6",
+                                "temperature-low-threshold": -61,
+                                "maintenance-timer-range": "Rvql32lzj1IFOeeYgxPyQd9Q64k7OLxx9XScS5E37eIVkXLBms9dGa3EegDU12raZbfJgTNn7nakcOVzg4MO6HkcXX6ZZp1RsgsI17Y1v8lHWg85cULaC6mrVkqNBkw3sYLu6BnBKIayQjvU594z7i12CjH5Dd86cLsanPDZx",
+                                "supported-alarm-list": [
+                                    "pfYV9445D3nE5ZYN4tS4z4P164IJ37plmn8vr4AX7XtcOjRKNKOeGw8FAQowYNRc3ZIu3aja0NeG66rLI7SgD0V6IcCyRlLUklhfvApnfv4etnZ3mRkSJ7Yk"
+                                ],
+                                "mii-kind": "wire-interface-2-0:MII_KIND_TYPE_NOT_YET_DEFINED",
+                                "rxlevel-low-threshold": -76,
+                                "auto-negotiation-pmd-selection-is-avail": false,
+                                "wavelength-grid-min": -1929958931,
+                                "performance-monitoring-is-avail": true,
+                                "auto-signal-ordering-is-avail": true,
+                                "configuration-of-rx-sync-preference-is-avail": false,
+                                "eee-is-avail": true,
+                                "temperature-high-threshold": 59,
+                                "admin-shut-down-is-avail": true,
+                                "mdi-kind": "wire-interface-2-0:MDI_KIND_TYPE_MPO1x12"
+                            },
+                            "wire-interface-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "performance-data": {
+                                            "es": -576359059,
+                                            "ses": 327883906,
+                                            "low-power-idle-receiver-ms": 130365536,
+                                            "low-power-idle-transmitter-ms": -486499083,
+                                            "symbol-error-during-carrier": 1644604940
+                                        },
+                                        "timestamp": "2022-02-01T01:07:48Z",
+                                        "scanner-id": "XLx47dxLRVSOJTZnDRTmM",
+                                        "suspect-interval-flag": false,
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 124
+                            }
+                        },
+                        "ethernet-container-2-0:ethernet-container-pac": {
+                            "ethernet-container-capability": {
+                                "supported-fec-interleaver-kind-list": [
+                                    "ethernet-container-2-0:FEC_INTERLEAVER_KIND_TYPE_CONVOLUTION"
+                                ],
+                                "maintenance-timer-range": "J4HK6KC5SXTZsVCe2SniUri69HTTbVfNRWxQy1VrZGijtMpvwMNqd6pfNi8Q5gvX43FDWA4Nge7JSofob2Hg06vFgwwdM12QWHtLhpqpvp1nOgEZal73jDIz16MN8HvWoRHy80XEpYTd6x49Scc3P",
+                                "supported-alarm-list": [
+                                    "ziMDZy7Procke5atWz7OYJcM4uGDbNdKXZfXpnERDRbKWd5KMcrKOvpSZ5n2KANIrUxQ9bzNUDpQQutDGMfmhwe9uBbe3YOuLldUxEzjhY20svv1hKnq9uzD5LR1ByvmTA9i7ICozEgT1LUioaIxEaaBVTCwr0TdAUvHu7Y3DeP",
+                                    "Q1hv1Y0PeRpM0pCwOsh2zP6"
+                                ],
+                                "statistics-is-avail": false,
+                                "encryption-is-avail": false,
+                                "performance-monitoring-is-avail": false,
+                                "available-queue-list": [
+                                    {
+                                        "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_QUEUENAME_NOT_YET_DEFINED",
+                                        "available-dropping-behavior-kind-list": [
+                                            "ethernet-container-2-0:DROPPING_BEHAVIOR_KIND_TYPE_WRED"
+                                        ],
+                                        "available-drop-precedence-kind-list": [
+                                            "ethernet-container-2-0:DROP_PRECEDENCE_TYPE_MEDIUM"
+                                        ],
+                                        "queue-depth-configuration-is-avail": true,
+                                        "wred-profile-per-drop-precedence-is-available": true,
+                                        "available-scheduling-kind-list": [
+                                            "ethernet-container-2-0:SCHEDULER_KIND_TYPE_WRR"
+                                        ],
+                                        "max-queue-depth": 1390714168
+                                    }
+                                ],
+                                "bundling-is-avail": true,
+                                "supported-header-compression-kind-list": [
+                                    {
+                                        "header-compression-name": "GV2540IK2cAHQy67oKtx4ubqR0Uf67QM2LRYDrIFvjmlJsl74Ow0iHq1AkgyrZclK4cnnU2L5gYOJjNN7bOhL6bdjrLCqXY2T2p9WjUUASIb4oQ3rwlcvwpOPaq80gaTis27LW1dHBgLZZOjv1v0pNGfX7nXfpJqRLxvAyAh1R2TIIc5KH69mEgcDv1TVKbEwI968Cf9l923R68tO6v2LLeg",
+                                        "mpls-payload-kind-list": [
+                                            "ethernet-container-2-0:MPLS_PAYLOAD_KIND_TYPE_IP_O_MPLS"
+                                        ],
+                                        "compressed-protocol-layer-list": [
+                                            "ethernet-container-2-0:PROTOCOL_LAYER_TYPE_GTP_U"
+                                        ],
+                                        "header-compression-mode": "ethernet-container-2-0:HEADER_COMPRESSION_MODE_TYPE_PROTOCOL_BASED",
+                                        "compressed-header-length": -25737
+                                    }
+                                ],
+                                "support-of-management-frames-without-preamble-is-avail": true,
+                                "explicit-congestion-notification-is-avail": false,
+                                "information-rate-min": -393687243,
+                                "fec-is-avail": false,
+                                "burst-size-max": -14992,
+                                "ingress-policing-is-avail": true,
+                                "supported-fec-redundancy-size-list": [
+                                    "ethernet-container-2-0:FEC_REDUNDANCY_SIZE_TYPE_20"
+                                ],
+                                "egress-shaping-is-avail": false,
+                                "information-rate-max": 468526250,
+                                "admin-shut-down-is-avail": false,
+                                "bundling-group-size-max": 47,
+                                "supported-fec-interleaver-depth-list": [
+                                    "ethernet-container-2-0:FEC_INTERLEAVER_DEPTH_TYPE_96"
+                                ],
+                                "burst-size-min": 27066,
+                                "fec-word-size-max": 16637,
+                                "supported-loop-back-kind-list": [
+                                    "ethernet-container-2-0:LOOP_BACK_TYPE_NONE"
+                                ]
+                            },
+                            "ethernet-container-current-problems": {
+                                "number-of-current-problems": -20,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -16812,
+                                        "problem-name": "Gqbzg401rO8AGMZ5hn4Ange6PO5I60cMqodykdzMTzesd5pvtt5QJbOqZL1YLdC3tQBO32AXCOpPTOke9h4StSakvba8hN3KDEyGz0v3GMSAs5OBeLlHvoU1z41QR5tmJ1VaUqdA562x3J1humRRKDScHUUrZnFAhADbTQDYOGnRho1DDSufnfr41mnSB3kSvXVoOze",
+                                        "timestamp": "2020-04-14T00:29:26Z",
+                                        "problem-severity": "ethernet-container-2-0:SEVERITY_TYPE_MINOR"
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-05-01T05:41:47Z"
+                            },
+                            "ethernet-container-historical-performances": {
+                                "number-of-historical-performance-sets": -19898,
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "period-end-time": "2021-08-13T15:23:22Z",
+                                        "suspect-interval-flag": false,
+                                        "history-data-id": "Xgsu3ZoZ3wGGo3eYC1xD1BEwAWy4Dc0Bss5nrlmuRV3gQh6sbD5c7CBzq9D4mDxG6u4pIiMzdPH3YNw1jteqXHZgQvc40BD65HoFZaf5ZO8XCwZVS5dPM4Xuz9rAK4yIDWnu6uzXjIN",
+                                        "performance-data": {
+                                            "queue-utilization-list": [
+                                                {
+                                                    "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE4",
+                                                    "max-queue-length": 351131382,
+                                                    "avg-queue-length": 940069800
+                                                }
+                                            ],
+                                            "fec-uncorrectable-blocks": -2066276541,
+                                            "tx-ethernet-bytes-sum": "-9223372036854775808",
+                                            "tx-ethernet-bytes-max-m": "-9223372036854775808",
+                                            "fec-corrected-blocks": -911033463,
+                                            "tx-ethernet-bytes-max-s": -1001813487,
+                                            "time-period": -1580683425
+                                        }
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-09-04T20:58:05Z"
+                            },
+                            "ethernet-container-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "timestamp": "2021-07-24T10:18:10Z",
+                                        "scanner-id": "tIUYFQflhtQg54E6jxBaMmwpzGUZei1z0OyxwFTF8JV6Nr4YYF0C2w1t4OkbYeKQ2anqP85YR04wj8m9FmLzKF2Ptf0jtK9nVoFCxKAgCwFVwT4cgHDSmyHHN",
+                                        "suspect-interval-flag": false,
+                                        "performance-data": {
+                                            "queue-utilization-list": [
+                                                {
+                                                    "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE1",
+                                                    "max-queue-length": -1122680985,
+                                                    "avg-queue-length": -1722184923
+                                                }
+                                            ],
+                                            "fec-uncorrectable-blocks": 1144614548,
+                                            "tx-ethernet-bytes-sum": "-9223372036854775808",
+                                            "tx-ethernet-bytes-max-m": "-9223372036854775808",
+                                            "fec-corrected-blocks": -45818043,
+                                            "tx-ethernet-bytes-max-s": -524278285,
+                                            "time-period": 1333798172
+                                        },
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -60
+                            },
+                            "ethernet-container-status": {
+                                "timestamp": "2020-07-04T19:55:23Z",
+                                "last-10-sec-data-output-rate": 703190598,
+                                "bundling-is-up": false,
+                                "total-bytes-output": "2511821429922042",
+                                "total-bytes-input": "5418826507489842176",
+                                "interface-status": "ethernet-container-2-0:INTERFACE_STATUS_TYPE_NOT_PRESENT",
+                                "loop-back-kind-up": "ethernet-container-2-0:LOOP_BACK_TYPE_BACK_TO_REMOTE",
+                                "statistics-is-up": true,
+                                "last-10-sec-data-input-rate": -205944001,
+                                "forwarded-bytes-output": "7390028205905498112",
+                                "performance-monitoring-is-up": false,
+                                "forwarded-bytes-input": "8316765974243453952",
+                                "remote-site-is-faulty": true
+                            }
+                        },
+                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                        "hybrid-mw-structure-2-0:hybrid-mw-structure-pac": {
+                            "hybrid-mw-structure-status": {
+                                "performance-monitoring-is-up": true,
+                                "segment-status-list": [
+                                    {
+                                        "segment-status-type-id": -14461,
+                                        "operational-status": "hybrid-mw-structure-2-0:OPERATIONAL_STATE_TYPE_ENABLED",
+                                        "segment-is-reserved-for-tdm": true
+                                    }
+                                ]
+                            },
+                            "hybrid-mw-structure-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "period-end-time": "2022-02-03T19:44:49Z",
+                                        "history-data-id": "TxCGDqph5Gh7KoFfMY19ZlfzmgWao7QhFkXaCejAVBzxZeEM5GN4T2v7brhzrZI6cy8OMjozUY6M4Dq9b5547BbaUtJlksjw0jlEDBeprc3oPtp0yvWy68I0tkeNMxcERxam0oLktPIaa73",
+                                        "performance-data": {
+                                            "rx-level-avg": -108,
+                                            "es": 1235450520,
+                                            "unavailability": 106755710,
+                                            "cses": 848498938,
+                                            "ses": 587012680,
+                                            "rx-level-min": -121,
+                                            "time-period": 1483829550,
+                                            "rx-level-max": 4
+                                        },
+                                        "suspect-interval-flag": true
+                                    }
+                                ],
+                                "number-of-historical-performance-sets": -841,
+                                "time-of-latest-change": "2021-12-07T13:18:33Z"
+                            },
+                            "hybrid-mw-structure-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 19643,
+                                        "problem-name": "6MfKpwQseD1jpxZEledBANOP1SUC5D94i",
+                                        "problem-severity": "hybrid-mw-structure-2-0:SEVERITY_TYPE_NOT_YET_DEFINED",
+                                        "timestamp": "2021-06-08T13:17:53Z"
+                                    }
+                                ],
+                                "number-of-current-problems": -113,
+                                "time-of-latest-change": "2020-09-10T16:42:59Z"
+                            },
+                            "hybrid-mw-structure-capability": {
+                                "supported-tdm-structure-kind-list": [
+                                    {
+                                        "tdm-structure-name": "yhUNFyh7KUErjUQdy6mEmOVsTToSzG77PTMnr4mcY0vhUmmkkIYGoL0iwp26X95F2K2mOgqEgVN2h9etS4a8P2qljljhupOp1",
+                                        "tdm-segment-size": 1108562520,
+                                        "max-number-of-segments-reservable": -40
+                                    }
+                                ],
+                                "performance-monitoring-is-avail": false,
+                                "supported-alarm-list": [
+                                    "Y3l6Y888hmB1"
+                                ]
+                            },
+                            "hybrid-mw-structure-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "suspect-interval-flag": false,
+                                        "timestamp": "2020-05-05T16:29:52Z",
+                                        "performance-data": {
+                                            "rx-level-avg": 99,
+                                            "es": 2023937648,
+                                            "unavailability": 1355086764,
+                                            "cses": 2015772836,
+                                            "ses": -947304423,
+                                            "rx-level-min": 110,
+                                            "time-period": -1177454339,
+                                            "rx-level-max": 60
+                                        },
+                                        "scanner-id": "WH0GtuE7vIhUgYHF0IIUUUeXSMeWU5NJMFp8a37FDorM",
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 6
+                            }
+                        },
+                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                        "extension": [
+                            {
+                                "value-name": "sTRXp16Tyb8VODp",
+                                "value": "uQr81"
+                            }
+                        ],
+                        "configured-client-capacity": "ZuBsF1ghV6aYzDSVhqS24HHXesNnQYdHtG90zi9vobtXOdK5EuZAczxi1kyJbLrwrsw0Kyn1JIQyWBvs5n29WzsPL0yWDZs4kRWWpcX0UOyQhWiejkgfLA4xsul5mO1GxPCW1sOW8fMhbXnu9DBVdx",
+                        "ip-interface-1-0:ip-interface-pac": {
+                            "ip-interface-status": {
+                                "errored-packets-output": 901467668,
+                                "last-10-sec-data-output-rate": -2051978823,
+                                "forwarded-packets-input": "-9223372036854775808",
+                                "errored-packets-input": -250597801,
+                                "ip-v-4-address-cur-list": [
+                                    {
+                                        "fixed-ip-v-4-address": "2ynJKw6lh13rCl9OWoyYY3UNObz773p1tEK6aQrrKuSeQTUEhlC7opU4AlbHgAIK6lQg3hzFMjTucG8l1Csh1fluAwbR6MB47jcaALQe4BI89ItadVr6aMADiEugqXkpg",
+                                        "fixed-ip-v-4-address-prefix-length": 14,
+                                        "fixed-default-gateway-ip-v-4-address": "I9hXdLxlU8O5lCorMbUhlyLCQAOfIdGrmYgsBNFnVmkgYJACMuU7UxBK0iZIvF1J"
+                                    }
+                                ],
+                                "broadcast-packets-output": 1130760966,
+                                "dropped-packets-input": -170316699,
+                                "loop-back-kind-up": "ip-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE",
+                                "dropped-packets-output": -592054243,
+                                "unicast-packets-input": "-9223372036854775808",
+                                "forwarded-packets-output": "-9223372036854775808",
+                                "neighbor-list": [
+                                    {
+                                        "neighbor-mac-address": "3Y5JmS5y1VhBpV5b3RJwBJOsjbZlNnuQlzrzko8lbhWBdTM8Knwd6dFioEv31ZUfrdOLCO6N62gbN3jpqPCp29zjN4eH30Omeu7Qj5vhZMsM",
+                                        "neighbor-ip-v-4-address-list": "Db7kFofOXqu1E3XFRbTlbBwgYFgK7UjC6rPDH4sFmWy0ZnFQzq3KTsSS78u73OB17qwOmYlIUUJL9gtAzpcsR5kY5HX0vz1CZqieoEWbqFWz",
+                                        "neighbor-origin": "ip-interface-1-0:NEIGHBOR_ORIGIN_TYPE_OTHER"
+                                    }
+                                ],
+                                "timestamp": "2021-11-01T21:47:26Z",
+                                "forwarded-data-volume-output": 1066014468,
+                                "total-packets-input": "-9223372036854775808",
+                                "last-10-sec-packet-input-rate": -1157450325,
+                                "last-10-sec-packet-output-rate": -1225164423,
+                                "vpn-binding-is-up": false,
+                                "multicast-packets-output": 1681716068,
+                                "broadcast-packets-input": -257932831,
+                                "last-10-sec-data-input-rate": 360514010,
+                                "interface-status": "ip-interface-1-0:INTERFACE_STATUS_TYPE_ADMIN_DOWN",
+                                "statistics-is-up": true,
+                                "total-packets-output": "-9223372036854775808",
+                                "multicast-packets-input": 436730846,
+                                "data-volume-input": 2039243684,
+                                "data-volume-output": -1057588809,
+                                "fragmented-packets-input": -1849294799,
+                                "ip-address-origin": "ip-interface-1-0:IP_ADDRESS_ORIGIN_TYPE_STATIC",
+                                "unicast-packets-output": "-9223372036854775808",
+                                "forwarded-data-volume-input": -2057012297
+                            },
+                            "ip-interface-current-problems": {
+                                "time-of-latest-change": "2022-01-01T03:40:30Z",
+                                "number-of-current-problems": -75,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -31691,
+                                        "problem-severity": "ip-interface-1-0:SEVERITY_TYPE_MAJOR",
+                                        "problem-name": "o2hqhYM7o61EvCSUAxda44UO4jve7KdnEuNWkAVAyWf3qZX0x32t7Wh3fFafhnCVKqR4SMxqAMlSLaSadMvdJN8Qki5BGAwi0geK2L2vxnnbp8dDUJIvoQmI9jbPTH7LXdvSZxfoMCzcCFPxgpUEf8eosp",
+                                        "timestamp": "2020-03-03T08:10:44Z"
+                                    }
+                                ]
+                            },
+                            "ip-interface-capability": {
+                                "burst-size-max": -19461,
+                                "statistics-is-avail": true,
+                                "supported-alarm-list": [
+                                    "VcdTV8hlapoY6Arsr6439DP1DhUEa3w58JR3K0gUpwKn63Py2Ttbpa42kYGmU4rUOaXqa6kACWXBZF11qu4Px8JJZi5LmoF2zusJAMj5A9GsOHl63iOAqxjhHg24FH6e4zXEd9JOih8YYt42LKC4aOlR4gVJPUPTtNqyW1e6jm4hI0jtLOpVuDMqTA2IuRuPEUnsVCy6QCoyDzUgfjbJWXaHxciT3MIAG6UtAtAiXYRspDIFOT",
+                                    "DJqk8CC2yoC0WAUq2fSl5I4x7H8MvT30CllDYPxo69o2KakMqc7vU3UUK2y8WB8qXl3Nbs3hCjjmtw0LI0gv33pO5XOTrWkgifVlIYCc9NqCjqg2qwpuzOaxDYqWUCc4KZpkPTwYHWt0mJUF7b9zZj6vhor31w0Lvh5dbtbSpEKDfxinI"
+                                ],
+                                "information-rate-min": 1173913728,
+                                "maximum-number-of-ip-v-4-addresses": -24320,
+                                "fixed-default-gateway-configuration-is-avail": true,
+                                "maintenance-timer-range": "qdVRfuSGZ4GaBRR7mbSkntIpmlfKnaNNnIwC4ga4cIeNz5NN8x8v0IMm41YjbLZymn2qE4mQNsEepr2xY2UQKH4GA20EFZ4Tm7c0byJY1n5qG7YE9KmTjqAUssq7juTFt5yFD9vwwAXczNIIx4uRu4DOo3NHpGeTLEqhNVNjoCnXhXyP12ynY33mYRVnp9g3OGkBuZNKC2zT07AT10",
+                                "admin-shut-down-is-avail": false,
+                                "dhcp-client-is-avail": false,
+                                "egress-shaping-is-avail": false,
+                                "information-rate-max": 1684427762,
+                                "burst-size-min": -2612,
+                                "ip-v-6-is-avail": false,
+                                "maximum-transmission-unit-max": -5900,
+                                "ingress-policing-is-avail": true,
+                                "maximum-transmission-unit-min": -19543,
+                                "supported-loop-back-kind-list": [
+                                    "ip-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "vpn-binding-is-avail": false,
+                                "arp-proxy-is-avail": false
+                            }
+                        },
+                        "termination-state": "core-model-1-4:TERMINATION_STATE_LP_PERMENANTLY_TERMINATED",
+                        "mac-interface-1-0:mac-interface-pac": {
+                            "mac-interface-status": {
+                                "errored-frames-output": -1857375599,
+                                "loop-detection-result": "mac-interface-1-0:LOOP_DETECTION_RESULT_TYPE_NOT_YET_DEFINED",
+                                "forwarded-frames-input": "-9223372036854775808",
+                                "timestamp": "2021-01-10T22:03:28Z",
+                                "multicast-frames-input": -790260833,
+                                "unicast-frames-input": "-9223372036854775808",
+                                "last-10-sec-frame-output-rate": 2036577136,
+                                "total-frames-input": "-9223372036854775808",
+                                "multicast-frames-output": 1388725130,
+                                "dropped-frames-output": -234801489,
+                                "statistics-is-up": false,
+                                "forwarded-frames-output": "-9223372036854775808",
+                                "flow-control-mode-cur": "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_SEND_AND_RECEIVE",
+                                "received-ethernet-frame-format-cur": "mac-interface-1-0:FRAME_FORMAT_TYPE_802.3",
+                                "last-10-sec-frame-input-rate": -1808470425,
+                                "errored-frames-input": 1732407452,
+                                "loop-back-kind-up": "mac-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE",
+                                "interface-status": "mac-interface-1-0:INTERFACE_STATUS_TYPE_NOT_PRESENT",
+                                "mac-address-cur": "vtsR3gcciIVsINIzUj4Trz17rKOHOEWb7o32F7fPP2hpP0YJb2uutvBU7htNWqZVOUYl1dbIfk74c5FfZ9Kkwl7vDAjr0aeHW42Ph5xoiwkuBRKs0uMoHTUcu5vm7K33OYSY3hmlNzIgqkIjOmzn8lsuqXQpHUsoKcmNtA189BosVY",
+                                "broadcast-frames-output": 936206918,
+                                "total-frames-output": "-9223372036854775808",
+                                "fragmented-frames-input": -1805650589,
+                                "performance-monitoring-is-up": true,
+                                "unicast-frames-output": "-9223372036854775808",
+                                "broadcast-frames-input": 224569706,
+                                "dropped-frames-input": 2022831320
+                            },
+                            "mac-interface-capability": {
+                                "supported-flow-control-mode-list": [
+                                    "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_AUTO_NEGOTIATION"
+                                ],
+                                "statistics-is-avail": false,
+                                "broadcast-frame-suppression-is-avail": false,
+                                "supported-frame-format-list": [
+                                    "mac-interface-1-0:FRAME_FORMAT_TYPE_802.2_LLC"
+                                ],
+                                "admin-shut-down-is-avail": false,
+                                "maximum-frame-size-min": 23237,
+                                "loop-detection-is-avail": true,
+                                "performance-monitoring-is-avail": true,
+                                "mac-address-configuration-is-avail": false,
+                                "maintenance-timer-range": "s8BIsdQiVvd3Ltl5xA3waTpMs8Ku8NjtNVb70TqVgDRTY4RwEU2OGrs8r5usSOVFBYMBSco0I7UGbL4PFYvdiYmJ3I3NoYkZX6sHbRHTYBr2eoRMmfZE5dg0WjNka7c75EG8nf1mJloXB7JXmJujWKjK36555h43VKbb05xBiNyTMaQ1LckzWEkSCpXAy2DlEOwwTV73IyWnIFotRI2GmeqZvfr394pOKNcwJczjKwGkb4F2NzA1O0Sj",
+                                "supported-alarm-list": [
+                                    "fhnEX0jaw2e5mYBUaEZPzEo9Fc2yoaJDr79p7srvvFAJv4DFIuuh0SrGXl6dvPQWOZdNjwiO3LpyPVdxhzPik8Y9tWmYLcMs3S7mgi3k3sSSfYpxx6PR6F0zBepeq4GtOGI4YLo15hTl7aSE9zofegPPv6VN2u9QaRV8Cj1H",
+                                    "UUzWE65dudjCU070WN3qWTANGAhSBYknLMbpS9vemOQgHQ8Dv3VrXnevX"
+                                ],
+                                "hardware-mac-address": "IgR9JOaXMy2BM72CSC2PT5fxGTlhCp8dxZegFo6jW0NA7H4Rj6y4cOCSHP2c72hw2vNzLLLzLq9L7euic3noRR9qG3uF5Lc78RzLuckfCuSBAnTMqg397czGfWdkzpkI8LlCXGKr2C2CZNgh4jq3vSBCOHXn69X7UjJJRt2TY4nXJD7FXxBsh455LUlK3aRPlsqcWs5MokB7YINV8gfpkcn6",
+                                "maximum-frame-size-max": 25189,
+                                "supported-loop-back-kind-list": [
+                                    "mac-interface-1-0:LOOP_BACK_TYPE_NONE"
+                                ],
+                                "link-loss-forwarding-is-avail": true,
+                                "loop-port-shut-down-is-avail": false
+                            },
+                            "mac-interface-historical-peformances": {
+                                "number-of-historical-performance-sets": -84,
+                                "time-of-latest-change": "2020-02-04T06:45:34Z",
+                                "historical-performace-data-list": [
+                                    {
+                                        "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "period-end-time": "2020-06-11T21:35:54Z",
+                                        "performance-data": {
+                                            "mac-pause-frames-ingress": -74410669,
+                                            "tagged-frames-ingress": "-9223372036854775808",
+                                            "jabber-frames-ingres": 679979300,
+                                            "mac-pause-frames-egress": -947107567,
+                                            "mac-control-frames-egress": 1936334584,
+                                            "oversized-frames-ingress": 235594078,
+                                            "undersized-frames-ingress": -1536640407,
+                                            "frames-of-1024-to-1518-byte": "-9223372036854775808",
+                                            "frames-of-64-byte": "-9223372036854775808",
+                                            "frames-of-512-to-1023-byte": "-9223372036854775808",
+                                            "frames-of-65-to-127-byte": "-9223372036854775808",
+                                            "mac-control-frames-ingress": 1367192352,
+                                            "frames-of-256-to-511-byte": "-9223372036854775808",
+                                            "tagged-frames-egress": "-9223372036854775808",
+                                            "frames-of-128-to-255-byte": "-9223372036854775808",
+                                            "fragmented-frames-ingress": "-9223372036854775808"
+                                        },
+                                        "history-data-id": "yvZli1IQnmQ803RPT61c655iL4pTNN7liYGARgi6C1fC46jX4l2ai7k43KXQxW3HNBawRsDmtSYxYin3vp5NoiRr2H9r",
+                                        "suspect-interval-flag": true
+                                    }
+                                ]
+                            },
+                            "mac-interface-current-problems": {
+                                "time-of-latest-change": "2020-06-04T04:30:52Z",
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -11928,
+                                        "problem-severity": "mac-interface-1-0:SEVERITY_TYPE_WARNING",
+                                        "problem-name": "lNLgMoRZBHk9017gGn50Yj3TSU12wqeR6RZKgIJJiVSiWRqu7vu5OyQHkRBRaPAgHA0PaBysoiKc9aGgy3dmB3",
+                                        "timestamp": "2021-01-29T16:13:03Z"
+                                    }
+                                ],
+                                "number-of-current-problems": 98
+                            },
+                            "mac-interface-current-performance": {
+                                "number-of-current-performance-sets": -127,
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "elapsed-time": "-9223372036854775808",
+                                        "suspect-interval-flag": true,
+                                        "timestamp": "2021-10-29T13:00:20Z",
+                                        "performance-data": {
+                                            "mac-pause-frames-ingress": 1317994630,
+                                            "tagged-frames-ingress": "-9223372036854775808",
+                                            "jabber-frames-ingres": -713265157,
+                                            "mac-pause-frames-egress": -1998801651,
+                                            "mac-control-frames-egress": 1760972604,
+                                            "oversized-frames-ingress": 1313529582,
+                                            "undersized-frames-ingress": -1098769833,
+                                            "frames-of-1024-to-1518-byte": "-9223372036854775808",
+                                            "frames-of-64-byte": "-9223372036854775808",
+                                            "frames-of-512-to-1023-byte": "-9223372036854775808",
+                                            "frames-of-65-to-127-byte": "-9223372036854775808",
+                                            "mac-control-frames-ingress": 1403131158,
+                                            "frames-of-256-to-511-byte": "-9223372036854775808",
+                                            "tagged-frames-egress": "-9223372036854775808",
+                                            "frames-of-128-to-255-byte": "-9223372036854775808",
+                                            "fragmented-frames-ingress": "-9223372036854775808"
+                                        },
+                                        "scanner-id": "TcTP0yeEnATsosp0kXbELvALZzkC63s0gdHgMVM1nyuL0"
+                                    }
+                                ]
+                            }
+                        },
+                        "pure-ethernet-structure-2-0:pure-ethernet-structure-pac": {
+                            "pure-ethernet-structure-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "timestamp": "2021-04-25T21:26:28Z",
+                                        "performance-data": {
+                                            "cses": -1333571549,
+                                            "es": 344186930,
+                                            "rx-level-max": -48,
+                                            "ses": -1042942891,
+                                            "rx-level-min": -20,
+                                            "rx-level-avg": -96,
+                                            "time-period": 146709536,
+                                            "unavailability": -883057865
+                                        },
+                                        "suspect-interval-flag": true,
+                                        "elapsed-time": "-9223372036854775808",
+                                        "scanner-id": "2HewzOjlUtUTV4UHpBYOa7b2c3Fg4g07Qevp2OKO9wzWsmvSXlG7tS1FNzNRPNQF2lWW1HDadc6GyuqoPYniIhXvICfxq55kj18kALnGQlegPEwFCMXd3NIDhX2HV71e12qtNN9v9fEQTavoWlBR0buh1xRWwS2pUsTAgUXhaB7VEvjAIMkAYGRZ5ANClPT79MHhzxy"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 99
+                            },
+                            "pure-ethernet-structure-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "period-end-time": "2020-03-18T06:27:02Z",
+                                        "performance-data": {
+                                            "cses": 489558518,
+                                            "es": -1276394943,
+                                            "rx-level-max": -118,
+                                            "ses": -2035397039,
+                                            "rx-level-min": -117,
+                                            "rx-level-avg": 90,
+                                            "time-period": -435289407,
+                                            "unavailability": 48005084
+                                        },
+                                        "history-data-id": "k7Wb5xYzSFsZP7z6G6xh65ND0vKv0bIcawo73mGNU9FBg6zO46523KFV8pi0sScDpAKkPj0JsFcALLoPKlRFXxt5OL5hEaMVKo7zH7a9MmBp0Z6KcYp2nK73w5k276PRvWjc4leIIP0IH6kLWBNbmNfKKzMRGtA3pL7t7l4H34hCatn743iqQxasZObxhDAzhH2gVYXQ26s5zPcvKmWsMYULFXiWBKnSji86gXWjVo",
+                                        "suspect-interval-flag": true
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-11-04T21:36:00Z",
+                                "number-of-historical-performance-sets": 11958
+                            },
+                            "pure-ethernet-structure-status": {
+                                "segment-status-list": [
+                                    {
+                                        "segment-status-type-id": -8888,
+                                        "operational-status": "pure-ethernet-structure-2-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED"
+                                    }
+                                ],
+                                "performance-monitoring-is-up": false
+                            },
+                            "pure-ethernet-structure-capability": {
+                                "supported-alarm-list": [
+                                    "Wr1dlZr54B4EduuisrgbZtX4WyHw3rOZLH56yo3D0795twfWXw7OZWSNuskpL0hoImngKiLCiVzLrPzglz5cnP0S9k9NkqbUEybhJWT1JlE2a6jnxgzUXzM7LWUYeXSToVa7KV0tgEoiKzFhP74MGQLkExiLn2ELYGSIBS3Kor210AiHzmm757rBxJmUMSxCyhk21nMpHGqz8BhHXDPUC8o1SCNwvk0VBkXCzB2gikQiVZ0LuHF"
+                                ],
+                                "performance-monitoring-is-avail": false
+                            },
+                            "pure-ethernet-structure-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 22450,
+                                        "problem-name": "SgyK12jyT0uTA2ypXqnN2wt87L8Zcsy4IZGJTRiMSExkGYJvoYainwquhqltTUqtLYdEQnrA1QMzOnWdm6vBCOXL6j7Z5xtQnym5NNFOwrfkPbp39NwEBtpHMwzJVUrjkOo7tWNZf2k45BZ6ovKRR2rvq0fmMGx6uVdYR0P7U13ZDV51iIT9KkFacMoYkV4PJ9Fs1mrVonM1iJ2sjNu3Z16bNu17iXO16ltZIVU6iy",
+                                        "timestamp": "2021-05-23T04:58:24Z",
+                                        "problem-severity": "pure-ethernet-structure-2-0:SEVERITY_TYPE_MAJOR"
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-10-21T13:20:37Z",
+                                "number-of-current-problems": -50
+                            }
+                        },
+                        "lp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE",
+                        "name": [
+                            {
+                                "value-name": "KsVm28mypHKHyxLN3dJ9HoTYPNEtY",
+                                "value": "3IgRWiRiI8ZsPpSAcVFV4mbXc1CRuAwqaM97W0pE8hZXGRpTMWGIbSxnL967CDpMhyL6y3KykJn0sML6JkOUcd9PfgWRLmv2Uh8lkLLEm9wPVaVwuCiGHknWAjFlxbfkkgFE1iafry4fISDcmWK387SIjpVQA2aMiHib0srrTvGBfcGt0qp8qh"
+                            }
+                        ],
+                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT",
+                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL",
+                        "configuration-and-switch-control": [
+                            "FCflDVStqGmKviSKX1VUohV2SQ7h2NiIpy3VlWgDuCnZV7JK8wwxNrzxaGOclZMDpIyKwOg0iD05LBPT0dqFFRdHyTTLSyo9gWMMC2MNFESi8Ac8NuNsmS1MMVxwlWyBKkffmT2TqMcymoGaSlu66wSS"
+                        ],
+                        "fc-blocks-signal-to-lp": "gEeO7Q0e5m7Z8xMk50ADakRFrX3jHmBPSHwZywdvLcvTK9dH9Ndk7WRqTUKs8dh0VNRlkWQ58lQKm3kwIpIHlz86lKylXPdKD45P0WM09CLwx527mCOH3WNoGlBw2OgFSemK20Kbunz1kt8G5Xn8L2oknZQqNYXxcchecUiHhRAClBaqqqzbsXvIPd0CcXa",
+                        "air-interface-2-0:air-interface-pac": {
+                            "air-interface-current-problems": {
+                                "number-of-current-problems": 81,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 7793,
+                                        "timestamp": "2022-01-31T22:36:42Z",
+                                        "problem-name": "mLVRtEPk7l69469xe4wWyXdPI9w0Srhf54YyJN",
+                                        "problem-severity": "air-interface-2-0:SEVERITY_TYPE_MAJOR"
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-11-14T15:12:16Z"
+                            },
+                            "air-interface-configuration": {
+                                "xlts-threshold-cross-alarm-list": [
+                                    {
+                                        "level-threshold-second-kind": "air-interface-2-0:XLEVEL_THRESHOLD_SECOND_KIND_TYPE_NOT_YET_DEFINED",
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "xlts-threshold-cross-alarm-definition-number": -127,
+                                        "xlts-level": 82,
+                                        "amount-of-seconds": -21894
+                                    }
+                                ],
+                                "loop-back-kind-on": "air-interface-2-0:LOOP_BACK_TYPE_RF_TO_LOCAL",
+                                "g-826-threshold-cross-alarm-list": [
+                                    {
+                                        "g-826-value-kind": "air-interface-2-0:G_826_TYPE_ES",
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "alarm-clearing-threshold": 630232098,
+                                        "alarm-raising-threshold": 620527584
+                                    }
+                                ],
+                                "tx-power": 126,
+                                "xpic-is-on": false,
+                                "adaptive-modulation-is-on": true,
+                                "problem-kind-severity-list": [
+                                    {
+                                        "problem-kind-name": "IcEWjee6SLgMqhOyWk6TPlOun6R50HuIL8E5nK37wbUWkAu8Vs1COI63OQ8GxCobDU8SE3Z2eTQqucyhFsTl2SoQIpo7TMiwyqg4tg7z1XZnaqEHSq2UiiC0H07BEiZcI8g4ofDhdDFf3bWNBQzT8bLI3LbH3aLDi1Hy9lQmQntTyhy277VfazXdk0Mf",
+                                        "problem-kind-severity": "air-interface-2-0:SEVERITY_TYPE_WARNING"
+                                    },
+                                    {
+                                        "problem-kind-name": "3H6F3Ppa7gXQKSnwf28GdxOYBCB1Bs8w26b5NB7MR4DuP004U1C0yjY9Vr3xUb3Wh714I0Ir4dVT5OP0Ps0nLYoGpr5bC17L80HI0q1XDXIJLyBs0BPDrdbQFhU9a1NiUm0MM1JiQkTtSuVKXCfoQq6nz0oJUb1GyTscN4mvo7R8tMKqhZO7hVmRNKsHOmfe7IiMEFi2M128NEy4vf3M2",
+                                        "problem-kind-severity": "air-interface-2-0:SEVERITY_TYPE_NOT_YET_DEFINED"
+                                    },
+                                    {
+                                        "problem-kind-name": "SlisMrNuNvR8ghpOjwV7EXyt2SuOZxdJSvbEXQ0ClRDB12hcr4j51Ry3BUJsrWcckfQ9YRDbAgNBbWOC1ZH2J7Yc2HFlwJxIQgJOZm0zvF3GBJauAJpbQnoKWVYswv2mLLbC034vI73bI5GiO5uwkK9gF7B3CDpg",
+                                        "problem-kind-severity": "air-interface-2-0:SEVERITY_TYPE_WARNING"
+                                    },
+                                    {
+                                        "problem-kind-name": "5qc6w9e01OfgPIqqmmNkPxGdwmuSX7Z2x4045f47VbfLTx37LQsAf8FEn1wk9nfyjfupmqoitvVf2YmFGO7NXNjcOPwX5DogTKF7b3pEykTsa87IWfwL2PXIxmyuZWKKGqSJl9gMu16w9ef6lDJfszXRVvlMjYxSghtBqJfMDmjMAqKN3m2nVRfQ",
+                                        "problem-kind-severity": "air-interface-2-0:SEVERITY_TYPE_MAJOR"
+                                    },
+                                    {
+                                        "problem-kind-name": "P2",
+                                        "problem-kind-severity": "air-interface-2-0:SEVERITY_TYPE_NON_ALARMED"
+                                    },
+                                    {
+                                        "problem-kind-name": "uqqTiGaMaBnpf0LyFdYp01LUhyEwgTYLbhEuPH8Zavppo2Y3gOk8I63ZwznNkdyvu4ZkLZbVvslTvbOLZ8Lz6GyDfVqz9QXvUOHGOTtblOWQRKtRS7iZNRu3EUuFCrbw8S4WDy7",
+                                        "problem-kind-severity": "air-interface-2-0:SEVERITY_TYPE_WARNING"
+                                    }
+                                ],
+                                "expected-radio-signal-id": {
+                                    "numeric-radio-signal-id": 21351,
+                                    "alphanumeric-radio-signal-id": "aEAe5IqZBbstFh01CEPy7T5FPoc2qPQslqGq0Zit2KXz2XAwuhXt3U8SidUA2C2f2AGUzQnuAc3u2wToNIRQC0IM5um76om0YUUqKaUdePz8lkw12gRw8sidWEcVUqVTlIbXKXaQMCZ0Wn1ZDKvD4GQTkUO7lB0Gb3vN0GEEaDw6Sp5o2t161KZlEFsZ9kxkf387BEEL9aJ1sHpu2rs33soHZJz8VYtbTtam7OZgZJ9jqzNsS7vVzLurmVz"
+                                },
+                                "tx-frequency": 1684323736,
+                                "auto-freq-select-is-on": false,
+                                "atpc-is-on": true,
+                                "auto-freq-select-range": -121,
+                                "encryption-is-on": true,
+                                "maintenance-timer": 1202437074,
+                                "performance-monitoring-is-on": false,
+                                "receiver-is-on": true,
+                                "power-is-on": false,
+                                "atpc-thresh-lower": -10721,
+                                "atpc-tx-power-min": 53,
+                                "alic-is-on": false,
+                                "clearing-threshold-cross-alarms-is-on": true,
+                                "modulation-is-on": false,
+                                "transmitted-radio-signal-id": {
+                                    "numeric-radio-signal-id": 57640,
+                                    "alphanumeric-radio-signal-id": "kMcrgvedgDd486bUwtD9SykCtZktHw4Ui8dyDrDUWQQ4X1RlmmveMHJ7G3BgzFaJNn9rGMdDDVzsOiNaFaorR7zq22GtHQcm5lFL8SgDFQ5t0SDF3UZM1qcWsSp1ACfxPVjPFrsl9xGaikHd6GZ7YcViWlbxPr4EefmTHO6QeNSwZAJ58I47M0hJdt82U4y8cUTTB0BPFmlEW4B4EF3rxl2"
+                                },
+                                "rx-frequency": -990454299,
+                                "mimo-is-on": false,
+                                "transmitter-is-on": true,
+                                "cryptographic-key": "658BSIfm1BaAL4vYBKuv7Ght",
+                                "remote-air-interface-name": "2eUzhEb4l7bxk8Ldd2uACAC6CqVXLo7NDTfMqqRLpUaK3NP8I",
+                                "acm-threshold-cross-alarm-list": [
+                                    {
+                                        "acm-threshold-cross-alarm-definition-number": -18,
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "amount-of-seconds": 23301
+                                    }
+                                ],
+                                "air-interface-name": "Lf0KOyGyqlBsN9IAVoDxy3Q9mqot0nzLCzniZVQpgkSWlswgQ9Og4whqWFUO2lzwMOPLKx3SJNO4fcdXdTdhpuId2u2WPtlB",
+                                "atpc-thresh-upper": -31878
+                            },
+                            "air-interface-capability": {
+                                "expected-equals-transmitted-radio-signal-id": true,
+                                "duplex-distance-is-freely-configurable": true,
+                                "supported-radio-signal-id-datatype": "air-interface-2-0:RADIO_SIGNAL_ID_DATATYPE_TYPE_STRING",
+                                "rx-frequency-max": -1211269763,
+                                "supported-loop-back-kind-list": [
+                                    "air-interface-2-0:LOOP_BACK_TYPE_IF_TO_REMOTE"
+                                ],
+                                "direction-of-acm-performance-values": "air-interface-2-0:DIRECTION_TYPE_TX",
+                                "adaptive-modulation-is-avail": true,
+                                "supported-alarm-list": [
+                                    "VwE8FA7BoU5dtrzKAjx2wUpp4qPJguE4Ti4yS418Y6lrxV3ZeB1Cnq2sIRbZlHV6ZREKVGSMM65cT9b7CdCZvErevu5IbSP3JlFF1pjGvoSgx3g18S1EwkSTPPt0HiViEAXxS8dfx5w41M69EZN2jxV8eo1VzOe5h3C9cIoJNUFGGDQcCveW39WhqP5ZEb4V6y4igkTWfrCN4k",
+                                    "6gCSF3cXSrFXX6L0E8hw44spnqrKsUrrb3bQ6nGYGdODkzEQAVeEZH3f7vZshqTsm4bskRj047Egya78XdMXUI4U53eml7PH3S2nBlgxkMGSWF1TSFINnEzszNPVMwuPgo5RJlg37WWVBPGuuh9SVAcvn1i9pEQF",
+                                    "mgDT99c5dk3eZZCRi8JCs6W2YKsewEjKMWDVXH0a23pT2TCd2dPukDwafYpDuInhwT4tA5Du02fVOS0Q5HkpkIAryZ52zsb5dgyOl3adYq8Mi0CnHON1oflW6qYFKaKYqaMDdWQbeRXwRrUz7zsvGNrM5irQkbOClsfqgXCvGr1qLNZSejgUZzy4RZM32sFfUMG3KiyiBrIm7",
+                                    "B",
+                                    "zYL4tmj94ThGSfF0jpaYvRnZ0jEErFJ0DmW6Jf8F1pdTESLX9VVEEavxl2bNHMFk9CjSJrxKQKEuuhrDde9Jgx8tzkggYOs7iLR14gMUSigezzRENToVqwpZIx7HlrGv5qx9GbWztcNUMxzriPfIdEzO3ynpZ3U4tj62u",
+                                    "iAdePEIvA3v9TBwERIyxBy48AFsRHIbZio502NvCISEtt27dKyKd6HlGmFqVnBUGZRGTx3vfV1Jg4IlOg6UeF7N1N5PaGBIxtgq0jN76PIfTjAzrytGdBl7oqWq6x9vSpVKBAKHpsWaDpK5X5L3G6aWoYnunoZgNMSgmCYEXMOA3yF1Ei4cg61EWo0jERrjvkASWyoLc",
+                                    "zQenTgb2G1ZFxaBsh9o"
+                                ],
+                                "tx-frequency-max": 245152942,
+                                "maintenance-timer-range": "krTSiUy2riImunG0TCExEtUwWb7jEtXYVIIduhfWrPaNdJNYlrvZMinAlmUZQJPLryQWH5K0NMN0vAQIUmzGwX9Rj3J9MyM5YCTxAvxnikfNN5ozjX7HUgz6ba7XIUVzwO66cEluQs9vqx4BvcjhkKnwUvlupg3NXaM9GZDwsE2KcYlz2wQng6T2BexSvAFkCjtijYPDCJnGHAfK767f4SaF6Hpt94NMg8",
+                                "transmission-mode-list": [
+                                    {
+                                        "transmission-mode-name": "JckEeSuHqNs1BguGy84aXdLKxuHXZDTIQde4XJDno5pZmLyMLCWJIHlf3U42yXLg3Zc0APgRMxQ0agMWLIFthSAkMFncu0spRwikdyb0XT072F3NfAgxsIJ7f6jKYE1I2j2gJ58GQ0O",
+                                        "transmission-mode-rank": 340859112,
+                                        "supported-as-fixed-configuration": true,
+                                        "am-upshift-level": 83,
+                                        "tx-power-min": 51,
+                                        "am-downshift-level": -13,
+                                        "symbol-rate-reduction-factor": -29,
+                                        "channel-bandwidth": -1952687921,
+                                        "xpic-is-avail": true,
+                                        "code-rate": -118,
+                                        "tx-power-max": 32,
+                                        "rx-threshold": 29738,
+                                        "modulation-scheme": -31562
+                                    }
+                                ],
+                                "encryption-is-avail": false,
+                                "duplex-distance-list": [
+                                    -1830290303
+                                ],
+                                "atpc-range": -6,
+                                "performance-monitoring-is-avail": true,
+                                "auto-freq-select-is-avail": true,
+                                "tx-frequency-min": -122546305,
+                                "rx-frequency-min": -2133222337,
+                                "type-of-equipment": "ZTswLyxuUwNHziSP19VrgAq3u2RiBiqscLZXjoj5M6Edgo39xQtGrTBVOt5hLwKX9BMsR",
+                                "atpc-is-avail": false,
+                                "supported-radio-signal-id-length": -26386
+                            },
+                            "air-interface-status": {
+                                "xpd-cur": 64,
+                                "transmission-mode-cur": "JckEeSuHqNs1BguGy84aXdLKxuHXZDTIQde4XJDno5pZmLyMLCWJIHlf3U42yXLg3Zc0APgRMxQ0agMWLIFthSAkMFncu0spRwikdyb0XT072F3NfAgxsIJ7f6jKYE1I2j2gJ58GQ0O",
+                                "rf-temp-cur": 116,
+                                "mimo-is-up": true,
+                                "tx-level-cur": -119,
+                                "local-end-point-id": "JyVPluYR8VxAHzyVlGhEUn0D",
+                                "rx-level-cur": -54,
+                                "link-is-up": true,
+                                "performance-monitoring-is-up": true,
+                                "xpic-is-up": true,
+                                "remote-end-point-id": "DuQR6ZtwMaR88AgVZQCyg",
+                                "received-radio-signal-id": {
+                                    "numeric-radio-signal-id": 38309,
+                                    "alphanumeric-radio-signal-id": "M7uje5m"
+                                },
+                                "auto-freq-select-is-up": true,
+                                "tx-frequency-cur": -89024911,
+                                "rx-frequency-cur": 210430856,
+                                "atpc-is-up": false,
+                                "radio-power-is-up": true,
+                                "snir-cur": 79,
+                                "loop-back-kind-up": "air-interface-2-0:LOOP_BACK_TYPE_RF_TO_LOCAL",
+                                "interface-status": "air-interface-2-0:INTERFACE_STATUS_TYPE_UP",
+                                "alic-is-up": false
+                            },
+                            "air-interface-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "period-end-time": "2021-12-26T03:59:31Z",
+                                        "performance-data": {
+                                            "snir-max": -109,
+                                            "unavailability": -525888843,
+                                            "rx-level-max": -17,
+                                            "xpd-max": 70,
+                                            "ses": 621764542,
+                                            "rf-temp-max": 105,
+                                            "tx-level-max": -117,
+                                            "es": -874612321,
+                                            "tx-level-min": 106,
+                                            "tx-level-avg": -118,
+                                            "snir-min": -117,
+                                            "snir-avg": 88,
+                                            "time-period": 269015572,
+                                            "cses": -1772595889,
+                                            "defect-blocks-sum": 29899,
+                                            "rx-level-min": 81,
+                                            "rx-level-avg": 121,
+                                            "rf-temp-min": -14,
+                                            "rf-temp-avg": -30,
+                                            "time-xstates-list": [
+                                                {
+                                                    "time-xstate-sequence-number": -56,
+                                                    "transmission-mode": "JckEeSuHqNs1BguGy84aXdLKxuHXZDTIQde4XJDno5pZmLyMLCWJIHlf3U42yXLg3Zc0APgRMxQ0agMWLIFthSAkMFncu0spRwikdyb0XT072F3NfAgxsIJ7f6jKYE1I2j2gJ58GQ0O",
+                                                    "time": 153167880
+                                                }
+                                            ],
+                                            "xpd-min": -66,
+                                            "xpd-avg": 114
+                                        },
+                                        "suspect-interval-flag": false,
+                                        "history-data-id": "9oT3P9giQBRXAF5IH9vu5HXjA0KMarBjPvewwnHeYqbyY98xiD2gcRzERcr1v2lcprIVOh1MAdkyms5wXZMaImOzq7tV2O7j7H7WZ8IrlVZzfW6dOSfw63Yw3rj57qoe0vaZELiZGhrV5x0TpfiobgUezejGwHUw5XnJIFAgO13Uq4FQbP6m50Aw6LcDlZ1qWp1E4BULvXFVTcD52JrZCUwIFAd0zfinwj1sVNdiDKdoXRtRsNI4z6Fe"
+                                    }
+                                ],
+                                "number-of-historical-performance-sets": -2488,
+                                "time-of-latest-change": "2021-05-12T06:05:17Z"
+                            },
+                            "air-interface-current-performance": {
+                                "number-of-current-performance-sets": -36,
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "timestamp": "2021-03-14T07:44:56Z",
+                                        "scanner-id": "zG1k262U7jBdh0sLqAqZPju2KBUWqE7Rd13f7616hCbyuDbU6BLVU8QwJCs19sSmlVBk1uia6tIA6Lncn0090QyJsSCBcuXxiqRbU9mSCWlBIANXAN6tvw4YpHzB3p1lHSpCULmoHHZhhFeKkddQJhG0Y7u2wvfenEI9h4yREp8N4fphsCZ3MF4CMqwbVEpaiZksVSjr9rf6GEn09e4NT0pFiOQds7nCYH4U",
+                                        "performance-data": {
+                                            "snir-max": 68,
+                                            "unavailability": -768688799,
+                                            "rx-level-max": 91,
+                                            "xpd-max": 109,
+                                            "ses": 2124226990,
+                                            "rf-temp-max": 112,
+                                            "tx-level-max": -97,
+                                            "es": 1041671014,
+                                            "tx-level-min": 29,
+                                            "tx-level-avg": 90,
+                                            "snir-min": 31,
+                                            "snir-avg": 44,
+                                            "time-period": 1288791316,
+                                            "cses": -801565687,
+                                            "defect-blocks-sum": 21332,
+                                            "rx-level-min": -35,
+                                            "rx-level-avg": -70,
+                                            "rf-temp-min": 32,
+                                            "rf-temp-avg": -29,
+                                            "time-xstates-list": [
+                                                {
+                                                    "time-xstate-sequence-number": -87,
+                                                    "transmission-mode": "JckEeSuHqNs1BguGy84aXdLKxuHXZDTIQde4XJDno5pZmLyMLCWJIHlf3U42yXLg3Zc0APgRMxQ0agMWLIFthSAkMFncu0spRwikdyb0XT072F3NfAgxsIJ7f6jKYE1I2j2gJ58GQ0O",
+                                                    "time": 1671953438
+                                                }
+                                            ],
+                                            "xpd-min": 123,
+                                            "xpd-avg": 100
+                                        },
+                                        "elapsed-time": "-9223372036854775808",
+                                        "suspect-interval-flag": true
+                                    }
+                                ]
+                            }
+                        },
+                        "label": [
+                            {
+                                "value-name": "JGDz9FKVYr69jyALjYjV5vBzvTYDj7l2NYuOEeCuxIDR86us4Nf9bIIyBycNFpPlob9UpDoPd",
+                                "value": "ymZ2G3HV5SDFj6evTTUB6aMg44LkTZerldl192O6NjL6pRtjDfMJiyRmCDHnCVGP01I9WwfBPTH6K2hf93ZrCQO6lnmXa2E2WmcSKjlrc2yXWP45T3xnMdl7sH5uCBwqYIaA2v26ps3lh0i23PhPUvXm4UQGnn6lXgWRLQY2iTnrTGmXnDEi8twdfnLDCKQr0EjEuhGEaW64"
+                            }
+                        ],
+                        "is-protection-lock-out": true,
+                        "tdm-container-2-0:tdm-container-pac": {
+                            "tdm-container-historical-performances": {
+                                "number-of-historical-performance-sets": 24316,
+                                "time-of-latest-change": "2021-04-24T23:19:35Z",
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "period-end-time": "2020-02-08T16:00:16Z",
+                                        "suspect-interval-flag": false,
+                                        "history-data-id": "W5UevSF9lFMPUdkvMZ94s6bbPJtKJZPGWJMsurtP7fxTtRh7IqbbwemeXHQHGFfDh1XDlqskFZ50Jm7rMaubgRpeqfN7N",
+                                        "performance-data": "5zTbsY4fy4JmQOd3MVTlL8JUCri3BlvyVgJf7FvFJ6TzN7vr2oEFofsSGKV9XiHSzq0G5vdGt68gdDA8TeNhuf92RXcPfTzGcze9WrQiyYyDB0LufrDJyELqBX7JRGp38"
+                                    }
+                                ]
+                            },
+                            "tdm-container-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -515,
+                                        "problem-name": "3boZU5vXQ0OLmKdw725UlNdvW8jF0lG3w5Uj2h8ShWvDGA9FD6rYMElINEfF0WIoTCHVTPG2L3FjEPY9NhZzWlaBZpgRdQ8Y",
+                                        "problem-severity": "tdm-container-2-0:SEVERITY_TYPE_NOT_YET_DEFINED",
+                                        "timestamp": "2020-07-05T03:35:18Z"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-09-30T05:47:41Z",
+                                "number-of-current-problems": 32
+                            },
+                            "tdm-container-status": {
+                                "loop-back-kind-up": "tdm-container-2-0:LOOP_BACK_TYPE_NONE",
+                                "performance-monitoring-is-up": false,
+                                "interface-status": "tdm-container-2-0:INTERFACE_STATUS_TYPE_UNKNOWN",
+                                "statistics-is-up": true
+                            },
+                            "tdm-container-capability": {
+                                "performance-monitoring-is-avail": false,
+                                "supported-loop-back-kind-list": [
+                                    "tdm-container-2-0:LOOP_BACK_TYPE_NONE"
+                                ],
+                                "supported-tdm-container-kind-list": [
+                                    {
+                                        "tdm-container-name": "FjsE55j3f7wZvgjNopVde60CumAOdrvTCPpzVACaz024glJwCxJQDJl05VObebWQ1diWNUYmN0j3dUAQrby5VT5SHLVVXJEYWWMBIKQvL1rYV1Gf47cZ09KHUxvJ99z5XlzFYp3Bqurdn8srfwj7F3Hssc3BdDzaY8HWxKpP6R2tZvV61e5z9MTBQW53zE5qEFe3pESwvUZmhMkb0pC94vDUrAQ16NjKsxNKbx8Gr72BMeMMEgOIL",
+                                        "tdm-container-size": -1945168345
+                                    }
+                                ],
+                                "supported-alarm-list": [
+                                    "CA4n6WqlHie2THGyZpoaM3T0CSXDfU6Jm26lYoGxGVzru70lwgwabhbN18jgUpR8rPthd2HTX8drg5MMlaXxs0kt0vCUUtUlbovoqcafknyAscfFnccH4p24UEYP0S2b8xzqBBxWQ5waiLQxP26Tj8XeNNVNyPYyfpZQTwMJubUEOKbwEhpYpf442ZRsOH13ZSUSgytKBnoqZ",
+                                    "WEAdu0kyWfxGHdfI9esVYJtkt5HKnzbb5MozEJ7AYw8xBo8KCAFtj1NFYmpdVAoSeErKfqd5OlDiJL2edAHxtm4jItwwVUgaqIUG07LHlgZ4TTi7tZwOdA7O3DcQps0Q2No3M1C7aB43um2QeyEr0E7VhjMzMEhOjFRYylXI"
+                                ],
+                                "admin-shut-down-is-avail": false,
+                                "maintenance-timer-range": "k5Z8gJAOocZVkyeksP6HtSlJy3mRxrKKoJSFkktIxsvR0Kblr92V2nwsiTkHkWrIybfSoItV3QEVAIgURiHLxdeHYqpamILMM0xaJ05MIBzbjQ5b0MWyR2fQsw0H7DtTE03fS01tBsENiJQjvEReHY41vX"
+                            },
+                            "tdm-container-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "suspect-interval-flag": false,
+                                        "performance-data": "fMmTtcUhuUQif0T6i1QnJYm3F084k7fzTBlnNfE91mrgfcfp55MOV",
+                                        "timestamp": "2020-12-14T13:54:11Z",
+                                        "elapsed-time": "-9223372036854775808",
+                                        "scanner-id": "xkYEUK7f7MmDWoRfw6sLvxIaeviXYjPnDF1pp0EoMTTIhLYNJir7H1hVxzTnKAKg7DFpDcNp5H0mkY138saPurLTTwgD60T5Dru8DaxIRxW3nX6vi9lEA6xluNRsFCxa32iG4PoVfcQCaW8kXtYqrnLN2CfHfEJay1RCI7pPkfsm4sG1VwreT51VH8uOM5Zl6QXGPfo9uQvy"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -3
+                            }
+                        },
+                        "address": [
+                            "lrfhVz2FxrGvkeyl1mYqVs9etabYlG7G0fXVOZsdq9ADn8YpnOHa9IoCTzAe7zM7GJVnAnASobvMbl3yaCIjl6N6xfkxO6EvHrS9Hk15npJzCM7EpIXCGCIeR2LG0h3zBNAiZtfnKZOnDN12vRwcteid8VT04OrFt1Psv5H7WvuzjouG70SAf2NfXygUeHzHJh26eJda7AJqY5656RxdLdsBDIvS"
+                        ]
+                    }
+                ],
+                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK",
+                "name": [
+                    {
+                        "value-name": "7snPRPghZuF3HaIuqaCrn5Y6vmqxZf9YzwFreWIdig8ZiQlJ0Y2g31mqfFX6M7WmvCFJqfOIvWzOFNpFDrVykaYrPNxtMuPaYuLgKAY7opV34cBHEo7",
+                        "value": "y5ifLPJpbqz1VlhxN7EbxsftEQbaei1FgjU10vicWSdJ5vgSCM316avL0yN7IOMYZyR0W24KU9tZwBR1nM2uXp7XPMW"
+                    }
+                ],
+                "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                "physical-port-reference": [
+                    "c942beda-266b-a670-ca1b-e78a3653775b"
+                ],
+                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE",
+                "extension": [
+                    {
+                        "value-name": "nUsB6JVTpwwzWeKTivwzHwKeM9WqACEPw7rvIeo7KUGy1jsjGQSnmCB0Dpqe253q4mVMAkLk6jT7Cdqa3iqiNTiqjBEdyADuWz8pLTJRcuRHzhRvs9Nf3Xxey4rYE4ssDsRolt8qPZ7p8QUs0zHVw79XbAVPEg9aI1qWuymbptAybm03VAYsH7hSHczekIo3BOR5fd9",
+                        "value": "yJ4J6XNTpLdYLuIkz9yTROOtvFqCKz8ibdU92H2jk8hXCZib0IXRp"
+                    }
+                ],
+                "ltp-augment-1-0:ltp-augment-pac": {
+                    "ltp-augment-configuration": {
+                        "connector": "07wpeqzDCeErNGQsYiiaCfzpi0iDsCNsCbRIBjm5pSw4q",
+                        "equipment": [
+                            "c942beda-266b-a670-ca1b-e78a3653775b"
+                        ]
+                    }
+                },
+                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY",
+                "local-id": "3icEpGlJDxGZa2pRFiXXMdLyMmMYl70op53PLgqpF6gQ0xzGPwvtB82fuGePN665b1UPhceXamFbT6JID636e5mAEAhrynwKoirGuFvF12IM8ruDxxKDv6d1Gms6KRQ899GwO33H5LlecPRBft6CzjD7FXehOWiQ6YmM2pmZaH5epPHEiN8S6DZDA5Np25783tUXK8PUQU0fJHLUuTMswDXYBKfDHmDDPpszyhlo4dDFUgzg9dA",
+                "fd-rule-group": [
+                    "5ea42646-26ca-afda-19a7-ad7f7cc924e6"
+                ],
+                "label": [
+                    {
+                        "value-name": "tAos18kXaoH4q2VWDEXSq0enhdd701xtCVNDV8s5o11O3OLysIiTAx8KCdJCfgXR3LmZTOW9PQYKwBaZbsKERKouY76dfW4iHi9s6YBNGrx42H361FKTi0ng7llehhwQzyaFoMk45R00q46rBIk",
+                        "value": "Iz1PVe34vrV4R5BfJVbHEcH48FoBnIn5agM5nH1S0OPKMiZn634C7Dz7aXIxxXuH68EtHGdAu2kgdbEb6ANdemcojVOJKaqIb5bSDhk7bEgoIMzO"
+                    }
+                ],
+                "transfer-capacity-pac": "s3H8H6kdPJobJEX37EDaOL5pf4yI4abo5KwFIISyr8J3Ny6McKO1nTquQRcMTfaYZzvIhg8BoR",
+                "external-managed-id": {
+                    "manager-identifier": "v6lm6k62DgxdiYsMMXcg2M2OacfKfYfLWB72V64qetDoj62YVeePSgE3sTFzJUcyvcAiaxJgSeEccH28NgXywttQm8hY2uwqyYIIvjQgyukK3mKJCAh03KQiKZgElE4TCFt0YjgoGA1BWLkqdt",
+                    "external-managed-uuid": "hd8zX7PutlyeX5IXW15czFdbtRnT4Rbl4jMUrtgMOO0MMIBICHU3e0eARCtNlF1hQN39hjV50WJMwlm0U8408aARE4xZByhjlktuEosEcbiBoEtiMpjNATw6P3YiB7CPr5bXlDtqPL15huoWUzBmk7k"
+                },
+                "client-ltp": [
+                    "c3794728-dc8b-5233-0c67-0b857c32ada1"
+                ],
+                "peer-ltp": "c3794728-dc8b-5233-0c67-0b857c32ada1",
+                "ltp-in-other-view": [
+                    "f7872522-16c2-ce17-fc7a-083c8517e7b3"
+                ],
+                "address": [
+                    "w3WEe7J88DH3W1bdRF49R4JGO8r02CnqGkXUjy2scBv8uyeldamW76CVeWN9ybr6ng0GPU01nn1SV7d1iA"
+                ]
+            },
+            {
+                "uuid": "bc478ce2-7d3c-9c53-dff2-7724bcef25d4",
+                "embedded-clock": [
+                    {
+                        "local-id": "WvCztVTKsBgkyx6fSd2oYG9fOzPMdE3a2",
+                        "run-mode": "core-model-1-4:RUN_MODE_HOLD_OVER",
+                        "phase-aligned-clock": [
+                            "zSzgZS2utSYSlt8xN7dsLeEaUA9zvWk4GUcxEe2ZYSSkdSR1Z4lDaRNXjWoOKJKivOQ12K1TCLdPDWIu0W73NN0ZBoNeZqwmemo96h2A27ix3STVO1YuGQth78n6yUlN8BOfSQHMXZb0S4NyXM2Dun"
+                        ],
+                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                        "encapsulated-casc": [
+                            "pZMm3cpz1njyV25JozEqIkga238LqN5PNR3IVs9WIsnDmseLTL3t5jEZfECFrHm6qiOmCXikhFQE04hLPkfMELETpgqIYMP"
+                        ],
+                        "name": [
+                            {
+                                "value-name": "Bvsm7NYoZwNXLxaFV0d472vXGBtBLv9eSBA0gyggW35IBgfo8tl8nQ53rqF4WOiGhTGqjWGg0LQtT5RUqc2NV7Jepojd4tUdesDqpbGhXoCIltCEywrtv2HVqS8mmUAsndSEpqVeOpO2SjGq",
+                                "value": "ZLl2tgklgHzb92qmM4DdRRTgGN0ZtrGl41nx9zLqgctp6TETXhYG1RWzxWq0f6dk8sR92uzaHUANF6Gunwagg6PNVfFamTumlevnAXyhR05x6D1l24Ci2j5XzK8VDu9RAE6bBwklwhKuVDIXHc7KvcH4WHRs4SbExhH0O2dcjXz6thVal2MQemN33wvZhGEOPdGDfUQzJhFc"
+                            }
+                        ],
+                        "encompassed-clock": [
+                            "zSzgZS2utSYSlt8xN7dsLeEaUA9zvWk4GUcxEe2ZYSSkdSR1Z4lDaRNXjWoOKJKivOQ12K1TCLdPDWIu0W73NN0ZBoNeZqwmemo96h2A27ix3STVO1YuGQth78n6yUlN8BOfSQHMXZb0S4NyXM2Dun"
+                        ],
+                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE",
+                        "extension": [
+                            {
+                                "value-name": "Kl15v15pWP3vbc07DUQKq7HA6amfDjqfEsk9lq",
+                                "value": "i7uNizNi4z0OR7nr5xFk2YC9v4uEiM5ATs"
+                            }
+                        ],
+                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL",
+                        "label": [
+                            {
+                                "value-name": "tfLv1tKf8FbF2aWIGCpUa39WLAy28KsBRd6LGI0Pn3mpeaZUEpGGkIDXibZqNjTxo0iWAaDQeZ7s17exoNeAvJxNUo6zzZ6XRgTkrx2Fo9Zi85PoSVYfEn3qL1SkSY9C73OysQ5IZWS81AwMvn12KWsoPcIA3KcaF0A7IFHHtAHm260xt2z5QUtG6489OkbtcLsUi1tLB38D983C2uHTg",
+                                "value": "rn7zoVLAoPlQBER4hl7hQ8qLCkgc5wfoLmX2hACFhPnSl6PDjOU2XcNzx3Lus0T5eI7vjJ2ArhlMoahzQcBNghfFcSaEL3KZLRnWtppUHKGXMYwC20iahpQt900U3KMGt9vWyUI7wh4i7tM9t4"
+                            }
+                        ],
+                        "encapsulated-fc": [
+                            {
+                                "uuid": "d96cc7fb-f276-21d3-2d17-6309a872bf29",
+                                "service-priority": "-9223372036854775808",
+                                "supporting-pc": "0e1VHCyuJTFXcfIXVgZBUJpaGWIDOyPHMQCmk2IWOfT0utPiJOTDpaN56oIMOxttfXPs0poOw9O0CvalbVRA5wF3UnQBMb4T9Ll1aJPGKvym0BA3wrDuXixKxflbjp4s2qlc12KMxa0pLAsa15ERfbBMjOX",
+                                "layer-protocol-name": "pure-ethernet-structure-2-0:LAYER_PROTOCOL_NAME_TYPE_PURE_ETHERNET_STRUCTURE_LAYER",
+                                "forwarding-direction": "core-model-1-4:FORWARDING_DIRECTION_UNDEFINED_OR_UNKNOWN",
+                                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                                "name": [
+                                    {
+                                        "value-name": "GL2qzQhF8u5Abc2HiM1eZzYUtghC6WFFHHX9peGxAM7DQ1l8NenNNdH9lRDkNiZnZWwg24NDQN8HOtHCH4hvaQwvH9PnsGKjC8Axcf232aCREjldguIik6NUgvhIbTTG1t55J70DhumNOH1W3B6gITaYgjykcr05N52w431lxo1d5211D7hlTrb1CJlO3dLQaNeeIfs8DtdBvfC0eTm",
+                                        "value": "cx9O9mucA72KMgRvvjv9MIK9Pe947n3bV4Z4rlg1saD6quBVFYWjHGsoUukTRo4MsVIL8QMs0izqM2ek1aDAJ6YvAjhjzd6T1GF9pjupB3Ig5WAYYdyzbp5DAeX9rV2stzuSTYimTSCYG4PEan6lE3ZehOnAJi34RpXCf7Z8ZBYF"
+                                    }
+                                ],
+                                "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE",
+                                "extension": [
+                                    {
+                                        "value-name": "h2HiRzC4ah7xExl509W12nIChR59tOrDR1VAApECyL9camaaw64qlE2uvZEQO5txYg7yxL26ocazykJ4jFmwjh1OgxF4u0tt9ATGlWMK8XbG9UDksRRL8Ssph7lLZPe0h8HD4lf4aqCkc7EEZni77KooJKaArgBIoidkDkgGCT0P0wlRMvRTffiYRkraA2T",
+                                        "value": "kY3PjkvV5nC5MQPylGjtNtjFNKPoMA7YzaOKubFzrax50mvdUOGHi0e5K4lpwsn5D3HZ7fzyp6vhk0m6O3NYVUWxQ9WmCck7f16egxMxv9OH93NY6tOTnKq5UfrorDnyFlNNTrdgB1YK4DA26pVl1eqVtKbMnykUUZANrNV2GTEDp7FnotBpz1dUDoG1XSNRSnwbar5RdJmCI1R6mswNmJHZ7fS4"
+                                    }
+                                ],
+                                "fc-route": "oksvIIAUoYIVrnAoShL5XqYE2S",
+                                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL",
+                                "configuration-and-switch-control": [
+                                    "jAPxTmCb1tUq3NCld12GKuiMaDuGsn9EXQ3IcyL61ywXl0ay156LzoyJ2UhmijS79WQm"
+                                ],
+                                "local-id": "V52yhfWtxrPKjQ4eY0S9TYMpWYTIWgpKlsauHZX6iFRBnNHlFsnzi1Y6ZJOOZeqcyAH7rEdKj4lG",
+                                "lower-level-fc": [
+                                    "9bc11e2d-913a-2fa6-a64f-f01427c75d88"
+                                ],
+                                "fc-switch": [
+                                    {
+                                        "local-id": "jqpVqdmYzvguA9NnCIIWFtXnBODHmwuFWLBmYPdpltTNCy268L2O6R3IFGh2dLz9o2weSBE54xSG6UN6xHUEzXe6Ev0R8sSougCmRgrVGbuE69KvIF19ufg8C8RCAK050DjSLDFjO1XMaAaT7b2BjaCNbtqLdiI6VUYzpvS5xI",
+                                        "wait-to-restore-time": "-9223372036854775808",
+                                        "profile-proxy": [
+                                            "iBSsFL0r4tTDqrQRQuMEBN9entg6lzZEaKYHvY0srT5RcNB2hfGL3QZqb7oxGfbIZ9qn7q"
+                                        ],
+                                        "control-parameters": {
+                                            "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE",
+                                            "prot-type": "tNXuXEVpr7RxU5BQs42QspTtkcpTWjTh6IDVfqdyqW5kTy2dDW35mOy",
+                                            "hold-off-time": "-9223372036854775808",
+                                            "wait-to-revert-time": "-9223372036854775808",
+                                            "network-scheme-specification": "PrP9dY7VCV220BkWyFIZzVCoRzKFZayPCfQPdPCHKxCC0Wzyt9pV41jVsVtk5T9H8RodG"
+                                        },
+                                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                                        "switch-selection-reason": "core-model-1-4:SWITCH_STATE_REASON_NONE",
+                                        "name": [
+                                            {
+                                                "value-name": "HaUs9XnKgxm4IImmVEWTsQJTffDlMd5lnRGwO39XsnT35fhTLdM54wYbDCohPlC5caB15KQy0Jt5QKYBXLHT9FXM9l3Zzx4LIxENauda5GfVq6pgR69SD6wNkzETYAwy7",
+                                                "value": "e9prjv0zqiFPyoNA8jyEYK5Cv342u35Idm1wR1XacuRKSFcSQLwOvBi1xmV1pSBCeC16wY8ItZsdwF6miu2N6kGvGtoYlZssBtq7syHVx20WH6iRBlwzxdW6Gk4UbwmM0MMkclfJnfx4eQNP3kgApcG5oCRz15d1RRl3dsFAzcxNUkuPECi3OQ14tKDuQRnzAADN2aoteNh17DQE"
+                                            }
+                                        ],
+                                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE",
+                                        "switch-selects-ports": "core-model-1-4:PORT_DIRECTION_BIDIRECTIONAL",
+                                        "extension": [
+                                            {
+                                                "value-name": "szWq730KEtWGAk3rOdbzhO3NtqqSR76jzUByPCit572xr5Z8b2zsQC7cUx4Lw2XXXyvM2Gg0Naxe7oeirNK9hRlbgiPFkMuhcS4fyc",
+                                                "value": "lmErt3GEmlgnD0JGg1vNd9ivm2rtAvAVJee49UIn8ZLLZuj7nHVsQ5X47gxHD7umeAjfn1Dv0o8RKrZ78MrR"
+                                            }
+                                        ],
+                                        "prot-type": "vqHBQjuNJHTNKeK8B43vUIjFHlD426ZypG1f0n3B5OgH20PDWK0Jskg1xTYrSXZhw1oogjZd7gU18BEXmFyGROAgIyHsnzJTsZ",
+                                        "reversion-mode": "core-model-1-4:REVERSION_MODE_NON-REVERTIVE",
+                                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED",
+                                        "configuration-and-switch-control": "rcMaozDrITZtOHk6TkmqSBttBuTYtbFUfrXE0AXAlOW1o87hstzd",
+                                        "internal-configuration-and-switch-control": "2GqorgRCVMKmBgebdOpTCqhLqqdLZqIT68hpo12jNExgULr7sIS49aHrAVcsdVdcVvBkwvvb13",
+                                        "label": [
+                                            {
+                                                "value-name": "8zWZs1k5wGVf3uQDZDx1T0gG9hGN7cV8LRZ6KbbhR6oUsepkKWlvOB4YSKDSWy0zhRx22IbTGzF1O4lqSGVGaZw2B9MpHEZZvoTpZ4ixDPyjTLBDsxcCoIw0SjprXgqlFbKEfV3",
+                                                "value": "KCWwny1H5dblWAlOTLfI1yVyJy4Rt8C5CyBZYDzVQChEcCsXfAy90tHJ1EsmM4sgvV7tqGh9jyNn28liITrAe0bgEEuiIWy5KGraeIjpgZNi78sHTTh7Msfi6KBHG1Eiz5tGNE5VDS6CSyjLksL6V0oTKRsjL7Bkc40SBYF6ILJtc26wvRuiSS3CCwNnDpzH"
+                                            }
+                                        ],
+                                        "selected-fc-port": [
+                                            {
+                                                "local-id": "o43n3NRh4dp6WUqvGgdWQMF5B6TbL5C99Fx4lgdpuvvipNO531TTFqRgxCsaHWcIuBMPR06dnuwMhcJdduYSUH0jksu1hGCL9os0gyeDUCh4OSh1mfLhXLA96W2nuE0D3sEbSKHNmQR2J0V5fGe4jPdhDgE8UwLPQhTJ1sofi7h17cZeKdbWUodywKyjgj87BTIulYKEX1xW6w2ICdEouSO0umjKGkJ9djDzhf5e9C2f15PviuTMeINIWY",
+                                                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                                                "name": [
+                                                    {
+                                                        "value-name": "ui4Dof9PxoUDxoGEhLuM3QyI48nE4lQzwM4U2dJrCv41LKG3naHj0f1WnoskJaT7XP1R3CixZmyLZ6Ge8nx0DyWSWg4yjXFgFz7I3h7VvxGuEeJMB8N6HBZvK333TBbq2a0Xr7SWEqjaEUPg2CeJ557P1aKUDVcF5cvojndPOw0kiHskbHWgM3YN5IzJwLgtXLKg1XYHlQ1DxuPI3DYPGODEpcfVYngV1042P2JaKCFhYvZ",
+                                                        "value": "8PRHwmdVysIoPQcQR8Sy2tJMYo3WLUQMBzt7VGUt0uKPlWy44iC6MdSCuNqfzg1aPmaCUW6UrICEEaIAscG6qqIUd11M9VOZhQt4NrY69sCNCcfX"
+                                                    }
+                                                ],
+                                                "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                                                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE",
+                                                "extension": [
+                                                    {
+                                                        "value-name": "doTKjaidc25Effu2No3VMAscTYi0fybkXW486mlbhqPoybqdzm8dOAqzqAAx8DRXzW5xajArJiP9l8nVun0aYqJg0bG1OxYflWFwffPQpF0LFfy1C",
+                                                        "value": "bsZUBR6hSMGJ22FHqMOfCeMuRrBpseXDyOq9Goi"
+                                                    }
+                                                ],
+                                                "logical-termination-point": [
+                                                    "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5"
+                                                ],
+                                                "selection-priority": "-9223372036854775808",
+                                                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED",
+                                                "port-of-internal-fc": [
+                                                    "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                                ],
+                                                "label": [
+                                                    {
+                                                        "value-name": "V3GdEsqxu4GhLxyB1ugsleCNQhi2xfjkaZyGkQdOVU5yjv1k0aNdoh07yi1XpkiscI0wyecl09TjEVww5jJlsCs0MuQcG0wSIwogKAuCJnOgakE7vglXSFP",
+                                                        "value": "1FIIxeAfLZonrSSb7GraS5hnduc5a1CbzkT6rueclCrMujPtR8DJ6V6jhaprc1DLdoJESXI5zaKVlzpdI2WOPV775oq9p3Mvkw94lSaVUUIflZs3UhRB4RA9f1bxWX2gt3lPVnCP9cXu4pyYyhzC02Mg3XNRMH08KdXyArfJvcdzuDx2VZFV1j3W8IFUpx22KRAcaPVG217wEFqrw5fpo"
+                                                    }
+                                                ],
+                                                "is-protection-lock-out": true,
+                                                "fc-port-direction": "core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL",
+                                                "fc-route-feeds-fc-port-egress": [
+                                                    "GAgqEOCH3rLdEpIUv7vdxsDYDCPqer6VUflq3P7Z8L4EaMqFTWLiog91TYjZiiUcx7CsWCr4nvBpa15VXQ6e6f7RdrJnBDz0D4szGMw397kb0p7Y7546kbPpuyN54m5Hiy8YcwTlvexwvwmvBqBVBik6J73Fm9eEzmvLLoY8uvE0TSvuaYhM8uKRtFwPOKmfZJ0C7ZKumhm89RCkHUYPgAzJfXrWANb"
+                                                ],
+                                                "is-internal-port": false,
+                                                "role": "j9WqpQspsYmGvUmeBWujmcLKLmD5dNNwWJPdA9CU7RADDOReLep7i2J3gn0u2N0YxP3ZYxTYgltU9c0MqiMIkvDBKDXMrXCQFxPv5AllNO7O10BjifUCCx5f321mSwcpVTM0l8e0OdOHdh1vwN01c5gf09BSFF9tqVlLVzLCFsjSJcogZohclxjlGN5es6HL22oPu2r1uDTdP9lHpCLL146AR4GcafX49dMvf5wJIqXqzi7",
+                                                "address": [
+                                                    "1GLjsAy5GlrxM3O79DKHk2J0q"
+                                                ],
+                                                "fc-port": [
+                                                    "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                                ]
+                                            }
+                                        ],
+                                        "hold-off-time": "-9223372036854775808",
+                                        "switch-control": "core-model-1-4:SWITCH_CONTROL_MANUAL",
+                                        "address": [
+                                            "lp3kLhqlAGICjduHdejFdiFRJwA0kqqxPtJsKaNlIwP1"
+                                        ]
+                                    }
+                                ],
+                                "supported-link": [
+                                    "9Q4mIfUJk0mLhUvbHEpZXi676WlsqFHrnMO5TAGdt2YKPlVwSkvPutOAi1UIGu1VgP01qyeTB4vqiiWaCjRZEGrWHmwgQybYf4ZxC5i51Nvj5jlAudz9L0Xkeus4UEU9ATH4QZaSFxbKJpc5CLefE4rSyUPsqBt0n2Wd265Hw9j7ywc29rhNvIyVuffUQIUdLJrFHoedxxk5Vx75QgKdRi0lxf8gX2tADU7lblqILLGGaFDSWo5Fy5SY"
+                                ],
+                                "label": [
+                                    {
+                                        "value-name": "NbI3h3HkUWtAb4blZg5gdHvkGDjatYI91qcjlLv8zZILVUYUa32nLxHr2StvIbEJtIUPuiX39FG4z",
+                                        "value": "QBISYlpxFjh8OZklBN3vuxNrtWZ9SqGI2hsSCR"
+                                    }
+                                ],
+                                "is-protection-lock-out": true,
+                                "external-managed-id": {
+                                    "manager-identifier": "5TW7jhjdjVZI5R7JsrTloxcvAF9TtYnyRjF3A",
+                                    "external-managed-uuid": "gLL7tJYskiL5E1CIw4oFQRDdinpXqROyDrF62vrmOcrkeV2K0qiIaNVsachs450HpFFr36ORbf3p3513ojLq7yS9D9CH7CgwaNXdUDW5TZmWWnRcHuCGUuPxwr6v4m162QjWu7Tf673UuM73gJJ26zAC0y7WV02XIdLckwjivmdZ0k3g3Eb15Lv6buU6u"
+                                },
+                                "fc-port": [
+                                    {
+                                        "local-id": "WIRpO5JrBhp1atvCoxONVnf3CMZB26oQGf8ncRON0dO2ybEOJkCwAJzcwyFqw38digAu0g90lQ3UTHAuU40u",
+                                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                                        "name": [
+                                            {
+                                                "value-name": "AGc8muFhCKATcWTk6LFOOrHo2ci64MUEkYFyscQ5WiQ0eBkcmZ03jArlEBjIf6nz420x6Qu28c2eNer15j4oLnJpY30d9nF5hFCnv6hvabJ",
+                                                "value": "paRumVT7bup9ppfqMUwVz8aW7jrhua7LdY7zLSyWnXYEm550ZBVqBXmIgNSCPRn2Pvtsf2hCZ79mceebP2BqZP18CLKjC8mjvPDKRUfJ1oX5Cb8jdJBdqul2f5eJ5A2shG51skKmAHr4KAnYbY3ClgwAdKkjceDuMIn727tCGMGqeVgiMjU7zizN"
+                                            }
+                                        ],
+                                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE",
+                                        "extension": [
+                                            {
+                                                "value-name": "nLdYOAs3TYjuyIjcHqq6iDusWlUdKYm7JzXp2pkVnvhNdARN1aTjNfDCAxPkn4jYDgnFFIsU5Kzjcr6dBRog71SHqAUNEdDhu1P1BhWG",
+                                                "value": "vZ6OXjhPAyOtqnU0hzEv5OR6DSzMG7G47MSWXaDxIr10PN1YextjlchQ5QDLYbPXXALUKpkkIdkpSloYTJa6WrXTasE0vmPsWAeyRqSsD4Rnq7mbJw9xPYqZiWRNiG769mESEokat4xL3TOMhXj7WBYeyQ2Io1Pxnli2"
+                                            }
+                                        ],
+                                        "logical-termination-point": [
+                                            "f7872522-16c2-ce17-fc7a-083c8517e7b3"
+                                        ],
+                                        "selection-priority": "-9223372036854775808",
+                                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE",
+                                        "port-of-internal-fc": [
+                                            "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                        ],
+                                        "label": [
+                                            {
+                                                "value-name": "TYZ0BlMkITePeJn1hG7dWpR8bYHmxmhjc8bOuP0cB6UPPhI7PQcM73MjTlFiIOtUWEAquAD5HpMoGnno5z2cuOvn92yRQ1EFG652HA7gZLwy8UWdtYqQEN5NIDxqF35d93fQveYnZvN0hBdKrvs5bySTbhjQkh3ukacPob4gyRgP",
+                                                "value": "lrTRUY2sJNv06mlfhPzs1hQ4l6u5ebxADjjp9dJK0eLYsYeKFF4yWMvaLZfZbEzGPS5Z5OJXUmWnc27JH3iwPFGAENsHj1f9Mk0J0BzVYna2p9MYcWu1B2u7HWH1PW2t9259DEWtT6oa7a8jYvdzpzy7nf0cc2yl4Dmz9bV29j4hlcsjHxK76i6tq6yC06PWB3vCeiwoBAxWMZfmxZlvajZAhp4"
+                                            }
+                                        ],
+                                        "is-protection-lock-out": false,
+                                        "fc-port-direction": "core-model-1-4:PORT_DIRECTION_BIDIRECTIONAL",
+                                        "fc-route-feeds-fc-port-egress": [
+                                            "y13tA3acpnzAgnFVYf7"
+                                        ],
+                                        "is-internal-port": true,
+                                        "role": "QP7n5jPt2p3ONTwAcM2BwjeC9wsFycZgT6DQqkjkJe8p0xRcjUFH5Tb6pvMPHL5sKAbaMuuoBuNB1wFcilUo65uoB8daUbvwLGGq22ODwt6qZMCi7wy5uUtX3H7PKulnaTN5NBIb4PB4tee",
+                                        "address": [
+                                            "BICnwgEtADh3uoBkikAj10zmitYUxVt8DXv1d2nFxEJ12kdcwOwxO5M6yCS5yd53at5onk3UYMWTZ15vP"
+                                        ],
+                                        "fc-port": [
+                                            "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                        ]
+                                    }
+                                ],
+                                "address": [
+                                    "j3YD8HQJ3ksW3qbwWYSxGJxVutV2hNXsIN5QuN"
+                                ]
+                            }
+                        ],
+                        "sync-ltp": [
+                            "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                        ],
+                        "address": [
+                            "5tmLcl1vqqaKt1euwbY2tC03osasl4OipaVBvW6Vn8xI9LcFW3IhxIcV2mnfibxHlkaIhgDwh26qOaYCdyUL8YyalWpD7Odl8n3hwzNNBLdhW3U1BGMJwdLR92n8QslRPh8lQO8jzeBnhnpLV3mrg0bp2qqLSLCz2CVKiVW"
+                        ]
+                    }
+                ],
+                "supporting-pc": "1p7jMwWzAiSQiV8dlyY5jsFe4sYfnMZpb6APvwo5G9VZ434it2nNuU1qmRxCwwTHvlx0RN5pWSgTOkb9mqWIlP1zzy35XWEshbk0RhiN1yyPTJZ72NInvJO49S16GFqQJKQA10f3zOKkpBrrp9GMKvIUfJSVgjDR3mj5mr0V7KfwmzQDIwplT",
+                "server-ltp": [
+                    "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                ],
+                "connected-ltp": "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5",
+                "layer-protocol": [
+                    {
+                        "local-id": "FUSiZR95mUlOMnoZgsKIyxc2Ik1WSA0yvKImCRjQLwFxU3w2n8KVFWQfhR31rVzOG92a0d0LKxawByyQGjMe7utglpiEkJlSTn2TBVxdsHJVg9MWs",
+                        "layer-protocol-name": "tdm-container-2-0:LAYER_PROTOCOL_NAME_TYPE_TDM_CONTAINER_LAYER",
+                        "vlan-interface-1-0:vlan-interface-pac": {
+                            "vlan-interface-capability": {
+                                "configuring-pcp-bits-decoding-is-avail": true,
+                                "ingress-vlan-id-filtering-is-avail": true,
+                                "port-and-protocol-based-vlan-is-avail": false,
+                                "statistics-is-avail": true,
+                                "configuring-service-access-priority-mapping-is-avail": true,
+                                "max-number-of-protocol-vlan-id-groupings": -28600,
+                                "configuring-ingress-tag-filtering-is-avail": false,
+                                "supported-sub-layer-protocol-name-list": [
+                                    "vlan-interface-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_C_VLAN_COMPONENT"
+                                ],
+                                "number-of-available-traffic-classes": -83,
+                                "supported-interface-kind-list": [
+                                    "vlan-interface-1-0:INTERFACE_KIND_TYPE_D_BRIDGE_PORT"
+                                ],
+                                "available-pcp-bits-interpretation-kind-list": [
+                                    "vlan-interface-1-0:PCP_BITS_INTERPRETATION_KIND_TYPE_8P0D"
+                                ],
+                                "drop-eligible-indicator-is-avail": true,
+                                "configuring-pcp-bits-encoding-is-avail": false,
+                                "service-access-priority-tagging-is-avail": false,
+                                "received-priority-overwriting-is-avail": false,
+                                "egress-vlan-id-translation-is-avail": false,
+                                "admin-shut-down-is-avail": false,
+                                "tagging-and-mvrp-is-avail": false,
+                                "vlan-id-translation-is-avail": true,
+                                "restricted-automated-vlan-registration-is-avail": false,
+                                "number-of-available-priorities": 80
+                            },
+                            "vlan-interface-status": {
+                                "statistics-is-up": true,
+                                "timestamp": "2020-04-26T20:54:55Z",
+                                "total-bytes-output": "-9223372036854775808",
+                                "total-frames-input": "-9223372036854775808",
+                                "interface-status": "vlan-interface-1-0:INTERFACE_STATUS_TYPE_NOT_PRESENT",
+                                "total-frames-output": "-9223372036854775808",
+                                "total-bytes-input": "-9223372036854775808"
+                            }
+                        },
+                        "wire-interface-2-0:wire-interface-pac": {
+                            "wire-interface-current-problems": {
+                                "number-of-current-problems": -60,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -18628,
+                                        "timestamp": "2021-07-19T13:56:34Z",
+                                        "problem-severity": "wire-interface-2-0:SEVERITY_TYPE_MINOR",
+                                        "problem-name": "6avzh7R2R1rj0MSfgjY5hATU4TqDUNSSXfr6na06bsq3eaanu0sLBlxF6Xb0C3SzibyxdyEg04j7euuIuWl59TDfIG8lJ0MT4krhTXyL1JS75eIA2Vx3G2jpIjCjbg5ftopelPZeyKdEYV61RD4pyfO8yisKzxR2Vg8857mwRz2In8J6DFvbNckluEXV3PPYXXY3XkrOLto8B76eFCisOCFa8vYbkN19DZ4AbvgWYFX"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-05-18T23:25:54Z"
+                            },
+                            "wire-interface-historical-performances": {
+                                "number-of-historical-performance-sets": 30590,
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "period-end-time": "2020-12-19T16:21:02Z",
+                                        "performance-data": {
+                                            "es": -1899203607,
+                                            "ses": 612335328,
+                                            "low-power-idle-receiver-ms": 1011743972,
+                                            "low-power-idle-transmitter-ms": 9212026,
+                                            "symbol-error-during-carrier": -563377731
+                                        },
+                                        "history-data-id": "bmhROx91G67up3hFAips6AXcpDEotXLxb2oSrpL7nKuNNLkn3BH1bw5AaJYDzJ2KDiC4If45ZyKMb426FJ0Rg5jqHaVgTYSp8nlQCpOCPyo0DqZa2Z",
+                                        "suspect-interval-flag": true
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-11-16T01:04:14Z"
+                            },
+                            "wire-interface-status": {
+                                "rx-sync-role": "wire-interface-2-0:RX_SYNC_ROLE_TYPE_MASTER",
+                                "link-is-idle": false,
+                                "eee-is-up": true,
+                                "performance-monitoring-is-up": true,
+                                "rx-level-cur-list": [
+                                    122
+                                ],
+                                "tx-level-cur": 31,
+                                "pmd-negotiation-state": "wire-interface-2-0:PMD_NEGOTIATION_STATE_TYPE_NOT_YET_DEFINED",
+                                "loop-back-kind-up": "wire-interface-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED",
+                                "interface-status": "wire-interface-2-0:INTERFACE_STATUS_TYPE_DORMANT",
+                                "pmd-kind-cur": "4QBKggm67P52cUJ4Zed1u0NY0PLDcgy869Sei7cpOhs1335UiaVMaBC3qnyCD6KB8vQqu2Pic9bfd8ana59dyLgZ1GBEFe8NJY5dSMn4Wrc1zmoKjxXSa5J3DcIiqIX1y2eqHun",
+                                "receive-signal-is-detected-list": [
+                                    false
+                                ],
+                                "signal-ordering-kind-cur": "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI_X",
+                                "pmd-is-up": true,
+                                "link-is-up": false
+                            },
+                            "wire-interface-capability": {
+                                "wavelength-min-list": [
+                                    1245170398
+                                ],
+                                "supported-signal-ordering-kind-list": [
+                                    "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI_X"
+                                ],
+                                "rxlevel-high-threshold": 48,
+                                "isolation-is-avail": true,
+                                "supported-loop-back-kind-list": [
+                                    "wire-interface-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "short-reach-mode-is-avail": false,
+                                "wavelength-max-list": [
+                                    -1045985849
+                                ],
+                                "unidirectional-operation-is-avail": true,
+                                "supported-pmd-kind-list": [
+                                    {
+                                        "pmd-name": "LFZDk712ifjFD0udBApkR4wFO38dPjgBZ76j67doeoWSoi50SmcJiIg6EgbtAk4rraCq9POg6K8m35mNrypJ9FINWTgoddPxfjXh0Dx6gFtbKHY38nMhVu4Jgc7lhOSx7HO7ll6BSzMu8Kxg0jpVGlEWyD9Hr2eqBUpW7vxZWbt5W0dWcDJSYnGo0H6jBcBd",
+                                        "speed": "096oz6kKrhykvmo058YkOncnlvZx6cwZdDnMBzp2RPee4Ce1KceqrqOMONcMRIL4d0JOA0RrPXFLATNcX1Dpjr376fUXQxT3yCS0CBrkyYX0JCdyvQXP9TW70I4Q8PMGsEGW7Z8xP6yyID66lWVmHJtHkpqsec8yIGnPFvemtEU4hSaCG5YfGjX0IfsPrsn1",
+                                        "duplex": "wire-interface-2-0:DUPLEX_TYPE_FULL_DUPLEX"
+                                    }
+                                ],
+                                "configuration-of-number-of-bip-errors-per-ses-is-avail": true,
+                                "auto-pmd-negotiation-is-avail": false,
+                                "required-medium-kind": "wire-interface-2-0:MEDIUM_KIND_TYPE_TP_CAT3",
+                                "temperature-low-threshold": -124,
+                                "maintenance-timer-range": "qOOJgcKhOkWWgQqJDXu3FJajOwEdz0dRG1AO5c5MwUIEK0ofYSjDttOhRtnqlsh1lJPjNN5bHFPjG5yEPR9ikXsbiPtD9CwuleN01SbAqTT6YrCObDYvsqzL72ggFFDSTiTM3WetP7zGq3uB",
+                                "supported-alarm-list": [
+                                    "kZ8LyTKs21ZHwKsOv6Rrkk9jLPBOb5uv4D8uoTWiMOZiyj63pQmJ2v2OcECnJ7TFC190UXbyDaQbuP6TxtvzQpn330qEZbbB5ctRaEqNH8R3XPOuaj41J"
+                                ],
+                                "mii-kind": "wire-interface-2-0:MII_KIND_TYPE_NOT_YET_DEFINED",
+                                "rxlevel-low-threshold": 86,
+                                "auto-negotiation-pmd-selection-is-avail": false,
+                                "wavelength-grid-min": 832056412,
+                                "performance-monitoring-is-avail": true,
+                                "auto-signal-ordering-is-avail": false,
+                                "configuration-of-rx-sync-preference-is-avail": false,
+                                "eee-is-avail": true,
+                                "temperature-high-threshold": -68,
+                                "admin-shut-down-is-avail": true,
+                                "mdi-kind": "wire-interface-2-0:MDI_KIND_TYPE_FIBRE_CHANNEL_STYLE_1"
+                            },
+                            "wire-interface-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "performance-data": {
+                                            "es": 379817146,
+                                            "ses": 951577254,
+                                            "low-power-idle-receiver-ms": -129394251,
+                                            "low-power-idle-transmitter-ms": -1268130297,
+                                            "symbol-error-during-carrier": -1300516699
+                                        },
+                                        "timestamp": "2021-04-07T16:27:53Z",
+                                        "scanner-id": "1E1ED66OtfCkMzLiDjua1Zwl2UNsgichW6Or4Ufx1SRNj",
+                                        "suspect-interval-flag": false,
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 92
+                            }
+                        },
+                        "ethernet-container-2-0:ethernet-container-pac": {
+                            "ethernet-container-capability": {
+                                "supported-fec-interleaver-kind-list": [
+                                    "ethernet-container-2-0:FEC_INTERLEAVER_KIND_TYPE_CONVOLUTION"
+                                ],
+                                "maintenance-timer-range": "jkBucoqxnt3p5T7TpZr1C7PQuRZ79C4sXxW1VmzaHuzMnHxFyQGaXn0seSrnuvPjULlIZUSygkcw1JbrsJCp6uJkeaAJxh2s3f",
+                                "supported-alarm-list": [
+                                    "12timFOfhRHJAb0GxKSMUkvsCpMxFWrGQMQ5kwctnTcPW4nuOggBAD34UHBzD38lHYqTvDmKoqAdvXHj5PUykPCeweG19OfIEFC1aYMzpeMU3l592SHmHbA6pgZqWe9BMLCWBgnSu1EymKzou8K3jd9Bt11if2T1FnQhwd107GqtiRKMZmPbzRMVSFdZIYT",
+                                    "dJwJOyCV62hoMT2LfJWHAAukgzkYx5dKGKuua6ig0rwEky"
+                                ],
+                                "statistics-is-avail": false,
+                                "encryption-is-avail": false,
+                                "performance-monitoring-is-avail": false,
+                                "available-queue-list": [
+                                    {
+                                        "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE4",
+                                        "available-dropping-behavior-kind-list": [
+                                            "ethernet-container-2-0:DROPPING_BEHAVIOR_KIND_TYPE_WRED"
+                                        ],
+                                        "available-drop-precedence-kind-list": [
+                                            "ethernet-container-2-0:DROP_PRECEDENCE_TYPE_LOW"
+                                        ],
+                                        "queue-depth-configuration-is-avail": true,
+                                        "wred-profile-per-drop-precedence-is-available": false,
+                                        "available-scheduling-kind-list": [
+                                            "ethernet-container-2-0:SCHEDULER_KIND_TYPE_STRICT"
+                                        ],
+                                        "max-queue-depth": -1397090003
+                                    }
+                                ],
+                                "bundling-is-avail": false,
+                                "supported-header-compression-kind-list": [
+                                    {
+                                        "header-compression-name": "16Gn12ec37pnR5F9I0x9a6Rr1y1lrjrsh7Hj2Vv5VVlMSSNsSlC2jltkTmxkGZEXYm809EY4rbJb3wEWJ8YUtk6myEy6Dc4Bq4uAIsw1D7dGwRufZt2kF8GdM6khigLBkf3VHzWcH1S5SfkJIe3fnBs1HEbSUWt73w2KXQOwS",
+                                        "mpls-payload-kind-list": [
+                                            "ethernet-container-2-0:MPLS_PAYLOAD_KIND_TYPE_AUTO"
+                                        ],
+                                        "compressed-protocol-layer-list": [
+                                            "ethernet-container-2-0:PROTOCOL_LAYER_TYPE_IPV4"
+                                        ],
+                                        "header-compression-mode": "ethernet-container-2-0:HEADER_COMPRESSION_MODE_TYPE_LENGTH_BASED",
+                                        "compressed-header-length": -17230
+                                    }
+                                ],
+                                "support-of-management-frames-without-preamble-is-avail": false,
+                                "explicit-congestion-notification-is-avail": false,
+                                "information-rate-min": -10014949,
+                                "fec-is-avail": false,
+                                "burst-size-max": 3115,
+                                "ingress-policing-is-avail": false,
+                                "supported-fec-redundancy-size-list": [
+                                    "ethernet-container-2-0:FEC_REDUNDANCY_SIZE_TYPE_4"
+                                ],
+                                "egress-shaping-is-avail": true,
+                                "information-rate-max": -425589241,
+                                "admin-shut-down-is-avail": true,
+                                "bundling-group-size-max": 112,
+                                "supported-fec-interleaver-depth-list": [
+                                    "ethernet-container-2-0:FEC_INTERLEAVER_DEPTH_TYPE_96"
+                                ],
+                                "burst-size-min": 12156,
+                                "fec-word-size-max": -16787,
+                                "supported-loop-back-kind-list": [
+                                    "ethernet-container-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED"
+                                ]
+                            },
+                            "ethernet-container-current-problems": {
+                                "number-of-current-problems": 37,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 356,
+                                        "problem-name": "6lYClWyaVDA47x86IAVDa7FwTNs3dpBjKsVYom8bZAfZZf5HQSdSZSoLyROL8i4LKZJ0dJb5bi4ax9Sf258TPown7d0gv417WCZ9l2ewkayJkqZen7Z5vwkDJlL6pE5dg4ntY",
+                                        "timestamp": "2021-09-23T18:47:59Z",
+                                        "problem-severity": "ethernet-container-2-0:SEVERITY_TYPE_CRITICAL"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-04-10T09:38:39Z"
+                            },
+                            "ethernet-container-historical-performances": {
+                                "number-of-historical-performance-sets": 9956,
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "period-end-time": "2021-11-01T17:28:21Z",
+                                        "suspect-interval-flag": false,
+                                        "history-data-id": "EERRlD2JUQ5fVoekTqxyFAuu4hzpMMmqie9DJ4evMbLzzZTlhjTWLfiPxS6jwtBGzCbaypGksjU2iFnzQ8nBoFjNpp6NSztj3EuCVaWotQiDox4eFrQ3Y1IgqGVjfhCjV6VJ8J7tsh6QOaWttEpkF7A6GnhVET6sSTbSvamXrkF7vBsQgRaVRC1p0acE4j6O49yzbUoC73BCF4kNNnIwZCVRM8oIjmonwPPHBdcIhNcO",
+                                        "performance-data": {
+                                            "queue-utilization-list": [
+                                                {
+                                                    "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_EXPEDITED_FORWARDING_QUEUE",
+                                                    "max-queue-length": 1672546876,
+                                                    "avg-queue-length": 146235118
+                                                }
+                                            ],
+                                            "fec-uncorrectable-blocks": -484204115,
+                                            "tx-ethernet-bytes-sum": "-9223372036854775808",
+                                            "tx-ethernet-bytes-max-m": "-9223372036854775808",
+                                            "fec-corrected-blocks": 278799882,
+                                            "tx-ethernet-bytes-max-s": 272076442,
+                                            "time-period": -648422975
+                                        }
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-04-02T20:29:54Z"
+                            },
+                            "ethernet-container-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "timestamp": "2021-08-30T08:38:23Z",
+                                        "scanner-id": "S71XlhTAKJVtTzSNhAxdyh1AwcX87FvRFwHSNsspcfS5PCKYdacDr5dPh3XgIs0fYH7D9r2dHMbooVmt5q6wvc",
+                                        "suspect-interval-flag": false,
+                                        "performance-data": {
+                                            "queue-utilization-list": [
+                                                {
+                                                    "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE2",
+                                                    "max-queue-length": -324474525,
+                                                    "avg-queue-length": 111866342
+                                                }
+                                            ],
+                                            "fec-uncorrectable-blocks": 1863944982,
+                                            "tx-ethernet-bytes-sum": "-9223372036854775808",
+                                            "tx-ethernet-bytes-max-m": "-9223372036854775808",
+                                            "fec-corrected-blocks": 2050244100,
+                                            "tx-ethernet-bytes-max-s": -1617169319,
+                                            "time-period": -1408833637
+                                        },
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 21
+                            },
+                            "ethernet-container-status": {
+                                "timestamp": "2020-02-28T06:24:55Z",
+                                "last-10-sec-data-output-rate": -332911459,
+                                "bundling-is-up": false,
+                                "total-bytes-output": "2930571799355127808",
+                                "total-bytes-input": "4983356685064134656",
+                                "interface-status": "ethernet-container-2-0:INTERFACE_STATUS_TYPE_DORMANT",
+                                "loop-back-kind-up": "ethernet-container-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED",
+                                "statistics-is-up": false,
+                                "last-10-sec-data-input-rate": 165251308,
+                                "forwarded-bytes-output": "6400888827630128128",
+                                "performance-monitoring-is-up": false,
+                                "forwarded-bytes-input": "6073188603818711040",
+                                "remote-site-is-faulty": false
+                            }
+                        },
+                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                        "hybrid-mw-structure-2-0:hybrid-mw-structure-pac": {
+                            "hybrid-mw-structure-status": {
+                                "performance-monitoring-is-up": true,
+                                "segment-status-list": [
+                                    {
+                                        "segment-status-type-id": -8002,
+                                        "operational-status": "hybrid-mw-structure-2-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED",
+                                        "segment-is-reserved-for-tdm": true
+                                    }
+                                ]
+                            },
+                            "hybrid-mw-structure-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "period-end-time": "2021-08-22T05:39:34Z",
+                                        "history-data-id": "bm3s0goj5220HTHpUK671TFoGcVYl5OxkJRcS8vXaxQRix8596",
+                                        "performance-data": {
+                                            "rx-level-avg": -102,
+                                            "es": -687179831,
+                                            "unavailability": -1615913281,
+                                            "cses": -1307026209,
+                                            "ses": 2003629102,
+                                            "rx-level-min": 67,
+                                            "time-period": 1740626670,
+                                            "rx-level-max": 68
+                                        },
+                                        "suspect-interval-flag": false
+                                    }
+                                ],
+                                "number-of-historical-performance-sets": -3805,
+                                "time-of-latest-change": "2021-07-19T02:23:12Z"
+                            },
+                            "hybrid-mw-structure-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -18005,
+                                        "problem-name": "MJFc2Bc4PEpUYyO1hPPdQW2b0xWOcN4ZoJ3qdfn2UEOKcuDubsH2gK5g91WlG1cWCgePvBJh7x1k2wO5Yn7eZ4n0Xbmv4yjHOyoc18t9xntrT9xKowYoBdoqpCWl3f2RFj3HjpIQM3aF4Hhsd8IGl77CBVYE2So",
+                                        "problem-severity": "hybrid-mw-structure-2-0:SEVERITY_TYPE_NOT_YET_DEFINED",
+                                        "timestamp": "2020-01-04T05:26:03Z"
+                                    }
+                                ],
+                                "number-of-current-problems": -2,
+                                "time-of-latest-change": "2022-02-10T05:23:53Z"
+                            },
+                            "hybrid-mw-structure-capability": {
+                                "supported-tdm-structure-kind-list": [
+                                    {
+                                        "tdm-structure-name": "31wKebOzx5zfoavvnYEIJcn3poMx6YX9ZlLewAFVxe2VhpjEoXmZ9J2qZOP6EF7E0TKxtpk0wnONM7r2WF16h4o8K6ehLmVL7xaAOvskK87wfqr4Ys2foqn1wuihI5VPC5pqsJDcSCBZ323Tu58LwnMUR44z9ZgL4F3phGB9jc0ee47B97mxu0se4oFdnWQjt",
+                                        "tdm-segment-size": -947022613,
+                                        "max-number-of-segments-reservable": 27
+                                    }
+                                ],
+                                "performance-monitoring-is-avail": false,
+                                "supported-alarm-list": [
+                                    "AcLLoMZvQY6RXkpjkJxg75tm1jFu4g7wsShQw8deYb6VnvfH6EXdJizKt67ym64GYepnmCBdOH8b4fLaUAfDLGgeNnE1tJIjP7G3BaghRptOE6Qyy64jEkyjH"
+                                ]
+                            },
+                            "hybrid-mw-structure-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "suspect-interval-flag": true,
+                                        "timestamp": "2020-12-28T04:23:24Z",
+                                        "performance-data": {
+                                            "rx-level-avg": 15,
+                                            "es": 2108120248,
+                                            "unavailability": -1584276351,
+                                            "cses": 751353374,
+                                            "ses": 692341484,
+                                            "rx-level-min": 77,
+                                            "time-period": -256906741,
+                                            "rx-level-max": 59
+                                        },
+                                        "scanner-id": "N0HhBufgo0E63XfqG6v2SK4Qyo9zPa9uaIEDcTTBLpzPfH7NFCPqeU8MahlZjnml50ZaLKLp2cehLl4jPLJ3FRPP12H",
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 113
+                            }
+                        },
+                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                        "extension": [
+                            {
+                                "value-name": "cHTL7ozE0JK09RK7tT6PsrL9MFl3lSTqzFby3Cc3eOVnxxv0qBQTVt2H9fCmZoMq3XZ6Ab1O0W3plyqMa8x5trEuy9RyxDYstXq31rJTfMiAdAefALc44QyDZpboV1QoZgjSzULGyV9Lwn061c25VBIMSTbNVT3M2mEBghaPcjsAytzzxBFs4ffX1iCW3yA5U6z3fJKr2cUsxt254zp",
+                                "value": "OwYPOsDS0dPNboIq7sK1wEu47o13Xi4LPUBvf6f7k5UnluOlWyml4Ihb6a6Vsbz9X2xc8EksB6QXBwip4wK071b5b91wkAFaC4mKJy5kxN90jrpfY2f53i27r3vEv2O772KQBP28uc8FDpUtr1qnbt"
+                            }
+                        ],
+                        "configured-client-capacity": "YY5cUmv3bPT2IJ06AytbQMauuy76qylooitiFYeQF7TfILljjHu9lwvHWCOn21Djk6BZXPPuOAKpdXAww4xRt3zpxfEsgaLA8ezXWhsCJ41X1BlqyThTOIadXPFeZiGZxgXlphX8lZXesjE0cOLSwW5mLDACV8tkoqFFHvOUuD1OWxH0lsSKoY61tyvgGZtXh0CZviLZWEGScnLpPD",
+                        "ip-interface-1-0:ip-interface-pac": {
+                            "ip-interface-status": {
+                                "errored-packets-output": -43604853,
+                                "last-10-sec-data-output-rate": -1635441903,
+                                "forwarded-packets-input": "-9223372036854775808",
+                                "errored-packets-input": -1594853201,
+                                "ip-v-4-address-cur-list": [
+                                    {
+                                        "fixed-ip-v-4-address": "F7WteV1Bz0iRfCSyB3B7dkE09QWzdfwSekds764G7epeQ9Nj5gjiAPiKx7bKmHvATIUSPQrW4Q2NSPYX597GYqivxtgL3LdOl7HaY8YUQ1zAIypGz",
+                                        "fixed-ip-v-4-address-prefix-length": -4,
+                                        "fixed-default-gateway-ip-v-4-address": "yXoVmR37MOct2ja49a3WSWvtwVScvpiVeGQAqUzcALFCX"
+                                    }
+                                ],
+                                "broadcast-packets-output": -1137946139,
+                                "dropped-packets-input": 227532694,
+                                "loop-back-kind-up": "ip-interface-1-0:LOOP_BACK_TYPE_NONE",
+                                "dropped-packets-output": -1648209419,
+                                "unicast-packets-input": "-9223372036854775808",
+                                "forwarded-packets-output": "-9223372036854775808",
+                                "neighbor-list": [
+                                    {
+                                        "neighbor-mac-address": "YJCUCqi5W5P1s7jnd06Oq0fusT2XQBwOl0BXqLUeQBfjIryWrECJwJ5ZC7OkJk1WkCTCfFQ586gRxPFQt9r0KwRnwxz7JA334OxjlnptlFcSmRAQS1IDqrSWYrVzUYuYE1iZozsK6FutoXb9QTMgcw42PZBJP5At6SkmjNYhstKIiVR8GvhK1lMJdfsUc2gaMA",
+                                        "neighbor-ip-v-4-address-list": "XnnfHQRq0F99dFqYGDChQSKDWET7jlw8JTniC7ACMKLZp3XXHsfpcR28nNfy9DHKxW213vDPfhPwkEt16ArirtrP9yficW2BTWCWrfEGwl4RZyK68bgsxz9G0oYclSF6OhUgoyONTTwLjgJjsZLRrUxrbnvwfau3robHPSuAD0dWhWfBO1sfNRyYe3mldQgw7kdOcIgPAuDJqSk6LElrnThBOEO1m5plpD9t",
+                                        "neighbor-origin": "ip-interface-1-0:NEIGHBOR_ORIGIN_TYPE_STATIC"
+                                    }
+                                ],
+                                "timestamp": "2021-08-03T04:01:32Z",
+                                "forwarded-data-volume-output": -1745418425,
+                                "total-packets-input": "-9223372036854775808",
+                                "last-10-sec-packet-input-rate": 217369930,
+                                "last-10-sec-packet-output-rate": 1219610574,
+                                "vpn-binding-is-up": false,
+                                "multicast-packets-output": -305538197,
+                                "broadcast-packets-input": -127438211,
+                                "last-10-sec-data-input-rate": -1989365709,
+                                "interface-status": "ip-interface-1-0:INTERFACE_STATUS_TYPE_DOWN",
+                                "statistics-is-up": true,
+                                "total-packets-output": "-9223372036854775808",
+                                "multicast-packets-input": 2088942270,
+                                "data-volume-input": -1377573089,
+                                "data-volume-output": 1134446242,
+                                "fragmented-packets-input": 650999404,
+                                "ip-address-origin": "ip-interface-1-0:IP_ADDRESS_ORIGIN_TYPE_LINK_LAYER",
+                                "unicast-packets-output": "-9223372036854775808",
+                                "forwarded-data-volume-input": 803712852
+                            },
+                            "ip-interface-current-problems": {
+                                "time-of-latest-change": "2020-09-04T23:21:02Z",
+                                "number-of-current-problems": 123,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -4287,
+                                        "problem-severity": "ip-interface-1-0:SEVERITY_TYPE_NON-ALARMED",
+                                        "problem-name": "K7zUNlHcpfNIy37azp3ynBtnneNuvHD8H4UuhuyHJlh9hojIFmg3XBqcP5HdFclmh7QqBg7kBhtKxE",
+                                        "timestamp": "2020-11-09T16:43:37Z"
+                                    }
+                                ]
+                            },
+                            "ip-interface-capability": {
+                                "burst-size-max": -28986,
+                                "statistics-is-avail": true,
+                                "supported-alarm-list": [
+                                    "QvBgKx5oLOhdRtJFpPlgc2IP5",
+                                    "qdIh1qNuHp1EOEkXR4jsJAi4QmZq44jmaTEbcjyLIrpo6KePOxip7slPOkfKpq7zjLCvWa8wCyVAa1pQyHfx1AmQNtA4TzD4c7A8aIFE8seatv"
+                                ],
+                                "information-rate-min": -1926009805,
+                                "maximum-number-of-ip-v-4-addresses": -3795,
+                                "fixed-default-gateway-configuration-is-avail": true,
+                                "maintenance-timer-range": "dH06HqeWEFcv44dUtWwG47ktV071O5nTEnSmO6akMnHIrUuMI1kM0F8WFfPlcc6QsY485fsJC1jVONHwGUbHzjv6ykjCppsRgxZdEjWgk7b0UKptEAa5LF3bReNgEfZMEYZi9Vqu2tmOeLhKljI6QL9I0WQw4QaIG9TQWjcQNyETkOvxZdwQRFqJC87GQhgxq1felj40RAL3ogtgmZ65woO0wNyn4PMmQTA3cwV36GZnPsD3jJ8P",
+                                "admin-shut-down-is-avail": false,
+                                "dhcp-client-is-avail": false,
+                                "egress-shaping-is-avail": false,
+                                "information-rate-max": -1696738963,
+                                "burst-size-min": -28000,
+                                "ip-v-6-is-avail": false,
+                                "maximum-transmission-unit-max": 19473,
+                                "ingress-policing-is-avail": true,
+                                "maximum-transmission-unit-min": -6698,
+                                "supported-loop-back-kind-list": [
+                                    "ip-interface-1-0:LOOP_BACK_TYPE_NONE"
+                                ],
+                                "vpn-binding-is-avail": false,
+                                "arp-proxy-is-avail": false
+                            }
+                        },
+                        "termination-state": "core-model-1-4:TERMINATION_STATE_LP_PERMENANTLY_TERMINATED",
+                        "mac-interface-1-0:mac-interface-pac": {
+                            "mac-interface-status": {
+                                "errored-frames-output": -1136700123,
+                                "loop-detection-result": "mac-interface-1-0:LOOP_DETECTION_RESULT_TYPE_DETECTION_SWITCHED_OFF",
+                                "forwarded-frames-input": "-9223372036854775808",
+                                "timestamp": "2020-02-04T22:20:59Z",
+                                "multicast-frames-input": 490824476,
+                                "unicast-frames-input": "-9223372036854775808",
+                                "last-10-sec-frame-output-rate": -1325684957,
+                                "total-frames-input": "-9223372036854775808",
+                                "multicast-frames-output": 1062073786,
+                                "dropped-frames-output": -1986825433,
+                                "statistics-is-up": true,
+                                "forwarded-frames-output": "-9223372036854775808",
+                                "flow-control-mode-cur": "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_NONE",
+                                "received-ethernet-frame-format-cur": "mac-interface-1-0:FRAME_FORMAT_TYPE_802.2_SNAP",
+                                "last-10-sec-frame-input-rate": 1799824270,
+                                "errored-frames-input": 1572094918,
+                                "loop-back-kind-up": "mac-interface-1-0:LOOP_BACK_TYPE_BACK_TO_LOCAL",
+                                "interface-status": "mac-interface-1-0:INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN",
+                                "mac-address-cur": "KN3l7dL6kf1Z476r7br2g57nwuBV0sVL7Q6e3KdgRe7Vm6nlhGnxMuUiYn5ZP1COJAVFc8V3e2RA06ViMaPyECJvZOmHHYnrqi6viTqxN97OfV625NACpb7h0tQHj50Bo",
+                                "broadcast-frames-output": 2051481008,
+                                "total-frames-output": "-9223372036854775808",
+                                "fragmented-frames-input": -656341435,
+                                "performance-monitoring-is-up": true,
+                                "unicast-frames-output": "-9223372036854775808",
+                                "broadcast-frames-input": -1445272527,
+                                "dropped-frames-input": 612842746
+                            },
+                            "mac-interface-capability": {
+                                "supported-flow-control-mode-list": [
+                                    "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_AUTO_NEGOTIATION"
+                                ],
+                                "statistics-is-avail": true,
+                                "broadcast-frame-suppression-is-avail": false,
+                                "supported-frame-format-list": [
+                                    "mac-interface-1-0:FRAME_FORMAT_TYPE_ETHERNET_2"
+                                ],
+                                "admin-shut-down-is-avail": true,
+                                "maximum-frame-size-min": 9571,
+                                "loop-detection-is-avail": true,
+                                "performance-monitoring-is-avail": false,
+                                "mac-address-configuration-is-avail": false,
+                                "maintenance-timer-range": "ukiMglDNFKBKrBlg3oWbR7TBmR2XS5Yfp91FmEl2gOMIq0YtoMx7MqB89vY1BOg0XaykOLm5z0FZ0DlgqSocaZcjmacX",
+                                "supported-alarm-list": [
+                                    "0O0en9aGZEJVkbl1J6620Gy6bITFKu2KaUQp305UFOHZS3TB1Zv2x40IMTfwf99h3ZHY0MLxtsolnhOp9kjGgjh24wrbGskJj1AbGlI1F7e3g2kpev6uOnpKLINj273l1vxHQfIveWqvQKUX70jVfIx1ikckk7GlCd2skC",
+                                    "QWvo8b1m8AnNsnrFEJxUVHL707a459xNX23Y64kewz2YXtvt42fZB0YtZ0yW1XJZSMXYQ9cnJedyzJTDD8u70lAZl8Wn6xeQk3O2c0hN7ndG66cB6GI61bYfjMChjI7vLNqPGHDN4Ql2PxwVeeU7pSmBwQKPyKdbxD15cEShmebbLHZRWTZdDdG94rQu33GsyHyLdq2zw5DiNC1B"
+                                ],
+                                "hardware-mac-address": "nT8dMpm9LcLa0fSrwKWWJ6QAS0F5AikY4k3QKpRvuuxmKpN82J4LINmANTxo3Je7V9PFzy233shFJ5NLGJxgoLIcw7szQGzEPgbgPebKythhqW3Yxs7W5P8BXA2F",
+                                "maximum-frame-size-max": -12535,
+                                "supported-loop-back-kind-list": [
+                                    "mac-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "link-loss-forwarding-is-avail": true,
+                                "loop-port-shut-down-is-avail": true
+                            },
+                            "mac-interface-historical-peformances": {
+                                "number-of-historical-performance-sets": 10615,
+                                "time-of-latest-change": "2021-02-23T05:20:21Z",
+                                "historical-performace-data-list": [
+                                    {
+                                        "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "period-end-time": "2020-11-15T09:26:54Z",
+                                        "performance-data": {
+                                            "mac-pause-frames-ingress": 771263886,
+                                            "tagged-frames-ingress": "-9223372036854775808",
+                                            "jabber-frames-ingres": 2084459052,
+                                            "mac-pause-frames-egress": -1729237241,
+                                            "mac-control-frames-egress": -194471181,
+                                            "oversized-frames-ingress": 1173737042,
+                                            "undersized-frames-ingress": -598203035,
+                                            "frames-of-1024-to-1518-byte": "-9223372036854775808",
+                                            "frames-of-64-byte": "-9223372036854775808",
+                                            "frames-of-512-to-1023-byte": "-9223372036854775808",
+                                            "frames-of-65-to-127-byte": "-9223372036854775808",
+                                            "mac-control-frames-ingress": 819527106,
+                                            "frames-of-256-to-511-byte": "-9223372036854775808",
+                                            "tagged-frames-egress": "-9223372036854775808",
+                                            "frames-of-128-to-255-byte": "-9223372036854775808",
+                                            "fragmented-frames-ingress": "-9223372036854775808"
+                                        },
+                                        "history-data-id": "nVb1M5BYAG1TVxZAhl1ma8kvxRFT0qgn",
+                                        "suspect-interval-flag": true
+                                    }
+                                ]
+                            },
+                            "mac-interface-current-problems": {
+                                "time-of-latest-change": "2020-01-11T11:58:04Z",
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 29169,
+                                        "problem-severity": "mac-interface-1-0:SEVERITY_TYPE_MAJOR",
+                                        "problem-name": "ksWWIMUpEbu3KzoyrHgpNqQ3UpI8iX4viSj0wdh2pM51dtrF2H4I7MLU3mUmjQRBA2C7fT9wxfxLIYqDxmlx06j4sdiE41fE3JLavNzU26FCXXfmbAT4z401iixmbNS6owgLjPGdOdPD35RexDiYHiSZspdD46BtuS6NzM0f0HK3Eu947s2OCUG5cLAgJcBdWISn",
+                                        "timestamp": "2021-11-03T06:04:43Z"
+                                    }
+                                ],
+                                "number-of-current-problems": -37
+                            },
+                            "mac-interface-current-performance": {
+                                "number-of-current-performance-sets": 66,
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "elapsed-time": "-9223372036854775808",
+                                        "suspect-interval-flag": true,
+                                        "timestamp": "2020-11-14T04:45:33Z",
+                                        "performance-data": {
+                                            "mac-pause-frames-ingress": -374429621,
+                                            "tagged-frames-ingress": "-9223372036854775808",
+                                            "jabber-frames-ingres": 908050256,
+                                            "mac-pause-frames-egress": -203405529,
+                                            "mac-control-frames-egress": -177261781,
+                                            "oversized-frames-ingress": 1518539442,
+                                            "undersized-frames-ingress": 1116972284,
+                                            "frames-of-1024-to-1518-byte": "-9223372036854775808",
+                                            "frames-of-64-byte": "-9223372036854775808",
+                                            "frames-of-512-to-1023-byte": "-9223372036854775808",
+                                            "frames-of-65-to-127-byte": "-9223372036854775808",
+                                            "mac-control-frames-ingress": 1805094008,
+                                            "frames-of-256-to-511-byte": "-9223372036854775808",
+                                            "tagged-frames-egress": "-9223372036854775808",
+                                            "frames-of-128-to-255-byte": "-9223372036854775808",
+                                            "fragmented-frames-ingress": "-9223372036854775808"
+                                        },
+                                        "scanner-id": "vq202xeuFwlgXnRIkgX45i7N5b7WZFJu5Lm7bBuQZPYW4PwpXll2vkQAwXovCZZzDezOH3wGKuuOkS59dqcJL2b9RsEmrvN4JmSihgYTLkAX4F6iYiTBcWKWogiQL5MnkxFtNwnyIXnNuu5kMQVRExN3NXLzUpO6WtAKRXaAUyngUkBy2opGW4BJ1eaOEYUAkuc3"
+                                    }
+                                ]
+                            }
+                        },
+                        "pure-ethernet-structure-2-0:pure-ethernet-structure-pac": {
+                            "pure-ethernet-structure-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "timestamp": "2021-05-30T01:59:34Z",
+                                        "performance-data": {
+                                            "cses": 1885441698,
+                                            "es": 989850976,
+                                            "rx-level-max": 28,
+                                            "ses": 1421702006,
+                                            "rx-level-min": -89,
+                                            "rx-level-avg": 2,
+                                            "time-period": -1612703093,
+                                            "unavailability": 1025295318
+                                        },
+                                        "suspect-interval-flag": false,
+                                        "elapsed-time": "-9223372036854775808",
+                                        "scanner-id": "OonN29Ik9oRQjJLVmA35BeKfCzDwrXEfd138bDsk1j3k2O8ho3eShY7LxC9YrN6xO1FZE7cxifRd3RmkUA43q3OPxXFRCLorE3ii2uPcJzhFivR55N8nQP4fEK6hnuA2pScjf2oQtxnL3eQ01"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -99
+                            },
+                            "pure-ethernet-structure-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "period-end-time": "2020-01-26T16:14:42Z",
+                                        "performance-data": {
+                                            "cses": 382276978,
+                                            "es": -1643077175,
+                                            "rx-level-max": 13,
+                                            "ses": 1873004972,
+                                            "rx-level-min": 105,
+                                            "rx-level-avg": 109,
+                                            "time-period": 631659858,
+                                            "unavailability": -447320815
+                                        },
+                                        "history-data-id": "VmJGyVV",
+                                        "suspect-interval-flag": false
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-03-02T16:49:53Z",
+                                "number-of-historical-performance-sets": -30393
+                            },
+                            "pure-ethernet-structure-status": {
+                                "segment-status-list": [
+                                    {
+                                        "segment-status-type-id": 19082,
+                                        "operational-status": "pure-ethernet-structure-2-0:OPERATIONAL_STATE_TYPE_DISABLED"
+                                    }
+                                ],
+                                "performance-monitoring-is-up": false
+                            },
+                            "pure-ethernet-structure-capability": {
+                                "supported-alarm-list": [
+                                    "0ZDIskLAOXAlsZ7Or86Obr2OQTOKMLvNC9n4l8w2X6nq5v6ovc4HE6nmZb6MOtrqCOmQPSSMQf4OCac8fhPTfc7fn5T4ycu3SJTHtLmkSq0vtcDIlktBwAQLFBP5Nc8FV1fgMBsxTs2eFxO0J9t7JbSg"
+                                ],
+                                "performance-monitoring-is-avail": false
+                            },
+                            "pure-ethernet-structure-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 25040,
+                                        "problem-name": "56ROxdGN2NLhBKoVeB1012tzqT4fDb6JhQpO36uXL7ffKvaQ64RZ6kzo6vEJGCkQsCwnA0ld0ssKXDsWHjVFEm3CSHdqcygE2N2CFfPFHihwNKsuVo1rK43uMhVYHbuJQolwD23ckdJ7PbtKruc4z7ydol35ppOfO1Lj4HwgU7oJiJlC6xGFF6KVkFTJ4zYKBC4xjsN5z3GJN1lTrTqYS2TcHEVDeToPnkeyM1Dd5bWSdiDw33uV5f7MUUh0GF",
+                                        "timestamp": "2020-04-16T14:40:45Z",
+                                        "problem-severity": "pure-ethernet-structure-2-0:SEVERITY_TYPE_MAJOR"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-11-26T05:04:06Z",
+                                "number-of-current-problems": -68
+                            }
+                        },
+                        "lp-direction": "core-model-1-4:TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN",
+                        "name": [
+                            {
+                                "value-name": "2AUwQ7V0L7K60DmUoXPV2aDL5LUJzf9CHV8p2VqO22MUF8P3XwZZGuCEfpnOEpidkqCndU38WP2BYRxNooNWKhAZGYFcfYpzgUOmOJuLzwepgD4E1RsL93CHTaU80bz85guUZYxqn",
+                                "value": "HDhM9iDBWEEqmps8xkjZtpfPb6OIx3leGC0PNwqB251gmmoUGIL9ZSZaYFKnI5CgAu5fSvQNsR3P5kBM2eVT6MV4jFsTCW94i6j3C9QWTTLY5eK7sySycNvokP9XDjTVpdYTeGQ7st6xAIx28ptl5QBpFKei305ldW6rCWrWipuS71M8i7tfX4xCGLMCLKXQGVaaKB720tM7my"
+                            }
+                        ],
+                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK",
+                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE",
+                        "configuration-and-switch-control": [
+                            "77WFv5euybLyNC46gVUUBE6YpoGVpMoxLd4gaiCItgg9Sc7081VBFTsXh0SHM86pdaynta5Wqe5bqcbq562DSmA1mkA0sGpyRPVc0T8i76lpaxIgvCTfYlhkFRcZqBxhjltbettdrHCC6kSBWDJMY0YvJam9EUiXfD8l7tyy"
+                        ],
+                        "fc-blocks-signal-to-lp": "2gnMKbptYflOC4ZZ6DLoA02Ad13LreVuuag6eyz",
+                        "air-interface-2-0:air-interface-pac": {
+                            "air-interface-current-problems": {
+                                "number-of-current-problems": 113,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -22022,
+                                        "timestamp": "2021-02-07T01:36:23Z",
+                                        "problem-name": "nPR0MXCeKcKoBaLvJKrceOow9myr9NDwump8k1n4dZkO25bLICXWiekjATCKyf83Bx3NyiJDi3rk1CXJ6Mxg0JztC3d3idYML1zbkbPue8O7DDIJp70iRrLlvQoF3mrGgTKA4r4azKa4fSOE0GORZrcmht2dPlT56vx2Wtdodnss78Z7OFQG732ooWt",
+                                        "problem-severity": "air-interface-2-0:SEVERITY_TYPE_WARNING"
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-04-19T23:58:03Z"
+                            },
+                            "air-interface-status": {
+                                "xpd-cur": -55,
+                                "transmission-mode-cur": "3vj12pIc4eQmfR3a6a79YJxI26SQg5ykAKlu9Wzd2hsh8nj6yrfoaM64SQU1Vkdn4yS6mjbpADGI10Orj4PtINxBDjurDHOA7GGuZRLrnj1gbQHuMwXmbuXOFj7j0WT8urCmifNFyPVKxuebScx3ynKeGRpHNaPiBjELyjj686QFBXQ",
+                                "rf-temp-cur": -50,
+                                "mimo-is-up": false,
+                                "tx-level-cur": -36,
+                                "local-end-point-id": "6B55w0dKeHHV1N9jEiVrvJ5Gk14sj3uqwzv3zANOimBj1LDG3q7q94Yl53FoY9OvIcqiM5YWkzglcL18b0yc4px1sdqim6NXa5fPb5LvwTQJESRHShTPGrQ0w8bKfYHhWO67TKuqDc1a4SJP1Dw",
+                                "rx-level-cur": -80,
+                                "link-is-up": true,
+                                "performance-monitoring-is-up": true,
+                                "xpic-is-up": false,
+                                "remote-end-point-id": "WmAsvL4CCMTqASxmCTM75N92xTJyof8kBBE6eIAIuu8XmxjQqXXwKZq9S9HgoIsRb6QpGq03U808ybQY8GmKFMTpVsFb2Z3d5TvDbvGYvG63RP2ZvgBaVuzIX6UZ5P52AAxL5eJAUIwEpqvUG7WBtnc",
+                                "received-radio-signal-id": {
+                                    "numeric-radio-signal-id": 48238,
+                                    "alphanumeric-radio-signal-id": "QZlSog54NYbm8ymAPCA6dNjmW4gmK4AA4Vks4qoRgz5o0rRH4rFh7Yv3UDhFIR7MFs6BKnk0OpgOQ7wMrbVy2itWWCtEmBi1VguFDOFk5V8NVwAmInUCGfqCRU8dni6aqAP4gmglho14VBqvQc7wrp0bb0oqinAJPpF6LVjVbkZYNitEus2OK3ZV3fmeCWPkemqZ9BMcWM"
+                                },
+                                "auto-freq-select-is-up": true,
+                                "tx-frequency-cur": -693301319,
+                                "rx-frequency-cur": 447835360,
+                                "atpc-is-up": false,
+                                "radio-power-is-up": true,
+                                "snir-cur": -31,
+                                "loop-back-kind-up": "air-interface-2-0:LOOP_BACK_TYPE_IF_TO_LOCAL",
+                                "interface-status": "air-interface-2-0:INTERFACE_STATUS_TYPE_DOWN",
+                                "alic-is-up": true
+                            },
+                            "air-interface-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "period-end-time": "2020-11-06T23:11:05Z",
+                                        "performance-data": {
+                                            "snir-max": 48,
+                                            "unavailability": -237694699,
+                                            "rx-level-max": 43,
+                                            "xpd-max": 9,
+                                            "ses": -1486233999,
+                                            "rf-temp-max": -25,
+                                            "tx-level-max": -27,
+                                            "es": 1629735292,
+                                            "tx-level-min": 103,
+                                            "tx-level-avg": 24,
+                                            "snir-min": -32,
+                                            "snir-avg": 48,
+                                            "time-period": 1610285162,
+                                            "cses": 644107524,
+                                            "defect-blocks-sum": -18622,
+                                            "rx-level-min": -32,
+                                            "rx-level-avg": 58,
+                                            "rf-temp-min": -48,
+                                            "rf-temp-avg": 32,
+                                            "time-xstates-list": [
+                                                {
+                                                    "time-xstate-sequence-number": 105,
+                                                    "transmission-mode": "zrO1Svqm06ftOxXeTTC875uGzl7JlSPVcwWW1faTdpf1O4fAYKIXPdEgqLRLvHGH5vv6CFSP57QL3Yl1I4Zp9vFzgokLXTl2o",
+                                                    "time": -1499748813
+                                                }
+                                            ],
+                                            "xpd-min": 77,
+                                            "xpd-avg": 19
+                                        },
+                                        "suspect-interval-flag": false,
+                                        "history-data-id": "fCuYMYVG49YEOeWQ9miszdIywWuUNfnUJRTvHO3LP1hv7em9swt1J3AgZWaM3pyN8riP7esP7JkfPygh5JbOMDWDzYhDnPqv9Ak8OMXWoa3dIjnNUyuybibChk7E9x2i0mrG1gCpqx"
+                                    }
+                                ],
+                                "number-of-historical-performance-sets": -30491,
+                                "time-of-latest-change": "2021-03-18T09:57:08Z"
+                            },
+                            "air-interface-capability": {
+                                "expected-equals-transmitted-radio-signal-id": true,
+                                "duplex-distance-is-freely-configurable": false,
+                                "supported-radio-signal-id-datatype": "air-interface-2-0:RADIO_SIGNAL_ID_DATATYPE_TYPE_INTEGER",
+                                "rx-frequency-max": -1953753257,
+                                "supported-loop-back-kind-list": [
+                                    "air-interface-2-0:LOOP_BACK_TYPE_IF_TO_LOCAL"
+                                ],
+                                "direction-of-acm-performance-values": "air-interface-2-0:DIRECTION_TYPE_RX",
+                                "adaptive-modulation-is-avail": false,
+                                "supported-alarm-list": [
+                                    "U05F2cM22PEPAjNElWdB0Hajqy2sRwnMwkryx5",
+                                    "rU78miO1DC6eDGoO6OQyGfVkL8DcFINYuM7Q4VJIpIW2odRm1zVzOITsQoEn6jms5lb98UJxuGASLjfEK26rCZTtgpImI4HFhSOpMqX96p1JA8nk2tLFlw0BVIPvNwa4gRm3hb4fA5Ya6dm8z8NMENfsw4Xbt87JZtE8EIn6Gd8MqvUZDAD9nSBLXzWizWTqhyyO8VUO83sqqfiVPV44OyIDZwVysGYK6wqfjkVr",
+                                    "vPJVv64AMYpx3W4eF4WbriTyei5FPWNcDpZ8nVBaT0HOOLVtHRF11qz7AxNhtsu7Rl7fhIh2BQJ",
+                                    "JfsiYsS0qc4kEqbemBxJhpE4mYJ4B4QckauaDe33j7fXxq3UTBvaS2f70QbBUTN6499HgcCzjRoQ9rC",
+                                    "gRxv1scXp8LXQgWn3mHJcjQIJ5T4Scb83JD53HUsQFpyVdVYzDzLWplym6ufiFnegTbcA5EiCW",
+                                    "tELanibgIDni22zvvVumhutq4KsxAbP3PA64S9ksEICGC347Zym8UPyZsSwU4lQLNWQxX2ZCCtifxmmoNAoHqOyKG5ECiuoYi6v80nKDQUSf96vWHTvZHWJgTnS3K812ex2fMMSuzCKII7wh1TgAPZQIfJMZRNTYcW5QAXl9rXJ14fj59zyQrozG7dxRSiPX6UNzJ0IaXkb2zuZAWprnOS3N5sEPCt",
+                                    "p9EfB9OeYeswAy0PRx55GYgSqlwBXskeuYtX8hb6vvuY4uFVTKSzA0rTlQmaaGoEERBE0FCoa6m6s1TmELN6LfRY5d07TgMq7f40MzoXFKV0DPe9s18e8Z4555dQlZgl6dlTMBIjdDjQkpSNrSTzJXxO2KFgBNtH0OsEh2Yuy9cSz4F0WqryoYmiATqbzTLzz56Q84kGdxqEt6wioY"
+                                ],
+                                "tx-frequency-max": 1204202128,
+                                "maintenance-timer-range": "a4f3hir8bjwW0ZGq5tVxaTVQnsThiczt9Owq6Qyh9452VLs17fyh8u0oOTF76eAf26F1O6aY2gSY1kZ0zxiATiYIbvH9B9ov7WwW2zM4PE2IYTJpjTRcbPMectoNCMjKIHyCgkHXYByOv95O2XS5EFjR0HwvmP74pFzxZ",
+                                "transmission-mode-list": [
+                                    {
+                                        "transmission-mode-name": "zrO1Svqm06ftOxXeTTC875uGzl7JlSPVcwWW1faTdpf1O4fAYKIXPdEgqLRLvHGH5vv6CFSP57QL3Yl1I4Zp9vFzgokLXTl2o",
+                                        "transmission-mode-rank": 1214431460,
+                                        "supported-as-fixed-configuration": true,
+                                        "am-upshift-level": -74,
+                                        "tx-power-min": 42,
+                                        "am-downshift-level": 21,
+                                        "symbol-rate-reduction-factor": 108,
+                                        "channel-bandwidth": -1512128261,
+                                        "xpic-is-avail": true,
+                                        "code-rate": -56,
+                                        "tx-power-max": -112,
+                                        "rx-threshold": 23647,
+                                        "modulation-scheme": 24834
+                                    }
+                                ],
+                                "encryption-is-avail": false,
+                                "duplex-distance-list": [
+                                    2032358750
+                                ],
+                                "atpc-range": 28,
+                                "performance-monitoring-is-avail": false,
+                                "auto-freq-select-is-avail": true,
+                                "tx-frequency-min": 1091052472,
+                                "rx-frequency-min": 693147400,
+                                "type-of-equipment": "AaQmYKidi42Xg2ei6UG0Exivxnba3blvlbJcNTp5Xr26m8osV4szuC51Zg32koqFs1JfV8lKsfQOoegbbBKxdHq5Qt7aKpPcrrrmzE6TUPzaVQl6jXvoFVtvhtx1Se5bFop73o0PdAZ0ic7t9uRGil3zGAsqPpCuN1BIhuxm4onesmHCQ",
+                                "atpc-is-avail": false,
+                                "supported-radio-signal-id-length": 15620
+                            },
+                            "air-interface-current-performance": {
+                                "number-of-current-performance-sets": -19,
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "timestamp": "2020-12-03T15:57:30Z",
+                                        "scanner-id": "WRSfqWDf6gwI8W30VbJzjm8HgEGnjNFfEpmWmRbs7H2gw58j8RSj610mFzJYeg6SFkGTcRdjqfrWcAfdj0wh1pvyY6ocmmWUHCNTl14L8oAdQPq1HOjI5O83Nx71TVVspBdKCiwCy6PoN7pnOI5Tp6X4DW5oS1R",
+                                        "performance-data": {
+                                            "snir-max": -92,
+                                            "unavailability": -55550539,
+                                            "rx-level-max": -55,
+                                            "xpd-max": -110,
+                                            "ses": 444716614,
+                                            "rf-temp-max": 9,
+                                            "tx-level-max": 15,
+                                            "es": -972050269,
+                                            "tx-level-min": 106,
+                                            "tx-level-avg": 44,
+                                            "snir-min": 7,
+                                            "snir-avg": 72,
+                                            "time-period": 242728510,
+                                            "cses": 1954225160,
+                                            "defect-blocks-sum": 8858,
+                                            "rx-level-min": -91,
+                                            "rx-level-avg": 20,
+                                            "rf-temp-min": -26,
+                                            "rf-temp-avg": 38,
+                                            "time-xstates-list": [
+                                                {
+                                                    "time-xstate-sequence-number": -74,
+                                                    "transmission-mode": "kowKc",
+                                                    "time": 277906614
+                                                }
+                                            ],
+                                            "xpd-min": 27,
+                                            "xpd-avg": -77
+                                        },
+                                        "elapsed-time": "-9223372036854775808",
+                                        "suspect-interval-flag": true
+                                    }
+                                ]
+                            }
+                        },
+                        "label": [
+                            {
+                                "value-name": "wGAMvwj05WMHAwwq4rA7b3e53zR3ViarQD5l1ol6d0NNoj5tLyAOBGUFfDI2VStDnzZpPcv2cjPBCVWflw4W4YBjtblpWG2j7TIX6eZaxHD1uzhPXdL13fcwqpNm6IGdBgazu2CTJfNdP42E9FGcUSIlaozg67lzow1KqDE9Sjezfg6oVMAIwa3GyCOwKa",
+                                "value": "0y7KYKg7uzlWOt2cgGE"
+                            }
+                        ],
+                        "is-protection-lock-out": false,
+                        "tdm-container-2-0:tdm-container-pac": {
+                            "tdm-container-configuration": {
+                                "maintenance-timer": -511220063,
+                                "problem-kind-severity-list": [
+                                    {
+                                        "problem-kind-name": "rr9Nl1HYCRP69M6EwaGJih2HDuFcVPpngz2tsJj4s12BN9gcbOVl5Q2AkzN7o4mxvo0X7cTrdW30Xb40R0mOIgh2Q4160oDwEwlEI75VV0NS3KSUK6Jkn0edWfbWvHkadyGNxL",
+                                        "problem-kind-severity": "tdm-container-2-0:SEVERITY_TYPE_NON_ALARMED"
+                                    },
+                                    {
+                                        "problem-kind-name": "EfcHZ4CBbdVyd9D1hOXMnaOAAuf78PzM5LlWHXyKalafvNgMu6qR8fkIJrPJhgveTR2sGsdJOfYb37Ppdf8lmk36M",
+                                        "problem-kind-severity": "tdm-container-2-0:SEVERITY_TYPE_NON_ALARMED"
+                                    }
+                                ],
+                                "segment-number": -22652,
+                                "performance-monitoring-is-on": true,
+                                "interface-is-on": false,
+                                "loop-back-kind-on": "tdm-container-2-0:LOOP_BACK_TYPE_BACK_TO_LOCAL",
+                                "interface-name": "qRNPe0d2obEB2KQPE7jjXHy7HNHfrlkJ47zi0MdoYRRSBzz7zSqwsQw9w5hXqBGvB7NBM0RKKJula3lJWL8guEp0JGX1ivoLv4mhW5TGOfUZifI6SQmmmEm5kbZuznf4jtdgz6WfdQevXPuQxI4UmjRzmI3VYbRhEWxdUmt74zv2gZKOzGAWZjvmUq9SB19gPzlKVGRZ8mTodv4NcwB3QYpCozu0sv894lTR2DJaZuq50vK41l7Jjxlz"
+                            },
+                            "tdm-container-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "suspect-interval-flag": true,
+                                        "performance-data": "hbbQ0FCnbgPvMsdTt4gFZFzuDyHmnZdFagn2NZpZ87uUzIF2EWzwB007yAlOrytBHQEuI3tI2QuBqaDW64sz5lGDN1jesMH9vdv59ZNbHhN7ri3pnoZsBxXgrhmTV3Uq9pnigalXk0WLjS3y820BrPRS6dD28xkhPIr5KNV4NJIYtLwBFoc6eVRc8u69UrqJ1SGDxBIc",
+                                        "timestamp": "2020-09-22T04:07:51Z",
+                                        "elapsed-time": "-9223372036854775808",
+                                        "scanner-id": "HaA6mycapoiMvrGOKhPuXk1r25EkgkfQuPOJg0Txg3jLnRz78gt6Bmxvr3IAnXqKF6lNY6ke9ESwnjvwsYC3k1qE40ejYw3vCgasmuGw0qUoKiUc8o7thp7lqdEgJADdINF5hdtiEfygxssGIr1ZQ0c8dQoWi111OGYYTr8xGGN607MIqNz9FLhStGGMzHFgnv68OeGmUlsUt6uTT32qOci9KQVjpsrMPxVDLt0xOsj9zNVkIPLo1VyDEl"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -81
+                            },
+                            "tdm-container-historical-performances": {
+                                "number-of-historical-performance-sets": 1383,
+                                "time-of-latest-change": "2021-06-06T08:12:12Z",
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "period-end-time": "2020-06-13T18:54:30Z",
+                                        "suspect-interval-flag": false,
+                                        "history-data-id": "ZElaGMYt7yiKPcxnPbAE7gNPEBkFUaGTOT4mGUPFk0h9cOoTSZqZ",
+                                        "performance-data": "gIvOv1r"
+                                    }
+                                ]
+                            },
+                            "tdm-container-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -17194,
+                                        "problem-name": "W35uwa5cq4nlbcCgjKBGXwEBglw0qxDesIJYLO2bKpwNB03VKEtz27aisyaT5NZqoAg9hjc1IIHcIKZkhsMjzWuTvEEssEKIe1Rvk3pU",
+                                        "problem-severity": "tdm-container-2-0:SEVERITY_TYPE_WARNING",
+                                        "timestamp": "2022-01-09T13:56:48Z"
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-11-23T02:18:30Z",
+                                "number-of-current-problems": 84
+                            },
+                            "tdm-container-status": {
+                                "loop-back-kind-up": "tdm-container-2-0:LOOP_BACK_TYPE_NONE",
+                                "performance-monitoring-is-up": true,
+                                "interface-status": "tdm-container-2-0:INTERFACE_STATUS_TYPE_TESTING",
+                                "statistics-is-up": true
+                            },
+                            "tdm-container-capability": {
+                                "performance-monitoring-is-avail": false,
+                                "supported-loop-back-kind-list": [
+                                    "tdm-container-2-0:LOOP_BACK_TYPE_NONE"
+                                ],
+                                "supported-tdm-container-kind-list": [
+                                    {
+                                        "tdm-container-name": "LfpM9g2KOmB1rzeL1a",
+                                        "tdm-container-size": 1471927946
+                                    }
+                                ],
+                                "supported-alarm-list": [
+                                    "a2maocT05ELsuWS3oAeThg2QIwD5YzK9u6jSa4S7JvAdjs8AUet3uwT4Uo9TYT2sSdk2a42TrCYL47lQlGTIcMM7aWS0PMszZEu1IwU20LN4S0M5GFNTjsStoCu5oOFft1h3",
+                                    "35pOSlyS7wzMbk5D4q1yM7WBE34xcZW85lWPGnINT9r4loAhOtPtsD46y0vLRrTWEHMc4mZPniMAGmRnPGIabE8JwEmnXfcCPYOTcGBrQn1pBSMiqmst0Bcw7zT4G5GvVnhZVSqL7jaA3OSladOaG1yNssR8pqwdNNcAxvlwOo6KcQ5fVUpBNYofi8fzyL"
+                                ],
+                                "admin-shut-down-is-avail": false,
+                                "maintenance-timer-range": "pD8Ag3jhC4p2IqiKa7ZM0qde36gaIYP8tXICTTTvYaxyAIbDHahHsuNvA4"
+                            }
+                        },
+                        "address": [
+                            "UTW"
+                        ]
+                    }
+                ],
+                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK",
+                "name": [
+                    {
+                        "value-name": "TWx1uu9t00U9ylZENl8Viz4WxhI811kUP",
+                        "value": "NkdXF6Pz7nV61Aj1nBArq0J00K1kwJ4bV98AfY2n"
+                    }
+                ],
+                "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                "physical-port-reference": [
+                    "c942beda-266b-a670-ca1b-e78a3653775b"
+                ],
+                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE",
+                "extension": [
+                    {
+                        "value-name": "Wp4vx3yhwzXUG5V4p13jDdoKr5q7qsqmRuSgxix4SmQqsDmREp2hvjTOocVOEeanIUw8d3c5iUnCxJlb1okwHdk5p7TVlVb4QHcVCgSM2fozYKCZ0Wvz1HEjPp62ch62QaPliH7kWwTN8nM0bazdR5oymuByEztuKiP20PfOd8BlwgdHiMM1R2Adx3D3C6xehf994oX9oruMzHmRl8S4bshAnUD0T26a9fj5v8eUzIG0h2Ru3Ky64PGsCb",
+                        "value": "ndqxnyIs3QHPihoiriaVlMujQbRiF2C28Vrvt1PwSwe2GCk7UmU88orRsj17dE2lrlQUnGif4w9C8tJ3IwbIUuzeNBe17"
+                    }
+                ],
+                "ltp-augment-1-0:ltp-augment-pac": {
+                    "ltp-augment-configuration": {
+                        "connector": "07wpeqzDCeErNGQsYiiaCfzpi0iDsCNsCbRIBjm5pSw4q",
+                        "equipment": [
+                            "c942beda-266b-a670-ca1b-e78a3653775b"
+                        ]
+                    }
+                },
+                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED",
+                "local-id": "892Jl6t829dPC3JVqIAKiiK9HJgrlHWuRY544z56AiOclp8DZAfaSZjrBzSW9GqSEwWB51zxbfKwEK1wkgG5gZwRqhFzX6ruCg5z",
+                "fd-rule-group": [
+                    "5ea42646-26ca-afda-19a7-ad7f7cc924e6"
+                ],
+                "label": [
+                    {
+                        "value-name": "XlfpF8MgB5GBGHBiANOjJ06T0H0YJfcyBjXgrJo2G5vnEYF6Mmqnew8e515OghmRsbZTMoOtljQRanXWJfbXMc4Jd9ytiMlKYkvCAj5VvNEFbCtUREKvQOf3PFp7jKR9WeMxyRk3FZAIt3CkzeIi2XdJuCQNezXbOJAesM97DJH6Ecj5q1nlQt4k5N7cm4n2FPg8Bh770P5w",
+                        "value": "oCjhZE7sJjqojCKfRFVGN395285JeuKC64U5ATqb5IzoccD3RyBEtCBoLz7Z3KB9Gn6g9ose6TCi5fdOGOl1"
+                    }
+                ],
+                "transfer-capacity-pac": "wgccNoVxAFF5vPulGFSPK2VO",
+                "external-managed-id": {
+                    "manager-identifier": "70IZWQirIeN1jakj5r3dYhMOUmcjH6iO60OURYerc1knbFy96umWL0CGmPR4N2KL2qyLhM4tFpRRWh0ULeRxel5A2OwPQ9tTrTwIxB",
+                    "external-managed-uuid": "cSVVGcNAY1jn7FkAH8YpZ7SKz"
+                },
+                "client-ltp": [
+                    "c3794728-dc8b-5233-0c67-0b857c32ada1"
+                ],
+                "peer-ltp": "cb398360-6165-86b2-5b57-2fea3e77edb6",
+                "ltp-in-other-view": [
+                    "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                ],
+                "address": [
+                    "sYDC5z9ec9ANcijf06Kskp3yi2GFAiCU8fw6OFkSPUGT4Z1X5Lhi"
+                ]
+            },
+            {
+                "uuid": "f8aa5a5b-6b21-eecf-5f43-21f52446eae5",
+                "embedded-clock": [
+                    {
+                        "local-id": "YVeiPwRShBgjzQZvC8Zx7SnUMwm6JiLAdZK2vtNM43XDTX0o5SV5KiRoH5uiofKt7uoCXbhT6ewZ3pf1ha6TlXiUVMcjUXE1j2D95M2b1r34Qi57l30yTa",
+                        "run-mode": "core-model-1-4:RUN_MODE_HOLD_OVER",
+                        "phase-aligned-clock": [
+                            "0b7BoMdU78PGiZPZmPfboWaxHcsgTLSLXZfdEs7LsPjKG8C2PJ56GfDfr5ndI7Yx7dKDxKgSzzufz69pQevot0vU5S7F0YdZ3XuBHKl8jPfKWo9ECw25wpSt9R91Hm0LbmeL6zTho12cp3Q2AKZ61JsbtBcaP5V0r1DyApPZqJ3HNUBnwBlycNJFgNQ5SDYcFBCfSj6i320QWt"
+                        ],
+                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                        "encapsulated-casc": [
+                            "LYzj2pH3TSv26AOWMhu2Z1QN19zkd4"
+                        ],
+                        "name": [
+                            {
+                                "value-name": "OXwZJlDKFyfOD2IPV9KRRUPYfSRNDT7rIEirZWbwmjcZlVGgWq7OdOEsHn8ch7EZLOjLCu9YNmY0hw8dX8T2WyuvVuI4CeWf2f0FB2DhothF0qKPqERm4dSRAsWcGSrAZkfAmLRK61h6r1NRxw5BKPlchhoP1Hq0Txs7akJhl0fEU3njrkN3a8fjhv9idraYYu69OPi1IxxusUN",
+                                "value": "7AXhI5AZAB9F2bETGKUmrcg"
+                            }
+                        ],
+                        "encompassed-clock": [
+                            "zSzgZS2utSYSlt8xN7dsLeEaUA9zvWk4GUcxEe2ZYSSkdSR1Z4lDaRNXjWoOKJKivOQ12K1TCLdPDWIu0W73NN0ZBoNeZqwmemo96h2A27ix3STVO1YuGQth78n6yUlN8BOfSQHMXZb0S4NyXM2Dun"
+                        ],
+                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE",
+                        "extension": [
+                            {
+                                "value-name": "4CWIz2dtLjLzmwynopg1jKrqmUkBv7DAJsaaunv7zgyVE6i3orWHbn7xij0FrD7aX9djpIqYZQLDPWydnmUqKTXUcPrDkzGiATBZBUXsK",
+                                "value": "YzxoEULqcnj19oQATa1rsCk4BOQr8AU62rnGd87pniqwy8Ysi0TLu6HXMpgUZaTTtgsGgrXDBf1anZuGRfjldSjZhzM8CFU5NeE3FBy8Jzi6qEEiUPDZzOZIgDRSaDXXRtSo5qwGRPEhlbz7057sLYa1BTLDwBAf4kD1CaztReCcp4ch9jBM9MGKxrf4UPbR1PSDRk6IyAMPEYYN9Asie82Lr9HmYTdR"
+                            }
+                        ],
+                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED",
+                        "label": [
+                            {
+                                "value-name": "JNv4AjYHLNQmKidlUn0Oqwz68tlAxBB9g7dIi3p3I7ptqDGkSG0i5AhdVuNlXhudgHWyCdBklTFLolXgUPqZhzcd3Sy09U6ptUX5ZqhcbXXzaMP4C8VTH8YL0oD1iBiLv7Ivx0HBPxaZbSWF0RrzRhcJGQKQr2uP1ccz4L2TacLm4z1WqkwaCITaqw0KquzszD",
+                                "value": "voVhz72V4BOST1g3DRPN9dFTD2kXBXQ6mDnNDhAzKgjwhArUjgzslfmZhGOKwxIKa6xFf7e0nyoF0Prj6TLj07a9GZT4wBOyzleHkkzHSXeKMy3KjP4jOesm5liBO62gj8XDswddtjX7RTS2AWlg2ND80VBPUD5dDUJ6qWbL70SRTKTtyfKtUfBV"
+                            }
+                        ],
+                        "encapsulated-fc": [
+                            {
+                                "uuid": "3ca006d3-9173-74c0-06c5-7064cd3d43ff",
+                                "service-priority": "-9223372036854775808",
+                                "supporting-pc": "lbtaEw5Wc8pbMDUl2BPPVT39o4vfOU6a6AcCYhyapPd3t7pnAecwZgxnc2v1PBbN3np1xP4WEh0ZhhmRvrfmHMCLH7MwIPbM5AFChJyNTqNaH114s9r1VVNu2zSCh3gmvWYMxosqH7so8utBDMCqHpNB",
+                                "layer-protocol-name": "mac-fd-1-0:LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER",
+                                "forwarding-direction": "core-model-1-4:FORWARDING_DIRECTION_BIDIRECTIONAL",
+                                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                                "name": [
+                                    {
+                                        "value-name": "ebqq50U6fmOCFCyfyQ12mTCEKAHezGkFRK5WCZUKdAeT5F0Dn1xKU2gwCXK4wXJnzHc4yYOMz2xEH",
+                                        "value": "95yGHkIPQdEs9ahSqRruVSsJET"
+                                    }
+                                ],
+                                "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK",
+                                "extension": [
+                                    {
+                                        "value-name": "or2rXB1uAifPJ7H5AZ33XT0QyHiLV9ybAACp3ETDO0sp01mA0qEQjEGJeQm1ZUdrmHIpdtU1uequfN485AYo7w0dmmed9jwn1eNezz83",
+                                        "value": "qxV5uVaWLrVhr8vNfIOy6czkRGUqGP66f2cBPexBFlS6lgMAYA95EAhv83OOTMV0GZBwd07TlRRH7D9Y6iVCLc0T8OATAnT9muFrmEcIv4hvzqlxBgamka7sQHli46riA6KXKOx8KOvc6QJH6L3qN3LDK6O"
+                                    }
+                                ],
+                                "fc-route": "K2tQ05gY2Ro44gMdc67BnPqfySKE9FLTHeJIkSymJWjF4XS83ZKrH2y7",
+                                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED",
+                                "configuration-and-switch-control": [
+                                    "5NmO8P12vBh9oOpLHFRtSsRjkTh7YDtWiHKqxDkU6BVvil8Z0ZsKjbVvXcCVHYJ0Ftq4ZLR5eMsoZAoRrIBKMwgJBKwiIgagBBkAe3ysQ0RPB7H2HaFtzV42xtkgJvocYIFcMdwu5fbyeStWV8huVewsHIAi5Yu3z17dewHcLSKSDdOqlXU8biBSS3aY2xTtyTGFhfR27BMCPs22qObtY"
+                                ],
+                                "local-id": "OOMOp0ao2m1CP6mYiGoCnhyyO62UVjtC08qp0tN3POxwUTv4zTHO3ffJdhE8tZCt73S8oy35eAC1tZ5UKMBNTQp6737sUJV2EG22650cFCd0tbMdPnTJdiHddGF7qB1W93Rf0RrFlxxOIkTpHE0NOI01gx1G0Uv9QmoQ5IoifN6P7R6Ho7mcHm6XTZwUT1VBfckkUAC1nAQnjW4HViUCES",
+                                "lower-level-fc": [
+                                    "9bc11e2d-913a-2fa6-a64f-f01427c75d88"
+                                ],
+                                "fc-switch": [
+                                    {
+                                        "local-id": "eyR5uQ57fxcpHAjCd57QtOz6uvYiYbG5Jxa5ffcuMgTlQ4P39WUvClBYQshGDXLmmNrB2v5GLR1tVIxXEjs9E37mvoU0dymzlF2g28WNZQ9MqGJ5Z36v7dJuuvvH3R9hpbxrbl7abgPCOyzFCx2BKL",
+                                        "wait-to-restore-time": "-9223372036854775808",
+                                        "profile-proxy": [
+                                            "CU5BgqLXMmn189AksROyEbTtVU1Z4hjH3gajGO8laomixOv0xbqcnbxa6y22PlJSCU4aIcvKARV8xq05BihQtO1re3u3gdNKZRVz4ikw27wzxoE0GNR2tKtHNXCV3qGU9tu5DGCFN07cpDc5jVZMFtmkiQgd8O8i9unMaRkPSj19Wd6f16UGr81JY9P7PPpYjEClwOag7bpWgv3hBXY25RE"
+                                        ],
+                                        "control-parameters": {
+                                            "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE",
+                                            "prot-type": "OQwgZZZYyt8u96RxZZ9kG6nltt5GDA5kqBsitjg1MgnVfet65CqLIO64h4CMEHYXbr7EKfxpvVkK1NR7hhK0XJW6NyTj8J8j2fXNum4",
+                                            "hold-off-time": "-9223372036854775808",
+                                            "wait-to-revert-time": "-9223372036854775808",
+                                            "network-scheme-specification": "oKb4BilL2dIL9PqAAKIjSTm0I1u45u6t7hxAzLltYW70DxAd9aoU3KUDDoHILN4SWt"
+                                        },
+                                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                                        "switch-selection-reason": "core-model-1-4:SWITCH_STATE_REASON_NONE",
+                                        "name": [
+                                            {
+                                                "value-name": "68AGckPtBS024d16p9VTXmkuQRwrt9osiZ8mbPPMHHGDUAKbJx",
+                                                "value": "zTg3JZs2ltrNLiV7tCOfbnNPinrl7YiySqttqNwLhXq"
+                                            }
+                                        ],
+                                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK",
+                                        "switch-selects-ports": "core-model-1-4:PORT_DIRECTION_BIDIRECTIONAL",
+                                        "extension": [
+                                            {
+                                                "value-name": "viIxE0dwwS4vhUFZ4EfaayrKPCYnv88SqQq4IvtenxCEj9vgNCqQbJA0dqfIyntY6LUGgnVDMp9Yqxe59wVkgndlNs4lIpjGa6mqt9",
+                                                "value": "8yW6Ytc4vIRHQfUc2f8oXxzDzFRR11M1rA7iWberT58CkVOfaOvZd4uMClDDehEGRDYFO46z97bm2RB4F6VS2pEEC99RiFx2anHYrOqANBOHlpD0nyTiXpWrrYiJvPLG4twv9WYWqMvL48DjGoBvGqW7o7"
+                                            }
+                                        ],
+                                        "prot-type": "QUi00AKkNFlYhkGUWtLzGWO5s5eQU1ZKN9KFJnZw2dnbxV6lgJUXFAU7x0PrTG4HPGeq3eWXjb9Q67bfQX4npQuWQbgKRkjG0x6WDUTWY2EW1PbREfe35A0OL8qCsBak088E32sTW7PQO1Ht8Ow6goM2w4wQFz3FHbbC5wvUDdKj6jM6ZbcgrQaYUyGz7J7HNibSOHEjMovSA9Yzk3HETRuOiafp",
+                                        "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE",
+                                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL",
+                                        "configuration-and-switch-control": "Sl3Hasxt69GuQQKXT1L1xPj0E93CSzyKUBr4VYpTZ5oPN0Fy2izr7SrETmgLNOvzhOvcEU5wRldweK483Ez2oSGi7OVUujuL7ZXEM3avgfUu0QC3m3XLWwV3kQPP9bA93qNHlP4B4Y64PAZbEXOAlJvFscmtoPCrfh8AYc3V31RSCRV8GCA1d5yFhV1xCDYRNYjD3ey6gqQK9DSHfsAtp00yV16pFWgkVrXYG",
+                                        "internal-configuration-and-switch-control": "WWOMyPhiwxK60160zU2xbzusLhLI7r63fMHNBY5ZnHXnAWg2IazTJVdmcZ4ji3eyHNdbMb21K0plWxfwHOpiKvEOuA0Mvec52qgGtiHdaYqYnFu4mMeYhSMDlMpITuNNUVlf6UkgLLf8iB5EnjCw4h9pVr7GVNtHIGWOBg5eTcmcNrI3LdzPuJ6ha5Y5KjEt0A9tI6HCa3OYno18BsP53Nn",
+                                        "label": [
+                                            {
+                                                "value-name": "7l2AXIH06uPgSgBRfThZcKsuqQ7HFxBMSvmHe3HkqpAaF31MXaD1U6vcOCTu9v8T0ns6i1qIqSSYWLCLVgMIe9U2LOoUbxF3U7a40sNrdFh9jTUe9yWnHRikxy6I5LDRKFWK8Bbl8smre8GnGuDflVzKlFkjiY22DYMDrQQAac1okzMS4hZh4y2p5mIncLpQB4l3Ucv4got",
+                                                "value": "Y7lUol3sL5RJkA6wloeWssReEmiULDnBKBv0WyszwkiIMh6ZxlNZNF5jTf5ETt7v4uwS3Yjrau9WLfVasB17g6i1loGeJFKFa8p56Iwh4x5PETZ7u06CYpDkNbqoR231as6h2uq7TnWxgOwCGvexUSRzV9XMcSFmkDvmZVtSbiirYG4wba3XUMoQWdu85amhNSEFFZxQ9Ha7oeErgzhbmF1i"
+                                            }
+                                        ],
+                                        "selected-fc-port": [
+                                            {
+                                                "local-id": "GQTuDlNpItj9",
+                                                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                                                "name": [
+                                                    {
+                                                        "value-name": "AOKNNNP34T9729WepqMfjgTw3a6otgb34NRKsyNxjOElYBrn1e",
+                                                        "value": "cmnJqyPOTXSX2FGE06jxq7bDXE5cxbHKx4lPu2wg0gdUVLyVRRk9QwNOaS0IVHkkEFa0HGgHWltJ61xQKRZBfMhqwh0jRkEvROnqmE0aRtLYvaG7UFI9kZrI9r20DGnmmKNIgNK0gvYDGwLs3lBnd36mm0eSGte251CmOmmXJcAhAlJDzlTMgR0uReepHtrMmV03he00iAaSOTwn6h1m81J"
+                                                    }
+                                                ],
+                                                "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT",
+                                                "extension": [
+                                                    {
+                                                        "value-name": "6U",
+                                                        "value": "JsmdBDx69RuomSLjKINaNeAZyev6cphWJD1k8qih9MxvFiOhTtrGI1x882ecjv020Tm8jFpsjWXQ7D80Zryzl5Hl0OxjbqecjskD7CXjqV9xq9phBPQONq9NeyYpYctaFOFEiCPIpZ8I0xZBfQh28iPmRFDHK7JhNoV5"
+                                                    }
+                                                ],
+                                                "logical-termination-point": [
+                                                    "bc478ce2-7d3c-9c53-dff2-7724bcef25d4"
+                                                ],
+                                                "selection-priority": "-9223372036854775808",
+                                                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED",
+                                                "port-of-internal-fc": [
+                                                    "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                                ],
+                                                "label": [
+                                                    {
+                                                        "value-name": "7XoGiHkFClILrADK2NuQH05N962hZD86AwMT57qzk8cLIQnKvSt4KqKUxM3ohcvRI9CG82fs2s6CalfFdICQ8mCx0FWhRj0ssD8BFfVAz1cJnrhs1Taa7Mz7sn",
+                                                        "value": "jGoL11LCz1x1ArdcGFt0GebIlXispFIBe6mf00Rr1gstzxFfc0gLertrgDLGbthpsvwkvfDovXSXux4zykkED"
+                                                    }
+                                                ],
+                                                "is-protection-lock-out": true,
+                                                "fc-port-direction": "core-model-1-4:PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN",
+                                                "fc-route-feeds-fc-port-egress": [
+                                                    "7Vv7cEvdLWk6Wou9RL51MbfUuBiVNrjUnO1zkpN5dZ32npb6398Pcn"
+                                                ],
+                                                "is-internal-port": true,
+                                                "role": "YzxajdJYpveUnO3dgggXU2PoQ7y5ockfLRp5W83lDhfSYj5ezeblgSJYR9V8mfn7YM4VM78hho97z6l0cwlsh4i85e8rl",
+                                                "address": [
+                                                    "N0CdS6sIfuQyb4pQzYAyIRlYFiRa62MLUgYMeqmuU4250jOA9g8R0mQxEzHCBlowtmaINx4zB6xChd4qtcalySS5rrHVM5jgktQ70UyuSXY1a2rw6BRxlCCN3jIQh1YBmOAfA0BsYzt8tMwrgoQBSsoVEYDVRto6hYlRYWbWnwXIjt9zJ0aBkrpQhUD9o1fxRshIoswLZtlaPuJqmTUzcjhu5VvtOK1G4io"
+                                                ],
+                                                "fc-port": [
+                                                    "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                                ]
+                                            }
+                                        ],
+                                        "hold-off-time": "-9223372036854775808",
+                                        "switch-control": "core-model-1-4:SWITCH_CONTROL_FORCED",
+                                        "address": [
+                                            "TXQgYEeMWThzXhdgPBSc9a0gy7ZbWtDPil58ZcUW53nUkA214MddWdmmllyhG3YQoVYfZK34NrQZ1T0XFdbuqxQLKoUqrK8Py65xQ8uvzkut5mqDzt7RSXvCehUF22nA0s7QstdUGzfLVFgm1neTdBorSa6U5t"
+                                        ]
+                                    }
+                                ],
+                                "supported-link": [
+                                    "oHBVs4mdC1uRSp"
+                                ],
+                                "label": [
+                                    {
+                                        "value-name": "3pdAqa0ZJkzy2M4mVfEGxvZ1qRl1n7EqwJSPTSOC4n2627tXeZvLuvEMeZFC6bUvVNcOF0jKflIhs37G2CjoZX26PHINTCaOhmuPmNrC19TtdS27ndwmbys0g2N1xYPOcjDz74306OtbHni4BGiEfDEnFjo495TmooNnlQnjEJud6MhzlsdA5JPKV5PWaAayQX",
+                                        "value": "bFbucMQpLvzkQ1qi617IWcpTmZ3MITATyEgKq62btBojCOBIHIiEMIp0zkNh5n3E1bgk9ivDTTWnzq590gNNY4NpgAzmQuSJF03Gjzj4k8sMqpVqFA5vwTNMlm03QKNnLQ3Whf0ufkgFC359vbF1WkF9yydgi0DVQyR0NKuUWKzyFxIaAf3wzIF7gSnrSSmBq6B6Q50MHsdeZ"
+                                    }
+                                ],
+                                "is-protection-lock-out": false,
+                                "external-managed-id": {
+                                    "manager-identifier": "F58Bmm6acLzA5S",
+                                    "external-managed-uuid": "ckykGTVbxyC6Xh"
+                                },
+                                "fc-port": [
+                                    {
+                                        "local-id": "CJo2GFCqrbqSLhycmPNVHYJYp9wtcUkHEIJcfdCGoVyac6eqN2du0WlhXJL2EXJaxkmMxYsVT0X",
+                                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                                        "name": [
+                                            {
+                                                "value-name": "YcfD6s0Yhdg6WT0AQJKfVY1sXlgId5y39NGf",
+                                                "value": "yehLmfIfgaXZNcVLdfAynbLlBOugmKgVQxy4N8j3jgUYkHBxP4Xc7AxIg"
+                                            }
+                                        ],
+                                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE",
+                                        "extension": [
+                                            {
+                                                "value-name": "q9i9t7ys7SYF",
+                                                "value": "CCOoiUCXEWirK1b1s6rCptXw1pDTfbzRNf7X9CMFyW7bX"
+                                            }
+                                        ],
+                                        "logical-termination-point": [
+                                            "f7872522-16c2-ce17-fc7a-083c8517e7b3"
+                                        ],
+                                        "selection-priority": "-9223372036854775808",
+                                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED",
+                                        "port-of-internal-fc": [
+                                            "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                        ],
+                                        "label": [
+                                            {
+                                                "value-name": "YuwfpmEYqj6BmhJ97",
+                                                "value": "QJsFNpKUR9u73ktzzTN6J5pHGERhNYkvzM3e3N0UOuTSPnjg8ZeJ4EiDi1U5S7srTvyXiyJ7VvRCK2KSTZtQDDlNF7KxecQ0IoXSPyRC3A6FvQpoPSekwzZ3HJAVOiVwzKgob8S6AYM5ObuwWAIkaInJjPw77kvGWMW7MO6mESstVORJoz"
+                                            }
+                                        ],
+                                        "is-protection-lock-out": false,
+                                        "fc-port-direction": "core-model-1-4:PORT_DIRECTION_INPUT",
+                                        "fc-route-feeds-fc-port-egress": [
+                                            "ht0unTjztW3MBHQdUOyGyWPvti6zMgH3BzpRlIqOwtA02jdOZLvyAcV3m2C9ib4LLmC6W2Ulnnlpyq6x3BXDFTy1V225e7QRllP9nBuDYHUo70W3tLy8E72r14w73fYoANyPpUsfCfwBfkEJ5dRKcT3dQslTHba9ZAYgujn6yTINdeojr8VvTYJJiWDZ7F06fZeJaCIIninBwEMQMzlFpWhISUz0rAYGz5hBzZbWhypG43w"
+                                        ],
+                                        "is-internal-port": true,
+                                        "role": "jM4YxPxEq7YiFcUunrqkkzgbbHSd708qE4g3LGHcFxmdK8HZA7cMysXJ1IX8A5r62H1NfJRV860SezKOyWA7oqQp0FpsDQqFqrkFa4sjas3o1N5sBFzZXhgPXG9swzZW1ju3nOmx9iO2XTuzq3qodH52ffuDOtsPEWTUC7jLh7Of0iGre6HrFMtUTPqIaSpOGaAiiU4z1KGU2mdgtMH0q2NkRd21XjIDuiNM4Jd6tUSo8XEB",
+                                        "address": [
+                                            "UFYR4Z8HKgScZxr7ntB189Y7kNhw5y2Z50I9SJJuZtGY10XgtqhBA7JMVSbSidSo5sxP38k2CSTvSILl9UPB2qnPiyzBDjRBMgqPpCK1vvwfd9Be3iPXI5E0vet9xcKbt2TSFDL28hhdiKkl21bK6HDCVYDlbnoEhhoW"
+                                        ],
+                                        "fc-port": [
+                                            "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                        ]
+                                    }
+                                ],
+                                "address": [
+                                    "eBuQqTY2zleGbQn9tjshedMYbAFgIxWW8iMqcD"
+                                ]
+                            }
+                        ],
+                        "sync-ltp": [
+                            "1c7e2c79-af6e-8d12-d18a-957fe616ceeb"
+                        ],
+                        "address": [
+                            "s1H3NwHMnnVXP6bP0WgaEC0pHSZxmqGHroC6MbK9yy6fE94EYdOuHPTpHSOVauCtSezxqcGQKFYoGU2E7R8PGT6fDUaNgF"
+                        ]
+                    }
+                ],
+                "supporting-pc": "1TAybM6UwDSUkEOQExRl5Krkodv3l24mVEUZqTLOwvAI9orNWi812reiwBmSDqeqW1peM22axCTHSkmGunAwOOHdh35Ulbk94CnQEp1cTUTD67kAuMY",
+                "server-ltp": [
+                    "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                ],
+                "connected-ltp": "cb398360-6165-86b2-5b57-2fea3e77edb6",
+                "layer-protocol": [
+                    {
+                        "local-id": "Xq0cbTRAseescxX0zptUq8kfgfbHE8HByIOJtxcNLi7XQWPhlabLanSqD3Z93HKBhqdKXhqIzxxpueyHgKlq7dJC9ILcpoGyOLbM2BmB0MTuSr493hz3uaxvTbAaz8JnTU1",
+                        "layer-protocol-name": "vlan-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_VLAN_LAYER",
+                        "vlan-interface-1-0:vlan-interface-pac": {
+                            "vlan-interface-capability": {
+                                "configuring-pcp-bits-decoding-is-avail": false,
+                                "ingress-vlan-id-filtering-is-avail": true,
+                                "port-and-protocol-based-vlan-is-avail": false,
+                                "statistics-is-avail": true,
+                                "configuring-service-access-priority-mapping-is-avail": true,
+                                "max-number-of-protocol-vlan-id-groupings": -26291,
+                                "configuring-ingress-tag-filtering-is-avail": true,
+                                "supported-sub-layer-protocol-name-list": [
+                                    "vlan-interface-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_S_VLAN_COMPONENT"
+                                ],
+                                "number-of-available-traffic-classes": 8,
+                                "supported-interface-kind-list": [
+                                    "vlan-interface-1-0:INTERFACE_KIND_TYPE_REMOTE_CUSTOMER_ACCESS_PORT"
+                                ],
+                                "available-pcp-bits-interpretation-kind-list": [
+                                    "vlan-interface-1-0:PCP_BITS_INTERPRETATION_KIND_TYPE_7P1D"
+                                ],
+                                "drop-eligible-indicator-is-avail": false,
+                                "configuring-pcp-bits-encoding-is-avail": false,
+                                "service-access-priority-tagging-is-avail": true,
+                                "received-priority-overwriting-is-avail": false,
+                                "egress-vlan-id-translation-is-avail": true,
+                                "admin-shut-down-is-avail": true,
+                                "tagging-and-mvrp-is-avail": false,
+                                "vlan-id-translation-is-avail": true,
+                                "restricted-automated-vlan-registration-is-avail": false,
+                                "number-of-available-priorities": 53
+                            },
+                            "vlan-interface-configuration": {
+                                "default-vlan-id": "-9223372036854775808",
+                                "ingress-tag-filtering": "vlan-interface-1-0:INGRESS_TAG_FILTERING_TYPE_ALL_FRAMES",
+                                "service-access-priority-tagging-is-on": false,
+                                "forwarded-protocol-vlan-id-grouping-list": [
+                                    {
+                                        "forwarded-protocol-group-id": -729530285,
+                                        "forwarded-vlan-id-list": [
+                                            "-9223372036854775808"
+                                        ]
+                                    }
+                                ],
+                                "pcp-bits-encoding-mapping-list": [
+                                    {
+                                        "to-be-encoded-priority-value": -44,
+                                        "to-be-encoded-drop-eligibility": false,
+                                        "associated-pcp-bits-value": -73
+                                    }
+                                ],
+                                "drop-eligible-indicator-is-on": true,
+                                "pcp-bit-to-priority-mapping-list": [
+                                    {
+                                        "to-be-decoded-pcp-bits-value": 114,
+                                        "associated-priority-value": 95,
+                                        "associated-drop-eligibility": false
+                                    }
+                                ],
+                                "default-priority": -46,
+                                "received-priority-overwriting-list": [
+                                    {
+                                        "to-be-overwritten-priority-value": -6,
+                                        "new-priority-value": -122
+                                    }
+                                ],
+                                "admin-point-to-point": "vlan-interface-1-0:ADMIN_POINT_TO_POINT_TYPE_FORCE_TRUE",
+                                "statistics-is-on": false,
+                                "service-access-priority-mapping-list": [
+                                    {
+                                        "c-vlan-priority-value": 39,
+                                        "s-vlan-pcp-bits-value": 4
+                                    }
+                                ],
+                                "external-to-internal-vlan-id-mapping-list": [
+                                    {
+                                        "external-vlan-id": 8183,
+                                        "internal-vlan-id": 13222
+                                    }
+                                ],
+                                "interface-kind": "vlan-interface-1-0:INTERFACE_KIND_TYPE_REMOTE_CUSTOMER_ACCESS_PORT",
+                                "restricted-automated-vlan-registration-is-on": true,
+                                "received-priority-overwriting-is-on": true,
+                                "drop-eligible-encoding-is-required": true,
+                                "pcp-bits-interpretation-kind": "vlan-interface-1-0:PCP_BITS_INTERPRETATION_KIND_TYPE_8P0D",
+                                "interface-name": "EbC4BxIgK2R8zO4JkuNYpA4RAcYU53YJ6BNA0oQLqzTZoPBIjgzAQvrqHidMdbnkE3UFrCqJ3bAj1b2crtNiQ6AqgN4uRsGvnsaO4AxZM7jFb",
+                                "ingress-vlan-id-filtering-is-on": false,
+                                "sub-layer-protocol-name": "vlan-interface-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_S_VLAN_COMPONENT",
+                                "internal-to-egress-vlan-id-mapping-list": [
+                                    {
+                                        "internal-vlan-id": 28273,
+                                        "egress-vlan-id": -24978
+                                    }
+                                ],
+                                "priority-to-traffic-class-mapping-list": [
+                                    {
+                                        "priority-value": 100,
+                                        "traffic-class-value": -17
+                                    }
+                                ],
+                                "vlan-id-translation-is-on": false,
+                                "egress-vlan-id-translation-is-on": false
+                            },
+                            "vlan-interface-status": {
+                                "statistics-is-up": true,
+                                "timestamp": "2020-12-10T12:21:35Z",
+                                "total-bytes-output": "-9223372036854775808",
+                                "total-frames-input": "-9223372036854775808",
+                                "interface-status": "vlan-interface-1-0:INTERFACE_STATUS_TYPE_NOT_YET_DEFINED",
+                                "total-frames-output": "-9223372036854775808",
+                                "total-bytes-input": "-9223372036854775808"
+                            }
+                        },
+                        "wire-interface-2-0:wire-interface-pac": {
+                            "wire-interface-current-problems": {
+                                "number-of-current-problems": 125,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 19143,
+                                        "timestamp": "2020-06-30T00:28:59Z",
+                                        "problem-severity": "wire-interface-2-0:SEVERITY_TYPE_NOT_YET_DEFINED",
+                                        "problem-name": "m7iwQVaapeXtC3eybmyHW7JUrgJ2m9pBgH76va8UoXf11urcIRLwYnqhD1kRaJkqjswOCxASuPLnb4zLWdhMAA45BoOMZ9caBBY58qXu8BSjFj5BoeoYOkViIK4zT8KmJIjJ1869JYsp9pSyw8ocsku2WqCPzm3aWmUXu066QrvRQfheoGrQSNTOenvFJqPFMBD8BBej2B3LRkZ7SiPK6AqkXNZG5GeRiJSLk65nA08jkZqdifPoQ8"
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-01-28T16:05:44Z"
+                            },
+                            "wire-interface-historical-performances": {
+                                "number-of-historical-performance-sets": 22283,
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "period-end-time": "2020-02-01T23:05:38Z",
+                                        "performance-data": {
+                                            "es": -1760716641,
+                                            "ses": 1903670912,
+                                            "low-power-idle-receiver-ms": 882827890,
+                                            "low-power-idle-transmitter-ms": -1778164285,
+                                            "symbol-error-during-carrier": 1403934494
+                                        },
+                                        "history-data-id": "yAg2vDvnoqngEz0iR24YkFd4W7nr3GoB8wDDa10yjfGYGz8ptcnOKsSyA80DGg6ONJjPCbfWiVMQuUgYZDEJYohyo934i9KXKVMn61bgOP7jBf9ASFbI3lgsmboEk9B54fk38nbXca8NphgaWjSRE1b1cAxxB9uxgOspbEmfGu26Lagzm0i01uTe4rDxs74IVp7Y3t",
+                                        "suspect-interval-flag": false
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-11-27T04:44:13Z"
+                            },
+                            "wire-interface-status": {
+                                "rx-sync-role": "wire-interface-2-0:RX_SYNC_ROLE_TYPE_FAULT",
+                                "link-is-idle": false,
+                                "eee-is-up": false,
+                                "performance-monitoring-is-up": false,
+                                "rx-level-cur-list": [
+                                    19
+                                ],
+                                "tx-level-cur": 87,
+                                "pmd-negotiation-state": "wire-interface-2-0:PMD_NEGOTIATION_STATE_TYPE_COMPLETE",
+                                "loop-back-kind-up": "wire-interface-2-0:LOOP_BACK_TYPE_INTERNAL",
+                                "interface-status": "wire-interface-2-0:INTERFACE_STATUS_TYPE_TESTING",
+                                "pmd-kind-cur": "jVWK5oRv0g5SLg3bTkaSqdLp8c8TTLL4HAHEYyaQG7AsfDv8YG0gLLFTXFEIrhF0JmEAMGitNTN2oiaeQ2mtGTmvz06SaLKTZ",
+                                "receive-signal-is-detected-list": [
+                                    false
+                                ],
+                                "signal-ordering-kind-cur": "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_NOT_YET_DEFINED",
+                                "pmd-is-up": false,
+                                "link-is-up": false
+                            },
+                            "wire-interface-capability": {
+                                "wavelength-min-list": [
+                                    36299450
+                                ],
+                                "supported-signal-ordering-kind-list": [
+                                    "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "rxlevel-high-threshold": 39,
+                                "isolation-is-avail": true,
+                                "supported-loop-back-kind-list": [
+                                    "wire-interface-2-0:LOOP_BACK_TYPE_EXTERNAL"
+                                ],
+                                "short-reach-mode-is-avail": true,
+                                "wavelength-max-list": [
+                                    140796718
+                                ],
+                                "unidirectional-operation-is-avail": false,
+                                "supported-pmd-kind-list": [
+                                    {
+                                        "pmd-name": "jVWK5oRv0g5SLg3bTkaSqdLp8c8TTLL4HAHEYyaQG7AsfDv8YG0gLLFTXFEIrhF0JmEAMGitNTN2oiaeQ2mtGTmvz06SaLKTZ",
+                                        "speed": "tD5M6KxLNNWPUESg8qauVBn1lpM5iDlEhiqf3PTICPpot9FtzHYvadwvCbAMGNqX6I51xYJ2F0q0aXuJEk6Oxvb1yDFer64xG9q6718M1qMbg8NUsLBZgESOiy3Jw78c8yi7ziTABxERGjD0460dLK13aWEyVML3cV2L6VdHlJyT2bTZiLc3o5Yy2C7PgKLsxN5DBacOUKHOOsNY6ZT",
+                                        "duplex": "wire-interface-2-0:DUPLEX_TYPE_NOT_YET_DEFINED"
+                                    }
+                                ],
+                                "configuration-of-number-of-bip-errors-per-ses-is-avail": false,
+                                "auto-pmd-negotiation-is-avail": true,
+                                "required-medium-kind": "wire-interface-2-0:MEDIUM_KIND_TYPE_TP_CAT3",
+                                "temperature-low-threshold": 49,
+                                "maintenance-timer-range": "3piTvaMZ7vM6IFMb366YdYoV11jPhgkcFD6bNS2UgO0YmE",
+                                "supported-alarm-list": [
+                                    "hC8fP7DC0FNHW320JF6MsROm7veXJKZ0f8f47Kz7peOdiIeTncFH3l32Q90rMZr1ZyX6jo5ADMGNuMGSYdr2yn4hw4AaW2bVs1UDpZ6ULMH8yfSwkjqTGv25rCffwj3RkXuBOAwse5AMlkbFDtqkYkhiPwpdPs41hrDYT1i86SMr4PZHjpT9CajrHJEo3Jid2VbVW"
+                                ],
+                                "mii-kind": "wire-interface-2-0:MII_KIND_TYPE_XPAK",
+                                "rxlevel-low-threshold": 98,
+                                "auto-negotiation-pmd-selection-is-avail": true,
+                                "wavelength-grid-min": -257158417,
+                                "performance-monitoring-is-avail": true,
+                                "auto-signal-ordering-is-avail": true,
+                                "configuration-of-rx-sync-preference-is-avail": true,
+                                "eee-is-avail": true,
+                                "temperature-high-threshold": 7,
+                                "admin-shut-down-is-avail": false,
+                                "mdi-kind": "wire-interface-2-0:MDI_KIND_TYPE_LC"
+                            },
+                            "wire-interface-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "performance-data": {
+                                            "es": 81045948,
+                                            "ses": 1982526416,
+                                            "low-power-idle-receiver-ms": 568179896,
+                                            "low-power-idle-transmitter-ms": 2012436502,
+                                            "symbol-error-during-carrier": 388435614
+                                        },
+                                        "timestamp": "2020-05-28T06:04:50Z",
+                                        "scanner-id": "30SmcSEp2T7qB",
+                                        "suspect-interval-flag": true,
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -59
+                            }
+                        },
+                        "ethernet-container-2-0:ethernet-container-pac": {
+                            "ethernet-container-capability": {
+                                "supported-fec-interleaver-kind-list": [
+                                    "ethernet-container-2-0:FEC_INTERLEAVER_KIND_TYPE_BLOCK"
+                                ],
+                                "maintenance-timer-range": "02upL2QZp70wNmdObx1KQNucwTt70FTSzfhlh0cH74dMrjBCQueyaAKGu5NmDyecNop5oCMnGR9ZaCBT7Hrhi4XE9L0Mb6ZZmo4KSQZzz1qKD2DKBWTL0JpamhWxgNwC4AfWi6nS7OuLIZnbV9XWSeYewMLEsi8wKnkVuIFBo1eY0u9ND6BvlzJJemnGEvchLo476JImKPkKjmpWs1jFA2oOoDm",
+                                "supported-alarm-list": [
+                                    "y4MX8TVRtatam5tIuh3vAIYu7ETC1GDrKhgKa4Bwe4GA12bvje1UWZoVD9ywHbYjte3viw1wsAZtC2ZVg0HcRY0m7yTHBR04XWsgslEVVvgpxfdN7USQSS",
+                                    "SqYr1HrY"
+                                ],
+                                "statistics-is-avail": true,
+                                "encryption-is-avail": false,
+                                "performance-monitoring-is-avail": false,
+                                "available-queue-list": [
+                                    {
+                                        "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE2",
+                                        "available-dropping-behavior-kind-list": [
+                                            "ethernet-container-2-0:DROPPING_BEHAVIOR_KIND_TYPE_RED"
+                                        ],
+                                        "available-drop-precedence-kind-list": [
+                                            "ethernet-container-2-0:DROP_PRECEDENCE_TYPE_ALL"
+                                        ],
+                                        "queue-depth-configuration-is-avail": true,
+                                        "wred-profile-per-drop-precedence-is-available": false,
+                                        "available-scheduling-kind-list": [
+                                            "ethernet-container-2-0:SCHEDULER_KIND_TYPE_WRR"
+                                        ],
+                                        "max-queue-depth": 1880017014
+                                    }
+                                ],
+                                "bundling-is-avail": false,
+                                "supported-header-compression-kind-list": [
+                                    {
+                                        "header-compression-name": "1LXP5ci3IgpU8xJnyLpJfPdRrB8dp3uiOr7LwiP6q60yDBV3mdMt2RclskzJf31Wm1HSbwYBCQ27rXbNaP85Hkq1wRLMMEA9xh1AG04aQ6iaVlP6aY3JilLPdotZU30kc2MKUQVCO5MKqCIssL4CYPj35M3RHV3UXQwJGrmno07GuP9Ws",
+                                        "mpls-payload-kind-list": [
+                                            "ethernet-container-2-0:MPLS_PAYLOAD_KIND_TYPE_ETH_O_MPLS"
+                                        ],
+                                        "compressed-protocol-layer-list": [
+                                            "ethernet-container-2-0:PROTOCOL_LAYER_TYPE_OTHERS"
+                                        ],
+                                        "header-compression-mode": "ethernet-container-2-0:HEADER_COMPRESSION_MODE_TYPE_NOT_YET_DEFINED",
+                                        "compressed-header-length": 20294
+                                    }
+                                ],
+                                "support-of-management-frames-without-preamble-is-avail": true,
+                                "explicit-congestion-notification-is-avail": false,
+                                "information-rate-min": -364808239,
+                                "fec-is-avail": false,
+                                "burst-size-max": 16068,
+                                "ingress-policing-is-avail": false,
+                                "supported-fec-redundancy-size-list": [
+                                    "ethernet-container-2-0:FEC_REDUNDANCY_SIZE_TYPE_4"
+                                ],
+                                "egress-shaping-is-avail": false,
+                                "information-rate-max": 549448654,
+                                "admin-shut-down-is-avail": false,
+                                "bundling-group-size-max": -20,
+                                "supported-fec-interleaver-depth-list": [
+                                    "ethernet-container-2-0:FEC_INTERLEAVER_DEPTH_TYPE_12"
+                                ],
+                                "burst-size-min": -3806,
+                                "fec-word-size-max": -992,
+                                "supported-loop-back-kind-list": [
+                                    "ethernet-container-2-0:LOOP_BACK_TYPE_BACK_TO_REMOTE"
+                                ]
+                            },
+                            "ethernet-container-current-problems": {
+                                "number-of-current-problems": -62,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 10500,
+                                        "problem-name": "ZjyWt1VJLR0Gdtk1JGqAjPf2uA6SnVheeHaAI5buO421xmU8UcAe2P8wi6gF",
+                                        "timestamp": "2022-01-27T18:25:45Z",
+                                        "problem-severity": "ethernet-container-2-0:SEVERITY_TYPE_CRITICAL"
+                                    }
+                                ],
+                                "time-of-latest-change": "2022-01-11T10:44:46Z"
+                            },
+                            "ethernet-container-historical-performances": {
+                                "number-of-historical-performance-sets": -13621,
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "period-end-time": "2021-12-21T11:18:45Z",
+                                        "suspect-interval-flag": true,
+                                        "history-data-id": "Tt22DdrBJ5PYjywAX7FNT7mQhZWFiXhcjk6Wxyq8DfYOFmoDtVimUw4cv0ROY8S9kYXRonRTvHA23YFwMPKGlPKJPBpFC9OW7EGo1p9o7Jr2A6zmObU10FKI81fKa4zaA7yBwz0vbjyLhZ75aT7",
+                                        "performance-data": {
+                                            "queue-utilization-list": [
+                                                {
+                                                    "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE2",
+                                                    "max-queue-length": -641543643,
+                                                    "avg-queue-length": -401772325
+                                                }
+                                            ],
+                                            "fec-uncorrectable-blocks": -1472818129,
+                                            "tx-ethernet-bytes-sum": "-9223372036854775808",
+                                            "tx-ethernet-bytes-max-m": "-9223372036854775808",
+                                            "fec-corrected-blocks": 2139080714,
+                                            "tx-ethernet-bytes-max-s": 2013002072,
+                                            "time-period": 1039461414
+                                        }
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-01-16T23:42:42Z"
+                            },
+                            "ethernet-container-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "timestamp": "2020-05-08T00:25:24Z",
+                                        "scanner-id": "PsKwt8OzottOetWi3EbGQSgWlmgRturaX3Gi3vRrYc85FWnAsq9aap6wLefeIGoxJ",
+                                        "suspect-interval-flag": false,
+                                        "performance-data": {
+                                            "queue-utilization-list": [
+                                                {
+                                                    "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_QUEUENAME_NOT_YET_DEFINED",
+                                                    "max-queue-length": 803808978,
+                                                    "avg-queue-length": -1814455597
+                                                }
+                                            ],
+                                            "fec-uncorrectable-blocks": 256880202,
+                                            "tx-ethernet-bytes-sum": "-9223372036854775808",
+                                            "tx-ethernet-bytes-max-m": "-9223372036854775808",
+                                            "fec-corrected-blocks": 1801023888,
+                                            "tx-ethernet-bytes-max-s": 775937376,
+                                            "time-period": -1386649975
+                                        },
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -83
+                            },
+                            "ethernet-container-status": {
+                                "timestamp": "2021-11-08T00:06:22Z",
+                                "last-10-sec-data-output-rate": -1474288737,
+                                "bundling-is-up": false,
+                                "total-bytes-output": "6997814940463167488",
+                                "total-bytes-input": "914593576504169472",
+                                "interface-status": "ethernet-container-2-0:INTERFACE_STATUS_TYPE_DOWN",
+                                "loop-back-kind-up": "ethernet-container-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED",
+                                "statistics-is-up": true,
+                                "last-10-sec-data-input-rate": 960470732,
+                                "forwarded-bytes-output": "5953098423358672896",
+                                "performance-monitoring-is-up": true,
+                                "forwarded-bytes-input": "7444792642432561152",
+                                "remote-site-is-faulty": true
+                            }
+                        },
+                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                        "hybrid-mw-structure-2-0:hybrid-mw-structure-pac": {
+                            "hybrid-mw-structure-status": {
+                                "performance-monitoring-is-up": false,
+                                "segment-status-list": [
+                                    {
+                                        "segment-status-type-id": -19027,
+                                        "operational-status": "hybrid-mw-structure-2-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED",
+                                        "segment-is-reserved-for-tdm": false
+                                    }
+                                ]
+                            },
+                            "hybrid-mw-structure-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "period-end-time": "2021-05-29T21:28:57Z",
+                                        "history-data-id": "LzXCaGL7TFwXPUHIyJ6YNJkW0gUnE4rhDpTGXwNJbjy05fADYyCDhOrh4dxIiYZNfKt5g9OjsecytM3jlxOCmfMqtj1L9SypDUuL3a5ng9VJVRU8oIDCXpViIW3RGu8bguXjEUGU3uvQdhZtZu6PT1ZtPVkvhlHxPwImig8dKE3PNUjFopm9ilC7gPuxa34Zz",
+                                        "performance-data": {
+                                            "rx-level-avg": 76,
+                                            "es": 926587436,
+                                            "unavailability": -1258905221,
+                                            "cses": 820024742,
+                                            "ses": 202507546,
+                                            "rx-level-min": -115,
+                                            "time-period": -2016757665,
+                                            "rx-level-max": 29
+                                        },
+                                        "suspect-interval-flag": false
+                                    }
+                                ],
+                                "number-of-historical-performance-sets": 28952,
+                                "time-of-latest-change": "2021-05-29T17:55:42Z"
+                            },
+                            "hybrid-mw-structure-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -3233,
+                                        "problem-name": "DE1qlUCSZhDDpXCosF9yDo1JdMsm2Y1FDU5QGzIFRmagbNFEsO4545GaR9wU7pzCcxlS63qXhA6tfL7zr3xo8dy0mWUmdlYpSbaZfAOo2URixQRRTo72uxUQtO4y93YU60LlAzCCmlML4wuXUB",
+                                        "problem-severity": "hybrid-mw-structure-2-0:SEVERITY_TYPE_NOT_YET_DEFINED",
+                                        "timestamp": "2020-01-29T04:16:20Z"
+                                    }
+                                ],
+                                "number-of-current-problems": 114,
+                                "time-of-latest-change": "2021-12-05T16:34:46Z"
+                            },
+                            "hybrid-mw-structure-capability": {
+                                "supported-tdm-structure-kind-list": [
+                                    {
+                                        "tdm-structure-name": "3tffaVHqUO3YnNmsTZp0jg6aB0vEeN1aggpq36IYMEO9r2td2Sdd9jgKjLgqzhsHqR8tPQjtuZCO2Y1WQ69RhptA3BSuLkbb3bwK2QdoHI4JGXFo3H8kYBN15FnQSz1VKpyEfLVXlZ",
+                                        "tdm-segment-size": -1761233091,
+                                        "max-number-of-segments-reservable": -73
+                                    }
+                                ],
+                                "performance-monitoring-is-avail": false,
+                                "supported-alarm-list": [
+                                    "6iSFqdDTSxYpUGhlz5YZDu6gpVuhunesF67XbCJ39zlWgC9PzZG4uNlLIP2448oK7vzi8ie9SzX037PD6oHs3UeLB8IGh6iouRGuaMD2dB29AJMyZlT2g7GJ7opomHMQzlcB7QvdjpmL00j0l42t3IdbYCzdcmVDH8eGYBT90fU0f5StaVWdv9omEYzQcmlTurzk2lt2AfUIdNbnA7sX9RbNHKvT7IMt9dOby951hZBuEMR6Lj4M"
+                                ]
+                            },
+                            "hybrid-mw-structure-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "suspect-interval-flag": false,
+                                        "timestamp": "2021-01-28T13:57:37Z",
+                                        "performance-data": {
+                                            "rx-level-avg": 94,
+                                            "es": 842190712,
+                                            "unavailability": -1025167639,
+                                            "cses": -794875007,
+                                            "ses": 1737760050,
+                                            "rx-level-min": 22,
+                                            "time-period": -1727462005,
+                                            "rx-level-max": -83
+                                        },
+                                        "scanner-id": "WNoBrs7VhTp1apE9TYcNjjFyopyGJ7JxNZ86j71s1il3I0cBQog1zNzXc7wV67kT6lZhsTJlb5oTXAmFRuGqhfgtmMgkTt6RO50gQJCUG0FvtUacoQuGXK1boaw9DCSrzSziubca4RGpDIB2r5AoIBAYLY0gASH1D9j7kv9gfPxSy0MZ6mfGYHwBFoK79j9MssTNY2V5KtPatC1rY8ZOQoinM2vVlEHO6stWngTZJJ95d2obaoS0M2o",
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -18
+                            }
+                        },
+                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                        "extension": [
+                            {
+                                "value-name": "qDJNQQu18QFICDvNC4j4t7axhscYmdwMR7zzXVBYLgyfTVUoRdkdcvKmPPcbUIPLHgdwbOmOWVVIQPYIUiVZFxlvexy97oMGEZcIFzwumk4c92MWczVSZ8n5xVeEbTcIKoqiPOMb8IgaK26OuTGt1VyyJF4UqguawMsmB6xBONDqIJ7cuNxvBXV",
+                                "value": "uZ6U7B5Efp0Qopk45XnNzuR3horSdm4Ie3ClEzZTZRCf9OjeDG1caS8k8z4lN1V14yfIZ6tQYX57DhdhXel0Ytc6UgjIhfBlFQVEPhnF6sEKJR1z5mz3IL1CTcc3jGoYocvdtSSzcwjWncnkzOfhr8LklYnEwEvUQ08jK0SWp4KEgZZHN6YefCrssO6YstSalSt5LeUaawGqox8bEYiLsJdUxbSSxD2SvoQ8CCiM0Z4oo4A"
+                            }
+                        ],
+                        "configured-client-capacity": "E21jgmRXdupgiP8mCi6i0uozD454w0Za2Subfd0kHpB06JeI1c0UGgtbkyfRy7TsZfD6lDr2U2U0L0BE4tyCCTOWjVFJ2rcUGH01djWZlISYBtvFO3iqPYf8TMSOdWAMvsFIMBIZcsQNVlkBgu25s96eVYU1MmFhOk0sOAk022FPnRiDmcBGlHM9xG2jUHAB1s3HUfHOhevw6O2k0D0ekNfR",
+                        "ip-interface-1-0:ip-interface-pac": {
+                            "ip-interface-status": {
+                                "errored-packets-output": -453318197,
+                                "last-10-sec-data-output-rate": -1885241717,
+                                "forwarded-packets-input": "-9223372036854775808",
+                                "errored-packets-input": -1569306397,
+                                "ip-v-4-address-cur-list": [
+                                    {
+                                        "fixed-ip-v-4-address": "EIrW7m0glRkxHZ7QTv50tWhTHzWSR83wJukQRl64ciCL9Jt3erVHf4sWEhOvpRT0m6Q5rO9v6Lh8uC3A3Y9iUC6yLUW2EH3SNTXeI6CGSTOenRPrHYBCsI25uY80ybSlWHsEO4dyP1McLtDsk74EP7KbXScnVWJREbokftS4uw870EAcLwQsvADlkHI7wrRau7mJAeF4CG4CkEO5axpG721kCJr83iaxpw9ZCGWem0JGwpDGW2eWX7gr",
+                                        "fixed-ip-v-4-address-prefix-length": 22,
+                                        "fixed-default-gateway-ip-v-4-address": "rMSBb9Zk1BTPHfHqO5QjLEeSAbZIuIiVm2wy3nK4YDLFLkYrpGK3kYVN1MvvnNqJHO9LbMP1htz2Nxld56ghW34YPslc7EWPkXAwJhp1KYVqnhDsfLKbOG1D8fQgTE5dtxBdO16rR1R7aurp73tVKmySBg0mUXsgu3tjWrKGktNvXeM4i7RUupEXyFkkCMAZH3awmUcHfR445I0fQR1c8G9Glt1P7BOPxYdTKpsZgw3d73lXMm9V2iBfECXD"
+                                    }
+                                ],
+                                "broadcast-packets-output": 1906232870,
+                                "dropped-packets-input": -858673953,
+                                "loop-back-kind-up": "ip-interface-1-0:LOOP_BACK_TYPE_NONE",
+                                "dropped-packets-output": -577677007,
+                                "unicast-packets-input": "-9223372036854775808",
+                                "forwarded-packets-output": "-9223372036854775808",
+                                "neighbor-list": [
+                                    {
+                                        "neighbor-mac-address": "kDuxo6WR64f1amXvjBJkwEv8T9CQMIm7lQwKWttUpIOz5DWgeGtLcYL57nOLYaKb09VOCgJTZxtWah4gPx11nE7m2N0SPK3HTRvn769YDCMFLJWB8PCwuBSogSg5vjEg2aEagN0MhNr2wfvE50azB3PSN5Piguzjw5lEKlq18KVwZjbWjdnU8cEW9m",
+                                        "neighbor-ip-v-4-address-list": "qIFB6KWKuh3niNbOEmZtF5Qr5VY14k8mUFX0qLKM3N2ls51Zr1k6Yap35nX2z5otCet",
+                                        "neighbor-origin": "ip-interface-1-0:NEIGHBOR_ORIGIN_TYPE_DYNAMIC"
+                                    }
+                                ],
+                                "timestamp": "2020-10-14T13:14:27Z",
+                                "forwarded-data-volume-output": -2105543933,
+                                "total-packets-input": "-9223372036854775808",
+                                "last-10-sec-packet-input-rate": -1684696563,
+                                "last-10-sec-packet-output-rate": -1765414703,
+                                "vpn-binding-is-up": true,
+                                "multicast-packets-output": 1380055520,
+                                "broadcast-packets-input": -580836119,
+                                "last-10-sec-data-input-rate": 1549238346,
+                                "interface-status": "ip-interface-1-0:INTERFACE_STATUS_TYPE_UNKNOWN",
+                                "statistics-is-up": true,
+                                "total-packets-output": "-9223372036854775808",
+                                "multicast-packets-input": 653160234,
+                                "data-volume-input": 1970784910,
+                                "data-volume-output": 121865086,
+                                "fragmented-packets-input": 907665958,
+                                "ip-address-origin": "ip-interface-1-0:IP_ADDRESS_ORIGIN_TYPE_RANDOM",
+                                "unicast-packets-output": "-9223372036854775808",
+                                "forwarded-data-volume-input": -173665369
+                            },
+                            "ip-interface-current-problems": {
+                                "time-of-latest-change": "2020-06-03T19:54:44Z",
+                                "number-of-current-problems": -49,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 23115,
+                                        "problem-severity": "ip-interface-1-0:SEVERITY_TYPE_MINOR",
+                                        "problem-name": "8mFeVz0wH6cI3bKk8CLDx2nqlG7VlzIuOnIJPI8oGk6JoQ3wkH1RJo95XhSiIAMwQv8x5gVEs1nQJjf30gMBFWyC5qMNTzcBWc8Ts3xUWNDx6SsY86rF209ZiWN3nREj3EcnzC9npMMnw6lxdEc7wm7PaMKxDhQyVUVnw4KNJxafDnMQ2RQy5XffB0M69uE4gzrFv4seBDm608P2ZFt4uIb5AXbJjPGAg77D3zSw4eD5ekZ6",
+                                        "timestamp": "2020-01-30T22:54:28Z"
+                                    }
+                                ]
+                            },
+                            "ip-interface-capability": {
+                                "burst-size-max": -8486,
+                                "statistics-is-avail": false,
+                                "supported-alarm-list": [
+                                    "H0hR73hzzlKT4cIx7KqRc9yJMZERIyEhqW0pRhYqDAcHMM7UwxDIG3kl2Q4DgIUGwV5n4WGHwShbwg53NADmDPHxGL",
+                                    "kh1ExcL56O85Oodx5AgsNx8MJJTcrnBMEDi4H49NKhKqGXYDq6YdD6ZmHKq9Z2Nwx5Ae1JTE0D4ys2cS82XL8P0PziYrkDXRBx5ugQ8gtdPW7TGgVET3tLKU4Bloea8HH5cXWk6hpN5xyMNliygDk0xoBLEIVMpvKtkyOqPd5VKDzpYRY6ua7TyAw4akRAPt391JsQPxDr34RT"
+                                ],
+                                "information-rate-min": -1418463761,
+                                "maximum-number-of-ip-v-4-addresses": -10364,
+                                "fixed-default-gateway-configuration-is-avail": false,
+                                "maintenance-timer-range": "ThTCnTqiJWWQWbZvh1U1mh1dMTv5H9fsq84FUuXviMl6PcB6eo7sF1FkU2pubEWtFT0zfYWqChwrl0xzowT3xqfstFWwjK0YD0pLQdbsuHTQHih5P31etgGWVut7flXKlfv4sywPgixXAGVhJWwd4c1SzuROHOq3VO7gmv5uNCkoafFU3377g8RPvIvcpN7cB6sQ",
+                                "admin-shut-down-is-avail": false,
+                                "dhcp-client-is-avail": true,
+                                "egress-shaping-is-avail": false,
+                                "information-rate-max": -1543144757,
+                                "burst-size-min": -9758,
+                                "ip-v-6-is-avail": false,
+                                "maximum-transmission-unit-max": 17958,
+                                "ingress-policing-is-avail": true,
+                                "maximum-transmission-unit-min": -9280,
+                                "supported-loop-back-kind-list": [
+                                    "ip-interface-1-0:LOOP_BACK_TYPE_BACK_TO_LOCAL"
+                                ],
+                                "vpn-binding-is-avail": true,
+                                "arp-proxy-is-avail": false
+                            }
+                        },
+                        "termination-state": "core-model-1-4:TERMINATION_STATE_LP_PERMENANTLY_TERMINATED",
+                        "mac-interface-1-0:mac-interface-pac": {
+                            "mac-interface-status": {
+                                "errored-frames-output": 907083112,
+                                "loop-detection-result": "mac-interface-1-0:LOOP_DETECTION_RESULT_TYPE_NOT_YET_DEFINED",
+                                "forwarded-frames-input": "-9223372036854775808",
+                                "timestamp": "2020-10-16T19:52:09Z",
+                                "multicast-frames-input": -1657452663,
+                                "unicast-frames-input": "-9223372036854775808",
+                                "last-10-sec-frame-output-rate": -237368141,
+                                "total-frames-input": "-9223372036854775808",
+                                "multicast-frames-output": -233947373,
+                                "dropped-frames-output": 1456332366,
+                                "statistics-is-up": false,
+                                "forwarded-frames-output": "-9223372036854775808",
+                                "flow-control-mode-cur": "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_SEND_ONLY",
+                                "received-ethernet-frame-format-cur": "mac-interface-1-0:FRAME_FORMAT_TYPE_ETHERNET_2",
+                                "last-10-sec-frame-input-rate": 14983312,
+                                "errored-frames-input": -1650641443,
+                                "loop-back-kind-up": "mac-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED",
+                                "interface-status": "mac-interface-1-0:INTERFACE_STATUS_TYPE_UNKNOWN",
+                                "mac-address-cur": "XVvv9E75hVi80Y7ijed4LVPutOckYNkNAHaBlhzucJC4HJnSXAXAnM5It93jOn7g5hSizjND2hIBT5uIxrbV58DyhyS6OReL863HhIdjSVVD0hlxIokFwQ6GoYE4HSPPRTp8tCkdxfQpw4O6s1LRRRx7H3coN16EMnF8ZZlo6cFCgtAIudzd5YlETxVHq1ddo",
+                                "broadcast-frames-output": 1917105914,
+                                "total-frames-output": "-9223372036854775808",
+                                "fragmented-frames-input": 851094968,
+                                "performance-monitoring-is-up": true,
+                                "unicast-frames-output": "-9223372036854775808",
+                                "broadcast-frames-input": 1283636496,
+                                "dropped-frames-input": 842197746
+                            },
+                            "mac-interface-capability": {
+                                "supported-flow-control-mode-list": [
+                                    "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "statistics-is-avail": true,
+                                "broadcast-frame-suppression-is-avail": true,
+                                "supported-frame-format-list": [
+                                    "mac-interface-1-0:FRAME_FORMAT_TYPE_802.3"
+                                ],
+                                "admin-shut-down-is-avail": false,
+                                "maximum-frame-size-min": -18089,
+                                "loop-detection-is-avail": false,
+                                "performance-monitoring-is-avail": false,
+                                "mac-address-configuration-is-avail": true,
+                                "maintenance-timer-range": "2OvhHasfe3T5FVaqb9H8i2JZS26a",
+                                "supported-alarm-list": [
+                                    "Tb1osIqNXEIQCfDMFHNfP69zX1B33KgWWhdg0DVPaEyMT3qrKeyAcH19Bu5w7dt3vybnb74dDuZoyqPiwfKIXDRq8WWfahaxPdMTcQ6Pd66LoNVU3GCSblaja6",
+                                    "kgAJ5OvQSdXAqVG3btZXoxrgIMq2Wpk8FVRCBeltka3C5BG85F5l4wCMaUG7j17QOZth5OKpYG2V9AV67Ssbg4XqQwpapx0dwlut16TRENEOnrMujeFzau01Sp3hWVmk9IO"
+                                ],
+                                "hardware-mac-address": "P1wQkoJGiXCBs93z5LmuLcp6p1WpAozqi58ulRaDHMe9V9BSNPny2MEjFsIgR9y16GvsxFX6j486dJY0qlqs05ExpeN8ol9mTEOjbEpuIxAV8zWzMe1EbxcBMRJ25LoYh",
+                                "maximum-frame-size-max": -11687,
+                                "supported-loop-back-kind-list": [
+                                    "mac-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "link-loss-forwarding-is-avail": true,
+                                "loop-port-shut-down-is-avail": false
+                            },
+                            "mac-interface-historical-peformances": {
+                                "number-of-historical-performance-sets": 22544,
+                                "time-of-latest-change": "2021-10-03T19:07:11Z",
+                                "historical-performace-data-list": [
+                                    {
+                                        "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "period-end-time": "2021-07-20T23:13:12Z",
+                                        "performance-data": {
+                                            "mac-pause-frames-ingress": 278416194,
+                                            "tagged-frames-ingress": "-9223372036854775808",
+                                            "jabber-frames-ingres": -780261429,
+                                            "mac-pause-frames-egress": 1298655686,
+                                            "mac-control-frames-egress": -182268153,
+                                            "oversized-frames-ingress": 2041111624,
+                                            "undersized-frames-ingress": 105987660,
+                                            "frames-of-1024-to-1518-byte": "-9223372036854775808",
+                                            "frames-of-64-byte": "-9223372036854775808",
+                                            "frames-of-512-to-1023-byte": "-9223372036854775808",
+                                            "frames-of-65-to-127-byte": "-9223372036854775808",
+                                            "mac-control-frames-ingress": 1545442778,
+                                            "frames-of-256-to-511-byte": "-9223372036854775808",
+                                            "tagged-frames-egress": "-9223372036854775808",
+                                            "frames-of-128-to-255-byte": "-9223372036854775808",
+                                            "fragmented-frames-ingress": "-9223372036854775808"
+                                        },
+                                        "history-data-id": "Zjtz151jnTUuUBXv5wCbEa3wHVlfq8Mij7Rl4SwrDiWxTL2YiF1WP5koSxDjFhtYgkbk4HLHZz6Kl9BvGCjnzDDsa8DPp6FFiRRmyCVy41ah2LMIo5XXIApKI2rZ06wiPnEoSrOWtY5vKR60W3",
+                                        "suspect-interval-flag": true
+                                    }
+                                ]
+                            },
+                            "mac-interface-current-problems": {
+                                "time-of-latest-change": "2020-08-06T17:37:51Z",
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 23345,
+                                        "problem-severity": "mac-interface-1-0:SEVERITY_TYPE_MAJOR",
+                                        "problem-name": "oEHtUzO1rmwg7GI7cBI4ILhUMIDyFg2VNJoza4BBr7KyGsxKVgOE15qFF35dc78RIpqTtTmUT6kzqKbm0Z0T4qqCmvPqvXhdmH6IttumzP",
+                                        "timestamp": "2020-01-11T17:23:37Z"
+                                    }
+                                ],
+                                "number-of-current-problems": 70
+                            },
+                            "mac-interface-current-performance": {
+                                "number-of-current-performance-sets": -18,
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "elapsed-time": "-9223372036854775808",
+                                        "suspect-interval-flag": false,
+                                        "timestamp": "2020-01-30T07:34:08Z",
+                                        "performance-data": {
+                                            "mac-pause-frames-ingress": 1712216584,
+                                            "tagged-frames-ingress": "-9223372036854775808",
+                                            "jabber-frames-ingres": -1756380875,
+                                            "mac-pause-frames-egress": -1982591587,
+                                            "mac-control-frames-egress": 1411884650,
+                                            "oversized-frames-ingress": 292059370,
+                                            "undersized-frames-ingress": -1768920651,
+                                            "frames-of-1024-to-1518-byte": "-9223372036854775808",
+                                            "frames-of-64-byte": "-9223372036854775808",
+                                            "frames-of-512-to-1023-byte": "-9223372036854775808",
+                                            "frames-of-65-to-127-byte": "-9223372036854775808",
+                                            "mac-control-frames-ingress": -1941997555,
+                                            "frames-of-256-to-511-byte": "-9223372036854775808",
+                                            "tagged-frames-egress": "-9223372036854775808",
+                                            "frames-of-128-to-255-byte": "-9223372036854775808",
+                                            "fragmented-frames-ingress": "-9223372036854775808"
+                                        },
+                                        "scanner-id": "ItivlJtz2iF6b3szGjTQGVa8k3GipAT733CgEXHGfeEq96ZPiLGQyIYKLw3a6O91SL9oIQ5PWB76A7VKKtAabqVOOYQNEZGoKQNkyK1vd9tN8oxSSZUVhPC6FsTcszA4hnhQZiddrG0zWqjGheuzV6FByqNSZfX9v6Zuo4HQCAhqSB"
+                                    }
+                                ]
+                            }
+                        },
+                        "pure-ethernet-structure-2-0:pure-ethernet-structure-pac": {
+                            "pure-ethernet-structure-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "timestamp": "2021-11-14T18:42:48Z",
+                                        "performance-data": {
+                                            "cses": 893808162,
+                                            "es": -1760339427,
+                                            "rx-level-max": -66,
+                                            "ses": -1627177313,
+                                            "rx-level-min": -41,
+                                            "rx-level-avg": 44,
+                                            "time-period": 123429314,
+                                            "unavailability": 1003271716
+                                        },
+                                        "suspect-interval-flag": true,
+                                        "elapsed-time": "-9223372036854775808",
+                                        "scanner-id": "BVk4Uf7NAgt9f012fcxttOLlUrhUAHD3vX7p474FnyGCyHxFU41fLMtF5Krxr4BWTAeYzivWQ3rgKQWwUXExB75HRw6aBHZmadcJvzyeCRunHiLt7p1Jw6ifCo"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -56
+                            },
+                            "pure-ethernet-structure-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "period-end-time": "2021-01-13T08:23:27Z",
+                                        "performance-data": {
+                                            "cses": 1596842372,
+                                            "es": 1259460006,
+                                            "rx-level-max": -24,
+                                            "ses": -1285835223,
+                                            "rx-level-min": -29,
+                                            "rx-level-avg": -73,
+                                            "time-period": 1535492852,
+                                            "unavailability": -1624977735
+                                        },
+                                        "history-data-id": "5I8sXHKBbS04BpaLEE9WKZd47HsJzq0w11YYIJzLtsPWJZHfEIcgIpcHZEqq5jW6kNWUooGRQvNrnmGT4S1Madm1RMrO5fMh2J4q",
+                                        "suspect-interval-flag": false
+                                    }
+                                ],
+                                "time-of-latest-change": "2022-01-15T20:28:27Z",
+                                "number-of-historical-performance-sets": 27183
+                            },
+                            "pure-ethernet-structure-status": {
+                                "segment-status-list": [
+                                    {
+                                        "segment-status-type-id": -19817,
+                                        "operational-status": "pure-ethernet-structure-2-0:OPERATIONAL_STATE_TYPE_DISABLED"
+                                    }
+                                ],
+                                "performance-monitoring-is-up": true
+                            },
+                            "pure-ethernet-structure-capability": {
+                                "supported-alarm-list": [
+                                    "l03IZkb3Qhpn4S7X6aYvJn3heZlwcQZxIVfzfqC5I2kEMrBStzncOimU"
+                                ],
+                                "performance-monitoring-is-avail": true
+                            },
+                            "pure-ethernet-structure-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 32064,
+                                        "problem-name": "tMkNLraO1Qh3mLQxwwhigvXyLjqkGpk1cEOPXZDQPUT3xBBV7KdggaGTm6d2ox3s3ShTJMJyyvC66516P7eX9URvTWp9mlBp5KaOwMm49Q27V4dD3jAcejIZg78CkBTpl4dRIsNRiQY6M4JPnb1BnJsDJs733SlgO",
+                                        "timestamp": "2021-08-08T14:33:04Z",
+                                        "problem-severity": "pure-ethernet-structure-2-0:SEVERITY_TYPE_CRITICAL"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-06-11T04:58:44Z",
+                                "number-of-current-problems": -24
+                            }
+                        },
+                        "lp-direction": "core-model-1-4:TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN",
+                        "name": [
+                            {
+                                "value-name": "vgov29SUBOVE5nzrx7XqipBRxc6q60dtgtQiDA4eo0KtnkVUjKdB9GkGSqYQqbjGE1Q9CVn0V0mac9Wv",
+                                "value": "962PqAzIyp1BAH7Cyhelw68wsiAB65mg3gXlQx4gW5JxER1407pwdxVyHv1Oto4wETSnqOvfT7ExYFCQMTeZr1p0xrOSHKodE8AWWYbH5P7VmBL8uR0NThOiIuapfqDLz5"
+                            }
+                        ],
+                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE",
+                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL",
+                        "configuration-and-switch-control": [
+                            "8QCJJXErR"
+                        ],
+                        "fc-blocks-signal-to-lp": "y373A5JCpCfhIr4Xai6cqOG1pvFQfzJNvQI5VsHc4OtE7qBhAzl0fT1EpynE06rvO1ABt9NpP83Wyw5",
+                        "air-interface-2-0:air-interface-pac": {
+                            "air-interface-current-problems": {
+                                "number-of-current-problems": -79,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 1717,
+                                        "timestamp": "2021-03-10T10:49:52Z",
+                                        "problem-name": "a32V88FASPf5qcUQQ6zyjZBU18ZsIiOTeQGeZdOJ23Gs7BbPzKnSBQMCZEWzOKk2B08sdW38RJsQcDFLgUvRLamCGibuVwpooxICmLC5u4WzItcYgIHTK3vqeyU94bptB7XXSzUevINd403kALdkGAKU8wV5Akybrn0bOUqjD5pHXs1x56JMGlyOSuTkOjv8ynjmhByMHXtwhm4fkN101zHTVs5KEsK",
+                                        "problem-severity": "air-interface-2-0:SEVERITY_TYPE_WARNING"
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-02-22T09:46:02Z"
+                            },
+                            "air-interface-status": {
+                                "xpd-cur": 6,
+                                "transmission-mode-cur": "JckEeSuHqNs1BguGy84aXdLKxuHXZDTIQde4XJDno5pZmLyMLCWJIHlf3U42yXLg3Zc0APgRMxQ0agMWLIFthSAkMFncu0spRwikdyb0XT072F3NfAgxsIJ7f6jKYE1I2j2gJ58GQ0O",
+                                "rf-temp-cur": -88,
+                                "mimo-is-up": true,
+                                "tx-level-cur": 4,
+                                "local-end-point-id": "TS76DI8lRqDp81jnC4PiuAYdAbwAZAyKkxQXfYbZgOgoQzDkvsv0UldnwBXn4n7oNPe2FpTV59bNAO068v63Qbqf",
+                                "rx-level-cur": -17,
+                                "link-is-up": false,
+                                "performance-monitoring-is-up": false,
+                                "xpic-is-up": false,
+                                "remote-end-point-id": "fCQvC7irlc7K6UP76vIUvGV0EYQPg5tnAcS4javEfuolp5knA295A4XeUG32Dpq5Bi9UlFyA1ONqL7Ne2XbC19JOPEQk3gqErzqM6Ye8E1yq0eEU3Pp4Q8KxMBSIRieaJFOQv2YaVwsOC6IFNZCE7m3MXVuH5IRPfyFLADNo1f4EdMbSENoLaspZnTGtuqaJYPmqk9GdoKJtpVm3IKGKc6KsRiNdAXXqEbRQlp3",
+                                "received-radio-signal-id": {
+                                    "numeric-radio-signal-id": 52710,
+                                    "alphanumeric-radio-signal-id": "P0SzS5ao6fffG8jeNoVEqT5hXB3c85GPXroPwq6uFdJddUr0ieEB0BSXdOadTI2I9qqxIo2nBLsOyTG"
+                                },
+                                "auto-freq-select-is-up": false,
+                                "tx-frequency-cur": -890577889,
+                                "rx-frequency-cur": 1680442944,
+                                "atpc-is-up": false,
+                                "radio-power-is-up": false,
+                                "snir-cur": 101,
+                                "loop-back-kind-up": "air-interface-2-0:LOOP_BACK_TYPE_IF_TO_REMOTE",
+                                "interface-status": "air-interface-2-0:INTERFACE_STATUS_TYPE_DOWN",
+                                "alic-is-up": false
+                            },
+                            "air-interface-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "period-end-time": "2021-04-02T10:54:00Z",
+                                        "performance-data": {
+                                            "snir-max": -90,
+                                            "unavailability": -1384471117,
+                                            "rx-level-max": -119,
+                                            "xpd-max": -105,
+                                            "ses": -776795169,
+                                            "rf-temp-max": -15,
+                                            "tx-level-max": -64,
+                                            "es": 356376988,
+                                            "tx-level-min": 116,
+                                            "tx-level-avg": -68,
+                                            "snir-min": 111,
+                                            "snir-avg": 94,
+                                            "time-period": 968961608,
+                                            "cses": -433116075,
+                                            "defect-blocks-sum": 11982,
+                                            "rx-level-min": 22,
+                                            "rx-level-avg": -62,
+                                            "rf-temp-min": 11,
+                                            "rf-temp-avg": -78,
+                                            "time-xstates-list": [
+                                                {
+                                                    "time-xstate-sequence-number": 12,
+                                                    "transmission-mode": "3vj12pIc4eQmfR3a6a79YJxI26SQg5ykAKlu9Wzd2hsh8nj6yrfoaM64SQU1Vkdn4yS6mjbpADGI10Orj4PtINxBDjurDHOA7GGuZRLrnj1gbQHuMwXmbuXOFj7j0WT8urCmifNFyPVKxuebScx3ynKeGRpHNaPiBjELyjj686QFBXQ",
+                                                    "time": -349941069
+                                                }
+                                            ],
+                                            "xpd-min": -30,
+                                            "xpd-avg": -12
+                                        },
+                                        "suspect-interval-flag": true,
+                                        "history-data-id": "YizYOYaxEG9TpAPQW8CpfJ3G3dutOnhEGQCmONTllVeCvVtj3XAaHEQCRcYxAfc85OuMtnZOa5rF0MQ3Jr5i5VVO7Tmz0qH56bJArIgBNz9FlZA5iFnfsa4sVi1VIBTGEug55pzKYIqkz0hKywZ0HVsu5mqNXbmBFCzC10nSINc9FlL5RL6y"
+                                    }
+                                ],
+                                "number-of-historical-performance-sets": 4510,
+                                "time-of-latest-change": "2020-12-04T18:15:59Z"
+                            },
+                            "air-interface-capability": {
+                                "expected-equals-transmitted-radio-signal-id": false,
+                                "duplex-distance-is-freely-configurable": true,
+                                "supported-radio-signal-id-datatype": "air-interface-2-0:RADIO_SIGNAL_ID_DATATYPE_TYPE_STRING",
+                                "rx-frequency-max": 2041403190,
+                                "supported-loop-back-kind-list": [
+                                    "air-interface-2-0:LOOP_BACK_TYPE_RF_TO_REMOTE"
+                                ],
+                                "direction-of-acm-performance-values": "air-interface-2-0:DIRECTION_TYPE_RX",
+                                "adaptive-modulation-is-avail": false,
+                                "supported-alarm-list": [
+                                    "HVX1x4pLgOaqgkOIOrZXzndlvKvFHYagT7ir3z4kg6Coqr67K6Wbl2xIMUntTpKEwU5Al1MB0g0qzYpjWmnhoMZ2GevzD762T3uf58I5oAnYzN9n1wFhiwjRDOi8Oo",
+                                    "38nF3",
+                                    "9yYROCh9JYWbhyyQ0wcsLHSLx1A84KL5jBPZd68OXW0evq4nX8PAHHdeAOewqZuJsjByhBm6yecVF8au",
+                                    "jI21VDOFczpUjuUINN9I8PvTTq1g6Wqhwsas5Z7aqoWJSQrxws7EhCpa3ji9fJiM3t61s5bKm7l6QMEe7LKooarrlJsskK6odcpxaA9wzuCh98vgU8Eai5B",
+                                    "Z4Yzi49Yjyoa20Ddtbu4pBuwNhbWrx4rB20L71Jiz0st0XGt03pqEUWjbZ7Dw4WZ6OL5PmfhmIKeFjHGmZYSTM3WLbr9ff8d3TbT8q2u0EJGXiebh432Q7RtaiCpyKutwFeE6g06VJEK2KWbOZ6wYXZ87BpFeU1Crf8pw8ojK2VEFRPlJVSzKJISd7pj1qVlGVK",
+                                    "u8Yz24KliPYgjXUCOz9y9DuDgo1iwvA0ErzyvbTFSKV4HQyohHWqcj3sHWCdscdYDEw0IhFA1tEBj4ZsLNTX6OhODLTXY7VtDjulA1OuukXFpW82B10AH9gcV99L846EfAZICF4Y01EhPMjqFbSel8r8aALixRWEkOmWlqMlrqC84WzJ7jQkshkCJ5MgPJV9p9XKsJYT2s26gtIgMys6HNAqKnzrYmAnvpZX9XJ3i",
+                                    "iDGaOQJXf4RlJTXiH6woatUDSFqNooty11IHSkw7gnsZ9hhQnF6y81b0yCFOS1mT2XsUhYUpdeomwy5Tdbre4D6C7EiZFFKHu4uL2o27C"
+                                ],
+                                "tx-frequency-max": 450602712,
+                                "maintenance-timer-range": "h44KunLeQ8l6kLX2VG0sOyKWg9fcVqI5mFPQ2s5KBiQN3FIYmIi282Yo35tRw3WKIDBLYynrIeeLLOB7wT2FNSVJYoAmso6a1zNRZbiHhpk2dN2CyWheG4XwtxSVVRX",
+                                "transmission-mode-list": [
+                                    {
+                                        "transmission-mode-name": "otLfhebfgSzDSyByr0",
+                                        "transmission-mode-rank": 483511776,
+                                        "supported-as-fixed-configuration": true,
+                                        "am-upshift-level": -115,
+                                        "tx-power-min": 88,
+                                        "am-downshift-level": 58,
+                                        "symbol-rate-reduction-factor": -37,
+                                        "channel-bandwidth": -398198479,
+                                        "xpic-is-avail": true,
+                                        "code-rate": 57,
+                                        "tx-power-max": -96,
+                                        "rx-threshold": -20599,
+                                        "modulation-scheme": 15497
+                                    }
+                                ],
+                                "encryption-is-avail": false,
+                                "duplex-distance-list": [
+                                    -817647863
+                                ],
+                                "atpc-range": -103,
+                                "performance-monitoring-is-avail": false,
+                                "auto-freq-select-is-avail": false,
+                                "tx-frequency-min": -1284962363,
+                                "rx-frequency-min": -1360430855,
+                                "type-of-equipment": "cTgKl0cHkvoVvnsz8Wx6g7e4bCSGCjvOcDqywu7QZvEuL64TUtS2sY6DBYc5aHTmdjMJNTzFh59Ub5FXqpZLo5oZWA46aPkn076FSxk1DmVGrB",
+                                "atpc-is-avail": true,
+                                "supported-radio-signal-id-length": 5553
+                            },
+                            "air-interface-current-performance": {
+                                "number-of-current-performance-sets": 74,
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "timestamp": "2021-04-19T11:37:02Z",
+                                        "scanner-id": "khk5n0kZXFy2kM7S1E797ze3ELSGZC9jLtp8tB7jgxlAjklkZklYTrTq4L63f8n0BM0Xf08vxtXJFi3wDhmoIgONTNQ1V51oJUlYUttjOjUuBQ067fvPvbuoQdpDij225f0ZBmapF5L8NE7UTuBgF6EobW1tf3vkbobMCd39aPhXlgJ6Kdmib0GmOHP3DdfGBis5oveycvopM7",
+                                        "performance-data": {
+                                            "snir-max": 12,
+                                            "unavailability": -1201700975,
+                                            "rx-level-max": -9,
+                                            "xpd-max": 101,
+                                            "ses": 230704140,
+                                            "rf-temp-max": 103,
+                                            "tx-level-max": -38,
+                                            "es": 1333993954,
+                                            "tx-level-min": -17,
+                                            "tx-level-avg": 16,
+                                            "snir-min": 56,
+                                            "snir-avg": -4,
+                                            "time-period": 2053996610,
+                                            "cses": 1102943704,
+                                            "defect-blocks-sum": 18140,
+                                            "rx-level-min": -65,
+                                            "rx-level-avg": -10,
+                                            "rf-temp-min": 7,
+                                            "rf-temp-avg": -64,
+                                            "time-xstates-list": [
+                                                {
+                                                    "time-xstate-sequence-number": 98,
+                                                    "transmission-mode": "HGpLMiy0Vj5OQVpqPDf5GYwtci7RB2iaAH",
+                                                    "time": 2145157766
+                                                }
+                                            ],
+                                            "xpd-min": 69,
+                                            "xpd-avg": -9
+                                        },
+                                        "elapsed-time": "-9223372036854775808",
+                                        "suspect-interval-flag": false
+                                    }
+                                ]
+                            }
+                        },
+                        "label": [
+                            {
+                                "value-name": "nVL50s4NHFqP9i",
+                                "value": "XbZDtz7DRe3mZurzSfcPfwT3dylVzDuoOl19V9EMnA8f4rGOGSvOggJmG49gIDEoZGqUH4y4wybtZR9yBFeSVX6u1fKBSgSJOavve3sLtD6lnfTYU7IIWOcPVOjO4bpTlVgrYA4k6aFtqyjcx2UtIYaEEtkJEJuRwCbndfHjimMIM5MjZzEAxO64iiNO19"
+                            }
+                        ],
+                        "is-protection-lock-out": false,
+                        "tdm-container-2-0:tdm-container-pac": {
+                            "tdm-container-historical-performances": {
+                                "number-of-historical-performance-sets": -2168,
+                                "time-of-latest-change": "2021-01-23T07:14:37Z",
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "period-end-time": "2020-08-05T10:59:44Z",
+                                        "suspect-interval-flag": false,
+                                        "history-data-id": "j5fjbT8fUWgtWCAD14ohfZLkfmmWCkGVhN6syeHs3PVRsomtsLCAKgURC8N6sl1K9Z4H6E29tP0N5e8qZL0B1Utv38BnuuZDtWczA6IVWAJTHRjGuban6DS1Ltg7XgKr4PSEVtrJ32DCMObg0lEYQoRtS7BPfl8j21PYm9HhbcUPT56LqCBg0kJKjcszysKAlsqHB0ZE4TuXYsIgW",
+                                        "performance-data": "AudgI1Og"
+                                    }
+                                ]
+                            },
+                            "tdm-container-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 14011,
+                                        "problem-name": "ykyvozD6C1A5PEsImkoeYbCB6xN4r72ZktuI2ZGw19BQFVq17OfXZ",
+                                        "problem-severity": "tdm-container-2-0:SEVERITY_TYPE_NOT_YET_DEFINED",
+                                        "timestamp": "2020-01-25T11:01:54Z"
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-06-28T19:26:57Z",
+                                "number-of-current-problems": 126
+                            },
+                            "tdm-container-status": {
+                                "loop-back-kind-up": "tdm-container-2-0:LOOP_BACK_TYPE_NONE",
+                                "performance-monitoring-is-up": false,
+                                "interface-status": "tdm-container-2-0:INTERFACE_STATUS_TYPE_TESTING",
+                                "statistics-is-up": true
+                            },
+                            "tdm-container-capability": {
+                                "performance-monitoring-is-avail": true,
+                                "supported-loop-back-kind-list": [
+                                    "tdm-container-2-0:LOOP_BACK_TYPE_BACK_TO_LOCAL"
+                                ],
+                                "supported-tdm-container-kind-list": [
+                                    {
+                                        "tdm-container-name": "miOfnzg1JlnK523TZiy9l9dL8PVPWRXb2DihcziVUyxZAAL",
+                                        "tdm-container-size": -1702961733
+                                    }
+                                ],
+                                "supported-alarm-list": [
+                                    "QsrI26oguUPGospWcElnqNjP9ffKhKyZ4ZI756fsSX8hpx5tbqIt62i7hxRzapqeh8dm6lOZiW8zld2oELRCFaJWzAnBROQ8W",
+                                    "nVg3Mq0UZdZUCvxl7cnQ0Xioy2cga0cpNktzLllCylw2QVoY7LG8AZo11A93sltgyWHjh3NHocK67047DLf6CD7D5gypu1x2Xfd6i0OycqEkqJrVmy1Q38l0hTpLVXFK4SJmSxUXPy979s2n04dV4yVlkcYf9DRdvA"
+                                ],
+                                "admin-shut-down-is-avail": true,
+                                "maintenance-timer-range": "6sNRsCEhro6CqJUHWlRJ8h9ZRJCjuVTAfHkHbYQCmW6Ey1due55mmee6QQhcEaNLJZlVXbxc0EQyx4UL1Z0f6elOWC0AFFmoEHjuKJGKnoaMs4xt4pJ2v"
+                            },
+                            "tdm-container-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "suspect-interval-flag": false,
+                                        "performance-data": "WAppWZjWxPPGixl6XedDu3vetsnzm6Eiy3zm2Kizr78JwlHtANZWQu2jWpSanwsVr1atDsV4sVGYgnkIabE0FGctY4EltY9USjgvD3AXYgOev0XybtqQ2Cb0zPd2GmWyx43b7v05DOc9O1",
+                                        "timestamp": "2020-05-12T04:52:30Z",
+                                        "elapsed-time": "-9223372036854775808",
+                                        "scanner-id": "oC"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 119
+                            }
+                        },
+                        "address": [
+                            "tSi0W2KtxFd3333xxmbyd7WBcow78buBWMuKH65eLi9Ged5Lrgjwo87Aovzxz30nIu7ptcvemFNAKSeb9xHpxGRW4qlD"
+                        ]
+                    }
+                ],
+                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK",
+                "name": [
+                    {
+                        "value-name": "a2Bm",
+                        "value": "P2COO6OKMT2j9SzejkHQxEGFe9HgK3tsY58EcXpQIr1JbAXmMwcb3SQh2qxEl0YjY7Y2WfSwyL7Jd450s9bvUUMOkbkF4jR2iPW64GCurJ5EF2wZbIn5u1LO56l9h43rTZxPF1jYCou9q18uJnr5pdTub6vkbyLWpiEWjXUVeg4wh40S"
+                    }
+                ],
+                "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                "physical-port-reference": [
+                    "c942beda-266b-a670-ca1b-e78a3653775b"
+                ],
+                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE",
+                "extension": [
+                    {
+                        "value-name": "cBMXM4alJt0WmfD8hvFmQb9dE3FpFvpRY3HC7JXIdPEr4arex6Af9BkOEZ5bnuUlptYpdN7iDMJzOaNl9fsiQM6mE3p1xkeXNcmS0lav7T4NWK05ZsnIfmWTpmMPG0Ml50e5lgslao06013StqAAEol4K7Li8",
+                        "value": "EdpKaC0uP2SQ0TJ3D4m5F0t0We8zw8Y2lfEnSxRzzBpsm0vZ5J4KCyKqMK0aSY55eJkY8bxINPa9Px1U95ELDhbhT3kE2pB80WY97vJMcLO2iPOrUl4qC8Hnb115iD5br3cyrVdDG1xQQmaCHe2bmKyqDsvOXBRoE3"
+                    }
+                ],
+                "ltp-augment-1-0:ltp-augment-pac": {
+                    "ltp-augment-configuration": {
+                        "connector": "07wpeqzDCeErNGQsYiiaCfzpi0iDsCNsCbRIBjm5pSw4q",
+                        "equipment": [
+                            "c942beda-266b-a670-ca1b-e78a3653775b"
+                        ]
+                    }
+                },
+                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL",
+                "local-id": "cPd5rv7UCxgGVDQDqM9etJBmYpVl61kaQxf9Un3wUc5IHVl7Hnm26XhXecacdumVTC4NZZjT3gBKcPSLc6GaVXZ991mevI9oc53bWf5SvyCHfmljk1ufYlhZnv5K5e1ib4tZjqRPRmo6AJqVCM2sZjjmGo7Mu04F4pFoQo5z",
+                "fd-rule-group": [
+                    "5ea42646-26ca-afda-19a7-ad7f7cc924e6"
+                ],
+                "label": [
+                    {
+                        "value-name": "kXJpI5APsUS0FGhPk50aZNg7JMpNFh7ZfIgXFQE7CoZ958YhdYr4DHcmmB11K1SZB8PhQlgsC8tzgrQuhiqUZC8d59eQaYHMYoVOK38ebBNkUDO3N6PFJXSO77E9XmNWKACmELsHef11LH4yOUdxR6dQ5SSU6xQ",
+                        "value": "8lXEYplcFndi4aQK44hN2vwZfgTdNCVNXSrNaFZP257YfPBbLSYFfmEmCqzq2vdRfxwpcn66s5WzVxKyiBepXKMAadS4IXNQuj7yHeE1btt605xaGLAwneYyrQu2NiSatZIa5f4hIxfACMLbpdHNrFdSnHU2ZEclwNvB2rSCY"
+                    }
+                ],
+                "transfer-capacity-pac": "0nNMGs3XOc72P6iEAIGEEF5jTPenTLfL02yGnBv3NC5uIg0bQGPueMF7BTmnxB0pvy6K1tGH6DbGT4RBKy6QlLXOxbbWMclaCjUEFAlL6ojZsbt5JzV4cLLBWWpB0DLvWx9t0m66CqX5Bq2kRPh4s2xhQXSJsve",
+                "external-managed-id": {
+                    "manager-identifier": "sFoJAtDNEXWJrjr6Asite37cajMxXDIpa60DzDi5sfGUq801samH5lTfwyMt3mKdsKQTf1ZIgxuyxmr0wGHB",
+                    "external-managed-uuid": "sIq0nL3Jw948RXoSO60mszLO0LcGkFANfSFCDBe1Ki2Bfqm4omiQV3wOHIm1fWGuGe"
+                },
+                "client-ltp": [
+                    "c3794728-dc8b-5233-0c67-0b857c32ada1"
+                ],
+                "peer-ltp": "c3794728-dc8b-5233-0c67-0b857c32ada1",
+                "ltp-in-other-view": [
+                    "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                ],
+                "address": [
+                    "o28eKugn3nheJ1N1x7xd484sEZ8CPadd4ljHIA4LXd0y7FAEM7JI7F2DEaftksyhGRYojU9871HeG9Kk8t2784KEf07zkxQ0hGoAAqJIriW8rzsz2vG3rqHGiH8D6QDnxUY7kHHLZwTi5eRZBp22HCJ0bJvhz8F62D6ecN03bLlgR48slan2E6UPHp7gqMfkhlzt0ro44JkWFso0vLU9JHZi6YzoKOJ11amTBKXFlaB0uSSZvE17lSpkQY"
+                ]
+            },
+            {
+                "uuid": "dd2469b7-b29f-b4ff-867a-170a85ad54ed",
+                "embedded-clock": [
+                    {
+                        "local-id": "8DWJ9TvVXFUQscgMwcvT8Dg4z5OP5V1drXWAIkvGZporuE50QALZ51VE7Cu4pvhQl5qVpVtodRHHwMzeed5j61Y5vk9UHiDUo3QNRjcW3Tvzy4FM9L6gEWl18nVPFqK3msR5LV1OGwfesV1CyZScN5dVs0K8rm3FOUKsPDgw1oCtbvXJm",
+                        "run-mode": "core-model-1-4:RUN_MODE_HOLD_OVER",
+                        "phase-aligned-clock": [
+                            "YVeiPwRShBgjzQZvC8Zx7SnUMwm6JiLAdZK2vtNM43XDTX0o5SV5KiRoH5uiofKt7uoCXbhT6ewZ3pf1ha6TlXiUVMcjUXE1j2D95M2b1r34Qi57l30yTa"
+                        ],
+                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                        "encapsulated-casc": [
+                            "ft4JD3aV03DM5mpHKXANuQPfSDxsNm53P9El5Og5STRX88wSY6FsOnHHS61yt7tag7vlWLiGx2vxa1p87WsWjav4gwCBD5MM4h70Viykk3RuW8vW4XKgZf"
+                        ],
+                        "name": [
+                            {
+                                "value-name": "V9N0470H7j3bYS5AcNdsbeINITjxCFfpH2pL1is9Boks8p2k4gEfmn34geuTLJasDA6ESyNlOZNWhQglYVBkaEhqSLbvmmYZO4vGub1jaH7rpoNnbozdUIDElH9HV7yJ34hy7aJhRQBg6ov9E5mqF041z5Am59585eycohtg04w6k2gQZCgEucxVi8hnheves4qRdL75Ivc2xkLoW13j6seo",
+                                "value": "wLJKgX5cnWi93nRyrLYLoeIi9ToC7McvxW8FTdK992a4hTuJwkuVz4dIXtkXfxkElsj6x37GXhCfa7QHrku0hHB62V3hkoVFI6Eg2LOZ3r65qWMJ98CqPdwR8s0lQN0yUwGWivVdWUieQXXZ5zhNMGwN8p8Yc0o6p5UHsIMgCWukTjcRTtwx92c9jc7wdouClpbF7PVJLh3xA7gtBMTCG5M0iLwn10RehUToJOZu5VTG291vVM8"
+                            }
+                        ],
+                        "encompassed-clock": [
+                            "zSzgZS2utSYSlt8xN7dsLeEaUA9zvWk4GUcxEe2ZYSSkdSR1Z4lDaRNXjWoOKJKivOQ12K1TCLdPDWIu0W73NN0ZBoNeZqwmemo96h2A27ix3STVO1YuGQth78n6yUlN8BOfSQHMXZb0S4NyXM2Dun"
+                        ],
+                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE",
+                        "extension": [
+                            {
+                                "value-name": "xpKIfwzGi7XPtlm5rDnMuZU6KHZuGw9dVTO2pnAzmppQLDNcgaYL2SJMrI876hd1b1Wsgw2DWjlzO0L5",
+                                "value": "JI5ujJN1KV01014TPp1ejw2CRBiKenNXXSjgt7adUa7M33FLsyZL5TfOuyyIVlxL5J1rI3Eu5D89HNU9dLViEa70IFAwTZ9YI2hi6WEbrMc8r6aFJ5Xf74fICP6nHfdh9vAfjejK1vLkuVZ5SXlRTArnixKZEQ8OlIVEPegIC12YO23yRgqCRR01hCSVs0BFBxbqDs07l252W1ANhSi0Ci1LMLy7EaMfzY"
+                            }
+                        ],
+                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY",
+                        "label": [
+                            {
+                                "value-name": "SMu2xShzK8N22ziDnaZl5TTZ2MnQzvkj9GdGyu7auNcomn1Bx0WuLHlOuIw35QeeorVWVU6pHbNVyGxXyljkVE0pnwkkeqzCRmqEgo3QzIDZg2WOo78bM0A1wMlCcUeV8wzpVu7u4KmkNa03i9e49G5ykiaw5hjdNSCImB5ierC1tCWLDaHFIEd2Xfq2wJfkBKUPlZ7ziBsMdopJq7o8LB2AQsCfbKrMultHdA9n3B1hSr0aqgbbJdMrG",
+                                "value": "GR07wmlZ4ys5VvGPEqgwBGMMJvZnXxwvpwDVLYMPo6UbCs08L8FeGjSiHJFwhb1GAwtlm72KeOOI8GQTPnZnHRFgBlMSoNqQcL3yK5bYLZyUFhFmwxK5oplRC7BTV1J7E"
+                            }
+                        ],
+                        "encapsulated-fc": [
+                            {
+                                "uuid": "a3edefe0-f9dd-4d52-6824-b25d8b077e0c",
+                                "service-priority": "-9223372036854775808",
+                                "supporting-pc": "lZ7smoYSPsOOfYsVyrisEL6d9D7gQXq3WpnbNdVCGKjVALI841sIEyVNbUVURdPGDdRiqEN6o6UYJCYFvrg2Z3H3YDXPIMndR6wiLbg1haSSFQxa9N41RM4PhTwZxMdpSJHvUXp30hNFZkH10M2Jy6qPZWOoA1NlCmQoc7jco6RgjqhbcjUKhkr88gwJ9k4EGMUKU6WacFqn6Hya0sV9MmhNuOww8s2G6Wr",
+                                "layer-protocol-name": "tdm-container-2-0:LAYER_PROTOCOL_NAME_TYPE_TDM_CONTAINER_LAYER",
+                                "forwarding-direction": "core-model-1-4:FORWARDING_DIRECTION_UNIDIRECTIONAL",
+                                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                                "name": [
+                                    {
+                                        "value-name": "Wv750po3Quq047211idsZK9tbt3GAgdxLcuDBSzkeZca66c7pprg1BKc4NSF364HaykMiT6oSazQgLPF29W3KyfOl7lh5hYgPaUZ4SoO2XxiAeQunEx7cEOpD1GJjwR0HD0Dvgjp5IHFXp1c3yc7cSxPTdq4K95jM5W9dfyiY8PNxQRBgVIsNf9zlsD5tIggFchKjQ29YJOvzGYPtH99ObI1Dd66Oeelqw6Ke0LcKAzb8y1B72KNdk",
+                                        "value": "IqNHe2Nrsbx4pyQtai3lqteTAhwnuQ458SMeUzGeLdb2D1wNbz1B2fmuwSJTBOYJGCYs3EGGJRJfKf2VGVoAbLWzDFs6liQ1UOtYk2w3Tfawm5r20IublqLYY55joNdaty0NAxImETS1YbVQTi2eIF5yC2SSPX3avVP6sps7ac00nVRh5LnOiseUmYN3VIdrD2pYsJXCVXDiKurQ7PwphCjEBYHwGNPcP6a9PZMCOh"
+                                    }
+                                ],
+                                "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE",
+                                "extension": [
+                                    {
+                                        "value-name": "iQB8FvEL7IteeefkOhy63l7OcVKAmmHE4iMKFjvN1QT848kLpSJkdI9i",
+                                        "value": "LSZ7AEbKiViBj5v9Qv6YPRfAAzNiA5OlQFkibw2ujcXuhkE7HCXxt47VEM5eKTsszMKKaE6uRWY0gu0Y6Xnr2mmy0sECd64MLOpVlvpcjgcAC4qJ2F2WTpmTJ0oWZsBK90"
+                                    }
+                                ],
+                                "fc-route": "r8ZOI1TNTqob3aMu00O6tiZsWko1rCtLKkzkdk76CnhxyV2yWIwh1oKXI0Y1CkMfwdrKyrI2O0AmNuNBcbLdzv2hn1bZdX6BbylBZ4DNWd2BHH5MSQZsd2BAVMr0CyBNYPgXTLCHZway5fcY5cii6TSTykTaKmPIbXxWI1vzyG0DVct1gLjmx4f",
+                                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL",
+                                "configuration-and-switch-control": [
+                                    "Vn8KqMTMq106MCCci4IHadRJvAhfPrtCOtfef01G2TEGnhSFltnnG673ygifHDRn6YCeZvUTgqzvHkaVNpalnhoVqza7cUnjSZxJmjCCJ47jg9e3rogOywCY5MXiyctjbS2pbx1Mt05J2bElsU90iLQoqFGYS1h"
+                                ],
+                                "local-id": "RHZ3FbB85ffM4PvgiQWrEBkRKwnKLyLu7DpNOTVT83x5K2l2KaloDF7nbv0OVLb3gsI4dvYmqnraiE52GqjjYiz1NzQBcTwtl6xztnNUD64VK9Pjs8uqr3r6u9HH252obrPF",
+                                "lower-level-fc": [
+                                    "9bc11e2d-913a-2fa6-a64f-f01427c75d88"
+                                ],
+                                "fc-switch": [
+                                    {
+                                        "local-id": "jCNVeiis45BpN4jxTBR9qZyBU7AzRda2PXY37gnclYt03MxOnpXFgv9avJCmWMpDJnyRvW3QMoQHagwpFl4NJ5XePrADdRhP6PGBDBjqZ2Z1iniPJ",
+                                        "wait-to-restore-time": "-9223372036854775808",
+                                        "profile-proxy": [
+                                            "ZEbzaoL0168fb6br8MspT2iKwZX5ME3DiecsuYkvWkK7rOrzALZmO9Yk8VhUrkpJqB4UrghfBUf2Iytajko7tmktaBfBOEd68h1zxaP044UEugPNs5NWs7hCAp5o3ivbzoDZysRvoM1S2QxmWkagjsKURPaM0xQzVtqmNiJ3WKVQtkchFnxQH9KyYNcYk2q8vImaS5dOH0walJjSYQIFR"
+                                        ],
+                                        "control-parameters": {
+                                            "reversion-mode": "core-model-1-4:REVERSION_MODE_NON-REVERTIVE",
+                                            "prot-type": "1Bx8EG2dBwP47EUbqIcyrDTCYC2vMOjNiINWgQ2SeROlnIwFjA5KeYe4BgrfXC2flI3By5lMW90bKwQV7VxdUM9n2sCR4wYpe2TM76rW8j7SPYNOLcTFYUUTmwKr3BI9vtWuAfqIyqsfg7W1jHziCtbYSNhNo0WTlKgVZGDpY5x64l8o2zGwURnMw",
+                                            "hold-off-time": "-9223372036854775808",
+                                            "wait-to-revert-time": "-9223372036854775808",
+                                            "network-scheme-specification": "NwoyS8OF0nbhl8Osd1sB41hsV0PAom1bKpKuyyaqVlH9lwByxV9tWiWJaDbzZ5KKumeUVgkIt2RPqknPfpb3H7FK"
+                                        },
+                                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                                        "switch-selection-reason": "core-model-1-4:SWITCH_STATE_REASON_NONE",
+                                        "name": [
+                                            {
+                                                "value-name": "CskrG9T8M6SVNYDlsgWLyNFyGXVYEw5gYpAwqtx4rp0ffDAHLptk40KDYxtC4yL2PlrfGYk7fceuHHcsYxEUxgxnO1SSrDMhQ5oo3AnaMCxlbJO18kVxBtVpmN9FiVO01doWNLZsfwNq7trfOfMhIzyWeHtwuiwnvMkaybCNHi6OLpVrEzAe982nHwMcOazbXLdnWQ2D08jLq654GFbHGd4",
+                                                "value": "BIzpT1sIMG5Bo76o8q1yw6u4EFLkLIzmq1Eb26TGEYh2Yg"
+                                            }
+                                        ],
+                                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK",
+                                        "switch-selects-ports": "core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL",
+                                        "extension": [
+                                            {
+                                                "value-name": "E0ydADSMy8fDRfEtmee6O3rZ1wfy2mWGmmLORwBpEIUvXyZbM5at8Bk17zz1NnA2KlQtRj",
+                                                "value": "oUFTJ6KVKH5dPGpQFZiyEx8G9mpDdAoBu3n69Z1UHYZowpf3gpBMWKt66KJbk7FH2UN4TGYAEPZ2665enG"
+                                            }
+                                        ],
+                                        "prot-type": "c9BfSEaxn5HaHNo",
+                                        "reversion-mode": "core-model-1-4:REVERSION_MODE_NON-REVERTIVE",
+                                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL",
+                                        "configuration-and-switch-control": "5I8hykcYkHzGSrD58d6EfjfzbdhTS96XR67prjgLSPkC8PAg2yNaR2JUg0F09MQ0SXib8qX079vfQ5oLDbVmdEglEVmGzcys1QD98s1ftwvctTX6WSk1osnUgBAPN19GJFHSZI7t7CFAnuzbeTdCesou3RbISloBS5tRFtcM5JfldOorzBVN3c963lGVy4oq1K9Hdmla5AnbgMCQnqvjCFhF0YsqUQQWsZvFdIQjbdurZYhfgNqSkHpcxJCksk",
+                                        "internal-configuration-and-switch-control": "UbDApdiAonWQfU7m3MMN6l5iTOM5g6d3iQvzVN9k252hR1DMOpAMDFXotJtCQGF0o2rjPADRxF1gHE3nWv1zaYXvIqZq6wiuyJFnbb7AQ8QpMLEA8G9aE6GeoFEm4OICxo0IzZah71zLEdeFTnPqmvEC3bZ7ZHJp5BZwsaOr3n5zsjeeG4EUraxmdol555m3ylrTnfkqup0XA6392z3uJsIPQ4UW18Rrtik",
+                                        "label": [
+                                            {
+                                                "value-name": "6GkE4i01OGM0juAxNB3QD2KbGAlBqBTw952dg3e4JT5Ufxr28vTDxvO5X",
+                                                "value": "GoKAMTxPZNS5StYPnemG8m3TZsgFy6PeurG8deX41P1Li0sx6Oe6ah01KgHamogIHXRU3OQWwSAOK2eQRsWTBOVd5unjSEUztDmwj4kPWUwGXKoG4drF1eTYI8asM4U7H8v0cQI1KeHzQY7Ubzz4Nk3ot5Q79CfIKKAXsaY5oxE6"
+                                            }
+                                        ],
+                                        "selected-fc-port": [
+                                            {
+                                                "local-id": "riw1oI7HLLlFCjjo246laI9jAlvk4V7w5Dptdx2YinwMHP3JU95WS67krCFwpMUnpjQCQTt9gZVXGYzA0wwSCDc38RrpDlMUFvpnoSowJcmp2NS2bgUFM7AUQ2bmfY8UtxaJhy70Kti",
+                                                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                                                "name": [
+                                                    {
+                                                        "value-name": "82PjiKY4JzQrt2FISOvdlFOD5VvQhFDpHkBSWzOx0FZlzE4jkzoG",
+                                                        "value": "cbb7y1g6wGNJhxFImdBT4WkA0DVr1Bp5EB4culiT1YCan9KJmluiaOT2jOuchLhVemZJHauA0YK"
+                                                    }
+                                                ],
+                                                "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE",
+                                                "extension": [
+                                                    {
+                                                        "value-name": "yeKbpzSAxRexQIo4QCQmizwdkmpwLgSbmunLVfds",
+                                                        "value": "kRP2gLSKt722D7fZxLDNvO1RbMMrR6qbY766SQQlXLosSvkp8X4ED5nPJ28t0qEYxCWptNKiq0LivXAEMwapup65r6ysw5i3HfkaUXtkP6ud34RPBT65a52CbBWIG6DfdQq7NLjuJOHMKqtdjrauwdYIOMimSNB6DT5iwhNf5mTHNeN6GXsc2iMI444PKyNfrSqY1556rZGedtdTixYlQC3Mz0tjqgyR1YH23F1nEz"
+                                                    }
+                                                ],
+                                                "logical-termination-point": [
+                                                    "bc478ce2-7d3c-9c53-dff2-7724bcef25d4"
+                                                ],
+                                                "selection-priority": "-9223372036854775808",
+                                                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED",
+                                                "port-of-internal-fc": [
+                                                    "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                                ],
+                                                "label": [
+                                                    {
+                                                        "value-name": "7m7mIBESixUBdgOu2XhgbhRSjdkjb4GbjNp1h3Lrtx2GOI3IykQJtICMNW5ZTM24rr5AmI1PfWo3wjD4vuOZ4iDR6BIRfCVG30",
+                                                        "value": "iA27QYnLvypr4Lf3Pxyyw99noLjXHb6ZM0YuZefmMwNQhVLYkkpQ"
+                                                    }
+                                                ],
+                                                "is-protection-lock-out": true,
+                                                "fc-port-direction": "core-model-1-4:PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN",
+                                                "fc-route-feeds-fc-port-egress": [
+                                                    "gcuMsi4gjx0zsNk2CBlR9Q6O0o42NAf3MJQ6TUf4j7EMUQOos17tRdhJumDhOSktC2zvPOA8V6MHWs5gtdKciTWM7rVWk8hWaQjZxL0kJMUGfZOI4qVfcJTjaP7mXoaZ7uRE7RQRvKpKC5lyw8NIRH1To1gdhq4oMVUMELD2nUEZZZqv755QMZC20K7h2cyPZstw56ytSckR4Kf3QcMubop30wl2ITJIdcejaEM2Q6MUJTQr5CV9SccSJx"
+                                                ],
+                                                "is-internal-port": false,
+                                                "role": "WopAwNesgI7zRpE00TKx3hU0Q4Hws5eglEQRjWczFj0oIwgBp00kiUd0YUwiRLy4hgOA501Kb10TygmPgm2q8fr61PgTAOPJ5DbavcMG6MsEUGla3nt3uUawJqpc76N4KZe7bSOhwgNqW1sRoVVTHXhjfGvmMaq",
+                                                "address": [
+                                                    "cmtp45lIwdcPDkgmd6Wg2B9p7I0QuHlGVG"
+                                                ],
+                                                "fc-port": [
+                                                    "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                                ]
+                                            }
+                                        ],
+                                        "hold-off-time": "-9223372036854775808",
+                                        "switch-control": "core-model-1-4:SWITCH_CONTROL_MANUAL",
+                                        "address": [
+                                            "g60kiZZR2Tw6EcW7IDYKK4PQjoRCG5UXbMhmM8dGTKExOswp5u9HqRyJfh"
+                                        ]
+                                    }
+                                ],
+                                "supported-link": [
+                                    "WJeIc7GN1Rrmbdn3v1LTrjrh3krYdDb9eiKihq5i9wwdBTg6U2SdlbnowOeBjqDxAnPRFU9GiFTTqaRd4BqpFNF3tTEMb9jLw0C3UDK4aDPBNzOR268HUNCfz92KilwPm0S8ECdG82hNtXxw4FdQlQ5UZ7E9l2YzVJzrdM7lHh92eGyadM0yuYklXRuaTlBG4b79PfvowwrC4ZN9DFI7vUktLHvxU7dQ"
+                                ],
+                                "label": [
+                                    {
+                                        "value-name": "qDm8K3E9l9kRKjq8ZdY3VW54M4IgSRbjuqr6tYfG7ApR",
+                                        "value": "QRKVHGQELNiQnyIfCTB2dInbX4apt1abKN7stP6eug4SOFZqqAkDiIO8EYxZRAbunaWQRUWeaTYYqXhQpBuAbaIP17PKHSe4U2MDWJR6uPXUEeK4H6ET9eA2dhMV1TRVVwzK"
+                                    }
+                                ],
+                                "is-protection-lock-out": true,
+                                "external-managed-id": {
+                                    "manager-identifier": "2fV7NluTV33NnQX25ePr2dX2xZBvW2oQ9bXWwkHjfD7ClWwqadS5qH7",
+                                    "external-managed-uuid": "HAlvuJdEU3sin2uCFB60pDjzQ3w9CwYb6jGBUM7GPzRcBlG8OM1dhcE0fb"
+                                },
+                                "fc-port": [
+                                    {
+                                        "local-id": "A67baK1etlpOYTND6FyoAyGCWapSLdYeb",
+                                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                                        "name": [
+                                            {
+                                                "value-name": "plIqr3MQJCCw7I4xY",
+                                                "value": "5F81HpLsCCGFAX0aord2aXwMlDmh2dN7SW0rlMLQokvYho0xHdzRaXvosKFuXtBHhC0CgLkE5Qun6uUNzmxKbU0EEF8t8C2p62UmOeSTWe82A3I9hfLs1L6Gr71zB4RH6L3MRNyG1GABBiCSpodr9bZAa02"
+                                            }
+                                        ],
+                                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE",
+                                        "extension": [
+                                            {
+                                                "value-name": "Ygt1OiFTL79H4KxfR3O8KzFm7ELJUt9KBCDiNa3qhc7eWwtOAaOcBlqI0crMxso8XTiK3l2dx1ruyMa0WY4xbu73GrPdT5eIYwk2Sm7poyLOkVO9LKyXeG0N7I0SN6tEvNyn2FEi5i6pdMyRw7OCFGpEoio4oRATx88zFFRKXP12BATZzzB6g1CEb0ArKad9alAPSjrP8tSB3D",
+                                                "value": "ud3stW4Z7WszGCMHNZhuSAWzIpjbkXDG2H0nv4eD0G4zjIgYzqkj08TBx4MJTqhVZhaulpZe5VFgDV65droez9PZ6tIZLSNK9X7ne6BkU8Ap3Hu90TnzU4y0p90b1FN2uUpJTS3F0v4W4z54kkw6oW7"
+                                            }
+                                        ],
+                                        "logical-termination-point": [
+                                            "f7872522-16c2-ce17-fc7a-083c8517e7b3"
+                                        ],
+                                        "selection-priority": "-9223372036854775808",
+                                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL",
+                                        "port-of-internal-fc": [
+                                            "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                        ],
+                                        "label": [
+                                            {
+                                                "value-name": "WLsVonzf27N3Oowhy12Ypfhyi81t0VeXGzK4OjbRrZM7fboNcqDBxM1QUUjVPpSnYujFNvo6ma5BdugpMMSkyMatGlooK8DBuX89kwgyGd1MHh3m3WGuAIX83dwFd28HZgQbMYJlcK7LTa7XYFjyfgHal5Qy7Y7Y7X1TWK60mdLggT5eqoNGwmQRrGhzxo",
+                                                "value": "wlrp93w9qBVGRGD661LMp7D8ybpZANh60Io2LMbbnYJ7Ee5D7QpwXUEnY3fqIwxJ6NLRzOVONEVjT0W0Iepx03NYZ2pHqOiwBVn2CaIpPwAAoxs7LJwLNjCEd1dDHo9ajp4VzMcgiNIzc3GPM4sro45BXbfwzgGSxKG7xKfH"
+                                            }
+                                        ],
+                                        "is-protection-lock-out": false,
+                                        "fc-port-direction": "core-model-1-4:PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN",
+                                        "fc-route-feeds-fc-port-egress": [
+                                            "4mMzeiMyJw4C31wnbQ6aNwW8PFYB3HjZ35zhfdHYBMtFNZURQ01vwQDlnuPjb0a7XJodOY3qKwXpoR86R2BgS7tfBiqMiBT8cal18gjKN893Za9IcCY4JkbkCC7NdSVp28i2oBM3JW"
+                                        ],
+                                        "is-internal-port": true,
+                                        "role": "o070nOIqLfnl8SVGqVcmZxngjyCICKFSCESZksiXHxiQh5oISs4S0j8bRCTmeq6RWRIgj0dTxnBPtZplkt5cM5nvI8JWqIFmzouSgHLGWenp6MDq7ICTORgoRSchASv18ZTgyxWuLbMRXh94ZDPFuYVdQ0miSRjSQ40gBXLf8p6YG82xLK58I0lq0IIKr1ua5vqzk3OssMi0Ulyy5DGFvT5oBN83Gv5D0vckzSETxXUjasR7XpMsjJ",
+                                        "address": [
+                                            "EET0qaJb3MQVaNJ6mGby0zEgvLWtCMj"
+                                        ],
+                                        "fc-port": [
+                                            "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                        ]
+                                    }
+                                ],
+                                "address": [
+                                    "H5K9HPriJ6lxRCTCdL09CtKeCCM60BEHyoIf59qO7DdYf6AsKBteW6lyI7wIA2h8qZfo0Fc7iq5poGJ09d75jsv1r1C13L1lLgJLWOT66Qomw7fxcmCnO7hf0T8Vw999pKVdqGcwoALVz0kMmX12Wi9P3hCAqDJHgwVG475tzQg0QAM4pG6eYf3UwxuOb5vruiZyh4TQU9RCCvG13Ef2TaWhIiX"
+                                ]
+                            }
+                        ],
+                        "sync-ltp": [
+                            "1c7e2c79-af6e-8d12-d18a-957fe616ceeb"
+                        ],
+                        "address": [
+                            "vrhpgi03AKdAevuZa7yhLAVS9Lhl3Gxr8PQo7Ijzlx2zUor4vZd9z9TAUbVQRl9RaR79AjJNQDmC1NzwEEx5NrFAutilOj5QacRCvspd5EI6jhvYV2VBlt3"
+                        ]
+                    }
+                ],
+                "supporting-pc": "Wd3Cw8kycbbIEsNJ6vIiEd8s733twYak3dWrd8Zqk28QvVrtj9LXeTpeXkHlaJGdXuEavwAPyAx3oYpH0aw6WWkL816jDEoA13Cwr5dZxKVVAkusm1ziPT3PN20qypSzkuXLr2CZMxMfJhH6aggR2cyP6zfEY76atVNVYpMCXyRyHrwJzFABR1qPAFlqEjA0ffNdEzPtZz",
+                "server-ltp": [
+                    "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                ],
+                "connected-ltp": "a01a13cd-d033-ab43-5858-782877f11dfb",
+                "layer-protocol": [
+                    {
+                        "local-id": "YIlOQm7DJbqsgnJGx1OoqNqpGeZ3BUHruUfk8eXRigbyDV62OUqeHQDfXvayhKZME66NdWwvcI3Pv1KbV2pvTVCIiN8zp7l35sIigfNsPI9kJTvxWMUHzwhRbprAwMEt6eMmlrGaaQmLBJaxw46XBnPMM8faMTETZi7lJOvTwKx7tHxREDP7TwLxE0IqLebLw",
+                        "layer-protocol-name": "ip-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_IP_LAYER",
+                        "vlan-interface-1-0:vlan-interface-pac": {
+                            "vlan-interface-capability": {
+                                "configuring-pcp-bits-decoding-is-avail": false,
+                                "ingress-vlan-id-filtering-is-avail": true,
+                                "port-and-protocol-based-vlan-is-avail": false,
+                                "statistics-is-avail": false,
+                                "configuring-service-access-priority-mapping-is-avail": false,
+                                "max-number-of-protocol-vlan-id-groupings": -9075,
+                                "configuring-ingress-tag-filtering-is-avail": false,
+                                "supported-sub-layer-protocol-name-list": [
+                                    "vlan-interface-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_S_VLAN_COMPONENT"
+                                ],
+                                "number-of-available-traffic-classes": 20,
+                                "supported-interface-kind-list": [
+                                    "vlan-interface-1-0:INTERFACE_KIND_TYPE_VIRTUAL_INSTANCE_PORT"
+                                ],
+                                "available-pcp-bits-interpretation-kind-list": [
+                                    "vlan-interface-1-0:PCP_BITS_INTERPRETATION_KIND_TYPE_7P1D"
+                                ],
+                                "drop-eligible-indicator-is-avail": false,
+                                "configuring-pcp-bits-encoding-is-avail": false,
+                                "service-access-priority-tagging-is-avail": true,
+                                "received-priority-overwriting-is-avail": false,
+                                "egress-vlan-id-translation-is-avail": true,
+                                "admin-shut-down-is-avail": true,
+                                "tagging-and-mvrp-is-avail": true,
+                                "vlan-id-translation-is-avail": false,
+                                "restricted-automated-vlan-registration-is-avail": true,
+                                "number-of-available-priorities": 114
+                            },
+                            "vlan-interface-status": {
+                                "statistics-is-up": true,
+                                "timestamp": "2021-03-22T03:43:11Z",
+                                "total-bytes-output": "-9223372036854775808",
+                                "total-frames-input": "-9223372036854775808",
+                                "interface-status": "vlan-interface-1-0:INTERFACE_STATUS_TYPE_TESTING",
+                                "total-frames-output": "-9223372036854775808",
+                                "total-bytes-input": "-9223372036854775808"
+                            }
+                        },
+                        "wire-interface-2-0:wire-interface-pac": {
+                            "wire-interface-current-problems": {
+                                "number-of-current-problems": 92,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -31265,
+                                        "timestamp": "2020-08-10T10:54:07Z",
+                                        "problem-severity": "wire-interface-2-0:SEVERITY_TYPE_MINOR",
+                                        "problem-name": "nyzrYuMq2d2Rd7gSF09M9LN3haYuoZrDyS4omQOgWQ01XgTug29pOWk5YaseaTRALOQZEF8sn"
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-04-13T19:27:25Z"
+                            },
+                            "wire-interface-historical-performances": {
+                                "number-of-historical-performance-sets": 18379,
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "period-end-time": "2020-02-15T14:26:47Z",
+                                        "performance-data": {
+                                            "es": -1511133805,
+                                            "ses": -1032406127,
+                                            "low-power-idle-receiver-ms": 510251970,
+                                            "low-power-idle-transmitter-ms": 405251316,
+                                            "symbol-error-during-carrier": 778582914
+                                        },
+                                        "history-data-id": "WA4xDG7X5AMRNbfkqK9Uq7cRerQ4WU8SmchZKhPIRtzwwPQWr0JRZVB5ej12d9Vzd4rYl8G4B7B7WjVgbwZ2ssZyM0BR9ojfsCdGKLK",
+                                        "suspect-interval-flag": true
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-08-19T06:54:58Z"
+                            },
+                            "wire-interface-status": {
+                                "rx-sync-role": "wire-interface-2-0:RX_SYNC_ROLE_TYPE_SLAVE",
+                                "link-is-idle": false,
+                                "eee-is-up": false,
+                                "performance-monitoring-is-up": true,
+                                "rx-level-cur-list": [
+                                    38
+                                ],
+                                "tx-level-cur": -100,
+                                "pmd-negotiation-state": "wire-interface-2-0:PMD_NEGOTIATION_STATE_TYPE_NOT_YET_DEFINED",
+                                "loop-back-kind-up": "wire-interface-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED",
+                                "interface-status": "wire-interface-2-0:INTERFACE_STATUS_TYPE_DOWN",
+                                "pmd-kind-cur": "QwOR9tvBAl00L6leeOC81s2srpJBi7q0v6RErm81A8Ul67zkN3kPvm9PDTiVSAVfGFU7TU0t2UG8T7kHbEoy1xnwixs27fiFM4EGYx10jI0dHkUSQarJHGgSeAUdPcLugp2eW368D6lli759",
+                                "receive-signal-is-detected-list": [
+                                    true
+                                ],
+                                "signal-ordering-kind-cur": "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_NOT_YET_DEFINED",
+                                "pmd-is-up": true,
+                                "link-is-up": false
+                            },
+                            "wire-interface-capability": {
+                                "wavelength-min-list": [
+                                    -882114203
+                                ],
+                                "supported-signal-ordering-kind-list": [
+                                    "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "rxlevel-high-threshold": 13,
+                                "isolation-is-avail": true,
+                                "supported-loop-back-kind-list": [
+                                    "wire-interface-2-0:LOOP_BACK_TYPE_EXTERNAL"
+                                ],
+                                "short-reach-mode-is-avail": false,
+                                "wavelength-max-list": [
+                                    -259418275
+                                ],
+                                "unidirectional-operation-is-avail": false,
+                                "supported-pmd-kind-list": [
+                                    {
+                                        "pmd-name": "Wzc8VK45Kp7HtPEukPDW9MujdVaupMCldOm1qqYbP5KaNhwZ61O7FijT6lnv7RRcF55Yn3141LeO2CF0Dt0bEj4KEjfDaYHH3NFqQGuRsAxucdnIynTcGPWk8cPi2",
+                                        "speed": "Z6jxo2dTTxlj2yoh8WET9kI5wQ9l0cRZa3oy5CjQ9F935xkduY6vaGsGwuToGDfIGEgDgAthfvdk2ppognTq3eZrISPgn4YVI6yQGU8NpdZjCoISLtjOHa7hUWxi1ndJuEsayAQXNP8h6QaRclyLvF3pCszvQN6kjymR0cGF2OX8x7R",
+                                        "duplex": "wire-interface-2-0:DUPLEX_TYPE_NOT_YET_DEFINED"
+                                    }
+                                ],
+                                "configuration-of-number-of-bip-errors-per-ses-is-avail": true,
+                                "auto-pmd-negotiation-is-avail": false,
+                                "required-medium-kind": "wire-interface-2-0:MEDIUM_KIND_TYPE_NOT_YET_DEFINED",
+                                "temperature-low-threshold": -57,
+                                "maintenance-timer-range": "nJYn85eJpw6elvsMf8APtmJ7P0CblxcI9a5h7b1wz7CUu4yC50ryn3G4Vaf8AjQJtN0sQTQqSscfpLRuLaU05s50Dk8dEQOZvGseAaEkDQr2taoflafiDkjgxjl3292xPmLhxhua0V4t6kAjuQB72Mfr6Au0BxxjTbsikWkkSoOQIg9d6Cc1pssn2XnwmUP7Xhqa6KuY1aGBrHOpj1iIlD5nssTOfAN4S5eYQBOJLmk431um",
+                                "supported-alarm-list": [
+                                    "EXfhUuJfgpuQdqAiFq086JTsWYnXkCJYzY8tkRIAh4jmnTE2cF2igVDcL01XuKO3AWpVFZvOWOajAPdMmfWC2rHOkIDOtrS3f9QV0mJW2MfCBsgPz5rCw0qQJ3F4npZCyQpy41n6NCBgXJ5wOo8lpqb0mQ4B735xTv6PolWbXpjM8gjXEjaVClVY4Zz33EBO1zwpUksRJLwJ1Pyy0ItCWpsSgTVbq"
+                                ],
+                                "mii-kind": "wire-interface-2-0:MII_KIND_TYPE_XFP",
+                                "rxlevel-low-threshold": 33,
+                                "auto-negotiation-pmd-selection-is-avail": true,
+                                "wavelength-grid-min": -1806387223,
+                                "performance-monitoring-is-avail": false,
+                                "auto-signal-ordering-is-avail": true,
+                                "configuration-of-rx-sync-preference-is-avail": true,
+                                "eee-is-avail": true,
+                                "temperature-high-threshold": -68,
+                                "admin-shut-down-is-avail": true,
+                                "mdi-kind": "wire-interface-2-0:MDI_KIND_TYPE_OPTICAL_PIGTAIL"
+                            },
+                            "wire-interface-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "performance-data": {
+                                            "es": -917040091,
+                                            "ses": 73643344,
+                                            "low-power-idle-receiver-ms": 1614589118,
+                                            "low-power-idle-transmitter-ms": 1920055292,
+                                            "symbol-error-during-carrier": 489409386
+                                        },
+                                        "timestamp": "2020-03-08T07:39:35Z",
+                                        "scanner-id": "CjgtTT9KLOhT8wTCJ90bFiTAgizbGQziaHDVtNxetOZBdSeO16ZGoL8w3HzJp0TzIxn3kU9NB8oOSuCTAurYfrma0WMpOFRocero0A3BIspsWUdpoEfDXCFX",
+                                        "suspect-interval-flag": true,
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 98
+                            }
+                        },
+                        "ethernet-container-2-0:ethernet-container-pac": {
+                            "ethernet-container-capability": {
+                                "supported-fec-interleaver-kind-list": [
+                                    "ethernet-container-2-0:FEC_INTERLEAVER_KIND_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "maintenance-timer-range": "pCdNiKJNZQ2O2PmML7FujBgY2z5Jh91GD6tVQ4APMDwGkKkXKZr3Bz1D0Zeh07YEdjr4g2L2x9BJUVGwVZzozsTrr7Jsez6jKxf0rTVQ2wrOr7ceZLCqenRxusZA1XUEn1EGUrpPXQvhQInPtS7zfY7KrYckO6Y30vJUW8JMZfVPXiw",
+                                "supported-alarm-list": [
+                                    "WeXqYq008Pj4K7i0RTUPCJjaFehyxsntGlLwDLxMsIQdH05yTZ",
+                                    "DSitRUUH67v55y5AaZpiB39QYQF8mXbRHtlyf78leDik4nMef3wQ6yyWod5D28uKtHaIPi33OmfSBU6QXuy426Sjj"
+                                ],
+                                "statistics-is-avail": false,
+                                "encryption-is-avail": true,
+                                "performance-monitoring-is-avail": true,
+                                "available-queue-list": [
+                                    {
+                                        "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_EXPEDITED_FORWARDING_QUEUE",
+                                        "available-dropping-behavior-kind-list": [
+                                            "ethernet-container-2-0:DROPPING_BEHAVIOR_KIND_TYPE_RED"
+                                        ],
+                                        "available-drop-precedence-kind-list": [
+                                            "ethernet-container-2-0:DROP_PRECEDENCE_TYPE_LOW"
+                                        ],
+                                        "queue-depth-configuration-is-avail": false,
+                                        "wred-profile-per-drop-precedence-is-available": false,
+                                        "available-scheduling-kind-list": [
+                                            "ethernet-container-2-0:SCHEDULER_KIND_TYPE_DWRR"
+                                        ],
+                                        "max-queue-depth": 115015624
+                                    }
+                                ],
+                                "bundling-is-avail": false,
+                                "supported-header-compression-kind-list": [
+                                    {
+                                        "header-compression-name": "0HTJKSgAaG4dQhLCTNZFexRUycZ8MefEV1nxTw834c8UtUxeHoLNNDAmHzulNCZBDm0oK8jPcrBGd0MVoyAc3ayKKU5po4S1iTp3TAK62lEfmq2KYvO1FeDh1AzpwjrHcIC6jm4dzIkV8nyZSeSptozuY8Tvrc4wVGu62yjB8DpgSP7C302woB0eBMB2YFqTlUZfkaRsO8BGXIb0AdpYGh593G3UmuFHgxXBHG3nGEWvf7nPcMGSWL",
+                                        "mpls-payload-kind-list": [
+                                            "ethernet-container-2-0:MPLS_PAYLOAD_KIND_TYPE_IP_O_MPLS"
+                                        ],
+                                        "compressed-protocol-layer-list": [
+                                            "ethernet-container-2-0:PROTOCOL_LAYER_TYPE_NOT_YET_DEFINED"
+                                        ],
+                                        "header-compression-mode": "ethernet-container-2-0:HEADER_COMPRESSION_MODE_TYPE_NOT_YET_DEFINED",
+                                        "compressed-header-length": -26517
+                                    }
+                                ],
+                                "support-of-management-frames-without-preamble-is-avail": false,
+                                "explicit-congestion-notification-is-avail": false,
+                                "information-rate-min": -1903244715,
+                                "fec-is-avail": true,
+                                "burst-size-max": 11128,
+                                "ingress-policing-is-avail": false,
+                                "supported-fec-redundancy-size-list": [
+                                    "ethernet-container-2-0:FEC_REDUNDANCY_SIZE_TYPE_8"
+                                ],
+                                "egress-shaping-is-avail": false,
+                                "information-rate-max": -1650852721,
+                                "admin-shut-down-is-avail": false,
+                                "bundling-group-size-max": -54,
+                                "supported-fec-interleaver-depth-list": [
+                                    "ethernet-container-2-0:FEC_INTERLEAVER_DEPTH_TYPE_32"
+                                ],
+                                "burst-size-min": -22744,
+                                "fec-word-size-max": -22013,
+                                "supported-loop-back-kind-list": [
+                                    "ethernet-container-2-0:LOOP_BACK_TYPE_NONE"
+                                ]
+                            },
+                            "ethernet-container-current-problems": {
+                                "number-of-current-problems": -118,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -9874,
+                                        "problem-name": "eDsDM9tVNgMADPWi7uY9y8T40oTTnvst0U7M4AIJIublc8Dbutl2Be6CD0vSnXmo",
+                                        "timestamp": "2021-01-01T00:32:58Z",
+                                        "problem-severity": "ethernet-container-2-0:SEVERITY_TYPE_MINOR"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-07-02T05:59:29Z"
+                            },
+                            "ethernet-container-historical-performances": {
+                                "number-of-historical-performance-sets": -1966,
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "period-end-time": "2021-06-10T21:53:34Z",
+                                        "suspect-interval-flag": true,
+                                        "history-data-id": "8ta54QX1Da9CsgGi",
+                                        "performance-data": {
+                                            "queue-utilization-list": [
+                                                {
+                                                    "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE1",
+                                                    "max-queue-length": -1577909905,
+                                                    "avg-queue-length": 278613776
+                                                }
+                                            ],
+                                            "fec-uncorrectable-blocks": -61485259,
+                                            "tx-ethernet-bytes-sum": "-9223372036854775808",
+                                            "tx-ethernet-bytes-max-m": "-9223372036854775808",
+                                            "fec-corrected-blocks": 1905648028,
+                                            "tx-ethernet-bytes-max-s": -778896765,
+                                            "time-period": 2136389434
+                                        }
+                                    }
+                                ],
+                                "time-of-latest-change": "2022-01-30T23:57:25Z"
+                            },
+                            "ethernet-container-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "timestamp": "2020-09-05T16:51:13Z",
+                                        "scanner-id": "63rYqjlnFB70MNNw5iDG9W9vj6k05DW3Gf16zfm6QlZu1M165wE6lNBETNEYrt2ZIV69akg1F7nGToEYVi485xMQdiPEDJDmEBnHNDAlKXTweym1Qj9OQVE35lzJW5XtykamQKzszsYN0dOJwPxeC3aIhJjdGgGfsQtis2DUmBHnOoYc5nrIqBqHcBVLRt0bclmwfZqBs0Q9gOllbM3uflbkWY5FkXRwad2pct0ElJNBx1WBF05Vl87i74Xr1",
+                                        "suspect-interval-flag": true,
+                                        "performance-data": {
+                                            "queue-utilization-list": [
+                                                {
+                                                    "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE1",
+                                                    "max-queue-length": -1970659041,
+                                                    "avg-queue-length": -923170105
+                                                }
+                                            ],
+                                            "fec-uncorrectable-blocks": 1789998388,
+                                            "tx-ethernet-bytes-sum": "-9223372036854775808",
+                                            "tx-ethernet-bytes-max-m": "-9223372036854775808",
+                                            "fec-corrected-blocks": 1430254124,
+                                            "tx-ethernet-bytes-max-s": 1181016514,
+                                            "time-period": -24164481
+                                        },
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 85
+                            },
+                            "ethernet-container-status": {
+                                "timestamp": "2021-06-10T08:17:36Z",
+                                "last-10-sec-data-output-rate": 1112824010,
+                                "bundling-is-up": true,
+                                "total-bytes-output": "6623857669744187392",
+                                "total-bytes-input": "2527940180198430720",
+                                "interface-status": "ethernet-container-2-0:INTERFACE_STATUS_TYPE_DORMANT",
+                                "loop-back-kind-up": "ethernet-container-2-0:LOOP_BACK_TYPE_NONE",
+                                "statistics-is-up": false,
+                                "last-10-sec-data-input-rate": -1362691599,
+                                "forwarded-bytes-output": "3827596120637092864",
+                                "performance-monitoring-is-up": false,
+                                "forwarded-bytes-input": "7684369384353610752",
+                                "remote-site-is-faulty": false
+                            }
+                        },
+                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                        "hybrid-mw-structure-2-0:hybrid-mw-structure-pac": {
+                            "hybrid-mw-structure-status": {
+                                "performance-monitoring-is-up": true,
+                                "segment-status-list": [
+                                    {
+                                        "segment-status-type-id": 10131,
+                                        "operational-status": "hybrid-mw-structure-2-0:OPERATIONAL_STATE_TYPE_ENABLED",
+                                        "segment-is-reserved-for-tdm": false
+                                    }
+                                ]
+                            },
+                            "hybrid-mw-structure-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "period-end-time": "2020-02-16T11:46:21Z",
+                                        "history-data-id": "LuR6kCrUfjkdUqWU0A1xbkQ8TCajESwiefgyRHtY1FbV50H6AJDDVlLHXV0CFoUTv2keJFdKkgyqgfoIQTlMeZl3MlxkBj56lpk54pPhGfzOvXplQKZWJkRoxpI8IN",
+                                        "performance-data": {
+                                            "rx-level-avg": 111,
+                                            "es": -1973007709,
+                                            "unavailability": -684660499,
+                                            "cses": -897793201,
+                                            "ses": 2105547258,
+                                            "rx-level-min": -29,
+                                            "time-period": 864449062,
+                                            "rx-level-max": 80
+                                        },
+                                        "suspect-interval-flag": false
+                                    }
+                                ],
+                                "number-of-historical-performance-sets": -2415,
+                                "time-of-latest-change": "2022-01-10T04:11:11Z"
+                            },
+                            "hybrid-mw-structure-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 5877,
+                                        "problem-name": "oSshGy2gZDOADqhoC13AEWVTuyh3uA2Ksu10VVhUz5m4wws0xvBckoXGX6BjGw390W9NRqzioWeMsHMR4f3gETXtZqEGWzHPvQCe94px0DbkcX3h57pBSeWRFApB16ioPNCYRTnJpyVBnYKkXaNPoJz3bQxcXPAEu5ulQJ4f9RRwQBJNDwv284XjMu",
+                                        "problem-severity": "hybrid-mw-structure-2-0:SEVERITY_TYPE_CRITICAL",
+                                        "timestamp": "2021-09-08T06:45:24Z"
+                                    }
+                                ],
+                                "number-of-current-problems": 24,
+                                "time-of-latest-change": "2022-01-29T00:30:13Z"
+                            },
+                            "hybrid-mw-structure-capability": {
+                                "supported-tdm-structure-kind-list": [
+                                    {
+                                        "tdm-structure-name": "Fbv114Yq75iyG6Xa4NWOSRZBeryvArm7uK9vGZNNW5eD3bN0RBOBsFdHYL4y4jGq3HWJyJovHC0CGFCpgj0JYdiPRenNxVesC233LkykWqXu5rTdCMWtR6iIdxoKtC5XE80hsqChQrLVKx1fbXI2W0D9p1LKvQI1ZAaj1MAJ5exIDyXOnFQbxlkOeY",
+                                        "tdm-segment-size": -9165117,
+                                        "max-number-of-segments-reservable": 11
+                                    }
+                                ],
+                                "performance-monitoring-is-avail": false,
+                                "supported-alarm-list": [
+                                    "9CFJNZCrzexFL7ib46yBPK02WOhUf0BoDg0i7uJHI"
+                                ]
+                            },
+                            "hybrid-mw-structure-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "suspect-interval-flag": false,
+                                        "timestamp": "2021-04-17T10:44:32Z",
+                                        "performance-data": {
+                                            "rx-level-avg": 104,
+                                            "es": -423759635,
+                                            "unavailability": 1320035044,
+                                            "cses": 876071464,
+                                            "ses": 566916812,
+                                            "rx-level-min": 52,
+                                            "time-period": 1129940430,
+                                            "rx-level-max": 10
+                                        },
+                                        "scanner-id": "dJ7AL7",
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -81
+                            }
+                        },
+                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                        "extension": [
+                            {
+                                "value-name": "39xjul7vRcBq3JyDRnhAtoSUCTvGyzWBAtV4GUrpY2P2LfxDuG5YWPKrJ779G3K9ox55rxmiz",
+                                "value": "cdjJIOhNEdDoEevLn3GZ4XxaUQzg80kkdwVVccBQq664kBIzwgyBdXL7OkgOks1qYWla9WSr2Ynez5F6e6zj3kjJwzyITz8SnmUwi"
+                            }
+                        ],
+                        "configured-client-capacity": "BuPCwknc93JXBr2SO4vfLxAcKg9zVecoI117dgjmj2jNtex",
+                        "ip-interface-1-0:ip-interface-pac": {
+                            "ip-interface-configuration": {
+                                "maximum-transmission-unit-ip": 22597,
+                                "l-3vpn-profile": "18e43d24-0971-5669-ee67-cba5faa4eabb",
+                                "dhcp-client-is-on": false,
+                                "fixed-ip-v-4-address-list": [
+                                    {
+                                        "fixed-ip-v-4-address": "PhntaFc4dgiGxAFJoYVXxavmhdS2KuCzEZ2OE6LJm3hMDWnUUiRjleFujpo4U0DqZy6vwR6TMnxijUc54Vop13UktigfbUFakLyQvEBh20zdMLjRyH8zD2M6d2doOSq0vYR0vkaxdJKZn3QVDZngT9eYbrm0bF0yDJr0WBx1ka0H5JvIASQlTWkWfyOqdHRJiiJeThf",
+                                        "fixed-ip-v-4-address-prefix-length": -126,
+                                        "fixed-default-gateway-ip-v-4-address": "8NoRaZjUPENEYBTxqcK73lpl5w6eDbxLYVu0UNUCszgq31PtdsAgNRBSnH61TDEJr9CdWoPgQXHTZomcQOtwFWoVwnOhSkSjtuxiLeyB47u3wI7ewAK3p1QNoE48ZOkkbRCWX3x1aT4yB4N7Ex2VqTIOpEPgt9tES5AP0ZJbSFJlJokgOmbe7MVxqKFLT8pL6R"
+                                    }
+                                ],
+                                "maintenance-timer": 874234334,
+                                "ingress-policing-profile": "18e43d24-0971-5669-ee67-cba5faa4eabb",
+                                "interface-name": "b5GQaHpnaSB4WFda4gaKcWkbWlsGXOn0T3RVD8iN0TJOqOZvW978XrjLEMstsHudLd9glj3d5E2vk1Sg2Zo0izDWd5iFFETiR2y4lthq7jOrcGzfyX7QwK",
+                                "arp-proxy": "ip-interface-1-0:ARP_PROXY_TYPE_DISABLE",
+                                "statistics-is-on": true,
+                                "maximum-burst-size": 19012,
+                                "loop-back-kind-on": "ip-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE",
+                                "egress-shaping-is-on": false,
+                                "problem-kind-severity-list": [
+                                    {
+                                        "problem-kind-name": "s97I",
+                                        "problem-kind-severity": "ip-interface-1-0:SEVERITY_TYPE_MINOR"
+                                    }
+                                ],
+                                "interface-is-on": true,
+                                "qos-profile": "18e43d24-0971-5669-ee67-cba5faa4eabb",
+                                "maximum-information-rate": 1021285258
+                            },
+                            "ip-interface-status": {
+                                "errored-packets-output": 441515644,
+                                "last-10-sec-data-output-rate": -1366756291,
+                                "forwarded-packets-input": "-9223372036854775808",
+                                "errored-packets-input": 1602566380,
+                                "ip-v-4-address-cur-list": [
+                                    {
+                                        "fixed-ip-v-4-address": "4BGZ0YJyKuG17ELrLtDMWmxJOzRpoljsORjHHUfroNlns6P5zkRnyh7eIYD6bWrZFKynx",
+                                        "fixed-ip-v-4-address-prefix-length": -114,
+                                        "fixed-default-gateway-ip-v-4-address": "Vt1bVZ00rcJOK0VYALCHWq0O6Cml92TXvN8iM0a5cTUWMHUmtoVhPV5Nqk0zeToJyoTdo3isW4oAMbX7rKogyuVYGVpUHOv7coktrvVfzcQdfFkGpJXX5KVLydF712e5qrqRWmYvyOJNt3lLEaIBVwmtJTsCVGzd7043eVrEJ2j5XEQCPq5KOs5pdx115te5lb0z6rdHtwEj2mVRN0BBk"
+                                    }
+                                ],
+                                "broadcast-packets-output": -1866434807,
+                                "dropped-packets-input": 822190046,
+                                "loop-back-kind-up": "ip-interface-1-0:LOOP_BACK_TYPE_NONE",
+                                "dropped-packets-output": 1526501218,
+                                "unicast-packets-input": "-9223372036854775808",
+                                "forwarded-packets-output": "-9223372036854775808",
+                                "neighbor-list": [
+                                    {
+                                        "neighbor-mac-address": "q5Ur3fF8AI81OA6oVu2exp1o4USF6qywolPrsnrV5zWM13aXpc3WBXlFJddPvDeTQ3cjiD6o5226XcVnoRbSOwpxBue70kSQgX1ys7Ox2QwZ2rejiq3YOsnqXCpXW9F4",
+                                        "neighbor-ip-v-4-address-list": "HDzOrYQiuIcOOv6eyX3TklIOKxDTcHSLcjsEhaOES0sHoqNWfIHAVpgxWLj1tbMFuebDpZ99SBQ8Uw496EB23Sz0DS1YVFwhUzVjr4sjybrsznBF15zXX9PsTIjPnP69gTsHQN0oQjIpzbWsgwhdx6yqOR74y6dOZywPdo53ANk1ZgtfELlbJTuqCtu2zzQr7e8kvefXTzYSIj0mWdq",
+                                        "neighbor-origin": "ip-interface-1-0:NEIGHBOR_ORIGIN_TYPE_DYNAMIC"
+                                    }
+                                ],
+                                "timestamp": "2021-01-04T18:51:31Z",
+                                "forwarded-data-volume-output": -1537340017,
+                                "total-packets-input": "-9223372036854775808",
+                                "last-10-sec-packet-input-rate": -503403681,
+                                "last-10-sec-packet-output-rate": -1679108497,
+                                "vpn-binding-is-up": false,
+                                "multicast-packets-output": -1390811799,
+                                "broadcast-packets-input": 357723210,
+                                "last-10-sec-data-input-rate": 154719660,
+                                "interface-status": "ip-interface-1-0:INTERFACE_STATUS_TYPE_ADMIN_DOWN",
+                                "statistics-is-up": false,
+                                "total-packets-output": "-9223372036854775808",
+                                "multicast-packets-input": 1985902888,
+                                "data-volume-input": 465510424,
+                                "data-volume-output": 1986124692,
+                                "fragmented-packets-input": 1217631804,
+                                "ip-address-origin": "ip-interface-1-0:IP_ADDRESS_ORIGIN_TYPE_RANDOM",
+                                "unicast-packets-output": "-9223372036854775808",
+                                "forwarded-data-volume-input": -766297179
+                            },
+                            "ip-interface-current-problems": {
+                                "time-of-latest-change": "2020-05-01T08:38:46Z",
+                                "number-of-current-problems": 101,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -14298,
+                                        "problem-severity": "ip-interface-1-0:SEVERITY_TYPE_WARNING",
+                                        "problem-name": "9pbVnD2H7RAkZtDgzjKU40OF9br12af3ziQWWSDVK67BzCR8Vu2ZuJwvUQxO0MJAWzoKrUG30FxrioAdKu5f5tCRj9xcN8MKH2u1W2WWAtoSKQXucUBaoe1znrL3zpN9s9ao46dEstocjlGn8axworXDKBGj0lksnuJrtWXNplZAyxXGHn45G2BqDhBvDWQ0izjLngqEtpe1P3AoiEmYyXo3e0zJOpB6QMKd2a",
+                                        "timestamp": "2021-04-01T15:13:14Z"
+                                    }
+                                ]
+                            },
+                            "ip-interface-capability": {
+                                "burst-size-max": -283,
+                                "statistics-is-avail": true,
+                                "supported-alarm-list": [
+                                    "u5g4cSfolbpvkU92G8hLVJnTGe9AuWwQ2NM6x1mK4LgoFprlqAZdceYSs7lOWREQwiWVjaGfVODs5WOvpFIBTzldGG1uqxkWP8K0iqfd6KGbHmH",
+                                    "ThzMQURptKTT96HQerQpJXCPza18oI6hRFVAsEZVoKGxInfXP5eqUQguThC9RJjIgeaAT9n9M3zujOj0MxqygG21XxaG8thgArRlteufaVBtKVtokTWAARtpgE6oZfwzGnU9uhgE4S7OFAcZt1sVSVl8rjorqU06iN8MWoi08pHNZLNkM7gE2tMuEaN45F2fkaTgrb9zsQfrt2Dg1TU3ezpSB4WyKZN41ydsBm2349mx30N4LAZ01hSCl"
+                                ],
+                                "information-rate-min": 805136234,
+                                "maximum-number-of-ip-v-4-addresses": -13914,
+                                "fixed-default-gateway-configuration-is-avail": true,
+                                "maintenance-timer-range": "3kPqOnSuVDaRXoOCxWUqW1NR5NWYfxRaRGAxVl1RY4IWkoqRdk99dPSiuOhJd8LXGluCyolxkVlEcDnpXpy2eqkI6BjcB49ahvMQTZf5UsBY5ZnUg",
+                                "admin-shut-down-is-avail": false,
+                                "dhcp-client-is-avail": false,
+                                "egress-shaping-is-avail": true,
+                                "information-rate-max": 519675788,
+                                "burst-size-min": -31904,
+                                "ip-v-6-is-avail": false,
+                                "maximum-transmission-unit-max": 24706,
+                                "ingress-policing-is-avail": true,
+                                "maximum-transmission-unit-min": -24400,
+                                "supported-loop-back-kind-list": [
+                                    "ip-interface-1-0:LOOP_BACK_TYPE_NONE"
+                                ],
+                                "vpn-binding-is-avail": true,
+                                "arp-proxy-is-avail": true
+                            }
+                        },
+                        "termination-state": "core-model-1-4:TERMINATION_STATE_TERMINATED_SERVER_TO_CLIENT_FLOW",
+                        "mac-interface-1-0:mac-interface-pac": {
+                            "mac-interface-status": {
+                                "errored-frames-output": 387982464,
+                                "loop-detection-result": "mac-interface-1-0:LOOP_DETECTION_RESULT_TYPE_NOT_YET_DEFINED",
+                                "forwarded-frames-input": "-9223372036854775808",
+                                "timestamp": "2020-01-17T07:16:34Z",
+                                "multicast-frames-input": 1660992862,
+                                "unicast-frames-input": "-9223372036854775808",
+                                "last-10-sec-frame-output-rate": 337851842,
+                                "total-frames-input": "-9223372036854775808",
+                                "multicast-frames-output": 86995338,
+                                "dropped-frames-output": 51897900,
+                                "statistics-is-up": false,
+                                "forwarded-frames-output": "-9223372036854775808",
+                                "flow-control-mode-cur": "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_SEND_ONLY",
+                                "received-ethernet-frame-format-cur": "mac-interface-1-0:FRAME_FORMAT_TYPE_802.2_LLC",
+                                "last-10-sec-frame-input-rate": 1945778300,
+                                "errored-frames-input": 333136530,
+                                "loop-back-kind-up": "mac-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED",
+                                "interface-status": "mac-interface-1-0:INTERFACE_STATUS_TYPE_TESTING",
+                                "mac-address-cur": "LN12GNxTKiCvvLWVR4DduZxBkUBo4DvPioRY3gJNzebWR7JAbnNFechy6KWanjSFHBwCS7qjdB74ARwL6jqkwzKu",
+                                "broadcast-frames-output": -1992891993,
+                                "total-frames-output": "-9223372036854775808",
+                                "fragmented-frames-input": -1712832151,
+                                "performance-monitoring-is-up": true,
+                                "unicast-frames-output": "-9223372036854775808",
+                                "broadcast-frames-input": -1263833007,
+                                "dropped-frames-input": 1282283240
+                            },
+                            "mac-interface-capability": {
+                                "supported-flow-control-mode-list": [
+                                    "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_RECEIVE_ONLY"
+                                ],
+                                "statistics-is-avail": true,
+                                "broadcast-frame-suppression-is-avail": true,
+                                "supported-frame-format-list": [
+                                    "mac-interface-1-0:FRAME_FORMAT_TYPE_802.2_SNAP"
+                                ],
+                                "admin-shut-down-is-avail": false,
+                                "maximum-frame-size-min": 15357,
+                                "loop-detection-is-avail": false,
+                                "performance-monitoring-is-avail": true,
+                                "mac-address-configuration-is-avail": true,
+                                "maintenance-timer-range": "WQGdl4gQW3m388LI611I2yc80nTAn6qjP6x23NSRI6UJ6Gr5zsNtSRBTemlBlMMaSj4VZWMHUzi17J6G4LaWCLPI83btPXvHhzv8n9H9I0aPJ8wNTyCvbjdjmoEbe1TvAgvPpcZ0c1POadB3L5zXpE8LVFX9GIw9Y1YfdPfiR561az4WFvL42TP",
+                                "supported-alarm-list": [
+                                    "E67mugcv6sAWHSNEQGPqKDX8o1a9I7An5zBzHOWN8oBP9gmZW3hzGeHW7RXQYp5VYGmFmiluyWcH5yz1BQA9Xh540UMYkJTii7QEpb9YZlx4T66mPynMIkIIenzy6kJgsrVRC4Htp7yadwo2WLGEXhfbEOCC8dTAEGk8KTB10136pr0m4zS1Q74mNyQWLBohhAp1u1UmUXskglycUi5Ki2Y5AOT",
+                                    "qavHKVB6OntIdNUt8kG2DDEVFuSgjEuBOZaqMLxA10beNXHOifINTfAqJsG2Y2DM2O5GrChkCkyhh85rfOe03OrM97H72cM4SRCctTwX55en5cOk0VlVJMzST8SVlER5nmhQ7OFdLTsQ58aX3vSNhkx3shQNNATaW2S"
+                                ],
+                                "hardware-mac-address": "XAwWDQpCo3vZUEf5TIHYoj",
+                                "maximum-frame-size-max": -22471,
+                                "supported-loop-back-kind-list": [
+                                    "mac-interface-1-0:LOOP_BACK_TYPE_BACK_TO_LOCAL"
+                                ],
+                                "link-loss-forwarding-is-avail": false,
+                                "loop-port-shut-down-is-avail": true
+                            },
+                            "mac-interface-historical-peformances": {
+                                "number-of-historical-performance-sets": -8094,
+                                "time-of-latest-change": "2021-10-15T21:34:09Z",
+                                "historical-performace-data-list": [
+                                    {
+                                        "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "period-end-time": "2020-10-13T07:37:58Z",
+                                        "performance-data": {
+                                            "mac-pause-frames-ingress": 977295608,
+                                            "tagged-frames-ingress": "-9223372036854775808",
+                                            "jabber-frames-ingres": -1192260839,
+                                            "mac-pause-frames-egress": -1594564353,
+                                            "mac-control-frames-egress": -1569755303,
+                                            "oversized-frames-ingress": 168458210,
+                                            "undersized-frames-ingress": -1597487193,
+                                            "frames-of-1024-to-1518-byte": "-9223372036854775808",
+                                            "frames-of-64-byte": "-9223372036854775808",
+                                            "frames-of-512-to-1023-byte": "-9223372036854775808",
+                                            "frames-of-65-to-127-byte": "-9223372036854775808",
+                                            "mac-control-frames-ingress": -1346266749,
+                                            "frames-of-256-to-511-byte": "-9223372036854775808",
+                                            "tagged-frames-egress": "-9223372036854775808",
+                                            "frames-of-128-to-255-byte": "-9223372036854775808",
+                                            "fragmented-frames-ingress": "-9223372036854775808"
+                                        },
+                                        "history-data-id": "8slRzxrjE8Gf6F7RXn2X15fY7J2KDCpEXCno1PHFXfN3VUMSaOH3LW2SFWCarTOgo4EpTlXQAKLnwp7ydOCYKwIhklkD60Tu4xUXKRNdtqARPIiUoMK1atiuGu8Mv1hzr3p3M4g7vRYkr87PURQ4k1r0vzF0sWsLRRPDV5CiOsD7BKXvtFsO",
+                                        "suspect-interval-flag": false
+                                    }
+                                ]
+                            },
+                            "mac-interface-current-problems": {
+                                "time-of-latest-change": "2021-01-24T09:52:46Z",
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 12339,
+                                        "problem-severity": "mac-interface-1-0:SEVERITY_TYPE_CRITICAL",
+                                        "problem-name": "4SUOf6fMG0bNsb",
+                                        "timestamp": "2022-01-22T13:13:04Z"
+                                    }
+                                ],
+                                "number-of-current-problems": -78
+                            },
+                            "mac-interface-current-performance": {
+                                "number-of-current-performance-sets": 122,
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "elapsed-time": "-9223372036854775808",
+                                        "suspect-interval-flag": false,
+                                        "timestamp": "2020-06-22T08:01:36Z",
+                                        "performance-data": {
+                                            "mac-pause-frames-ingress": -1154724487,
+                                            "tagged-frames-ingress": "-9223372036854775808",
+                                            "jabber-frames-ingres": -720072991,
+                                            "mac-pause-frames-egress": -60751663,
+                                            "mac-control-frames-egress": -1585273399,
+                                            "oversized-frames-ingress": -445786093,
+                                            "undersized-frames-ingress": -1642851251,
+                                            "frames-of-1024-to-1518-byte": "-9223372036854775808",
+                                            "frames-of-64-byte": "-9223372036854775808",
+                                            "frames-of-512-to-1023-byte": "-9223372036854775808",
+                                            "frames-of-65-to-127-byte": "-9223372036854775808",
+                                            "mac-control-frames-ingress": -1797442907,
+                                            "frames-of-256-to-511-byte": "-9223372036854775808",
+                                            "tagged-frames-egress": "-9223372036854775808",
+                                            "frames-of-128-to-255-byte": "-9223372036854775808",
+                                            "fragmented-frames-ingress": "-9223372036854775808"
+                                        },
+                                        "scanner-id": "l0GDhuqMm26o3I5nfD4egn0z3T7nrOSNGqiPVIBhDIxGiC4xg0EonEXip4FRKpwrPO8CpKT2kjACVE23wGrTcg3ClAl5ZRoHxxbWh5Qtgr53XZ7mxq7KHbmULHZDqgkPNvEWsupANmEDmDZTV6vuhJoVigyIwKyj74fAyw2eSGR6jIS7On"
+                                    }
+                                ]
+                            }
+                        },
+                        "pure-ethernet-structure-2-0:pure-ethernet-structure-pac": {
+                            "pure-ethernet-structure-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "timestamp": "2021-12-05T02:38:46Z",
+                                        "performance-data": {
+                                            "cses": -57809785,
+                                            "es": -2001514775,
+                                            "rx-level-max": -19,
+                                            "ses": 1360041180,
+                                            "rx-level-min": 105,
+                                            "rx-level-avg": -18,
+                                            "time-period": -1690434493,
+                                            "unavailability": -1036862685
+                                        },
+                                        "suspect-interval-flag": true,
+                                        "elapsed-time": "-9223372036854775808",
+                                        "scanner-id": "FukNCDS3ST9UlHG4B"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -22
+                            },
+                            "pure-ethernet-structure-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "period-end-time": "2020-04-27T23:24:28Z",
+                                        "performance-data": {
+                                            "cses": -435449645,
+                                            "es": 709242366,
+                                            "rx-level-max": 83,
+                                            "ses": 1715237958,
+                                            "rx-level-min": -45,
+                                            "rx-level-avg": 38,
+                                            "time-period": -1546070607,
+                                            "unavailability": 346375264
+                                        },
+                                        "history-data-id": "kkOGwtj1lmT6nFs4eoGzZ2yqJcXfo6oAid8OGrIUFt029k7nIFOAHe0iqXpGWN86SgNrIvdnY5i7qpm842AD8BVyqc6eZelKv8bdDosttKtT1HU5KuASXnjozpCrEPb9XmesCGW5jhRkYDiAZKtX8EdH3H0Hxb",
+                                        "suspect-interval-flag": true
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-02-16T01:29:38Z",
+                                "number-of-historical-performance-sets": 15632
+                            },
+                            "pure-ethernet-structure-status": {
+                                "segment-status-list": [
+                                    {
+                                        "segment-status-type-id": -28600,
+                                        "operational-status": "pure-ethernet-structure-2-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED"
+                                    }
+                                ],
+                                "performance-monitoring-is-up": true
+                            },
+                            "pure-ethernet-structure-capability": {
+                                "supported-alarm-list": [
+                                    "0WYLtHhBT06uvOAsGuRCQoFoLI1QliMl6CYsb7348aqDQ05pmP1ddy"
+                                ],
+                                "performance-monitoring-is-avail": true
+                            },
+                            "pure-ethernet-structure-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 12965,
+                                        "problem-name": "G4bQy80SUR2RNAlVJsojmDvW6pLZnSD3XGLnPL7JC1shCN4d8twu61i5i34FVzAK8l0XY7ys90KDFGQF9m18gjdym96",
+                                        "timestamp": "2020-11-26T05:42:47Z",
+                                        "problem-severity": "pure-ethernet-structure-2-0:SEVERITY_TYPE_MINOR"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-02-20T06:06:02Z",
+                                "number-of-current-problems": -24
+                            }
+                        },
+                        "lp-direction": "core-model-1-4:TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN",
+                        "name": [
+                            {
+                                "value-name": "6fRt1ndqmz7TqDpfKiLwPhopIaDLV1WThNea2sAp1zajdzrPJ4drmCQWMmHznwswbGGe08vTIF5NfwCYAIhWk8SYmsxBYR81pGfiPCbpig4pMGffgxbAxWyToXueOuf63noSZr9hIdymLOB2lFuSB3DRS75z",
+                                "value": "kFxH3hzmqQ4vhjg5MaijF2UAFLsEIT0VyxutO3Q6MMB3XK8CUiVrkI1Zlmv4fwZG3t1KpJIbocedWePIwL2Ql3HGh4KpAB5wXY8mIQx62DbQR1rnEt5ZwEFGIi5bT2zQ0H4IpBGk6SaXLBcp4hgtVV9w5"
+                            }
+                        ],
+                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE",
+                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL",
+                        "configuration-and-switch-control": [
+                            "h4zJ8b09DNnPc5Q543dgipiBcEPJF8DW45G48ydLlAApxiuCmISE727byPMeXp2TuAXD8agmCRL998DnQnTPi1SQQEWFVZqirfVAh3OTUz24HyjpVd6d6Y4OuSlqRLIb0vL"
+                        ],
+                        "fc-blocks-signal-to-lp": "r2l04hAuAZqFYvLOrzbkUB3xbepyRyYiAjbxsL13CjIAPmhgVsAIVw76KxwC5mUyG550IY3laENZ047NoInj6vhQ2FkZ27pA4mANlE0vaNm2KtH035k9st0m9kdbrDLwZdbcRbzTQVVspvtksFuU8m89Glc0QXoQ3z2UCuGsptNGYg1iNv4VRcXpq9hgZxY26TOAnuV",
+                        "air-interface-2-0:air-interface-pac": {
+                            "air-interface-current-problems": {
+                                "number-of-current-problems": 85,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 4428,
+                                        "timestamp": "2020-07-06T07:33:38Z",
+                                        "problem-name": "0Rtm07RK4GXv30BiHot7EdBmoeji2Gr3qUpqT8aXOZlKRW2rcvqQJ2478nhaWI5mCnMnvOccFxWptYQGu8o5at4iIllE3qSxNwUbkYnSwjhRh7pD7OIi9EsRZNoU6g",
+                                        "problem-severity": "air-interface-2-0:SEVERITY_TYPE_MAJOR"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-10-18T17:40:35Z"
+                            },
+                            "air-interface-status": {
+                                "xpd-cur": 32,
+                                "transmission-mode-cur": "tmbm4Dglu20fyM7WAI2dXAjalik4jyPMVS8Rvo4Zi47IIeEbOGoL8zVtJ7p2y6OlYW4mc8dn4k5MqKXfid0rFOMoV4rta7",
+                                "rf-temp-cur": 0,
+                                "mimo-is-up": true,
+                                "tx-level-cur": -47,
+                                "local-end-point-id": "VlhnJ9auoJVMUJ9lm8DlGQqo3tERDFOqSXGB7I5nsS2etbrQb43SM",
+                                "rx-level-cur": -27,
+                                "link-is-up": true,
+                                "performance-monitoring-is-up": false,
+                                "xpic-is-up": true,
+                                "remote-end-point-id": "8QWMzrjnKbdqEc8BzsttyXEZNQVQAIcAq0fZsqf4Csu8EuK5Xdzn25nPNayfSC",
+                                "received-radio-signal-id": {
+                                    "numeric-radio-signal-id": 27396,
+                                    "alphanumeric-radio-signal-id": "6dWka7Y3QdoNWKSF8H43Ayp49z4VBj1IoQ2zXSuFYSsUDdsDUwym4Xq5xm00GUI4KCvznZ6lKy7nDzSyYqM2o50NrSN7Mo4o0rXnj3A3uIi79ax7sc2QhUvIMbQrzMPz5NPoIhj4Zt41DB06NUO4GcNtnvUO9Bfeg4vZmG3da76FBZDgTkdsw0VLnHzoaOurLZqZGl4"
+                                },
+                                "auto-freq-select-is-up": true,
+                                "tx-frequency-cur": -1914153747,
+                                "rx-frequency-cur": -1542201463,
+                                "atpc-is-up": false,
+                                "radio-power-is-up": false,
+                                "snir-cur": 17,
+                                "loop-back-kind-up": "air-interface-2-0:LOOP_BACK_TYPE_NONE",
+                                "interface-status": "air-interface-2-0:INTERFACE_STATUS_TYPE_ADMIN_DOWN",
+                                "alic-is-up": false
+                            },
+                            "air-interface-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "period-end-time": "2020-02-29T04:09:52Z",
+                                        "performance-data": {
+                                            "snir-max": 37,
+                                            "unavailability": -1977015537,
+                                            "rx-level-max": -116,
+                                            "xpd-max": -122,
+                                            "ses": -1621534685,
+                                            "rf-temp-max": 31,
+                                            "tx-level-max": 101,
+                                            "es": 556550128,
+                                            "tx-level-min": 83,
+                                            "tx-level-avg": -80,
+                                            "snir-min": -77,
+                                            "snir-avg": -113,
+                                            "time-period": -1188196291,
+                                            "cses": -1101421449,
+                                            "defect-blocks-sum": 29256,
+                                            "rx-level-min": -27,
+                                            "rx-level-avg": -30,
+                                            "rf-temp-min": -95,
+                                            "rf-temp-avg": 57,
+                                            "time-xstates-list": [
+                                                {
+                                                    "time-xstate-sequence-number": 82,
+                                                    "transmission-mode": "uAYB54iEgTrPms4Ng7boIDCB5IQ5Y6zkypWEt6iJZBzm",
+                                                    "time": 430744482
+                                                }
+                                            ],
+                                            "xpd-min": 103,
+                                            "xpd-avg": -98
+                                        },
+                                        "suspect-interval-flag": true,
+                                        "history-data-id": "jJ39Wa1575raDNmXABbSAuicISdpe8QxJLHyVADUF54iKj7kUi4nNnzn7MElNuLw8k43UIQAFUKp5KC02GnHVO4UsB8f5TM5dI17qRzXDcfJWRJQp6ylMu7e5fu3880lQ1l9SU6oYd7U4ILmGbHsxOGv42q4aqqTkD24p0s"
+                                    }
+                                ],
+                                "number-of-historical-performance-sets": 32383,
+                                "time-of-latest-change": "2021-08-15T14:24:16Z"
+                            },
+                            "air-interface-capability": {
+                                "expected-equals-transmitted-radio-signal-id": false,
+                                "duplex-distance-is-freely-configurable": true,
+                                "supported-radio-signal-id-datatype": "air-interface-2-0:RADIO_SIGNAL_ID_DATATYPE_TYPE_INTEGER",
+                                "rx-frequency-max": 1343123134,
+                                "supported-loop-back-kind-list": [
+                                    "air-interface-2-0:LOOP_BACK_TYPE_NONE"
+                                ],
+                                "direction-of-acm-performance-values": "air-interface-2-0:DIRECTION_TYPE_NONE",
+                                "adaptive-modulation-is-avail": false,
+                                "supported-alarm-list": [
+                                    "VTmFzK4si2In77HTZkVF86BY431cbNZZymwZYBrhv1EC9en8yiGzg9xk4yo7do6DKDDA6WRBYo6ZCt72EFBUG1fKzDSFTQivlN6rCPVA51rHmqC06dVMe2pGx9lrRDWdj2wVSrnXkOxHe1HceuRlwg14hmv8RjdaeKX63kVg0kXflwrs1aNxqOtz2YITaVWoxTmt69J6mylH4F15POv8uYHwPhiZ5enuZBX5Ky466pGbWH",
+                                    "e4bICtMbnNMIBzcydSTH7MhanipDYDT5HXNciznFe9fPAjgOb9naVwkaOBNN7zSOox0GYod4pkU0DaGOb3Y6sa8gM",
+                                    "1eI4tVKsOqzbIiBbLvM7o9H0YLB3yVWz1wvurfW8xnj8GMjjhYqy7",
+                                    "1W0TFe47ulO7z26acFLf4672VDlKOzmHoeA3kE2P0JWrLUuPrf4ne4h9HDLn4ZWk6ofq2ifU14eEQItiXyFbCXdbsYqoYmB4KQmE0CrTyFxofTy4j6gNVlYfjgD9Ce5eXsKXWbJuI8KX1j2cpaZcvPrG54IzbFN07qXVByhcH21AlVNCXMOkCf1zbB9egOe",
+                                    "ZpnKuoH1eefdV4BHYME6ognV4cREJr0AQnllM2mS8B53FGCwl8CJpZEt3nZMG0fxnAK1uYUCrZyZyavTj7uIZ03Un2z42Otig5jK35emXMlnPQ88QCIHCLtZNUVIIg0QljsghHDelYBaHJaplSYXvrOje",
+                                    "EoDMSClhrDziIFx4E82CSsGRzXxCU6KqugcfSpwb2XtCC0H80BCS3iBu886U7JkBZoQRNeUQbfkF7TO7uiRqBtUBt1vAKP4BdUk",
+                                    "LkBv116mMsWf7QzVDcXC33Jf921hSnEvA81B17YFrMUyClt8yiKBdtInoJE8ZaErax24w0JXEEv9ZQhp111emJBCl7LcahDcOxgkq0h4wEdnuuNvnGKKhdeudZGn8bzWJI89Ip563jlqN0VbGxNQL1kQTT514EYFe6GWoMUj5gJKgxNP4AFH"
+                                ],
+                                "tx-frequency-max": -475409783,
+                                "maintenance-timer-range": "QxIjbUZd7WMw0J0f8n6dZkIEsTeIjtR90rl3dchc03I1NAgNYeSPqAlSuzBN2kOVL1YZefbejU7Ym",
+                                "transmission-mode-list": [
+                                    {
+                                        "transmission-mode-name": "2HV7eM0rjAtDjO",
+                                        "transmission-mode-rank": 1040681740,
+                                        "supported-as-fixed-configuration": true,
+                                        "am-upshift-level": -40,
+                                        "tx-power-min": -21,
+                                        "am-downshift-level": 59,
+                                        "symbol-rate-reduction-factor": 82,
+                                        "channel-bandwidth": -1521565545,
+                                        "xpic-is-avail": true,
+                                        "code-rate": 68,
+                                        "tx-power-max": -124,
+                                        "rx-threshold": 13192,
+                                        "modulation-scheme": -25801
+                                    }
+                                ],
+                                "encryption-is-avail": true,
+                                "duplex-distance-list": [
+                                    -98806973
+                                ],
+                                "atpc-range": 1,
+                                "performance-monitoring-is-avail": false,
+                                "auto-freq-select-is-avail": false,
+                                "tx-frequency-min": 1946863454,
+                                "rx-frequency-min": 867129142,
+                                "type-of-equipment": "4w0oSe9t5GMog8rl4AcDi82lgpDZvSbsgbQ0pZtux8KNgc0cMcPWkSis9NsExv6OGWOXNajci3Zq7ZDM3kIn4SQdFaK5FQTdFH2kRlx1gwsooX2r9C",
+                                "atpc-is-avail": true,
+                                "supported-radio-signal-id-length": -31535
+                            },
+                            "air-interface-current-performance": {
+                                "number-of-current-performance-sets": -105,
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "timestamp": "2021-04-23T04:27:19Z",
+                                        "scanner-id": "lsTEct9cNVcocjN4IdJrm7Q2xlI9CbZXvStHeuUTp6hChWGR1hang1hOmZPY2ONyz9fND1yVZHpgDX7E7i1nbj3paTgdH3L840NAUlnT2M2xJ93Qj5eughUq22vK5gK29yu3TROODQ",
+                                        "performance-data": {
+                                            "snir-max": -11,
+                                            "unavailability": -75426615,
+                                            "rx-level-max": 123,
+                                            "xpd-max": -42,
+                                            "ses": 1194486626,
+                                            "rf-temp-max": 112,
+                                            "tx-level-max": 41,
+                                            "es": -1447299545,
+                                            "tx-level-min": 41,
+                                            "tx-level-avg": 35,
+                                            "snir-min": -114,
+                                            "snir-avg": 0,
+                                            "time-period": 1454571458,
+                                            "cses": -333543615,
+                                            "defect-blocks-sum": 26720,
+                                            "rx-level-min": 113,
+                                            "rx-level-avg": 119,
+                                            "rf-temp-min": -48,
+                                            "rf-temp-avg": 4,
+                                            "time-xstates-list": [
+                                                {
+                                                    "time-xstate-sequence-number": 7,
+                                                    "transmission-mode": "JKs3401vTBAq5pla3YfR9FQyybIsZJKAt4vqXwVQ8n8dMlnIkvzl2iUBtu3s5F2rJyRGWEo41oaFKpn4UPhX7bqAyl2D0W4BmNajryfsXp8zPnvBcMyjQQLobFT3CYFQDP15fhp4yxvfN0RZNhbv0WTbCMf6CMO8tQdAZCFx22FP3",
+                                                    "time": -141732177
+                                                }
+                                            ],
+                                            "xpd-min": -10,
+                                            "xpd-avg": -97
+                                        },
+                                        "elapsed-time": "-9223372036854775808",
+                                        "suspect-interval-flag": false
+                                    }
+                                ]
+                            }
+                        },
+                        "label": [
+                            {
+                                "value-name": "HZ8gH8PEJ",
+                                "value": "7hye1BbM4"
+                            }
+                        ],
+                        "is-protection-lock-out": true,
+                        "tdm-container-2-0:tdm-container-pac": {
+                            "tdm-container-historical-performances": {
+                                "number-of-historical-performance-sets": 24605,
+                                "time-of-latest-change": "2020-09-19T19:28:04Z",
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "period-end-time": "2020-07-31T12:52:07Z",
+                                        "suspect-interval-flag": false,
+                                        "history-data-id": "K6sYgOrmmLJZFjjIu35VhZHH4xb",
+                                        "performance-data": "2hkrrwkZy9SF6w3xD4HvbH62zP2I1Yu38OvzdPqDYaiWGemji3HtKNncupUvfozf4WOhD6Vug5qWjM8BPPWsubEYAqlIGUXKIE2mKPQ1U8P6VXzCEo48zA62SkKy6zjPdd3QUTRG1GMOwer2CnbbQ9dItP9Apshuxkkjd3Z6CEV8SeamBdxjnD2Is3aRvreULydYu4X"
+                                    }
+                                ]
+                            },
+                            "tdm-container-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 21865,
+                                        "problem-name": "a4WFEc6GOFKHnNaI4E4NwL5Ih4uz0MBaIxPmKWUqtE7Qk9rgNvWk81Up5oZ52sfKZXYBTSTeo05A2oRPTF11GVrLbiQd",
+                                        "problem-severity": "tdm-container-2-0:SEVERITY_TYPE_WARNING",
+                                        "timestamp": "2020-10-31T03:25:23Z"
+                                    }
+                                ],
+                                "time-of-latest-change": "2022-01-05T14:07:28Z",
+                                "number-of-current-problems": -52
+                            },
+                            "tdm-container-status": {
+                                "loop-back-kind-up": "tdm-container-2-0:LOOP_BACK_TYPE_NONE",
+                                "performance-monitoring-is-up": false,
+                                "interface-status": "tdm-container-2-0:INTERFACE_STATUS_TYPE_DORMANT",
+                                "statistics-is-up": false
+                            },
+                            "tdm-container-capability": {
+                                "performance-monitoring-is-avail": true,
+                                "supported-loop-back-kind-list": [
+                                    "tdm-container-2-0:LOOP_BACK_TYPE_BACK_TO_REMOTE"
+                                ],
+                                "supported-tdm-container-kind-list": [
+                                    {
+                                        "tdm-container-name": "vZGMI0KdadcVG1Vc6ufOvPdGxr6m8ZJDYphyh2Lk7Y7NR2ZYw6ETVJAlayzbxiOoH6WQ0Ia7yhMpjDfIBTBpC3KFtbQTtwh2C5SuFVt5c7voKC6mwzL0vnxYqnJTU0NoYxLDseJxm6VYITc6kX",
+                                        "tdm-container-size": 2116126454
+                                    }
+                                ],
+                                "supported-alarm-list": [
+                                    "HBio17Lq2127TpjVd6RvT9FzQtAwFCZmd9Ke8nE2oy9aXkX3rGykP5LFyd3dP2zU3c04zF6Q58S3sPYTvo5dtQS24W7LQzGMLGQcdOUjWMept4aZsgcV6WP2KXGBwef9UXd0L0",
+                                    "9rJVJZtL1pTlZo8NvrPHyPup2gB50vc1OVWpMpaGPV1Gc9"
+                                ],
+                                "admin-shut-down-is-avail": true,
+                                "maintenance-timer-range": "yCMhnGa2W8sHDUOejac60NZdTc2KT"
+                            },
+                            "tdm-container-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "suspect-interval-flag": true,
+                                        "performance-data": "FYU4RRwTffA0UC1ApsdBKVOmTMQFzVdfT7bCQznXPYXJsYcRjhsVdhiYV0vuVIBGHEjpeGm3wbEY2IQl0ag5rqVmqqJl1kUIZ505Le0aqE8sfQNf1Vckm7HMpi0quU1lZ1qCfqEF5NZcvMrwAvRWCqA1Ask4elq5mQAt9e16T0ipFJNf6w3IODBoYVtcgTiuBSYKYRQSR89oJW",
+                                        "timestamp": "2020-05-06T04:50:15Z",
+                                        "elapsed-time": "-9223372036854775808",
+                                        "scanner-id": "9c1y2O1e5Morf8hS78IZSJ0g"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 112
+                            }
+                        },
+                        "address": [
+                            "j5iZ3o5CI8W1Kksa2dJ356pSvzxkMax6fQXi62UO2IHMU1WPfxScw9W1IldnwLlDtaOzcAgebPT5JPMYfw2LFREgcRvAuIeXSUp4uFaFm3D5Lp"
+                        ]
+                    }
+                ],
+                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_BIDIRECTIONAL",
+                "name": [
+                    {
+                        "value-name": "BAljUMy3inUxbWJgQEQ0UOsKfrIpfqEISZTEDrHVHBkSq308HQ1uwteMVOb2ePK6HECcXj0EVkodoolX7mrvQxhLmlNs2prJ33WTnWxagOfw4AubPNHxdQazbX1eekPaoL3DzsFIgUelmAo3gXAtOK2RzV5O8VYoyT10lyIusOPGh5Kx3k0R5UAEHGkHta5",
+                        "value": "36LpwlTYaAxjFhQItIrqu253AhLVsQGvPsMdNx4P7B8FKQfdyzEUtBYVSBQcjoI0QmewUidTTmqvcGID7epAPfvAQdE2te2cB8InqVgb9zGe7hRevgOdwbFegjgJybV1jvoCjwFs5eGcvpqSG6X49u"
+                    }
+                ],
+                "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                "physical-port-reference": [
+                    "c942beda-266b-a670-ca1b-e78a3653775b"
+                ],
+                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT",
+                "extension": [
+                    {
+                        "value-name": "g97Cd06IJ60cFqgK1MZUrUt110Kt98mphu2nu05566hDoxnqcfcD9FFaxhwHpS6He04A01GZ7PCofSOr7048GBb5THMarLRGDN8EHOvGw74LRScYL8ZjCaonRbxaWhIr4R5Dxsk3soOj90aU11dDbB0UEx4sONULwRo3kA7MZNX0GZUH07cbAc5fB2HiHt3dljgFUfjLV8Lt0F20Ee46i1dT3NbKg6PBq68cdjX0sAts7vkDJoJ1qXNlCY",
+                        "value": "S5NmnLurROgR8QdsXIMsk3bll00GCZwnWcJbX5CGTKyTALdplSRFVUT8NTOhSdEGpfJeldV6Xl0p65OjXxZSkS07DHgoMV4b2Opn1kuRFug"
+                    }
+                ],
+                "ltp-augment-1-0:ltp-augment-pac": {
+                    "ltp-augment-configuration": {
+                        "connector": "07wpeqzDCeErNGQsYiiaCfzpi0iDsCNsCbRIBjm5pSw4q",
+                        "equipment": [
+                            "c942beda-266b-a670-ca1b-e78a3653775b"
+                        ]
+                    }
+                },
+                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE",
+                "local-id": "8hYFYpq9drWy2K8eCj0zWWerxvesMUOUbEr94Ra9a6H4RHbl0bUXZ8gpvuR9ox3z4mA05L98RQ4AyfWqiIfiJvHeZqofQjOUyhMvUVDDDI63X2u8CJqlfZsepQu71aTzjF5dAAR6aX90RD8lnyHCx9IOR4WS7HkqnhEPRnV2c523Iag5",
+                "fd-rule-group": [
+                    "5ea42646-26ca-afda-19a7-ad7f7cc924e6"
+                ],
+                "label": [
+                    {
+                        "value-name": "pOj1euO7Fkv9D1P573Ebq3CaBA8xKCI1i12onRv23",
+                        "value": "cyU1vTW94e5GoG9oeTTWU3PPscyP6BIi1CbwvZGrdL0uj9Sx2LlOP2D9e3YlEGvFaH4xGKZMnZgG806aMrYtuuCAxsV49rBb0FJyhIkEHslPtrR7KHA634HBwCxFV8RNGsmXayCJ1Pqm8htSQ3ZU7GnDaUbYUULAmZqoy27rJxNRGgBwbAii8FNbrY1eKMG6M6uc0tDJ0iAGy45JEnTFVGIexJshv"
+                    }
+                ],
+                "transfer-capacity-pac": "igYR5lGuGo6ycIS46itOq3BpZGQSIqt0HjKMEq8kH6STODXMViAde4C5CkYkLjdsCX6gf6sWcdITQFFDY8Q44l9Gx7Tiq6C2VAa2GDRLQzwy6bbWbT0f6aOE9HWsFrms1xmAa5dSEJqDMBzYms5tCT7DsV5",
+                "external-managed-id": {
+                    "manager-identifier": "H0qqz5T3OUtDm1ZMFaexptkC7TktLTvsLVKcTvfHhJdDC4p9eDHEY186NsrydWSQJu3u0achLpVntcxHIedG7mEUG5kUTcCvHxZzI3QlsDJNQ8vqeI6lWL8DIspCx1Z6rYF12nmmTXaB5x1b77x4KFHlZYXwZOuiM9jGpG3iD5TBCUMBTbF",
+                    "external-managed-uuid": "QeRIcG64uBm8CGH1eCbRH4kbQ7MCik81yRBDxHzTiN1VlIOzc0jTWDWNCJhNVhO"
+                },
+                "client-ltp": [
+                    "c3794728-dc8b-5233-0c67-0b857c32ada1"
+                ],
+                "peer-ltp": "2b830e0a-b58b-c573-23f6-86e0968a0946",
+                "ltp-in-other-view": [
+                    "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                ],
+                "address": [
+                    "mO9Gy2F3JWrnJwyLcP152vWHZ5dq22PoIZX81CbCqDZ11pF5eG2gbRQ2WVkYP2epTbpMGAgY57SYwx3C5YL8Pt2LomB5gHu9LTVrl3hja9hyyd3DbODShFvx26CiF6kqZ7"
+                ]
+            },
+            {
+                "uuid": "2b830e0a-b58b-c573-23f6-86e0968a0946",
+                "embedded-clock": [
+                    {
+                        "local-id": "4K1L7DVdomFsk8NUKYBheb3NrLOSkQFgBG1IcWWsatUnBz9dyLmEWqjob7gnPNDqmw1qlPSnaEKL6UQwFd2BDlRGk049Nzs16trrabOkIr5OlVcS0",
+                        "run-mode": "core-model-1-4:RUN_MODE_HOLD_OVER",
+                        "phase-aligned-clock": [
+                            "YVeiPwRShBgjzQZvC8Zx7SnUMwm6JiLAdZK2vtNM43XDTX0o5SV5KiRoH5uiofKt7uoCXbhT6ewZ3pf1ha6TlXiUVMcjUXE1j2D95M2b1r34Qi57l30yTa"
+                        ],
+                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                        "encapsulated-casc": [
+                            "Zf24TorGVsbQ9lvInPnCaeSqrc6BkACjPEfIUHgI1rya"
+                        ],
+                        "name": [
+                            {
+                                "value-name": "lvzdcTd8USHmUNHd6RpNb768Nr4RbW5wswBwhOEbHdqtT7GZZ5Ea4KjJ3fse3xDn3eTkVpouDOXoVDfMBUXxw89AfBGi1bGWq",
+                                "value": "9lJxPelEC89RVCLK2aKbCZEi9xuHuM1DZKaGYnkAntri65U07EbJvH1xfn6J17e0RgGHDS90eBbcy5cFCnoZWhobxvMyu0re87VLS5E6yPi6MuDgJT8F2wJzTv0oojCwipaauOg2vy09UviDgijjO2KApKYF3s4eR6oeUF8h51i0wsvNKGYrAI10lRxgbtu2zT8lqhCniNfGfLl0rjr22kUfbj"
+                            }
+                        ],
+                        "encompassed-clock": [
+                            "zSzgZS2utSYSlt8xN7dsLeEaUA9zvWk4GUcxEe2ZYSSkdSR1Z4lDaRNXjWoOKJKivOQ12K1TCLdPDWIu0W73NN0ZBoNeZqwmemo96h2A27ix3STVO1YuGQth78n6yUlN8BOfSQHMXZb0S4NyXM2Dun"
+                        ],
+                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE",
+                        "extension": [
+                            {
+                                "value-name": "xIgWq2EIBF779wstUKazInThdq53fkiF2z",
+                                "value": "kB73cN2bWzEhlojUYHFgM6lPdF7SzG"
+                            }
+                        ],
+                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL",
+                        "label": [
+                            {
+                                "value-name": "mN0gmLpI3GcqQRGw7jKZC3iwXCi4FCAThs9v5q58YaqO16d0hXZUShiILBMq5mbeGlJLDPLCZci0av1skSed2oVNZz6WWhauuU88BTKs52kgqdAK6GP84CNWcTS033",
+                                "value": "xPuxqo9St44Bui36oJOoGibCuXumSpJh6dPwtYgX2lqoDunT53hLlkfQ9K411Fj8T0weYF3T0u9vQogVrpzNJOvTqzMkf5s05YeWviHnEQSu70hypIl1pQUPiy9xwtptkvhPFYdjHXFOYPm"
+                            }
+                        ],
+                        "encapsulated-fc": [
+                            {
+                                "uuid": "6fa0682d-d410-924d-acaa-15abb4edb7bc",
+                                "service-priority": "-9223372036854775808",
+                                "supporting-pc": "FyCVxl0cTtfbdYanbM03AOBVb6beWZQBqloXGo2rRhCX7Mcircm10PW3V0aJR0chdA7TQ1dAiPxhCBA3NO4FDSAqKKaCDmLQXSCFTPf3EEl8fVbUB7reS2ECMG6h3S8SKCpwrFrXjM6zzhlahNg9PNDttKLoCL8enyCG54DoQJPiTbk2YBbFoG0JqL0Uo89DyLjDHP2qqJIbU2dKvopL5qvn3vikvjX4W9HEYB4glEs7yFS4W9HTr4gnrqHXB",
+                                "layer-protocol-name": "mac-fc-1-0:LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER",
+                                "forwarding-direction": "core-model-1-4:FORWARDING_DIRECTION_UNIDIRECTIONAL",
+                                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                                "name": [
+                                    {
+                                        "value-name": "YFnWnpizSLTPFjrQWraETD7CTmew38TTF9P2y8tjLf8jqz9m0b1LH0fsmlZhtKa8LR3kRwDDDDW4dXq50jJHjY2xc1OFDQOhAJBr76WLJKPOH7MArvhClj2xcQ5IzLZ9ussBqpm193QJbujCRs64E8CQZzqqkhrOJTh1iE3kHL3Sfem6Gt",
+                                        "value": "kBE3s5lSpDb5e5ngf1bzAWul3IH1ha3tEAo6FKR5f2atZxB7qMG1A3eDDVwUYAgC2EIHorEDmHZl6Asxf1qP4ElzrJmpbC1d8CVx3r2h8TDfmXEBY4iUAvm1fIrqckEkOrRKKM1TFE01uEusAFfaaB3hbuInHeHvxrfhd92KN2E9G0C"
+                                    }
+                                ],
+                                "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK",
+                                "extension": [
+                                    {
+                                        "value-name": "ay58q780nOS3pKBCYUkosLVefVuqYDF93D9tChl0X5VmPoZFib4KWRY4EkmDX2E1FNm9WI9UN48Dk7aCi6f7Y53uqpZfrD8Yiv87591S61nq9yVjEaiu7lRxLQNcmN3wibDfkw0qynJzNESkGbGNwxl9g0mCNh8YsMdE",
+                                        "value": "dXItGh8c2sS51FtySDOSZiy8roA5t67z3Q2BZ2N1vFYodsW55DQWNg46EwbZCjyy1s10vHU0eKgrc4x9Hf5nv1t1xF02QrsJTtBoangp8wIkB7uamrxRt1K0yD2g4mZXQAmSYu961SiCZEEm6c5r5IrDlmT"
+                                    }
+                                ],
+                                "fc-route": "7LurwoCrkJ5pi6jDwDFC8CcF8uQIrAlyePZK6t3q49Iff1SDxqfF2jc2N2KevYEJFvtLRw4VFMaMFVhclpJfIW9wQTClR94pEpavO6jlSt8qghCtGeIpaRV0DpemyaL5sOAgULBF7B5nTzRzFrYPbLIO3O2BYGGiu9ygUaV1LSpwk86ZzW",
+                                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED",
+                                "configuration-and-switch-control": [
+                                    "Tt1U6cK0Obz3Vg435A365y28rjXye5V7yOTETDEHH5CCdyxi9Bo69ifsu40IaOPIuJfneLXVRrq40Xf9qvfAGuUazNSJBzj5aylpkic3JuZBs6KSCSkam7kNUconLIsW8FdsXhnzMn26lNYXFb7Tajz4nXr1FLXOr28gjwH5LKb6p2W45VPf7obueCvTfkzGmIPy6wDJ8HHxBDtGrjNyzY2NsyzHS8o7I5"
+                                ],
+                                "local-id": "Mmm8bwg6u0xTCx7EGbib7FAm1qQA6uvSQRSTf00J0pCvWB9vMjGLY8ZZqPAwbXg1O0N31NFT49oSLqfpJWbIWazfS1L3YUXMUKIVpfHloXd1ntr7hCH5Egkwi6s8SpVM1vAiK9D06Q2ubtts52qBaK0kIst",
+                                "lower-level-fc": [
+                                    "9bc11e2d-913a-2fa6-a64f-f01427c75d88"
+                                ],
+                                "fc-switch": [
+                                    {
+                                        "local-id": "XZAroUs49iE508rhG63Ul2525a5p90l6RWqfQSjS2PX2Ppbnve9Q9eKegHDpzZoqVOFDyQnAxlCmCNJZUSH3Yr9e1NwAMU1zAy48hkIOFc39RE8DpPyf8Iu9vSK",
+                                        "wait-to-restore-time": "-9223372036854775808",
+                                        "profile-proxy": [
+                                            "gcf9cQLn28nAFB7dKasfJPFlDq2x1GjiSzj5h4kb5ILCjSQV2a2DZzYD002TGe3rNno4rI7oq"
+                                        ],
+                                        "control-parameters": {
+                                            "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE",
+                                            "prot-type": "XFJnPN2p5AplVsHqgLrN1EwM0pNJWfrLU28BPa0MCq0xSHP0lgFmVb1NtOwh3X2P02qH4iu",
+                                            "hold-off-time": "-9223372036854775808",
+                                            "wait-to-revert-time": "-9223372036854775808",
+                                            "network-scheme-specification": "m5s3Ulo20DP4ECxk0GfQA4ICmpGELen7jH352r7"
+                                        },
+                                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                                        "switch-selection-reason": "core-model-1-4:SWITCH_STATE_REASON_NONE",
+                                        "name": [
+                                            {
+                                                "value-name": "EDAe3wecQO1nSWwJsEfRlN7uvtvSdf1RKt5O0b0QZTeJHKk2hzTunSQKdmDqtw9e06U0hMI8yWR7zc9ID3c0N3DTh8bKElYErKwBxfJX3t4uxeca9h3OcGHtOL5k64ZpGn05uC2y572Cd7EmoHasfKV3v0",
+                                                "value": "tWfKvuDAZfDpcCjGPik3G2d0hXVdkOtFCAi74VIVadkeHwUwOezn8EniubvGZYmBqEJurjqBoCP50BtPP2cYyr82CDJBtX5TtGfUZxnna4kaFNRmH3cfnkaZXLBiIy33ejP5QcsS8MVNrM18Ien5yp4oaxyK5CNbNCgDGIoOmjtN5nNFB3K1sHhD6Qn4k3f7xwCe60Utbg89DWO6Zr7j0hW67cajfqqMW2S2VNn6Vo7qcWw3f"
+                                            }
+                                        ],
+                                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK",
+                                        "switch-selects-ports": "core-model-1-4:PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN",
+                                        "extension": [
+                                            {
+                                                "value-name": "ExdT9b2hahFh7MC7fM9XLWlb71rMCUO8jT1sXWK75ph54Tcjxdg",
+                                                "value": "2tl9uFV6zCfSn8lkW5k2mtZqe3KLgSNie0sIFfP6RWZ74crT9DVn6MOkPqX5aKooDQ7iXOpHCgOys7rtLeQJ0w4PWTV7wbn9TmrQaIxMYddilEL6TuHL0LBPxoO3rbckyvaAeAf4Nsf8606"
+                                            }
+                                        ],
+                                        "prot-type": "e56hmyrFt7oWE8YP7tWTnu3q772fdrtrprBD02jl1H9FPZnOsbzHyu0FC2MPm79DzC8zErUx0V4HUrvev4V3rVA3QmK",
+                                        "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE",
+                                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED",
+                                        "configuration-and-switch-control": "1BKRoETqaTS8oS1iLzwP0b4o7n7eMp6NTQwhnpAxasxycyJP0fw0rAhqYgFKxLpquVAJc2gnmNNyewfeEM65enncv2O3G5l20VL5P1sbG7JUEZ0iD7fRuCW0xKVdQg7I4SNTL7Xjfy6Tp632daUAEIsbkng2vnLr7qdSyac",
+                                        "internal-configuration-and-switch-control": "Iiy8ot2uvO49wodRLt",
+                                        "label": [
+                                            {
+                                                "value-name": "mf",
+                                                "value": "jdTvo4CGuouphwcWMaJai9e6FhdaDsXOxIbVNNt94XqlmC98NSaX1o3yFgAaApZ702VFQgOUef7AJ8Aw0ClT0ojxwTzYbq6btTQb9w5fL4HnchT4T7XLv8aU1KScaQfDB5ODCLSfPACTJoXvvU8S2jMW3x05fgBRdhuP3eXKOzEqPtVcg35aeJ6h8ZfofQ7s7Ba2H7NoyjOgMBs"
+                                            }
+                                        ],
+                                        "selected-fc-port": [
+                                            {
+                                                "local-id": "VaFTGVwRFroFmqEmPCADGl3Ha6TmQgsMi0xQVWHsfX7CfEQX8isODonFuh1dpmRHeox1k6uA3t4bZU884AOIYcfll9yKnhrBFQCSWYkRsoUja2r6v8OlcWGx56hsnA3VixN6w7XQnK1pMtv9tcvF83c5alxpVsk5R7bf605lK7Cps0yVc3sc7Eh9ZGyM0TRRS27R244F3H4nHCaLyCXx86GZM",
+                                                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                                                "name": [
+                                                    {
+                                                        "value-name": "DMZmvKguBbrxQm6UCFoEqW9fthl19Z8MD799RhvksWSibQ4NwtjWhs4DKpEThMxUMG3DYrQifAtqqx5WSpL2RHFt6befYMaKk5fawXtMxW4Ql2Eejhg2YNwXYCcWomyJsGLQDeu32rTotxuMPCGFp4CnHPc53CGnaseGyIJt1uRuTd8APPg6TSlAzpyD2604q6KZHtsIPbdJgdjX2z3OkggTGGoINhMdnp44SoNAzSjH5uE04zGgQO1wv",
+                                                        "value": "6izKnW9sTUQyuiiNZf9w755NlVufrZxp96awUjQFdHdzRneIDoeKtkqP7U4zLBYUz0itk91pIeZzCdh7BoR5I9MPVIgGb7AK7T5jU6BCdA3HFkO9Ix6iHK0usgbDfDffocyij9UwBX59a"
+                                                    }
+                                                ],
+                                                "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                                                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE",
+                                                "extension": [
+                                                    {
+                                                        "value-name": "4ywM3LCcUk3YxQBLP6eYo6d7acIQZ9jVzHACscOe",
+                                                        "value": "J5VrGyhFN7VLl2VpDDgMX3dwDQRPw55820zJzQgeQbRb5MAIhQm6TADpim6OjcOmcgXD6dJOgAZlerWw9aC3K7s2tyJNKp9PF6kEb4sjwkwLLs9VDDQfLaaeALTda22"
+                                                    }
+                                                ],
+                                                "logical-termination-point": [
+                                                    "bc478ce2-7d3c-9c53-dff2-7724bcef25d4"
+                                                ],
+                                                "selection-priority": "-9223372036854775808",
+                                                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED",
+                                                "port-of-internal-fc": [
+                                                    "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                                ],
+                                                "label": [
+                                                    {
+                                                        "value-name": "iKqgVZ0Vuk3xXja4yrgYJr0wXBl2KnNU062V52QrmTQb417ukot3PtrF4NzH2ft2lwXiqFCNrsQvlY0FmlB3O2AKHajKpNMCbCUBhwgIZ76c56Sjjte7nPR5Z3Hg",
+                                                        "value": "lSTXEm73DP2CN6HLYS4j6bzVVEMYdUyyErojFvmicgU0etL5dIokTX7GtMwyG47dnnw3SKdWS0W6lAbzasL3hSCDw0bd5aqkxOfpqteil2gGCs7MMSI3DcG9cSe92wmscBRCW5Mh03QCnXh9IR4dVLm7vt9pZnRcYBGNy"
+                                                    }
+                                                ],
+                                                "is-protection-lock-out": true,
+                                                "fc-port-direction": "core-model-1-4:PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN",
+                                                "fc-route-feeds-fc-port-egress": [
+                                                    "6y4YpuLMUQPFNtqmg8u74w6nwXECd4LbvPaUbNz6woDjR3F031ZZp6eW3Sq9PbkkSm"
+                                                ],
+                                                "is-internal-port": false,
+                                                "role": "LH2nPtT9fq9avRWOeajb6eC1OxR29VoNui2cEWlTemWJdSqk3Jv1QZUwoErxrPkWZn0DblppHl1N5r702u1SlWpJsQgTxtPwIP2T2raCMbpJCoKFSDx5rOOTw4N3pus7cmSeN3Qre7aRvUofqVkRC0L85y4mUom6K6dx1VQg30ZqNnydaK4MLHNI7R427i0R",
+                                                "address": [
+                                                    "iOeH0LkMdtzI6hYJr0Y1LJeVE8DwnZAxGOeyrycF1Lf025Jl5znQbtMPChlZ9NwHuDfVbss55IX0NylT0IJbcn0GxlFG93fDGuqKOTPUBE"
+                                                ],
+                                                "fc-port": [
+                                                    "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                                ]
+                                            }
+                                        ],
+                                        "hold-off-time": "-9223372036854775808",
+                                        "switch-control": "core-model-1-4:SWITCH_CONTROL_FORCED",
+                                        "address": [
+                                            "r64YmSTN357tt94HJbDpDSpBLwt7cYmv4qmiif5ed4HGdDfPOS6jDvVo1on5eCti2PAdWxj1B0HGwOncztwcZrsSHHYVjj5e0xrW4KQxCpd0eBdN4JR32bOJSEwcXBqX8JL4lBBX1OY7h3MeEv9GGXhyBFCqgUngD1kYuNOntEuLz8ZdD0LjYUKrzeSH97XE89vvWbSpPf2g"
+                                        ]
+                                    }
+                                ],
+                                "supported-link": [
+                                    "pKJ7hkCLSVWFlnvo3XO"
+                                ],
+                                "label": [
+                                    {
+                                        "value-name": "FJi",
+                                        "value": "cm7nIHKpNrNkSUuX3wIJzeS7emgM5quhMtEnboEYIrbAmFyh380CeTCkfK6daAuP4147hIXZa8AoF0FJ0GderPyGrxTu7gj3h"
+                                    }
+                                ],
+                                "is-protection-lock-out": false,
+                                "external-managed-id": {
+                                    "manager-identifier": "1yFA4v40MpE6wcLg8HiIsJMJ6e1N3Dc43Rw7fA7TRLZgPCwQcOyEqcfwqhctMopP7OWmoVf8y6ofJU5",
+                                    "external-managed-uuid": "Bvz1IPp8YBuKRTzZzndYat6IrmXagV5JqxK8ea9cDDWvonmYCzOM"
+                                },
+                                "fc-port": [
+                                    {
+                                        "local-id": "XoOne2wdBRArCUud",
+                                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                                        "name": [
+                                            {
+                                                "value-name": "9EJQ7CO9Vry4wh1M6g10N6tEHV8tpmYqSHhRbX1Ygr2EB3qzjrz6y2C7PLsfZqxRZOJ2DC0TV2xwXQ589w7HrBG8e8ndqVXhByj72b0X5qmU8j3hI2Z1Dx9Syp5YcU8NsjMuvFks5Gn5RimzkdAXLCHb1F1dz9S2tFoYkIihoFm8XIHhWa7zMOKNtLSVVKXgpd6BWoSc46k1H2bD4a4QYOvkrf7mZ4",
+                                                "value": "h9IS57Di3BCWiwZNA9Ri0xFcZUjdUfQ3oqVupqMk2ghkN80niRyapdmo8FBUUjXaCSETbiedrnpevptF91PyfbOfIh9ut6F5QbQ1m46Njo1HNmmWocmvf2KYkLsNR7KzbAtxxrkQPdpvzMjXYyk5A43UPwHyvj0GUldrMx9uKzZcda93Iu8jqc58ANy56yMSTRbyhd2TMT5R37UMB2XT621GHsMGSqyE9"
+                                            }
+                                        ],
+                                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE",
+                                        "extension": [
+                                            {
+                                                "value-name": "nZTMloICF16egsKeEFsHeDgcDymMNB1aAUWNawpHxvVGPxMl5e2jJi",
+                                                "value": "eJK0wd2yOOntRT"
+                                            }
+                                        ],
+                                        "logical-termination-point": [
+                                            "f7872522-16c2-ce17-fc7a-083c8517e7b3"
+                                        ],
+                                        "selection-priority": "-9223372036854775808",
+                                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED",
+                                        "port-of-internal-fc": [
+                                            "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                        ],
+                                        "label": [
+                                            {
+                                                "value-name": "cqP6k",
+                                                "value": "Zhk2oeGZ8vLfyEN76rNZRevTQHjFNv8MNkGbyf3yKGFaktijU5aEjFx1eIG16GFT0dWqsRZ5xwfSZx3UDdqOSXQ6xoZDXwoXJlg4c79CDomvWphrCHfmwXk3mbzbHX0iigmn"
+                                            }
+                                        ],
+                                        "is-protection-lock-out": false,
+                                        "fc-port-direction": "core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL",
+                                        "fc-route-feeds-fc-port-egress": [
+                                            "h5"
+                                        ],
+                                        "is-internal-port": true,
+                                        "role": "KIhqLXleN1V6n4EDQGrSkb9Qn9WfILWll5D62YcHR7Ne3kSM0bwkmx3KGRZoCNBXKfVE58lX7933tVHl6dylKB5qs4G5JaUtpQ7mQkbPtfKOar29EAugbryvn7s6hnrG5yUNS6CelnUnGWwdwStzj25G1xMiU5YRDKEoQ9ubogz4dXhBQLb1FgIGNmYAsOjXqYdhZHknYLr3JJErmPsT",
+                                        "address": [
+                                            "RYLDbQJe2sopG71HvfB4Vpro8c1HnaVe0yRbpAhrUGQtFK2bZDfUUya3KcC8e"
+                                        ],
+                                        "fc-port": [
+                                            "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                        ]
+                                    }
+                                ],
+                                "address": [
+                                    "kAbi5kgYczs456i3anuf5WSiaLHKvW3Qoe0lyhbDIDHNCZRMel2c9Uuby4OVSRL85EmvVx8v3HiFy1rNftRggdsGhgB"
+                                ]
+                            }
+                        ],
+                        "sync-ltp": [
+                            "1c7e2c79-af6e-8d12-d18a-957fe616ceeb"
+                        ],
+                        "address": [
+                            "m8Ry4icdDsxqq65GS3UzhrG1TnnFxJmTR5rOgv1LXqbgo9O8cAHl2gnNDCs2lGVdLf1TCUFsdQItRoC4Zbh1rwGW90YmGMrj1kdv7SXkAFFk49gVlxOE4uB5urjadLl65yCciroL7453dlQyKE5G8GLu75EdIZbNqF0A7ol6ki1yDRYon34vJIZJFvOfmR2ExUfwbsCvLv3om2EJ5B6HbXiIkYXyPZdeMkKXMesxJwO5qkGnVEWYt6GN4veMnj"
+                        ]
+                    }
+                ],
+                "supporting-pc": "9DD6pRyPBWDyeX7CLLqJ7xiMtN0faj8bWLheCIV5wqELfLf0oFCn4MayzaFCmNNaqXgVFb0bBwOR93JqBlNF7X5z0L3mqIwRFNEcQwos34b",
+                "server-ltp": [
+                    "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                ],
+                "connected-ltp": "a01a13cd-d033-ab43-5858-782877f11dfb",
+                "layer-protocol": [
+                    {
+                        "local-id": "vX5g3vxz7OFnvjrRN0X5ewkmtL1Nrk6W9bccGJLFqi2VulFhmCns0zOudHhE2fs3iFgQg1vycqmGL1P7v4rwE80RP9nJpPNHm3qDWV30lpG7io6OsqkYykPft4ZKUEkgzKLvFPoT640pkYd",
+                        "layer-protocol-name": "mac-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER",
+                        "vlan-interface-1-0:vlan-interface-pac": {
+                            "vlan-interface-capability": {
+                                "configuring-pcp-bits-decoding-is-avail": true,
+                                "ingress-vlan-id-filtering-is-avail": false,
+                                "port-and-protocol-based-vlan-is-avail": true,
+                                "statistics-is-avail": true,
+                                "configuring-service-access-priority-mapping-is-avail": false,
+                                "max-number-of-protocol-vlan-id-groupings": 22046,
+                                "configuring-ingress-tag-filtering-is-avail": false,
+                                "supported-sub-layer-protocol-name-list": [
+                                    "vlan-interface-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_EDGE_RELAY_COMPONENT"
+                                ],
+                                "number-of-available-traffic-classes": 57,
+                                "supported-interface-kind-list": [
+                                    "vlan-interface-1-0:INTERFACE_KIND_TYPE_VIRTUAL_INSTANCE_PORT"
+                                ],
+                                "available-pcp-bits-interpretation-kind-list": [
+                                    "vlan-interface-1-0:PCP_BITS_INTERPRETATION_KIND_TYPE_8P0D"
+                                ],
+                                "drop-eligible-indicator-is-avail": false,
+                                "configuring-pcp-bits-encoding-is-avail": true,
+                                "service-access-priority-tagging-is-avail": true,
+                                "received-priority-overwriting-is-avail": false,
+                                "egress-vlan-id-translation-is-avail": true,
+                                "admin-shut-down-is-avail": true,
+                                "tagging-and-mvrp-is-avail": true,
+                                "vlan-id-translation-is-avail": true,
+                                "restricted-automated-vlan-registration-is-avail": true,
+                                "number-of-available-priorities": -113
+                            },
+                            "vlan-interface-status": {
+                                "statistics-is-up": false,
+                                "timestamp": "2020-08-16T19:43:38Z",
+                                "total-bytes-output": "-9223372036854775808",
+                                "total-frames-input": "-9223372036854775808",
+                                "interface-status": "vlan-interface-1-0:INTERFACE_STATUS_TYPE_DORMANT",
+                                "total-frames-output": "-9223372036854775808",
+                                "total-bytes-input": "-9223372036854775808"
+                            }
+                        },
+                        "wire-interface-2-0:wire-interface-pac": {
+                            "wire-interface-current-problems": {
+                                "number-of-current-problems": 112,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 17826,
+                                        "timestamp": "2021-11-25T00:28:05Z",
+                                        "problem-severity": "wire-interface-2-0:SEVERITY_TYPE_MINOR",
+                                        "problem-name": "AvsTLg1hM4qMjDnPLM81lTO1RunUQ8AqvUbg25pO9HAkcX9XBhQX2EQT86GY68gB2kK4p9KqRcK39LTC2JrXgaQggo7mwfXqzzmYJ6gsi0"
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-09-15T12:44:32Z"
+                            },
+                            "wire-interface-historical-performances": {
+                                "number-of-historical-performance-sets": -4416,
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "period-end-time": "2022-01-03T15:11:20Z",
+                                        "performance-data": {
+                                            "es": 657015094,
+                                            "ses": 820331690,
+                                            "low-power-idle-receiver-ms": 1605610942,
+                                            "low-power-idle-transmitter-ms": 1508774546,
+                                            "symbol-error-during-carrier": -1009240537
+                                        },
+                                        "history-data-id": "j0L1FmZtyzVDYaxZmU3sGRcgezAq3WUmPGom2fPsGC5wMCv0oqt5aFdo7NOaCJwjhMFb1mEzZJ5LesECT7z3ENjDs8N4Jcn0YUbShPjgrhTFJx9uwJp3oJGQRmNsq2sgXv0elkmMB7jkFsH336YjPxayTX0bZkrOQs23MgHno0z3kgYofPHWmJn7yfiqAJeib9lPpU4NUEI6Mzm1o4YCFdJ6sTw2CCcGDxv3jAI56jcSSyM8uCK2Pt8hewc",
+                                        "suspect-interval-flag": false
+                                    }
+                                ],
+                                "time-of-latest-change": "2022-02-08T23:14:35Z"
+                            },
+                            "wire-interface-status": {
+                                "rx-sync-role": "wire-interface-2-0:RX_SYNC_ROLE_TYPE_NOT_YET_DEFINED",
+                                "link-is-idle": false,
+                                "eee-is-up": false,
+                                "performance-monitoring-is-up": false,
+                                "rx-level-cur-list": [
+                                    -124
+                                ],
+                                "tx-level-cur": -109,
+                                "pmd-negotiation-state": "wire-interface-2-0:PMD_NEGOTIATION_STATE_TYPE_DISABLED",
+                                "loop-back-kind-up": "wire-interface-2-0:LOOP_BACK_TYPE_INTERNAL",
+                                "interface-status": "wire-interface-2-0:INTERFACE_STATUS_TYPE_DOWN",
+                                "pmd-kind-cur": "QwOR9tvBAl00L6leeOC81s2srpJBi7q0v6RErm81A8Ul67zkN3kPvm9PDTiVSAVfGFU7TU0t2UG8T7kHbEoy1xnwixs27fiFM4EGYx10jI0dHkUSQarJHGgSeAUdPcLugp2eW368D6lli759",
+                                "receive-signal-is-detected-list": [
+                                    true
+                                ],
+                                "signal-ordering-kind-cur": "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_NOT_YET_DEFINED",
+                                "pmd-is-up": true,
+                                "link-is-up": false
+                            },
+                            "wire-interface-capability": {
+                                "wavelength-min-list": [
+                                    212625292
+                                ],
+                                "supported-signal-ordering-kind-list": [
+                                    "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI_X"
+                                ],
+                                "rxlevel-high-threshold": -107,
+                                "isolation-is-avail": true,
+                                "supported-loop-back-kind-list": [
+                                    "wire-interface-2-0:LOOP_BACK_TYPE_NONE"
+                                ],
+                                "short-reach-mode-is-avail": true,
+                                "wavelength-max-list": [
+                                    1148493670
+                                ],
+                                "unidirectional-operation-is-avail": false,
+                                "supported-pmd-kind-list": [
+                                    {
+                                        "pmd-name": "FAXnpJYHIQqlGstvKptstj1OSNNVG90dCPA1r",
+                                        "speed": "J189mGBQbd7wFAHGgzm4n25f7HWzJnZkp7lDNWlQ2sezVV83nu7Kw5RvMN4n33Hk22XHRjpLLDkyysC",
+                                        "duplex": "wire-interface-2-0:DUPLEX_TYPE_HALF_DUPLEX"
+                                    }
+                                ],
+                                "configuration-of-number-of-bip-errors-per-ses-is-avail": true,
+                                "auto-pmd-negotiation-is-avail": false,
+                                "required-medium-kind": "wire-interface-2-0:MEDIUM_KIND_TYPE_MULTI_MODE",
+                                "temperature-low-threshold": -93,
+                                "maintenance-timer-range": "dr1L0tnNqZlCFJs0NdBU2TlK5C29bQPoaQa2kpPCo2eWMyOrMpeGarig3kh7b6vlPxn1X4Dd7J9TiYcWfqCiSUyN7PUiNivCPSDMW803S1O2RTQZbkh36PJdwDvbV0GDKbhzk9C4bjYUcOTn8ajeRUsfpPjdIZQsa71m9",
+                                "supported-alarm-list": [
+                                    "ikHg6TW"
+                                ],
+                                "mii-kind": "wire-interface-2-0:MII_KIND_TYPE_QSFP",
+                                "rxlevel-low-threshold": 48,
+                                "auto-negotiation-pmd-selection-is-avail": true,
+                                "wavelength-grid-min": 1031516884,
+                                "performance-monitoring-is-avail": false,
+                                "auto-signal-ordering-is-avail": false,
+                                "configuration-of-rx-sync-preference-is-avail": false,
+                                "eee-is-avail": false,
+                                "temperature-high-threshold": -99,
+                                "admin-shut-down-is-avail": true,
+                                "mdi-kind": "wire-interface-2-0:MDI_KIND_TYPE_SG"
+                            },
+                            "wire-interface-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "performance-data": {
+                                            "es": 274385562,
+                                            "ses": -1280746821,
+                                            "low-power-idle-receiver-ms": 1599518746,
+                                            "low-power-idle-transmitter-ms": -387733841,
+                                            "symbol-error-during-carrier": -1512302079
+                                        },
+                                        "timestamp": "2021-03-24T11:50:06Z",
+                                        "scanner-id": "8DJz4iN3TUbl44JgHR4fJjKJJY0gsf2AKL1PVPKPBV2xZLNzDROe3rQEhIMJXObIrdpnU9cn4eUW",
+                                        "suspect-interval-flag": false,
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -70
+                            }
+                        },
+                        "ethernet-container-2-0:ethernet-container-pac": {
+                            "ethernet-container-capability": {
+                                "supported-fec-interleaver-kind-list": [
+                                    "ethernet-container-2-0:FEC_INTERLEAVER_KIND_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "maintenance-timer-range": "0W7hH2uulDs9Tud75h256RzpHO4WLMZDAYVhSpD53XfOssVxJQuHH46oK3cnH31hUOqM54S0TZOlrKL2A7J9bIpODC3kx4tjST6YPQYJHFW0pz2RHD0SdhyQTC2jyvCjhA96i7HZEEZ3dTMUpEFCW5lHHfSgLvz2XI08HI7eeZ9rSWe9sLMgQZYqeQyZdZT3zUb8uamI9w1Us73MSH3BG1TVJrMPqySZkV7O5mofSp1cx4YhM1",
+                                "supported-alarm-list": [
+                                    "nORdPgA6AfW0bgFyX4lPj",
+                                    "UL7w4Udmk5dESdkXzI4r75DE2BWGvG0pk8NgU0DeXQSP3cNuUJVTPqqRUeppUpG6punjm0xkIh9ElO07yW1ferY0xnpjEYq4kFnGxN0f42LqIMx8A"
+                                ],
+                                "statistics-is-avail": false,
+                                "encryption-is-avail": false,
+                                "performance-monitoring-is-avail": false,
+                                "available-queue-list": [
+                                    {
+                                        "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE",
+                                        "available-dropping-behavior-kind-list": [
+                                            "ethernet-container-2-0:DROPPING_BEHAVIOR_KIND_TYPE_NOT_YET_DEFINED"
+                                        ],
+                                        "available-drop-precedence-kind-list": [
+                                            "ethernet-container-2-0:DROP_PRECEDENCE_TYPE_NOT_YET_DEFINED"
+                                        ],
+                                        "queue-depth-configuration-is-avail": false,
+                                        "wred-profile-per-drop-precedence-is-available": false,
+                                        "available-scheduling-kind-list": [
+                                            "ethernet-container-2-0:SCHEDULER_KIND_TYPE_DWRR"
+                                        ],
+                                        "max-queue-depth": -1948780629
+                                    }
+                                ],
+                                "bundling-is-avail": true,
+                                "supported-header-compression-kind-list": [
+                                    {
+                                        "header-compression-name": "Kr9Qf0QX0axGK6Z0FLrysdw0kVNLhCG23PKaHs8zvF77D67iKyJcMfdY2SJbui5p7PAPiAoN7wULuTV6sEj6Lo4NgFZLX42XUCE442JcqvXNoKTIp4GasCQJaPmZLoWx1AB5vc9Nz6sYJmy8q7aTJ0uTHQTteH07audxymc8lFY41w4jD64f7y0GoT1Dt2KvoP2W4e4hT2dMrh6Wfa3eJ4",
+                                        "mpls-payload-kind-list": [
+                                            "ethernet-container-2-0:MPLS_PAYLOAD_KIND_TYPE_NOT_YET_DEFINED"
+                                        ],
+                                        "compressed-protocol-layer-list": [
+                                            "ethernet-container-2-0:PROTOCOL_LAYER_TYPE_VLAN"
+                                        ],
+                                        "header-compression-mode": "ethernet-container-2-0:HEADER_COMPRESSION_MODE_TYPE_NOT_YET_DEFINED",
+                                        "compressed-header-length": 23500
+                                    }
+                                ],
+                                "support-of-management-frames-without-preamble-is-avail": false,
+                                "explicit-congestion-notification-is-avail": true,
+                                "information-rate-min": -1369634359,
+                                "fec-is-avail": false,
+                                "burst-size-max": -451,
+                                "ingress-policing-is-avail": false,
+                                "supported-fec-redundancy-size-list": [
+                                    "ethernet-container-2-0:FEC_REDUNDANCY_SIZE_TYPE_2"
+                                ],
+                                "egress-shaping-is-avail": true,
+                                "information-rate-max": 606445068,
+                                "admin-shut-down-is-avail": false,
+                                "bundling-group-size-max": -52,
+                                "supported-fec-interleaver-depth-list": [
+                                    "ethernet-container-2-0:FEC_INTERLEAVER_DEPTH_TYPE_2"
+                                ],
+                                "burst-size-min": -17196,
+                                "fec-word-size-max": 25772,
+                                "supported-loop-back-kind-list": [
+                                    "ethernet-container-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED"
+                                ]
+                            },
+                            "ethernet-container-current-problems": {
+                                "number-of-current-problems": 113,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -16847,
+                                        "problem-name": "Wa171zK6H",
+                                        "timestamp": "2020-09-21T21:53:33Z",
+                                        "problem-severity": "ethernet-container-2-0:SEVERITY_TYPE_MAJOR"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-09-27T23:07:34Z"
+                            },
+                            "ethernet-container-historical-performances": {
+                                "number-of-historical-performance-sets": 13325,
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "period-end-time": "2021-01-20T07:10:27Z",
+                                        "suspect-interval-flag": false,
+                                        "history-data-id": "wO0S3Q1TllhyD6kE7fN9GhSRgQlVv6m1MeTQXMBi7SQCY2gXhV6Q4Qzk",
+                                        "performance-data": {
+                                            "queue-utilization-list": [
+                                                {
+                                                    "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_QUEUENAME_NOT_YET_DEFINED",
+                                                    "max-queue-length": 643506562,
+                                                    "avg-queue-length": -1469271821
+                                                }
+                                            ],
+                                            "fec-uncorrectable-blocks": 19013450,
+                                            "tx-ethernet-bytes-sum": "-9223372036854775808",
+                                            "tx-ethernet-bytes-max-m": "-9223372036854775808",
+                                            "fec-corrected-blocks": 1538021436,
+                                            "tx-ethernet-bytes-max-s": -2011203917,
+                                            "time-period": -723350305
+                                        }
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-05-05T18:08:38Z"
+                            },
+                            "ethernet-container-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "timestamp": "2020-10-16T18:52:37Z",
+                                        "scanner-id": "b605d1wP7e1Byw4VcjEMxiV3ZDId8Zak5apabV0j11MzpQmB2Sfr22mUG47O3901chbn53y6Wlyl3UP5F4wH7SBFOAlKKmLWDObISCPGXn2S9RYGNmoU7RrVkNF49iSE73nRx4xmjrfsi516rpSy8cusZ1o0kgErcTaJXH6g9dBjiChJT2a1eEm5FK5ZTBiXvsyk2wBbJ4m1GEDzyNsEjOJYrGQc989wtHRvekGXoURWqmnY9PCswdiPT81V",
+                                        "suspect-interval-flag": true,
+                                        "performance-data": {
+                                            "queue-utilization-list": [
+                                                {
+                                                    "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE7",
+                                                    "max-queue-length": 1316871248,
+                                                    "avg-queue-length": -208388341
+                                                }
+                                            ],
+                                            "fec-uncorrectable-blocks": -785001385,
+                                            "tx-ethernet-bytes-sum": "-9223372036854775808",
+                                            "tx-ethernet-bytes-max-m": "-9223372036854775808",
+                                            "fec-corrected-blocks": 405310528,
+                                            "tx-ethernet-bytes-max-s": 1335195926,
+                                            "time-period": 1370182884
+                                        },
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -44
+                            },
+                            "ethernet-container-status": {
+                                "timestamp": "2021-08-24T12:27:31Z",
+                                "last-10-sec-data-output-rate": 1913824926,
+                                "bundling-is-up": false,
+                                "total-bytes-output": "3099367355651085312",
+                                "total-bytes-input": "4009835517281277952",
+                                "interface-status": "ethernet-container-2-0:INTERFACE_STATUS_TYPE_TESTING",
+                                "loop-back-kind-up": "ethernet-container-2-0:LOOP_BACK_TYPE_BACK_TO_REMOTE",
+                                "statistics-is-up": true,
+                                "last-10-sec-data-input-rate": -568912421,
+                                "forwarded-bytes-output": "8842547555807925248",
+                                "performance-monitoring-is-up": true,
+                                "forwarded-bytes-input": "2050145679843993856",
+                                "remote-site-is-faulty": true
+                            }
+                        },
+                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                        "hybrid-mw-structure-2-0:hybrid-mw-structure-pac": {
+                            "hybrid-mw-structure-status": {
+                                "performance-monitoring-is-up": false,
+                                "segment-status-list": [
+                                    {
+                                        "segment-status-type-id": 16850,
+                                        "operational-status": "hybrid-mw-structure-2-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED",
+                                        "segment-is-reserved-for-tdm": true
+                                    }
+                                ]
+                            },
+                            "hybrid-mw-structure-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "period-end-time": "2020-09-14T00:58:56Z",
+                                        "history-data-id": "OG8pgJGAwsxA9gr27A9C5NGpIDomIh4wX4N5NmFbOcEPt5Rsx14DGD2ogiKYrHngDaljw0md502q6USDVOgBrbRAlCyNbV3O6hZuhmHemKEkwoY",
+                                        "performance-data": {
+                                            "rx-level-avg": 47,
+                                            "es": -1784440187,
+                                            "unavailability": 2066426750,
+                                            "cses": 718978178,
+                                            "ses": -1072580831,
+                                            "rx-level-min": -84,
+                                            "time-period": 1391517634,
+                                            "rx-level-max": 100
+                                        },
+                                        "suspect-interval-flag": true
+                                    }
+                                ],
+                                "number-of-historical-performance-sets": 30329,
+                                "time-of-latest-change": "2020-01-29T04:28:36Z"
+                            },
+                            "hybrid-mw-structure-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -25421,
+                                        "problem-name": "Ppq2g7a3a1fH6WoMOLv9HE1A6kz4Om0DD",
+                                        "problem-severity": "hybrid-mw-structure-2-0:SEVERITY_TYPE_MAJOR",
+                                        "timestamp": "2020-03-19T06:42:26Z"
+                                    }
+                                ],
+                                "number-of-current-problems": -29,
+                                "time-of-latest-change": "2020-07-15T09:07:46Z"
+                            },
+                            "hybrid-mw-structure-capability": {
+                                "supported-tdm-structure-kind-list": [
+                                    {
+                                        "tdm-structure-name": "mro0yezY77e3bIqrDhywMH3FejUJtMDP51QE8pufoIazqsT3Jjsn0n26HXHaBlZGePcm6GBuoEWO6PKI045",
+                                        "tdm-segment-size": -1681474063,
+                                        "max-number-of-segments-reservable": 114
+                                    }
+                                ],
+                                "performance-monitoring-is-avail": false,
+                                "supported-alarm-list": [
+                                    "Y8XFaq02Y7RbtQR5cgB0WzHy9HCfzWfx4457mX9k4SvyIfvNn6NjxvKH4eOEa3b7Z8ed6fxa7VIIa5vx3aIBxkaCzYgJTjISsO5y3uIbhjTrggQkqrVYL5AkVIWO1wytlv1oZCr9NkA3sjnTKaJn7bA2TwIU2ggfDhEvL5Eyi6uKpJv1U6pThZOanoXhFdpam3F80jyaq2NPEaJqh0jyRZB6oynVD"
+                                ]
+                            },
+                            "hybrid-mw-structure-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "suspect-interval-flag": false,
+                                        "timestamp": "2021-05-16T06:36:31Z",
+                                        "performance-data": {
+                                            "rx-level-avg": 12,
+                                            "es": 1151156868,
+                                            "unavailability": -1934337937,
+                                            "cses": 859469538,
+                                            "ses": -2041978475,
+                                            "rx-level-min": 117,
+                                            "time-period": 2038497494,
+                                            "rx-level-max": 15
+                                        },
+                                        "scanner-id": "BssVTwJfweTWLFdluM4zVTsre1J4BBqcVS7OpJWVXPKBmXWQKSpFDJ6RKIVdbdp65pMu0IiPp2iLZeuB6T8BD7sfPflSsKQy1CUTdcJue1868CH6nQISX20EilwC5m2ZQXSV1tq8nqev2VthD3aA6aegvCSsYVjHK4CLxUTMk79eVDwyGy1MI725KNpAIJhkNU5cORZ1Q87",
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 1
+                            }
+                        },
+                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                        "extension": [
+                            {
+                                "value-name": "CCQWbJpzF0OTlLsT5iMWwzLJtT41NdChPk503urAufuITOBQ6oEuPp6ababYnF74ZcW2GnDaDZSwFmeDCT7ri5Bt8EjvjqsiuocaMHdhyXFdjTQNMQeXVHq3lCrwUTGp9TzNsE41CBeNv5B9NH6IppEC159VQPcZAE",
+                                "value": "3iJ4UlaII7bRUSYv9f9M86N3Wu8V5MA04kWRx6rf6C6SmWnw3oibu57qzfew1OoX0kGxj7EhBD9YrxuvVMGiJNIaUWzNLXDDijbtrPK2kTSMimh60PoBv6MpVl5yaIbs1eNkWxfgj72Bmbzm1XYwWCVJP0hZAkkCz7WvF3DQbGjxRTLSIBgwd4f2Wo2xJe1alXxSTaI4I2tAV6kvIt2Vx9QtqK01Y1bbRI4CKMytG1VtZ7ZHATv72dtsXl"
+                            }
+                        ],
+                        "configured-client-capacity": "HAwR6Mpa9BVYJMdiAlMF2RokttUbEGfl8L4epugyXcozYBRqWv6Qfu2AXXLtv0GDDLJ27ZsW3QvTrekfCi5JE0jtXWXkPvXs8GvfxXcBGzmZOyfiQc1mccQ18FlXaaijQFqguuRa452KEh2mlVJq7zrf6F5gPfryUSOgexriCt2gCW",
+                        "ip-interface-1-0:ip-interface-pac": {
+                            "ip-interface-status": {
+                                "errored-packets-output": 13227120,
+                                "last-10-sec-data-output-rate": -335814429,
+                                "forwarded-packets-input": "-9223372036854775808",
+                                "errored-packets-input": -458141747,
+                                "ip-v-4-address-cur-list": [
+                                    {
+                                        "fixed-ip-v-4-address": "8CMvGQMoVDRDl4qvd4kS2pLVCl3hyHtGj73SPHgCc8fxcF2pBf9EEMr9ZuqxbL6uS1mHJvkVDrtH7nZIC0e9NFaE9sckeaH6bVGUqSI3j3DiiC1VC7WhNYWOq01waIvdDb04VIZeLux36qQBpEScCG1VG2rICWW7ZW3UE31hpqcoQ3Z7zJkcid7Y7qzBnvIerM9XHae6AquillpVXBZ7GY5FowgD1ZSk",
+                                        "fixed-ip-v-4-address-prefix-length": -6,
+                                        "fixed-default-gateway-ip-v-4-address": "hs3vqvONF90WWXyV46T2May2NsTxMEq4YtrhQ74vh4k52S1YQMSCWjxCLq9pXAtNVN4MU893dt97daX4WQyL15nMow3lYx0Uc5y6dH2i3bhgdfc1XLMYI1C6yFjo4ki8hQfuqhFtkWBx3OySrlI1mc0MSbbOnlXEc41udGXxuq4y6CqxP1rcdrQ5u1MSnBwrFxVKdKhIad8hPqGFr7JFqzCVtg"
+                                    }
+                                ],
+                                "broadcast-packets-output": 495873710,
+                                "dropped-packets-input": 324876428,
+                                "loop-back-kind-up": "ip-interface-1-0:LOOP_BACK_TYPE_BACK_TO_LOCAL",
+                                "dropped-packets-output": -1770625927,
+                                "unicast-packets-input": "-9223372036854775808",
+                                "forwarded-packets-output": "-9223372036854775808",
+                                "neighbor-list": [
+                                    {
+                                        "neighbor-mac-address": "Rb1oJW8OyhoIuwRkPyRgxsVYTqLmGqWyBXOcTX1jeh2JGTVvjELR6zHZRkexC2X50MiLBb5Hs7i0Sdv4J9NPAmHrGNYaPOfPsxt3AyK3x33h8rlSA0zam8tUNj4D7kkzJNukdffKaa2aBf238u5uCyhiSlVZx7rhNVB02QDcSxnuEhpMLv9g3qyVLlNjkesZ13S4Lv8DUvZyFpdiUmqPMYLpbyIoE2nF5fJIC",
+                                        "neighbor-ip-v-4-address-list": "eof5XUu25gov62mJrp92NN43kai4KNOYbV40Iq2NziixkwgMWhOJWSMgUXcFKSDNOzOw0Ibz1t6d0eZOnFxjyczs1EZLwvqc46IWPTnIflN7zNVWkk7Sozdpdc2BHtOEzwAgiYQpjEwLjjzDDHo28",
+                                        "neighbor-origin": "ip-interface-1-0:NEIGHBOR_ORIGIN_TYPE_NOT_YET_DEFINED"
+                                    }
+                                ],
+                                "timestamp": "2021-08-30T02:54:23Z",
+                                "forwarded-data-volume-output": 1244033170,
+                                "total-packets-input": "-9223372036854775808",
+                                "last-10-sec-packet-input-rate": -2059021359,
+                                "last-10-sec-packet-output-rate": -1149859357,
+                                "vpn-binding-is-up": true,
+                                "multicast-packets-output": 487632260,
+                                "broadcast-packets-input": -598219131,
+                                "last-10-sec-data-input-rate": 295613206,
+                                "interface-status": "ip-interface-1-0:INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN",
+                                "statistics-is-up": true,
+                                "total-packets-output": "-9223372036854775808",
+                                "multicast-packets-input": -1705227763,
+                                "data-volume-input": 1769494048,
+                                "data-volume-output": -1420286585,
+                                "fragmented-packets-input": 747621570,
+                                "ip-address-origin": "ip-interface-1-0:IP_ADDRESS_ORIGIN_TYPE_LINK_LAYER",
+                                "unicast-packets-output": "-9223372036854775808",
+                                "forwarded-data-volume-input": -1204039005
+                            },
+                            "ip-interface-current-problems": {
+                                "time-of-latest-change": "2020-12-17T03:39:06Z",
+                                "number-of-current-problems": -13,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 1855,
+                                        "problem-severity": "ip-interface-1-0:SEVERITY_TYPE_MINOR",
+                                        "problem-name": "gr8B6uqdj2Yz3kYmne4KZ2S4rkEmsCaJ3ac1EufPx5hspfPNlLplOap7uVtWxwxsGCll6A2vGjYXzFCUi276cw6yjzmQ5UaEowRmYTKwdAmM7YypSGoW4uuo3R61D9x",
+                                        "timestamp": "2021-05-31T12:30:58Z"
+                                    }
+                                ]
+                            },
+                            "ip-interface-capability": {
+                                "burst-size-max": 23522,
+                                "statistics-is-avail": false,
+                                "supported-alarm-list": [
+                                    "rMReEzFK2knILWV5ps6BFuG857yNnyLHdCNR4su6NJGqxuvXWBqtY6B369ItAl2NYQw2i00XBGf9aLY6eoA4n3Zt5AOFVRkTHQNRJFHkmWlozjvGAXKX0Cq5c6C7XWTwNygoeXAsTWQl7d",
+                                    "HaDw3fO0rVvrSrkh6SxuYu5qfThASutsx7YsmNkGIP7shjJf3gC2CzkSsBkcYGEnNDP1i9HSZGk8ZWf34R5HqhrKTDXJjB6Y6N0oOzgF8tF7pV2lM72dhlX2ZMLaoJ9uo1TcA1KIupILkK77K1c1n13eOGo4ppqFqbRTdttzTbd5Ok4ydgrsauGQaXUrmc6FoPyBjT245f"
+                                ],
+                                "information-rate-min": 1526449188,
+                                "maximum-number-of-ip-v-4-addresses": -17418,
+                                "fixed-default-gateway-configuration-is-avail": true,
+                                "maintenance-timer-range": "Mc88IBsZM1wCZlro0lu61Prj8SspHeNtqVu0oWZ2XnFXI6dIrzHkh8EpS6OzctUugouEclGaJlZjs42LwJ6NJKcBIS2MlWgBdC7pXNry9qStnUeTvkG6WKHwuBiPxyiC2p204tydMqG9cVUz7AF4cesGPLnfbxReWLe07E6TXEU1rOBzg8vsfX0WAn3MUV0Iy6AFKGyzdkBE8cdocAIrqIo",
+                                "admin-shut-down-is-avail": true,
+                                "dhcp-client-is-avail": true,
+                                "egress-shaping-is-avail": false,
+                                "information-rate-max": 1615010340,
+                                "burst-size-min": -29807,
+                                "ip-v-6-is-avail": false,
+                                "maximum-transmission-unit-max": -1857,
+                                "ingress-policing-is-avail": true,
+                                "maximum-transmission-unit-min": 3830,
+                                "supported-loop-back-kind-list": [
+                                    "ip-interface-1-0:LOOP_BACK_TYPE_NONE"
+                                ],
+                                "vpn-binding-is-avail": true,
+                                "arp-proxy-is-avail": false
+                            }
+                        },
+                        "termination-state": "core-model-1-4:TERMINATION_STATE_TERMINATED_BIDIRECTIONAL",
+                        "mac-interface-1-0:mac-interface-pac": {
+                            "mac-interface-configuration": {
+                                "interface-name": "ZKjQNUi93vPKBqjGM5cxZRZqKEGAjsIacTSRFb0IGQs98MHMJUbALa1nOHYZ1y9ej25Y5YyDO0EOEmAg8LQLNR9BrZtspCyIwwytu6YaYDYvZqLZ3tKQdLjEKMY1",
+                                "loop-detection-is-on": true,
+                                "broadcast-frame-suppression-is-on": true,
+                                "configured-mac-address": "FV11",
+                                "maintenance-timer": 1894389800,
+                                "statistics-is-on": false,
+                                "performance-monitoring-is-on": true,
+                                "fragmentation-allowed": "mac-interface-1-0:FRAGMENTATION_TYPE_ENABLE_256_BYTE",
+                                "link-loss-forwarding-is-on": false,
+                                "loop-back-kind-on": "mac-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE",
+                                "transmitted-frame-format": "mac-interface-1-0:FRAME_FORMAT_TYPE_802.3",
+                                "flow-control-mode": "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_SEND_AND_RECEIVE",
+                                "maximum-share-of-broadcast-frames": 70,
+                                "problem-kind-severity-list": [
+                                    {
+                                        "problem-kind-name": "5kEQvata1mjyYYlZRKZR3XlkiHTg1nz6zeP4ga6hwpHug2m7ElQHa41kLMAE11DAfsxouvF0Vnn3pJ24WLD6PxqsbS6dTJN13cpxI4qvjNqBokxk5aqMHIeTAdYlWDmSQLpqIPV1uduSx1cDcuhL4wwE",
+                                        "problem-kind-severity": "mac-interface-1-0:SEVERITY_TYPE_MINOR"
+                                    },
+                                    {
+                                        "problem-kind-name": "Sx0epQSH8so3lT8QDFRQaVcszhQ5NzsFYsMoawXiYldj6l1KSTs3GEnfNddBEF8CZUS9iPjg3ws9RtTBedEVKT2x6f0CM",
+                                        "problem-kind-severity": "mac-interface-1-0:SEVERITY_TYPE_WARNING"
+                                    }
+                                ],
+                                "loop-port-shut-down-is-on": true,
+                                "maximum-frame-size": 12956,
+                                "mac-address-configuration-is-on": true,
+                                "interface-is-on": true,
+                                "link-loss-forwarding-delay": -48
+                            },
+                            "mac-interface-status": {
+                                "errored-frames-output": 550871684,
+                                "loop-detection-result": "mac-interface-1-0:LOOP_DETECTION_RESULT_TYPE_NOT_YET_DEFINED",
+                                "forwarded-frames-input": "-9223372036854775808",
+                                "timestamp": "2020-01-03T22:29:53Z",
+                                "multicast-frames-input": 1466775650,
+                                "unicast-frames-input": "-9223372036854775808",
+                                "last-10-sec-frame-output-rate": -406438775,
+                                "total-frames-input": "-9223372036854775808",
+                                "multicast-frames-output": 855292074,
+                                "dropped-frames-output": -161640259,
+                                "statistics-is-up": false,
+                                "forwarded-frames-output": "-9223372036854775808",
+                                "flow-control-mode-cur": "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_AUTO_NEGOTIATION",
+                                "received-ethernet-frame-format-cur": "mac-interface-1-0:FRAME_FORMAT_TYPE_802.3",
+                                "last-10-sec-frame-input-rate": 1890730860,
+                                "errored-frames-input": 270658454,
+                                "loop-back-kind-up": "mac-interface-1-0:LOOP_BACK_TYPE_NONE",
+                                "interface-status": "mac-interface-1-0:INTERFACE_STATUS_TYPE_TESTING",
+                                "mac-address-cur": "ZM6P5mKtOTcaFOgSk3ue62cdUP0VWvJVaPC7bmBS8NUN",
+                                "broadcast-frames-output": -197425545,
+                                "total-frames-output": "-9223372036854775808",
+                                "fragmented-frames-input": 213102864,
+                                "performance-monitoring-is-up": false,
+                                "unicast-frames-output": "-9223372036854775808",
+                                "broadcast-frames-input": 1144732366,
+                                "dropped-frames-input": -1211526501
+                            },
+                            "mac-interface-historical-peformances": {
+                                "number-of-historical-performance-sets": 16577,
+                                "time-of-latest-change": "2020-01-03T16:55:47Z",
+                                "historical-performace-data-list": [
+                                    {
+                                        "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "period-end-time": "2021-07-30T12:21:15Z",
+                                        "performance-data": {
+                                            "mac-pause-frames-ingress": -754947963,
+                                            "tagged-frames-ingress": "-9223372036854775808",
+                                            "jabber-frames-ingres": -511646235,
+                                            "mac-pause-frames-egress": 829386482,
+                                            "mac-control-frames-egress": 1787053520,
+                                            "oversized-frames-ingress": 82176224,
+                                            "undersized-frames-ingress": 933610038,
+                                            "frames-of-1024-to-1518-byte": "-9223372036854775808",
+                                            "frames-of-64-byte": "-9223372036854775808",
+                                            "frames-of-512-to-1023-byte": "-9223372036854775808",
+                                            "frames-of-65-to-127-byte": "-9223372036854775808",
+                                            "mac-control-frames-ingress": -1205025439,
+                                            "frames-of-256-to-511-byte": "-9223372036854775808",
+                                            "tagged-frames-egress": "-9223372036854775808",
+                                            "frames-of-128-to-255-byte": "-9223372036854775808",
+                                            "fragmented-frames-ingress": "-9223372036854775808"
+                                        },
+                                        "history-data-id": "uwBjh",
+                                        "suspect-interval-flag": false
+                                    }
+                                ]
+                            },
+                            "mac-interface-current-performance": {
+                                "number-of-current-performance-sets": 113,
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "elapsed-time": "-9223372036854775808",
+                                        "suspect-interval-flag": false,
+                                        "timestamp": "2020-04-27T06:57:10Z",
+                                        "performance-data": {
+                                            "mac-pause-frames-ingress": -1190641277,
+                                            "tagged-frames-ingress": "-9223372036854775808",
+                                            "jabber-frames-ingres": 1612942972,
+                                            "mac-pause-frames-egress": -1427877023,
+                                            "mac-control-frames-egress": 2050166300,
+                                            "oversized-frames-ingress": 1466576164,
+                                            "undersized-frames-ingress": 1125694092,
+                                            "frames-of-1024-to-1518-byte": "-9223372036854775808",
+                                            "frames-of-64-byte": "-9223372036854775808",
+                                            "frames-of-512-to-1023-byte": "-9223372036854775808",
+                                            "frames-of-65-to-127-byte": "-9223372036854775808",
+                                            "mac-control-frames-ingress": -547301919,
+                                            "frames-of-256-to-511-byte": "-9223372036854775808",
+                                            "tagged-frames-egress": "-9223372036854775808",
+                                            "frames-of-128-to-255-byte": "-9223372036854775808",
+                                            "fragmented-frames-ingress": "-9223372036854775808"
+                                        },
+                                        "scanner-id": "3ohDnWMsulduzlumvIdiT2cWSF2z3ye7WvCbrgDOBQa2cwoz6BRZvVNnBPWwnbvby7m0fZGIQQKUe9tkCcb87YvANk72vud3urVJqtk8b42pdvJQzUYHSl9xF8r2Dw6ZXTAofUoq"
+                                    }
+                                ]
+                            },
+                            "mac-interface-capability": {
+                                "supported-flow-control-mode-list": [
+                                    "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_SEND_AND_RECEIVE"
+                                ],
+                                "statistics-is-avail": false,
+                                "broadcast-frame-suppression-is-avail": false,
+                                "supported-frame-format-list": [
+                                    "mac-interface-1-0:FRAME_FORMAT_TYPE_ETHERNET_2"
+                                ],
+                                "admin-shut-down-is-avail": true,
+                                "maximum-frame-size-min": 23808,
+                                "loop-detection-is-avail": false,
+                                "performance-monitoring-is-avail": true,
+                                "mac-address-configuration-is-avail": false,
+                                "maintenance-timer-range": "VUBIa3Bf8w30OyiTwC4GbFfQZzAvseof0ZY2",
+                                "supported-alarm-list": [
+                                    "g3PLHGE6Wvs2zOu0ESXkvjIztI7CqESzIIkhgQn5mP7NvuO1mDmRWWiiEqMX4EwEeIVvyisUZrInVooiTK1HHkZdCL2yiy5wg0THblB2NbpArOSkqU2Z6TdAxf8PGddO67vhkZbZ2BAuhkGH6AH4mMETTNAzSFoYE",
+                                    "h3XcVDK5wgHAWT83B7DcCXiSdaR3cDumyrym4jrAr12gU2jn9OrDEJvRLeUYKociHCELV6df77vTaG8jnAP1bcSXjEN3URdBtKehIrwHyTsIzAUW2BP6NzV6dA1ZrfAMZG3H7roycQ8MiUAdvijbReh5OjW7ypTp5P65gmvt4D7eqzrVRK6JQgGEruDZTxgZme4uszPw4OCmo4a7G8Ix"
+                                ],
+                                "hardware-mac-address": "H7ehdkAp4sPIAkckm1FubT0fC0DSEjEdrSvw45V1qCJ0WWdaPKwSEo78pL0V4x9nhwTeBGf1jQU7E7imJOef5mnuZghVNib4O4aqDpjO85VM458OMn3RBrdAzunmNyiBvtT8K5WSaJFfPF3tU6kvppXYTlcyLn2gIVosScd3WSiDpdYkb",
+                                "maximum-frame-size-max": 14257,
+                                "supported-loop-back-kind-list": [
+                                    "mac-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "link-loss-forwarding-is-avail": true,
+                                "loop-port-shut-down-is-avail": false
+                            },
+                            "mac-interface-current-problems": {
+                                "time-of-latest-change": "2020-11-26T18:42:23Z",
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 30763,
+                                        "problem-severity": "mac-interface-1-0:SEVERITY_TYPE_WARNING",
+                                        "problem-name": "7ElTjO4ICiCwuqvT9qbNaYaHNeYRtmpt0KmbyiU3AorWPWIYfTLhJNYo1OfubEX3gc7PuTKXh3T60tW7ezoXmedn2tK5Zz1gL8X81H5aCQ9uk5ByFRoT5Bh0W15WsY4e61eZAjac1bHdgaEN22HZvQZkJX8bVchUdvLNGVZI6yNfJrULltKJbC3UrbYen70ADMfbz6TyFzNo0z1m3L5ef01G3ZNq6NSB",
+                                        "timestamp": "2020-05-29T05:24:32Z"
+                                    }
+                                ],
+                                "number-of-current-problems": 106
+                            }
+                        },
+                        "pure-ethernet-structure-2-0:pure-ethernet-structure-pac": {
+                            "pure-ethernet-structure-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "timestamp": "2020-09-18T18:17:37Z",
+                                        "performance-data": {
+                                            "cses": 1615853464,
+                                            "es": 108335202,
+                                            "rx-level-max": -126,
+                                            "ses": 772665094,
+                                            "rx-level-min": -78,
+                                            "rx-level-avg": -74,
+                                            "time-period": -118521819,
+                                            "unavailability": 24352990
+                                        },
+                                        "suspect-interval-flag": false,
+                                        "elapsed-time": "-9223372036854775808",
+                                        "scanner-id": "0siEGthHx7YSNZza5osSvCyjMYuzdxMd0WJ"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 67
+                            },
+                            "pure-ethernet-structure-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "period-end-time": "2020-04-15T01:07:57Z",
+                                        "performance-data": {
+                                            "cses": 880753912,
+                                            "es": -1536875629,
+                                            "rx-level-max": -21,
+                                            "ses": 1419820892,
+                                            "rx-level-min": -116,
+                                            "rx-level-avg": 64,
+                                            "time-period": 1238689016,
+                                            "unavailability": 1521057150
+                                        },
+                                        "history-data-id": "2niMLVc4z3q0gYElQA4gS4vyWs7Co6siuK5fF9b6ct7sjLN1eRh6OMEC6DenKGF6jClYMoXYR4rbH6cVQuTw8q873fuNV9TeM65qm2oeYHhxOttwPe2YEa5ApzfdA1je7gEuaVA8uRGac1G27I0MLXm2oBfYCz5CPJY0wy01hybtrSvzsnddczgA2vrxWo1E7ZwwpoxGXA1gkxPNM20ZtgroEKV",
+                                        "suspect-interval-flag": true
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-10-30T15:46:19Z",
+                                "number-of-historical-performance-sets": -4873
+                            },
+                            "pure-ethernet-structure-status": {
+                                "segment-status-list": [
+                                    {
+                                        "segment-status-type-id": -24075,
+                                        "operational-status": "pure-ethernet-structure-2-0:OPERATIONAL_STATE_TYPE_ENABLED"
+                                    }
+                                ],
+                                "performance-monitoring-is-up": true
+                            },
+                            "pure-ethernet-structure-capability": {
+                                "supported-alarm-list": [
+                                    "szxjT7dGUap"
+                                ],
+                                "performance-monitoring-is-avail": false
+                            },
+                            "pure-ethernet-structure-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -23068,
+                                        "problem-name": "dw1yc9k8mP4XYwn3BnvHn7VkspAypL0ua13mbfnxWrnNQKQr0d0ndVAFla5CO56YZ1c2hzrdTO0JrJ2rW3O9QoG3rMF7JEXIF9CWB42mS25jDZKAUrJLHqG04e7NS4op60mHWg3Pa00OZDoM4ZpDh5EljL13Qh",
+                                        "timestamp": "2021-10-01T01:29:32Z",
+                                        "problem-severity": "pure-ethernet-structure-2-0:SEVERITY_TYPE_NOT_YET_DEFINED"
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-05-12T06:38:39Z",
+                                "number-of-current-problems": -88
+                            }
+                        },
+                        "lp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK",
+                        "name": [
+                            {
+                                "value-name": "oxDOJl4cp3Xjz9A8Tlvy2Tj9QbyaaLPqatfTObX56MpFVZNOcaf74ygMKOWMrEcBZjmFujKA69710UI5XXc1vsF78tTz7Y2YhoDEHg6Fpezi0hfXerQBLvJTZukYseXC",
+                                "value": "sgbImJ0AiiBzxqFQh8BMRmDeyCGMzag1ijCF2C7kUALj1q9azCWiYAoo45av7ioqB0X"
+                            }
+                        ],
+                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE",
+                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY",
+                        "configuration-and-switch-control": [
+                            "efQNz6Te31Valt45hkjODCjYwzsl4i4ixVXYTI4OK0Y5t2aDetrKXKImc3H8lLjKygJrZNfBN5y97AMe35QTIqfUtWUOzdz8mardXzGDEeMEOySJvAud0JZuxUiZZJ7dTqqRZ6mEc8i0y2C3C6huI8Y7296US57EwynnwJ1JRbBh55kz4t4MC2Tw30qWXyAtYXRmyK5pOzGTwS"
+                        ],
+                        "fc-blocks-signal-to-lp": "mxeQr0mv0NjPdLbbA2x8EvpsW5ekPHV361Tp1gU1V5J8QUbqOAysXXNTU16CA1Fy2rX4HKXuHGuysFQg7hB56oQ1hWvJX29StYO2ADwic0QExyVFPwKWMAPVxkEmmF6QDUSeqhwChegPMbuuz6qlGf85rMkNj",
+                        "air-interface-2-0:air-interface-pac": {
+                            "air-interface-current-problems": {
+                                "number-of-current-problems": -73,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 17208,
+                                        "timestamp": "2021-03-28T09:40:26Z",
+                                        "problem-name": "TjSuplntAloo64BcaJVc6nZIdOhjUHtFSm99HoC9C1xI50M7KzjIXai2QzmK9Pp",
+                                        "problem-severity": "air-interface-2-0:SEVERITY_TYPE_NOT_YET_DEFINED"
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-12-28T04:38:02Z"
+                            },
+                            "air-interface-status": {
+                                "xpd-cur": -15,
+                                "transmission-mode-cur": "tmbm4Dglu20fyM7WAI2dXAjalik4jyPMVS8Rvo4Zi47IIeEbOGoL8zVtJ7p2y6OlYW4mc8dn4k5MqKXfid0rFOMoV4rta7",
+                                "rf-temp-cur": 84,
+                                "mimo-is-up": true,
+                                "tx-level-cur": 112,
+                                "local-end-point-id": "nyCXOplnYv0S54WghpeKb4qgOULF1DOg3j6SAjfqH7bM372ko84zdmPT8sq1Y7i1qgT0",
+                                "rx-level-cur": 87,
+                                "link-is-up": false,
+                                "performance-monitoring-is-up": false,
+                                "xpic-is-up": false,
+                                "remote-end-point-id": "0i87tU3BXnZ5sraO84XBuYrB8sTgmLIe4QmxDp0AESx6jINrECU0slCtOnJ29jg52uCFLv7qnEoye3ZSxMTS7nlNKWHL8QQaktPYYWodAELHICr7ocZozc3c1LX9BOjN98LZ414wGPdgjxfIJfYbr1nsMcBfSU3TUGSYIOngvAoP7DpJKnU4o9w3d0i6MdZHUKxuyUC4nSLmva58pRcFSII6ATcf63OSFle68I2nAN",
+                                "received-radio-signal-id": {
+                                    "numeric-radio-signal-id": 48107,
+                                    "alphanumeric-radio-signal-id": "yr8b9TMt76jIbE7MATprVgSj763Z2kZsLZvMSh70oqAz5HdxsuYnKIyKOBBINs2rrx5cGd44vEvseIZGcPWPxurdY2NLnP4Oea0Vn4ZSJnlX5kva2rRzWiFUcsxziCgwMgj1dbTWy6LvrgxtAoUwyziD2H4cbkAXtUYG"
+                                },
+                                "auto-freq-select-is-up": false,
+                                "tx-frequency-cur": -874336147,
+                                "rx-frequency-cur": 1852605556,
+                                "atpc-is-up": true,
+                                "radio-power-is-up": true,
+                                "snir-cur": -101,
+                                "loop-back-kind-up": "air-interface-2-0:LOOP_BACK_TYPE_IF_TO_LOCAL",
+                                "interface-status": "air-interface-2-0:INTERFACE_STATUS_TYPE_UP",
+                                "alic-is-up": false
+                            },
+                            "air-interface-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "period-end-time": "2020-05-15T23:27:58Z",
+                                        "performance-data": {
+                                            "snir-max": -42,
+                                            "unavailability": -33662717,
+                                            "rx-level-max": 44,
+                                            "xpd-max": -9,
+                                            "ses": -1090184123,
+                                            "rf-temp-max": 39,
+                                            "tx-level-max": 43,
+                                            "es": 1208229650,
+                                            "tx-level-min": 125,
+                                            "tx-level-avg": -15,
+                                            "snir-min": 123,
+                                            "snir-avg": -49,
+                                            "time-period": -548261447,
+                                            "cses": 1284029208,
+                                            "defect-blocks-sum": -19030,
+                                            "rx-level-min": 98,
+                                            "rx-level-avg": 44,
+                                            "rf-temp-min": 53,
+                                            "rf-temp-avg": -117,
+                                            "time-xstates-list": [
+                                                {
+                                                    "time-xstate-sequence-number": 59,
+                                                    "transmission-mode": "uAYB54iEgTrPms4Ng7boIDCB5IQ5Y6zkypWEt6iJZBzm",
+                                                    "time": 1452849998
+                                                }
+                                            ],
+                                            "xpd-min": -101,
+                                            "xpd-avg": 99
+                                        },
+                                        "suspect-interval-flag": false,
+                                        "history-data-id": "uHrsJTxh9ClcWLlf9VzYUVBK1GeW64ZBDqVmbswlWRpSvK0wxzujmX4fDi3Ke3dSl06xsuKge91JL1fjsBCHryWWI0yPVLzgLFN52pegyfZk86vAz790y6X8YnXT9w1M4HS666mFddRlbmNKlXDTVs2TPREQoFDsenqllE0qRJDU5qwqf1c2t6VbXr1d"
+                                    }
+                                ],
+                                "number-of-historical-performance-sets": -2841,
+                                "time-of-latest-change": "2020-04-01T12:47:50Z"
+                            },
+                            "air-interface-capability": {
+                                "expected-equals-transmitted-radio-signal-id": false,
+                                "duplex-distance-is-freely-configurable": false,
+                                "supported-radio-signal-id-datatype": "air-interface-2-0:RADIO_SIGNAL_ID_DATATYPE_TYPE_NOT_YET_DEFINED",
+                                "rx-frequency-max": 924524758,
+                                "supported-loop-back-kind-list": [
+                                    "air-interface-2-0:LOOP_BACK_TYPE_RF_TO_LOCAL"
+                                ],
+                                "direction-of-acm-performance-values": "air-interface-2-0:DIRECTION_TYPE_RX",
+                                "adaptive-modulation-is-avail": false,
+                                "supported-alarm-list": [
+                                    "190wVaFU8DLta7b1QQ5HHlEeOu7LYORSXSoKU3w3zhoJhzC7pzHZVldJPkmG0dyXXOASS6NjgbUxKxE16d0TzdugqQOq4mgT3QLVOy6WB0llp0nw5fpElUNLCBbyQrsT95GQwEM7E8t40Is5XJCavhV8K7yAy0lA6Tqux4B4cW04Es2",
+                                    "NN7cVmSEsB4u8K0UDE6XqyX6R7wuOC6tqdGdsqRUTVpUGpObWM8ecYd3XJqDlo7DBFR35IQQEfKcwqfscnHhdUc3DCGY0Nuuklpp",
+                                    "O5unwDUhrw7rBOamIzz6eUpYBXLKkWn01SnpvhHWFOf9uqv5RW36Is4jpHVBDjCwbZWG9vuObKXG2lDThGZ08Wbqv711ivxtnt1wYnk27aI9vd3MTUE1QIjeHdfZIMk58dtYAG0AQAJlNEZGzwAh6TvNYKEzpQwxV0vvGo5oYHBMdAsMYUW4GjJEWf5lXCKSu7",
+                                    "WCYZ5GRT2pcnNlrSPFM9nj",
+                                    "r1tCVLQp7eCIi6CUeHnZlSck7E9TBjU2cnw71ex8s1ID7cpeTM56whqDVsopLirXxQXy4mGpng2nsrBd5GkBPK6Dcu2PMlNjbKSg6qFlzHA103f5JzGzbE4g865MrK5DmPLk8qGHZ8AZcPWVgumk8qAgox2QiZlEH6ZHoxgnFQeRy2FGwT0EcsMA0GiaxDO6",
+                                    "78zmSLTj0dngUElORojl5aeKEA5ZZmU7umlf76y0kN8eslVbK6wHgKjMkgDcvqbRMo6LvwDPkLVE7IPJPliXYBKaKfmfFp6rO5dbBQSNuFrtog45um2sPECrURGr8F",
+                                    "3EEzNszxz70Z0lzY7ZsE43I80I5w27S6DpxqR6Xi5Ph53J3aAnOwjpxb7CH2Js0eJpEAntKsb1qeClodJcB2B85BKMvl6nzPM5h"
+                                ],
+                                "tx-frequency-max": 707058184,
+                                "maintenance-timer-range": "Sylr0QClvPeoLFgycqG6T1vZsaDu7euZMHiEqV0VC6coDsWQSuODvbuXd0jkeNc0nuFNhxAUDMag66YRsFmQQRF4RZo5EAX1XuG",
+                                "transmission-mode-list": [
+                                    {
+                                        "transmission-mode-name": "AvEZH1QGbpf538QnTNZbfRXqfyJjEsTfPp6wqW5CmczplhEe4EhbneBCMkVjFGqmYwTgsQSGUj6fAKmEgDPEKigwD4HaC7wADhR67BE2VK9nnn2v1J9D2i1xmJHYQdruvisuL6oGJq4YNYtGzvj",
+                                        "transmission-mode-rank": -1307350097,
+                                        "supported-as-fixed-configuration": false,
+                                        "am-upshift-level": -99,
+                                        "tx-power-min": -53,
+                                        "am-downshift-level": -96,
+                                        "symbol-rate-reduction-factor": 49,
+                                        "channel-bandwidth": -1273787045,
+                                        "xpic-is-avail": false,
+                                        "code-rate": 80,
+                                        "tx-power-max": -79,
+                                        "rx-threshold": -17536,
+                                        "modulation-scheme": -10782
+                                    }
+                                ],
+                                "encryption-is-avail": true,
+                                "duplex-distance-list": [
+                                    -101128399
+                                ],
+                                "atpc-range": -76,
+                                "performance-monitoring-is-avail": false,
+                                "auto-freq-select-is-avail": false,
+                                "tx-frequency-min": -1742253405,
+                                "rx-frequency-min": 1566646020,
+                                "type-of-equipment": "EPGwWSAUVeKlG4k5I6XMCPkUrSPJkfAY48m00WMO2x1ItlFcjuYVbbPuVF67UG5ROjJG7wmaVnKgAqsTUjOYmwsh3ypPemGUGqtFOPHJ5sZFSkrEvfuRDX8GvpwCM4okuRZiHHTM1LjL5KhsSMjvJ",
+                                "atpc-is-avail": false,
+                                "supported-radio-signal-id-length": 5276
+                            },
+                            "air-interface-current-performance": {
+                                "number-of-current-performance-sets": -62,
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "timestamp": "2021-07-26T12:01:51Z",
+                                        "scanner-id": "QXSChrMaW5QzSYmo2c41Zbmpsp6CvePd3HPc0ufXr5ok3CAYOwZOHe51D3v8hclcM3hMxwBQBZ2xuCni0eYIs3BX6Z5fbjkXmBCL7dBA5EZz8mR9tIJNDcLCbIRn13cfEO0D2ue70dy0sp9V7KADXlf84YnX",
+                                        "performance-data": {
+                                            "snir-max": 50,
+                                            "unavailability": 1194110748,
+                                            "rx-level-max": -94,
+                                            "xpd-max": -117,
+                                            "ses": -412009557,
+                                            "rf-temp-max": 71,
+                                            "tx-level-max": -102,
+                                            "es": -523428381,
+                                            "tx-level-min": 16,
+                                            "tx-level-avg": 86,
+                                            "snir-min": -37,
+                                            "snir-avg": -102,
+                                            "time-period": -327312503,
+                                            "cses": -1569615803,
+                                            "defect-blocks-sum": 16860,
+                                            "rx-level-min": 122,
+                                            "rx-level-avg": -108,
+                                            "rf-temp-min": 78,
+                                            "rf-temp-avg": 0,
+                                            "time-xstates-list": [
+                                                {
+                                                    "time-xstate-sequence-number": 40,
+                                                    "transmission-mode": "JKs3401vTBAq5pla3YfR9FQyybIsZJKAt4vqXwVQ8n8dMlnIkvzl2iUBtu3s5F2rJyRGWEo41oaFKpn4UPhX7bqAyl2D0W4BmNajryfsXp8zPnvBcMyjQQLobFT3CYFQDP15fhp4yxvfN0RZNhbv0WTbCMf6CMO8tQdAZCFx22FP3",
+                                                    "time": 246918630
+                                                }
+                                            ],
+                                            "xpd-min": 115,
+                                            "xpd-avg": 25
+                                        },
+                                        "elapsed-time": "-9223372036854775808",
+                                        "suspect-interval-flag": false
+                                    }
+                                ]
+                            }
+                        },
+                        "label": [
+                            {
+                                "value-name": "C4QoxuHqMQAdkowiYUGURIp",
+                                "value": "0OhuOe0jaIHz4pZR7r4sQsCGfbB6T0PMG68vc0OfInONMGwM7AeX3IEiT7gF76jG4r39jRo164GTK4FSFLHItdSfk0Uk6503w3cPMAISEhDhla1SNIs9Oko0lakjfcmL7ysL02wxb1OpcPhZxK0dWoehyytNDPqCgKg8NMFQNtfRipJI1JVX097yAAm5pEHxpXG4BlUhP28ZrJHslvhlEoT6Y7bgMTNbIt7kH1BoVBnelXGGkY1YeMXdU8tGTg"
+                            }
+                        ],
+                        "is-protection-lock-out": true,
+                        "tdm-container-2-0:tdm-container-pac": {
+                            "tdm-container-historical-performances": {
+                                "number-of-historical-performance-sets": -27141,
+                                "time-of-latest-change": "2021-01-09T10:00:10Z",
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "period-end-time": "2020-11-27T08:52:11Z",
+                                        "suspect-interval-flag": false,
+                                        "history-data-id": "URtZHh7L7HBUlZnSsTAknmivDoLcO7sAQVrx5yac7DZlDm5Xfx9CTs0pQLtwSVYIJp7OP9SPNRaidf7kM8XxAPOiAhGk5wUOV1uD2msHeCRjJYEn7tMzatKKKi4HPQvKJZfLeHlsbcDU399auWBEhlo1EkBl265LYdxcUSw6W9SZbU1FIDkZQASmVtHXsFBqS0uMS0KG1vGcpHS7kc63MYpzk7pMM04E0yi",
+                                        "performance-data": "CvcdYO84YzXNMwAwswQ0CU68hdnGq"
+                                    }
+                                ]
+                            },
+                            "tdm-container-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 665,
+                                        "problem-name": "1K8Fk7j2G63fIWLFqH8Iidu1OmDapcKqOS50Ro2xvYM5MqD4ZLMhY9aMvOPM0z4GsaGbqBJNznTdFwhE9VV74YTsMIeEajculSFLtgrUEc7bIoQRcDQgtJIfkXLm8XQtIv63MpYiB5tbmb2yHKGampiGe32eTKHBfFE15CbGAFSOIMeppUsLbKjpFdD",
+                                        "problem-severity": "tdm-container-2-0:SEVERITY_TYPE_MAJOR",
+                                        "timestamp": "2021-03-26T12:17:19Z"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-10-19T14:21:04Z",
+                                "number-of-current-problems": 92
+                            },
+                            "tdm-container-status": {
+                                "loop-back-kind-up": "tdm-container-2-0:LOOP_BACK_TYPE_BACK_TO_REMOTE",
+                                "performance-monitoring-is-up": false,
+                                "interface-status": "tdm-container-2-0:INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN",
+                                "statistics-is-up": false
+                            },
+                            "tdm-container-capability": {
+                                "performance-monitoring-is-avail": true,
+                                "supported-loop-back-kind-list": [
+                                    "tdm-container-2-0:LOOP_BACK_TYPE_BACK_TO_REMOTE"
+                                ],
+                                "supported-tdm-container-kind-list": [
+                                    {
+                                        "tdm-container-name": "E4T3CIvDQQ2GDPADGWMZkiK7KKVJSA5owQj8qPDhFGPanpNVdrUxJwwmhrX1T2qpTJpjq3s5Jh7YzVTMeFkQcQ4ta1uV3MlOoK0",
+                                        "tdm-container-size": 188156640
+                                    }
+                                ],
+                                "supported-alarm-list": [
+                                    "o5PHLPFyuO3dGKpIkXyYiAi1nCrIgCrFz8edXTLjAHw8rNREDhCNRMH7g8PwC8bcgqpeb2pLJWU3BDH6MbUvXBC5BrBdrNhIdGOgBd2k1OfDjWJXZvsO65THovNQa4qnLeDerxytdGYouzlu5Ga3L4L1rqJBu9Y7ntlHTM2Ys0fWrAio8tsTx5NYvwzZGp7VKkCv6EuywJnYbFmk8G5xLKvghW8Pd7CQrflq",
+                                    "HQiid8mTmGT3DrOoOXxDXeQ4QGnXUNJBwTMJ18ufGgijHZznOY0LcRH3p4SbKBF8mrRfzevfuFq3wSqkQrX3aEYrBI"
+                                ],
+                                "admin-shut-down-is-avail": true,
+                                "maintenance-timer-range": "gKTejGZ5VFhDR0Hc2IGXDlasJNkxsMb"
+                            },
+                            "tdm-container-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "suspect-interval-flag": false,
+                                        "performance-data": "Ha9fCO7qpMwG3j8OuK7MqkhQhuSl6yjNIt2d92DyG2fJlfxP0EBqQT87f0kdyE0972mgWRPCTWd6bKWbgpt6aC5hCqu34m43hijd90IVWV18yPbG7FF99CjL2NGYaKTr2dw45eZ22S2sAd8zKNATiTFcHd3JYW201yW7FN9zyb10g9z1P9U73rjCFmdvb7ncFkjc7sLFvMFMO6Fv8zu3TNFq2KVdRipoCJB",
+                                        "timestamp": "2021-09-09T08:18:35Z",
+                                        "elapsed-time": "-9223372036854775808",
+                                        "scanner-id": "TPdzVS43jy64dDu7fp"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 81
+                            }
+                        },
+                        "address": [
+                            "Y62ARH8cn17R06IAHB5Gva9QZvbMCICAOxax6aJlbI43PMDwfA4LCeBBBMfdmSNbhPAnZkI2UNXJrt7H3csyiV9Tzp6W9L7"
+                        ]
+                    }
+                ],
+                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK",
+                "name": [
+                    {
+                        "value-name": "3RBXumFZxHOPKVnZk0",
+                        "value": "4s1bD8VtK9Bi4tL2P7HGwhud1iBSutPzVICyRxUtzvLDQoxyofeUwB0pLB9f4YGZHjqqIcThHxNqVkYbr4YXFYeqznyvee"
+                    }
+                ],
+                "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                "physical-port-reference": [
+                    "c942beda-266b-a670-ca1b-e78a3653775b"
+                ],
+                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK",
+                "extension": [
+                    {
+                        "value-name": "bfhc2PGv4ZT0zEQ2F2S1NyanJCDyqPTC4aO6RmuNlfGUTwWqqGje6lBQX6gfW9R0bxZ2UtQ7IoUtUITkh4qnpU5e0ltWudPFKOAw9iERGqcs85Mp15NiZSwZeROA4D8HrI5ASBjy1v0asEzlJeDA71sdSgFPTNocntEf5X",
+                        "value": "6kx8EcAZNOCgNDI0nYG4JlsVBWrQ1goZAV0eZA5NoH3ccD4rBCwkYY7rUy9NOxFgtFmkfr7v82HcxED8g9k68jxURHAx6fNrU9M1ALwAG6MdKieSryRrSgeBPO9W3OnPQ9IiVeTtcxGOPUH9lqsdGGGwuPkpwH6mJOEw3pZ7XxWEsvFNV0StGyR3gbsMLz0mnwSiWJqLgehAJXnwX7Zv"
+                    }
+                ],
+                "ltp-augment-1-0:ltp-augment-pac": {
+                    "ltp-augment-configuration": {
+                        "connector": "07wpeqzDCeErNGQsYiiaCfzpi0iDsCNsCbRIBjm5pSw4q",
+                        "equipment": [
+                            "c942beda-266b-a670-ca1b-e78a3653775b"
+                        ]
+                    }
+                },
+                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED",
+                "local-id": "A0eTYNZpks70aosp4JlYdnIcSOmnh3WR32DTQua2Xi27GnxCYSA3",
+                "fd-rule-group": [
+                    "5ea42646-26ca-afda-19a7-ad7f7cc924e6"
+                ],
+                "label": [
+                    {
+                        "value-name": "N",
+                        "value": "Md8Y6pyD4QrpGCQKsGiqMIZ28mgnJ3Mn8Me64MC8u3xaxoU0W4iINaKNw02fVPDVtR2xvEGZzd1YtNYpS90xjKkPDn5q4Imxrg5WMLNdQObkB2BlbBSumdjZAghwYv3hL05pLSCCyOO2Qpn11gnftG6VXnrNTmXwn2W0VyCteiv4ITXB1cQmTOhIbAnWWc"
+                    }
+                ],
+                "transfer-capacity-pac": "vfxiikdZiuYNEkmSz6pTuNJVSQH9Zl7uswELRSK1eAGSN3Lm1a7wPRjAHTJyeQVynzj6jV7yoOqbJ3xK5E8Vnkn4d6vjOiR3R393Y9tmPTpyPWaUtbHQv4NI2a1RsSUbV46M5z0UlqsaeuWzFEiaA",
+                "external-managed-id": {
+                    "manager-identifier": "8UCJ8ig7fmG",
+                    "external-managed-uuid": "7BtxkSgZxM4njsPmw0qwNV7Vdo2kKBARcVgoNpgkbkIuMpIai1z5WGS14UlOvNxAJOYw5eJgyjDcAdfSeOP2uz3zupfRcNrNBqcGEVO5erhOFwzLkgOHQRgc8v3lan0LNcjj70odjyUY4lChBqYjh6nqtjDEGDhtQtEPtV3MtXDpifyLxoXOmk6QDBmb7DEXYbMr6H6rwBQOQhsfFh32B2K7v6iCBP"
+                },
+                "client-ltp": [
+                    "c3794728-dc8b-5233-0c67-0b857c32ada1"
+                ],
+                "peer-ltp": "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5",
+                "ltp-in-other-view": [
+                    "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                ],
+                "address": [
+                    "1sFss1PYL0MmixDwHd7wtDlAuQ8dpO8igFKAzrrcrdzJDc7kheQCR35mTdza2zsaf4LOw40P9rrMDyYNNGpEJuSDAsFu10E84hOsdHin8J9E90rWGIBi5lVFNs9HsFHxPwZ259pdKrJUr2QZLjhQF4vkxwTZ3toSZgNWpc12vLOWNwWyQ5gnaLzH9lydOXXFd"
+                ]
+            },
+            {
+                "uuid": "5d904732-4e68-6c61-b775-4041f3734fe7",
+                "embedded-clock": [
+                    {
+                        "local-id": "CEozjeznNLtpEZix7faj0lYlFylqzMV4qbDJp46dIrCeiULp2WJ29zfO7A6zm1DEd8n",
+                        "run-mode": "core-model-1-4:RUN_MODE_LOCKED",
+                        "phase-aligned-clock": [
+                            "YVeiPwRShBgjzQZvC8Zx7SnUMwm6JiLAdZK2vtNM43XDTX0o5SV5KiRoH5uiofKt7uoCXbhT6ewZ3pf1ha6TlXiUVMcjUXE1j2D95M2b1r34Qi57l30yTa"
+                        ],
+                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                        "encapsulated-casc": [
+                            "f8pO3yK7hVXyQo6MlujOMkG6x7RgTkO0s5GvvqvEekcWIjAWFUKreipDhhUbBA3WxKj22Oyg9KdJVNxBHh2NzsrRBdU4FX0cHc6K0ES1g5DcLaNkkH8T1z"
+                        ],
+                        "name": [
+                            {
+                                "value-name": "clHMEc0WYMm0IX3RoaxwLD5ZxAECIT6M7GzLSzIQdWRNLMw9W3FzzCzY45AMYyr5e0J6rrPFfyk0cR98UHAlb1jg6L2WklUylDxFWecbMw3Yn4YaLynXzH5FkZuElo5yTudPIpSuO",
+                                "value": "kbZidD"
+                            }
+                        ],
+                        "encompassed-clock": [
+                            "zSzgZS2utSYSlt8xN7dsLeEaUA9zvWk4GUcxEe2ZYSSkdSR1Z4lDaRNXjWoOKJKivOQ12K1TCLdPDWIu0W73NN0ZBoNeZqwmemo96h2A27ix3STVO1YuGQth78n6yUlN8BOfSQHMXZb0S4NyXM2Dun"
+                        ],
+                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE",
+                        "extension": [
+                            {
+                                "value-name": "OUMA57hEnHWW46iORQyNQaF5A7UlSP9GJN9PVqlaZh7VfhK7ZaMPkjMUqy8jnhR7X0OSi12aa1Xpazo9J2Q4lCQM2YXq8Gp5zdPR6JTgDRFFqWH2YxYc2GY4xNuFtTC2YjM4UxkpoS5HOEJEbzQ5fGaMlwjPiNJ86n5TVpab97SXLtuP2cUaTWWetgVD3FL22QNP8X1hXT7Iftx9Fkj",
+                                "value": "ggFBosej7Sd2ASJIIKSFwRfLkNMZZ6qfe5JCpXNpH1jiL2StNK8bBoWN3AN2G59U2SorI4QhX9zIckcR4c2ysQlnq0h75rT7bazL6p33ruLDOPuL2obmeoKEp1DmkpuorV9xc4ADrdg73CKX0Vb6kVLBXgX9FrxYezvrDX4Wbd46PG3IC6OO2rpRIm0fGqeUZBluzqrKDnIk3D2xJJlLaKuSZv0FVerMPNgg5HSAWAMSdHpXqDAsf5desdL"
+                            }
+                        ],
+                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY",
+                        "label": [
+                            {
+                                "value-name": "BsiaxQuok1JAYitsna2NUwtHIEy0K3Jlv2vUKRj4S2wIcZaA1cfNAIuie2bY6Mbt",
+                                "value": "ygqqzmatSTyJV8K0fpAXTL3"
+                            }
+                        ],
+                        "encapsulated-fc": [
+                            {
+                                "uuid": "bb8d8311-5d35-d71d-6aa4-f720f78527a0",
+                                "service-priority": "-9223372036854775808",
+                                "supporting-pc": "gk4MPpYCiHWYv61clkOdlYDDRWDWA8aQs7ChosLG9AwEGqJ1Kx7XoKB7z6V1e5RG4lXsNJ0PjxlRX4LzuSwKu7J35E4jBNZy0X0Oy1vJqQAnNlO9dkLIkuDp0AJBfA9",
+                                "layer-protocol-name": "wire-interface-2-0:LAYER_PROTOCOL_NAME_TYPE_WIRE_LAYER",
+                                "forwarding-direction": "core-model-1-4:FORWARDING_DIRECTION_BIDIRECTIONAL",
+                                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                                "name": [
+                                    {
+                                        "value-name": "NlsenhHhHmoAZw6r8ce1",
+                                        "value": "KiCBL97MJpzWRNk1ntAJS2Bg02oc8pqSz2mcbtZMSqJC6VDto5487xh8sFkAXKloFHBQ2svVKepQ12bh78q6FHe7ezA3bVsIC3rEnWr72QQ3K1kJ1CQHb4OqvgtzbVhFQI"
+                                    }
+                                ],
+                                "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK",
+                                "extension": [
+                                    {
+                                        "value-name": "mYPIV9d63JZNDNm1HxNvUKXFjp7doevK4klZly6ohX4VCqWbXBGJmvoxUnKatgNys8pOyn4Qc8DGzrRo3p0hNoGzEqKZypx1xPP5cTNpUi5tCPJx6JGL0",
+                                        "value": "lEE5Ddm3eTSVQWGwdAGbVaSFHYgfCgBXU8Uqlglr15mJ1U77nOiaQaPq06FCe9r9hlrCtM3uRh6K3dRqT1BKbia4g"
+                                    }
+                                ],
+                                "fc-route": "1CGb7pusQwyvPOnyysInv60A4otrv4XwzvHGM40CsrZhfmPNHp24o2Fkj8LG5Idw5M4SQ4uivmrKI8phyrmOmT8F1TdYtquy5yiVDF601xLBG2T6u7UQ0UnTNAS81eyYNRLiwRaphV0PYTNk0za0txM87E80KGYppKHVtScCFdjv66PZxRR0oD0o98oUPfbeRT2cDePaj0yi7fhE70xnwxLxy2jnhvt8gnkTu1VN2l51BeFAf4XLuBa2DuhUZ",
+                                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY",
+                                "configuration-and-switch-control": [
+                                    "eY4ZqDxBOvd7O7AhmraB0Igdx15NyPZEF3wXyVyeqMe6LOo07qt70JlyCil2ZcHE75tF01LqFZxjGNbN5EN6n0EZiR293BN2G8zG1k6HcvSSa3xgHcmW4SVmJPvEqaG6i7MkrLTD8DnbyNr7RF3WxYa8GGM6Ik5TrR5KuYgvtvG1iZ82wbY3183HGPGp1Lakuf4R5cmyIUrSLzUhCScv1f5HWLYXo"
+                                ],
+                                "local-id": "HMnQElEESfcDRlxjjuQPE7X6jNRSB6ZiSm8oAEVsU7XLtu4EQMtuTiB5XkXyqOIi2IyCntW9tTUWgRs6DWtx64C4gruGf5QhNoM2SIblu69KPtIshbRo7lknMG3TLL3raPtUxF7TLgvsJeU1hE",
+                                "lower-level-fc": [
+                                    "9bc11e2d-913a-2fa6-a64f-f01427c75d88"
+                                ],
+                                "fc-switch": [
+                                    {
+                                        "local-id": "Y3nryDcIsZNsbFIGKhoP9Omel3x5b9D140lDvxlPo8isNS0q9ofbdtpqwWvz60B20WFnl0dK0n4Of46hslsxOJYdxtMvufym3dCpeP1e45Uj90sBdU9Uv773sLyO1634kFlqmmwqrrBAj44xQ5rm4qpo3Pd4W818Nmq1JWr2f2vzYzYPwh3AHkYK93H5bI5QWvRxkaAz5X03oYSUfNuW7kzho8ezQciEH1c1cEthBtkZs5LHS",
+                                        "wait-to-restore-time": "-9223372036854775808",
+                                        "profile-proxy": [
+                                            "O4y81RCh4b6Qa6x1bAN6ywmzsCyoTDCHHbIJ2k0Yv6Gx5dz8GefeKBN55dt"
+                                        ],
+                                        "control-parameters": {
+                                            "reversion-mode": "core-model-1-4:REVERSION_MODE_NON-REVERTIVE",
+                                            "prot-type": "3kUoK7mYRCA51vWoAJIwaPi8vB3G2WY5gKlSRHQIciFdFBB7dbEn0Wvnpy4rmUouEJmoi46ufEHUfaUkmqHee4CDvy4RkkeQVAe5xdAER9qYkkjyK0MYXgBsGxb0JpRE05Kpac31lt0xGb5q3Kh00SsziEz13iyVgicqm7kHtcf9nczqWQjP",
+                                            "hold-off-time": "-9223372036854775808",
+                                            "wait-to-revert-time": "-9223372036854775808",
+                                            "network-scheme-specification": "oT9PM58k0gu5GQc0qF4FGrJ8"
+                                        },
+                                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                                        "switch-selection-reason": "core-model-1-4:SWITCH_STATE_REASON_NONE",
+                                        "name": [
+                                            {
+                                                "value-name": "w0zX9P5fhNrzr9Av2M1v3CZgtjd605loXNlYCqeT5FkxGV2Jz46vy5LUgY0hVexLTTJnbX9hvtGbgAMQwT",
+                                                "value": "5QYR7OJgBXNmIyY6KNfTiIzmZ98HG12DKSmRy5Z9VMoDleBX1QQcrhyqqy7Ys1BcLPVbVUkIyAdLOPIQxqUYHsg00fYk8swThj44dhMERSpyz0g6qa58ul8mB6HJq5vIprMCIr8sby0Ky8QYiVYE9Y0CXHln"
+                                            }
+                                        ],
+                                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK",
+                                        "switch-selects-ports": "core-model-1-4:PORT_DIRECTION_OUTPUT",
+                                        "extension": [
+                                            {
+                                                "value-name": "0t51r7AU",
+                                                "value": "k194AhhgK6EHBRyrEuE4rH4UMXdLq7JC0SzA1QIMPelq5UJBofFHWBtIrGlJN4lNXUfYDXCs4YS1KtD8JaHxEa8XQtGvy1anOplreQTiGDkq6PqHZ7fvhnsZQ0mg2wDINR91HUknxwFvl55cccIlr2c93yqX43xJUGKtAWIZsnmNsjSwvsRWu36ptweprL8ejTzLHiC2xZP0izoG18CobANF6U4qx5wJQ5uxn"
+                                            }
+                                        ],
+                                        "prot-type": "BG2VGz28FFUqlQZXDlk7u3S5z8CE11mDzoqfPlom0aEe0DbvQvvkqnhZvTDpMR2m7ktWFJaGTOUMk5hatMnTaELxqgW48Qq73M4Iv6gpN2370k9t7oe93Zyl8np85If8ubRZiZg52j42w5vDuBEptcKBz1JFJYN5awXko5hqplsVqPqUqWjL8VmAXX7yOUEYjBaHGrZXMrK482RqY",
+                                        "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE",
+                                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE",
+                                        "configuration-and-switch-control": "QYxq1f93s1TX0An5FO5l2csEN7BKd5A3V0tWfuRHoKxocMlKAqXuDp0ipCVCzvxuv1qDnhcLTB1YnmIPFxjaXkkeWfQvDnR8ghDwqQ9brb9HpJw4hQ662rcQy2dbh4cqdPWDF5OZ8QGyrcCAUBGO2SEAMREWVQm8FaDd7kcg2SOtWi4JTCxVnco1V2XRKjRplnCtHOJJyxcnP86JLDw0HM1DGZmqa5IwskZ91IKrfXOWX",
+                                        "internal-configuration-and-switch-control": "FIq4I7QKCpBYPLWphoKgqDYa45ZL2XxzxXv8XeKzDlqk6mKgCmw2Rn5Nk4yeT6G",
+                                        "label": [
+                                            {
+                                                "value-name": "I54aKGS3Pcef4YNcODmCC0DsTfpssN7bKbluS5xzaLGeBtjqYFUsyxVrMkT6Z1hK4C6WAwnK93YLo93fHXHfmCy0Xj6OcoyhSx5s3l44gVPx4SMLHtS36i3VC2JGqaXazVvCgzGwuo3r8HcQbXL9fH4RJFq1HnbgaGKq8jPCHK3Ps8xv5jEc0A4B7mCPJNXUmAcuT1YsE2962ztZS7bKH7lGtXn5Cl",
+                                                "value": "QN3cyX"
+                                            }
+                                        ],
+                                        "selected-fc-port": [
+                                            {
+                                                "local-id": "UWqKTEkP4U79q5gdWaYLJByu306t5zjSnBu9gOYkBXl13B6RL4Cnx2RA2PW0h7SEJeNR2MbvBpow0vnErR1RTKjWAfWJfGnYU3POPScihAPaX4OpWP8PzrD1HrKWZ0ML3tsKdE2neJxcOltC2Bjt2XnBg7pgZ3T2wlECZzZ6iwiYJDAL6U68JtCZt",
+                                                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                                                "name": [
+                                                    {
+                                                        "value-name": "7sX1nlmTXesWkLkuB37cGd6NdH8PGBJOWGHb1V4R9xNta8XL3WPK1Npfux439FR5dq87lcYnJDQL",
+                                                        "value": "GpHuejw2ILwfHzgfidsAlrWyhj9V1Nyzc74qqsk85RgMiw1tCm3XFRnX2pS4civgqrGQT1ZYK7DUvwf7KjXq2cn5B71FpoVHQuyBnps7wXT1t9"
+                                                    }
+                                                ],
+                                                "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                                                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE",
+                                                "extension": [
+                                                    {
+                                                        "value-name": "D7QeEv1Jstaa33xgB2RM25ZL1MaM2PuxWcLsIF420ec3aCjDw2pyZhc13eFXV1uK68cONgQNnUJxwU2UXrlWIxPL",
+                                                        "value": "nAzg5bm5f2SwKxLF8a33cYSDjGeIoZdLsMTxP8C5amtVLesUovPslH5wnjeLbsoD6a2WiwTsKmfnAH9QdYiqxfXVr3yuvP7uZ1i9pbB9pRwZqGHDwR446TRpWhTk6SOXLYYa1sbqbAhB8Y7EH3IFWr5SJYcHJSxu"
+                                                    }
+                                                ],
+                                                "logical-termination-point": [
+                                                    "bc478ce2-7d3c-9c53-dff2-7724bcef25d4"
+                                                ],
+                                                "selection-priority": "-9223372036854775808",
+                                                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED",
+                                                "port-of-internal-fc": [
+                                                    "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                                ],
+                                                "label": [
+                                                    {
+                                                        "value-name": "6kYwm2LrwKkb1JZJrth2QymPWjIPFJQL3G9qJMJ7w4ixF9g6up0cXn1TGCBdlrYh0ZHBLiI9mSH12XZwf0J4nCYV6r9sSZJKRilC",
+                                                        "value": "VMPOlIQaIepIPuXskSyLTSvLt8CLt6ehK355DN8d1xVJTKbdvBQgue1PmvtPCH6eC3k7QslKR8lLTwQoZHElVyb93EYxdXMPS6WBqhd9qyUbWDrVc5hZvs8zYY6bNK0GIO90YmagUWrQzSDLPUCdeKM4JKfwn745Wd6Mzg2lcl3E5HhUtU7AELEfoUELTIQHOOtf4nB9IwNN5WArQz1nlxuBj8edJ4UxLgE"
+                                                    }
+                                                ],
+                                                "is-protection-lock-out": false,
+                                                "fc-port-direction": "core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL",
+                                                "fc-route-feeds-fc-port-egress": [
+                                                    "hm7tcJMe3uV60N7wkPNTH1PtA20DUL6bZdE3XiiSN5YNS6b5NYQu0xXssXXmA4yAh4D6fNYUSPzDNLAAJq5B"
+                                                ],
+                                                "is-internal-port": true,
+                                                "role": "ZYqzNoGlcsR2Dk4c1vbQ9utdCv43m77dXxMKVkXZEPTa9Xm2sqLtMeHhBDcXCj2rQO3E01vxQpHReVUzd",
+                                                "address": [
+                                                    "Ih0iyCqoJ55MFLIZIAIyFhhxGEg4b71Th24Pwu6frb1ZOJYwby5IHegoSws3vlPMfTuLfA0zLTyAuoYyO3gnioL2U56irV4yGycV04uMYUesac0Y89eixZkk5qCodyOTZ0HZ5bL3YRn8WgZ4pd"
+                                                ],
+                                                "fc-port": [
+                                                    "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                                ]
+                                            }
+                                        ],
+                                        "hold-off-time": "-9223372036854775808",
+                                        "switch-control": "core-model-1-4:SWITCH_CONTROL_MANUAL",
+                                        "address": [
+                                            "N8Q3OSbj8fTVUSHQi7NOQDLc31jCW9LBiCw6mIhuXbhJ3RrdYfTGSESVF4qtdbWvFtuTbLf0OpJRg246hPM2uEP1I7vWjrjQUFKXjRX7gyRwBNuKDgMZNu0vBvjUPvDB2fzl6olnP4LiRg2moPlbbmzMJKzyfcaarBvpRIEGMqYEy10WIe0TAzxbb6KriUBBnY1ezxNlXLRnEK"
+                                        ]
+                                    }
+                                ],
+                                "supported-link": [
+                                    "5JciXKSJ3KuuFD6pPuq4z00cQPARQs6W4b61VYLRA7l7LkxsOXxnPpzy79pPtnDxyJrmz4d2bq9OKGhywGVdXmL4naMRqpgY1HcsLhuPIEvscM1IkOWi3HeqK09aqq0jZ5LD"
+                                ],
+                                "label": [
+                                    {
+                                        "value-name": "dEDdGm3BYWWIYyqFKml2SCvjFjAl1bxfH2kggnRfjNP9e7OQt2SdEfwbyZwA2VHJQ1Z6gJdro2BC9psDjcIXsf1S6xk8l1RbUJh2svuQp5lzmF4GSMvcTw4Z4pZpiRs5sJ7U6BCoGXX3vTBnx6zjDvazUaY5Ti2l1970DBobrd6WYHbnOKGjfRS2TIZM01ZT2YTFz9J0ePO4xZsdB8wRRoLK6CoYDnRxlD5NEOFTD",
+                                        "value": "X2lp7XqDGhTj2RViPqGzXTc2GQIeBeArgVIgS8TqiFJcoEu64aFUWJWurxI3Lim1649Y53hnA0zYx3Wt6Bn2ccwEJfzupVnvRxmWsDjUvSK2WHw2aLWnXsTGzs2Zf"
+                                    }
+                                ],
+                                "is-protection-lock-out": true,
+                                "external-managed-id": {
+                                    "manager-identifier": "x2WXVjGl9hAOuoXAAAaM4N44fFynfHvFBrCwKjJLsbsWrho2SyGWeKTtprIF0dcCwO08ZCUrNmgfDE9n5PkjA5MRwnowAA07p1fgD1IifQxTmy8rosKQxpHVMYseyklPlt6QuG1KoyvK7D4nYO5n5MjJCDYbXjSbMY19w2TUtgFsTBHRhMfnqq633460gYbUX53l7Ogs4NMQotHFfO2Ge1J9XPa5FdSuiNQiC6KyTpo",
+                                    "external-managed-uuid": "SYO0EJGLChUzY4xDip8scYKGWn"
+                                },
+                                "fc-port": [
+                                    {
+                                        "local-id": "K6cyJJ53MKe396MaTGrHZtB0Ukx4syf4ErCg2HbPkpKtwowhXXQWrjWdDt951o9yIEGCdRjxh41F",
+                                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                                        "name": [
+                                            {
+                                                "value-name": "pWhmEdFX1SAv1GoiHOSluuzeO6vKZ24oYmLuzirBbTY4ree936uptVD920T12XiSjVmLdFmgrclSqr1lqoDTb8Ud9N73ChWWcaHpIVG97T1pkVDCbgnmohsp4rtzIhvUj4b1RRaQC47XZKr20Pgh6Iy391CRaZDuVPvMGyubCB0tmrn",
+                                                "value": "gDvnm4inXUf0LSuGzRk8hOjTpjeLKB01fngtjyQ9k595QvDhmXpEDIp21EGM7yNmNVP7tygFvhCdM7v04UEzDWtEs1izr5OfSved3mSzDuMpBhpx4WYHSsdctwLVtr2mXgz0Csr7O6wifVHjRG0B0eNlKr8dSarPi1IMl1T17pjnd1GWzzyzNdUpE3up5W6oXG2aIWbHlvWqovnP4NgJ020xXuW"
+                                            }
+                                        ],
+                                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE",
+                                        "extension": [
+                                            {
+                                                "value-name": "ZY5Zn3lb6M5hTyubJMwC9mjWsv7nL4qCUvB9yWkwAiFmQapAOV4X",
+                                                "value": "nLBSSYvXg7JDAT4o5AZn8deiCGYpKNyZy9RrZegflRSVKWjQpa5pfjHRRx8BkGsSPbbOpjVKbGFNuRDL1Ja9UJ0Mg1fAHIlpTo5bI1VTztyV"
+                                            }
+                                        ],
+                                        "logical-termination-point": [
+                                            "f7872522-16c2-ce17-fc7a-083c8517e7b3"
+                                        ],
+                                        "selection-priority": "-9223372036854775808",
+                                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED",
+                                        "port-of-internal-fc": [
+                                            "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                        ],
+                                        "label": [
+                                            {
+                                                "value-name": "qUjfBl",
+                                                "value": "bhtSvQPV6kaVgX"
+                                            }
+                                        ],
+                                        "is-protection-lock-out": true,
+                                        "fc-port-direction": "core-model-1-4:PORT_DIRECTION_OUTPUT",
+                                        "fc-route-feeds-fc-port-egress": [
+                                            "NAJHaNJ72gpZYqKsNvzxsFiIETVrB50oFB5PoHOqPdiFw28jpHIJe0kSM7knccDJOBycaevZkNEQHE1YdJIrK2ko1wLeIoXwZoB1C60WLxEkbFihpSI1M2pOq229qRxi78"
+                                        ],
+                                        "is-internal-port": true,
+                                        "role": "Uf0e0u8Vha9nbCBIcIN1l9uwb70sTZ4N64U6q2TIc2XnEq5I1KCmT6SWeKg7J",
+                                        "address": [
+                                            "JmztfdB8l4PVp6GNcRn5N8E8HrsL8xqSMZdT5O1qSQl9X1X1Lc6ylCG230N4pdOb4149HXrsGMBvGqwjDCRY6p09hF5GSTKWUGYuEpWc4xHCQdVtHEjNVjOcYUKINmwA3m4zMSLIhkk7x7s6LLTG4zKUtmu9JTJEfF51"
+                                        ],
+                                        "fc-port": [
+                                            "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                        ]
+                                    }
+                                ],
+                                "address": [
+                                    "w7lXBPBEbkNh4RvOhoPK013a5jSDGIDcIZ9jGKQR4D91mEHEUwgVpj5mvPSbyvo8mpr22hUYN3R9zyFt5WgmfmBC3tOBY4Jdl3fnk1e7W59nEORBK7PSlqupTaSKeuXAx4PJY3JU9SiFy18b0X3eopv9AfTGJI88FYKD1tp2dzzDsHOtFRz3h44JjQpVqy35wFAp0SkdrTRUB"
+                                ]
+                            }
+                        ],
+                        "sync-ltp": [
+                            "1c7e2c79-af6e-8d12-d18a-957fe616ceeb"
+                        ],
+                        "address": [
+                            "ShhPR9hFK3xPKXE2sfvHcIWEVzTeMMew3vdMxus9yRYiGDl8KQQWqEAldlrS7Fo23CHA61BwSzHz42HGKpC234nhhO1olpjoT0QSTrgLTXcPRMwtb0v75SomypDUGOasGTczcsc5qpNhbjLebglg1Jvz00lzOo1uhd3tF7rXwefHpSWA09R1TetLeGcU4dolijPQq8NPmUoLMclFm4G7a1SoI5aMay0lJHb2PQRbLfO"
+                        ]
+                    }
+                ],
+                "supporting-pc": "s94O6DVgwFxeCHTN8L0RsbL91CkEK04490K7vxo24V8HC1mKEmu6xffqKr5mr1qtT2AhzYjDLrkoly0ZUuYjC5Km",
+                "server-ltp": [
+                    "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                ],
+                "connected-ltp": "c3794728-dc8b-5233-0c67-0b857c32ada1",
+                "layer-protocol": [
+                    {
+                        "local-id": "xrY38Xfz1xyNCLf1IVp",
+                        "layer-protocol-name": "hybrid-mw-structure-2-0:LAYER_PROTOCOL_NAME_TYPE_HYBRID_MW_STRUCTURE_LAYER",
+                        "vlan-interface-1-0:vlan-interface-pac": {
+                            "vlan-interface-capability": {
+                                "configuring-pcp-bits-decoding-is-avail": false,
+                                "ingress-vlan-id-filtering-is-avail": true,
+                                "port-and-protocol-based-vlan-is-avail": false,
+                                "statistics-is-avail": true,
+                                "configuring-service-access-priority-mapping-is-avail": false,
+                                "max-number-of-protocol-vlan-id-groupings": 24549,
+                                "configuring-ingress-tag-filtering-is-avail": true,
+                                "supported-sub-layer-protocol-name-list": [
+                                    "vlan-interface-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "number-of-available-traffic-classes": 19,
+                                "supported-interface-kind-list": [
+                                    "vlan-interface-1-0:INTERFACE_KIND_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "available-pcp-bits-interpretation-kind-list": [
+                                    "vlan-interface-1-0:PCP_BITS_INTERPRETATION_KIND_TYPE_6P2D"
+                                ],
+                                "drop-eligible-indicator-is-avail": false,
+                                "configuring-pcp-bits-encoding-is-avail": false,
+                                "service-access-priority-tagging-is-avail": true,
+                                "received-priority-overwriting-is-avail": true,
+                                "egress-vlan-id-translation-is-avail": true,
+                                "admin-shut-down-is-avail": true,
+                                "tagging-and-mvrp-is-avail": false,
+                                "vlan-id-translation-is-avail": false,
+                                "restricted-automated-vlan-registration-is-avail": true,
+                                "number-of-available-priorities": -32
+                            },
+                            "vlan-interface-status": {
+                                "statistics-is-up": true,
+                                "timestamp": "2022-02-14T10:17:39Z",
+                                "total-bytes-output": "-9223372036854775808",
+                                "total-frames-input": "-9223372036854775808",
+                                "interface-status": "vlan-interface-1-0:INTERFACE_STATUS_TYPE_NOT_PRESENT",
+                                "total-frames-output": "-9223372036854775808",
+                                "total-bytes-input": "-9223372036854775808"
+                            }
+                        },
+                        "wire-interface-2-0:wire-interface-pac": {
+                            "wire-interface-current-problems": {
+                                "number-of-current-problems": -45,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 9537,
+                                        "timestamp": "2021-05-22T12:12:51Z",
+                                        "problem-severity": "wire-interface-2-0:SEVERITY_TYPE_CRITICAL",
+                                        "problem-name": "nj7mfTb4xq6jxqMaMh01vT92Q26fOyHbJGpYAs2ZS0birXs56sZud8o32maIUSUEqbu0EpSwp3OIS8OQAFkFNIBH5LpRvbnWfSOThyhyt69leP4Huoe9ZPQ4B7N"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-04-13T17:59:08Z"
+                            },
+                            "wire-interface-historical-performances": {
+                                "number-of-historical-performance-sets": -4716,
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "period-end-time": "2022-01-25T09:10:06Z",
+                                        "performance-data": {
+                                            "es": 1132656874,
+                                            "ses": -579715011,
+                                            "low-power-idle-receiver-ms": 146101152,
+                                            "low-power-idle-transmitter-ms": 1023144100,
+                                            "symbol-error-during-carrier": -1722771525
+                                        },
+                                        "history-data-id": "FDQN79mmK1FzVmrkQ6MLMiPwbkXvyX05ARTzS7OD9tcWPv8FBVjg58MgkBDKyDQ1mBs7IgKJJOFqbOYMBh2GhGOCirmIW4JbFcigsUZ4IxuTdkxGBseT02nalJT9GCkdGut1ol56SrRXMhDnJR8BTvM67FfN9A0Q4mRlzWjjf3g1kThVCpwnVitUXIH7",
+                                        "suspect-interval-flag": true
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-05-25T21:58:38Z"
+                            },
+                            "wire-interface-status": {
+                                "rx-sync-role": "wire-interface-2-0:RX_SYNC_ROLE_TYPE_NOT_YET_DEFINED",
+                                "link-is-idle": true,
+                                "eee-is-up": false,
+                                "performance-monitoring-is-up": true,
+                                "rx-level-cur-list": [
+                                    -60
+                                ],
+                                "tx-level-cur": 28,
+                                "pmd-negotiation-state": "wire-interface-2-0:PMD_NEGOTIATION_STATE_TYPE_NOT_YET_DEFINED",
+                                "loop-back-kind-up": "wire-interface-2-0:LOOP_BACK_TYPE_INTERNAL",
+                                "interface-status": "wire-interface-2-0:INTERFACE_STATUS_TYPE_ADMIN_DOWN",
+                                "pmd-kind-cur": "GfJDJjN2LpYjZB8f66JF4UfRHmn9kYO0dywOJbRuAHFsjNHhUqOQd4zMiWWuUKnZaTNT4wnw6VYpIxyuYmk3iTPsHLXtocsy58s1wHpCCgTdNrzDGMGQxojf18Ipk3Qh3aarRz4mHPrv900PEzxc",
+                                "receive-signal-is-detected-list": [
+                                    false
+                                ],
+                                "signal-ordering-kind-cur": "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI",
+                                "pmd-is-up": false,
+                                "link-is-up": true
+                            },
+                            "wire-interface-capability": {
+                                "wavelength-min-list": [
+                                    -483224055
+                                ],
+                                "supported-signal-ordering-kind-list": [
+                                    "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "rxlevel-high-threshold": 4,
+                                "isolation-is-avail": true,
+                                "supported-loop-back-kind-list": [
+                                    "wire-interface-2-0:LOOP_BACK_TYPE_EXTERNAL"
+                                ],
+                                "short-reach-mode-is-avail": true,
+                                "wavelength-max-list": [
+                                    423867492
+                                ],
+                                "unidirectional-operation-is-avail": true,
+                                "supported-pmd-kind-list": [
+                                    {
+                                        "pmd-name": "wqXirMfEUlEx6CtZubGiFSzafXZpgLIE3xOvb415hGCnaYew1VPHFoJVlBcumU0pjPMmTOr2mWpwMD3NqSu686TtH5P3SQk3x7qiNJk9xJFjeAZFklDsroW8lD35lo1Snja22ubs5ILkjCZDYu6pKUy5pB3LR4DenOghajJg2nAdZrIXNGfxsNuSgxv8B8eQOn8ZGJ7A6HN60oVN4acxPGh6eM6HMkytH",
+                                        "speed": "kghrQg0Ee021FYcRnTxEZDiXl5iLqRbK7sbYAbuO3oQIeUrCNY8FurCPoMsOEDqD5BtyEXmHd4hsYA4Mq4jUvVJLA3r6GRJEkdcY2yxgDGItgEfHIyB6mdJWgb2XUDtfQF5T5v1AbB4k7b1PKuNYzxMIAOx",
+                                        "duplex": "wire-interface-2-0:DUPLEX_TYPE_FULL_DUPLEX"
+                                    }
+                                ],
+                                "configuration-of-number-of-bip-errors-per-ses-is-avail": true,
+                                "auto-pmd-negotiation-is-avail": true,
+                                "required-medium-kind": "wire-interface-2-0:MEDIUM_KIND_TYPE_TP_CAT3",
+                                "temperature-low-threshold": 102,
+                                "maintenance-timer-range": "oyO60uDuOD6QaFDNJr0QIhieBKjGzkAYKhWKLA7r5598KMVl5N3N4lTx6ddxpOva5kUIU12R63ZIQMVNz",
+                                "supported-alarm-list": [
+                                    "tvcm3ar8IRO51TpNubHo3FrUg9z3X0Uqo7Ejh6rZXg5Q1uDnGcLBKdn0mW3bXQBdXgw6eX6b531ZpwmXB0qldOdrC8DrYeEVmaUA0SD5VE4c3j2EjsZwg4XTcskbHZYV1So1K17xy3CBmE7x6Y3n2T8edkpUboId86eT7diF9U8vyf3x5YU7JUmXeDJi1jv2pBNpP5WYS5licgPi7BhIvDxCh9Uash4KSR1z"
+                                ],
+                                "mii-kind": "wire-interface-2-0:MII_KIND_TYPE_XBI_300_PIN",
+                                "rxlevel-low-threshold": 96,
+                                "auto-negotiation-pmd-selection-is-avail": false,
+                                "wavelength-grid-min": -468284901,
+                                "performance-monitoring-is-avail": true,
+                                "auto-signal-ordering-is-avail": false,
+                                "configuration-of-rx-sync-preference-is-avail": true,
+                                "eee-is-avail": true,
+                                "temperature-high-threshold": -52,
+                                "admin-shut-down-is-avail": false,
+                                "mdi-kind": "wire-interface-2-0:MDI_KIND_TYPE_FIBRE_CHANNEL_STYLE_1"
+                            },
+                            "wire-interface-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "performance-data": {
+                                            "es": -1447560169,
+                                            "ses": -2009731451,
+                                            "low-power-idle-receiver-ms": 1602490816,
+                                            "low-power-idle-transmitter-ms": 1035634744,
+                                            "symbol-error-during-carrier": 1036291090
+                                        },
+                                        "timestamp": "2020-02-16T06:51:06Z",
+                                        "scanner-id": "s2eWjs5iiNeLNTJQ4EgRfrVoTq1k3SRoM5kXpi7HXlsC74s3IAVPTIdF87Z4RIsDFEt4OAMMW6g3aJ6KbTz5CFKCMBGvb00QFtUl4y7SxgNHRLk2FT79qJL4ckzncAdR3057y4Z5kEFbqZ65K563PR713Hhg9uZcu4cV930tIxx8wD59I3cpUjjQSA61WX6j2ie3l6o3EV32q0b93fyQzRGjjElgtrznBNqWTHSxCNA3OD",
+                                        "suspect-interval-flag": true,
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 41
+                            }
+                        },
+                        "ethernet-container-2-0:ethernet-container-pac": {
+                            "ethernet-container-capability": {
+                                "supported-fec-interleaver-kind-list": [
+                                    "ethernet-container-2-0:FEC_INTERLEAVER_KIND_TYPE_BLOCK"
+                                ],
+                                "maintenance-timer-range": "piD9m90Mu9wyviaS1shRZrM4Bflj32NscqBrzCd3DBt8TDSMX1wWtiT4q6gt03OduhEVTRRokcxdQp0FrouMGfQ6lYsm2gzox5jjO2H8fed5w5CXt6Balj8HiAVcQmAorLzfOgf3ns0TyCI1JjbWCkvMUqYDMyT5csc0IrVXUVQspqt0BxX6JsSvLR8ph1v",
+                                "supported-alarm-list": [
+                                    "HlW1gTV3Cft2Alw7iCIDmeodeNn8aItS4pLcbG8NNBHnW5n7H5K4j09qNwyY71Ibjtfm1n9OQI3FOqMnworHot7bRF1YzJ1K4h65E7LvPP2vfOTL4clsFsvx0xvz8xbdGhakoWH5LJBSpuwtGRVejrLjQ8KYxVbd4mqsaZqVJ1F0nbuVUh16AMpq",
+                                    "2pcXsi2OImYHMLiFjbUuFIhWJnpoMP3G6fEzxyn7MePrRZ6aaTxHtOwcbVAPKDwRL2iiAFqeL7FDYEN1xcI00e4b1x1E2pnNrF6Tco7YnNtlr8mQl5IlbMxdbqReP618LZ1Xf8VCVoYexc4S9E5ljuquU9ABfuJ0lKXBLL5y1VNq8JahgguzKU3x3w8a0Salu0"
+                                ],
+                                "statistics-is-avail": true,
+                                "encryption-is-avail": false,
+                                "performance-monitoring-is-avail": false,
+                                "available-queue-list": [
+                                    {
+                                        "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_QUEUENAME_NOT_YET_DEFINED",
+                                        "available-dropping-behavior-kind-list": [
+                                            "ethernet-container-2-0:DROPPING_BEHAVIOR_KIND_TYPE_NOT_YET_DEFINED"
+                                        ],
+                                        "available-drop-precedence-kind-list": [
+                                            "ethernet-container-2-0:DROP_PRECEDENCE_TYPE_LOW"
+                                        ],
+                                        "queue-depth-configuration-is-avail": true,
+                                        "wred-profile-per-drop-precedence-is-available": false,
+                                        "available-scheduling-kind-list": [
+                                            "ethernet-container-2-0:SCHEDULER_KIND_TYPE_STRICT"
+                                        ],
+                                        "max-queue-depth": -398932941
+                                    }
+                                ],
+                                "bundling-is-avail": true,
+                                "supported-header-compression-kind-list": [
+                                    {
+                                        "header-compression-name": "q8KL1rcXt356T9vg6Tk1Z25QXETSicPJcrmdLqb6u8cfhAvftPhkRmaO04ya8fTkG7qjytpUBC9K4EZxl8K4uUKmQi",
+                                        "mpls-payload-kind-list": [
+                                            "ethernet-container-2-0:MPLS_PAYLOAD_KIND_TYPE_NONE"
+                                        ],
+                                        "compressed-protocol-layer-list": [
+                                            "ethernet-container-2-0:PROTOCOL_LAYER_TYPE_GTP_U"
+                                        ],
+                                        "header-compression-mode": "ethernet-container-2-0:HEADER_COMPRESSION_MODE_TYPE_NOT_YET_DEFINED",
+                                        "compressed-header-length": -6168
+                                    }
+                                ],
+                                "support-of-management-frames-without-preamble-is-avail": false,
+                                "explicit-congestion-notification-is-avail": true,
+                                "information-rate-min": -2029943173,
+                                "fec-is-avail": true,
+                                "burst-size-max": 174,
+                                "ingress-policing-is-avail": false,
+                                "supported-fec-redundancy-size-list": [
+                                    "ethernet-container-2-0:FEC_REDUNDANCY_SIZE_TYPE_2"
+                                ],
+                                "egress-shaping-is-avail": true,
+                                "information-rate-max": -2108870029,
+                                "admin-shut-down-is-avail": false,
+                                "bundling-group-size-max": -85,
+                                "supported-fec-interleaver-depth-list": [
+                                    "ethernet-container-2-0:FEC_INTERLEAVER_DEPTH_TYPE_8"
+                                ],
+                                "burst-size-min": 23807,
+                                "fec-word-size-max": -6359,
+                                "supported-loop-back-kind-list": [
+                                    "ethernet-container-2-0:LOOP_BACK_TYPE_NONE"
+                                ]
+                            },
+                            "ethernet-container-current-problems": {
+                                "number-of-current-problems": 51,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -28890,
+                                        "problem-name": "76829qAwsjq35D9CcTJ4JHcV4GNw4sp3yx5zXF5hRvkW0uqcfa8YJlMOTrcXTB0j8XSYCP7lcshcWIg3Kp1tK",
+                                        "timestamp": "2021-05-20T00:14:52Z",
+                                        "problem-severity": "ethernet-container-2-0:SEVERITY_TYPE_WARNING"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-01-29T00:59:55Z"
+                            },
+                            "ethernet-container-historical-performances": {
+                                "number-of-historical-performance-sets": 12632,
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "period-end-time": "2021-04-15T23:09:59Z",
+                                        "suspect-interval-flag": false,
+                                        "history-data-id": "AxpzUnaV2NLU74CT5U740rSTOgqsSeIsDZUxm4loRYbQ2FBZsJ4s2OdQ4vaOKS9nJ3N578mQ6pz0420wLWYNC4vzzFnjpwz8rm6qms9sRIkNKcko0a3D6z4G6rRwQqw9ECA0WJkFjFtVRFjSPnnWOruUKlisEHCibcj8NDN6a8T2N5Mvs1j8sN240dxEU9X5d850LT6W1RQHWucgv",
+                                        "performance-data": {
+                                            "queue-utilization-list": [
+                                                {
+                                                    "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE",
+                                                    "max-queue-length": -1463097933,
+                                                    "avg-queue-length": -243268561
+                                                }
+                                            ],
+                                            "fec-uncorrectable-blocks": 306579676,
+                                            "tx-ethernet-bytes-sum": "-9223372036854775808",
+                                            "tx-ethernet-bytes-max-m": "-9223372036854775808",
+                                            "fec-corrected-blocks": 1401176516,
+                                            "tx-ethernet-bytes-max-s": 1207348498,
+                                            "time-period": 1293994960
+                                        }
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-09-19T12:11:19Z"
+                            },
+                            "ethernet-container-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "timestamp": "2020-05-22T01:17:31Z",
+                                        "scanner-id": "33Ij6sI0OkFXPwb1p1dtRmpx03kZ2AZ5DIgK2ZKQbhGTOJU5C8ylmPSmT5dNFdKiN0UPREGVWeOCXAHAA7VXOGbzLpmquYAhZv6I1EDPSjrQU0i",
+                                        "suspect-interval-flag": false,
+                                        "performance-data": {
+                                            "queue-utilization-list": [
+                                                {
+                                                    "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_QUEUENAME_NOT_YET_DEFINED",
+                                                    "max-queue-length": -676161905,
+                                                    "avg-queue-length": -1845051787
+                                                }
+                                            ],
+                                            "fec-uncorrectable-blocks": 299211342,
+                                            "tx-ethernet-bytes-sum": "-9223372036854775808",
+                                            "tx-ethernet-bytes-max-m": "-9223372036854775808",
+                                            "fec-corrected-blocks": -2144564899,
+                                            "tx-ethernet-bytes-max-s": -912273817,
+                                            "time-period": -1965638435
+                                        },
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 73
+                            },
+                            "ethernet-container-status": {
+                                "timestamp": "2020-11-04T03:06:29Z",
+                                "last-10-sec-data-output-rate": -77081169,
+                                "bundling-is-up": true,
+                                "total-bytes-output": "4996873917813550080",
+                                "total-bytes-input": "4618937832339376128",
+                                "interface-status": "ethernet-container-2-0:INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN",
+                                "loop-back-kind-up": "ethernet-container-2-0:LOOP_BACK_TYPE_BACK_TO_REMOTE",
+                                "statistics-is-up": false,
+                                "last-10-sec-data-input-rate": 803342522,
+                                "forwarded-bytes-output": "5101997477269856256",
+                                "performance-monitoring-is-up": false,
+                                "forwarded-bytes-input": "6588417549516243968",
+                                "remote-site-is-faulty": true
+                            }
+                        },
+                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                        "hybrid-mw-structure-2-0:hybrid-mw-structure-pac": {
+                            "hybrid-mw-structure-status": {
+                                "performance-monitoring-is-up": false,
+                                "segment-status-list": [
+                                    {
+                                        "segment-status-type-id": 7536,
+                                        "operational-status": "hybrid-mw-structure-2-0:OPERATIONAL_STATE_TYPE_ENABLED",
+                                        "segment-is-reserved-for-tdm": true
+                                    }
+                                ]
+                            },
+                            "hybrid-mw-structure-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "period-end-time": "2021-07-31T01:48:02Z",
+                                        "history-data-id": "dg0ra1UjeZoqm4MLWesR6prWlVzeT1DZiDqkxcDDbUVqYH3MWvvUMXI7SalDbYCltVxS73obXjtVTwIP1dBN2cMUm7qpX2LqPibXlz0aSt6DZGkSTWxO0jAmi0LfVoxKHIzUhr52U3FLJ0DuO2iOlT2DLNKGcijL0SxacC46xBKgtfLhiVXvGZ1sNL0R3jCW416gE2e3DYk7eXgwSe1r52TSOTBJd5F97DpDFDGjC0qQPGeAM71S2U",
+                                        "performance-data": {
+                                            "rx-level-avg": 115,
+                                            "es": 1247521492,
+                                            "unavailability": 16609214,
+                                            "cses": 695630080,
+                                            "ses": 683500010,
+                                            "rx-level-min": -46,
+                                            "time-period": -1667145221,
+                                            "rx-level-max": 44
+                                        },
+                                        "suspect-interval-flag": false
+                                    }
+                                ],
+                                "number-of-historical-performance-sets": 27641,
+                                "time-of-latest-change": "2020-10-05T08:38:06Z"
+                            },
+                            "hybrid-mw-structure-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -16259,
+                                        "problem-name": "drf1X2ZVro797jcjNeXt77HurJkaTgl6zAZouYjVeq4lB9FonuKmCrRV2b6Vjj1STSgnJraXS6btfQKCcuZOVICXTILc1EWMx41",
+                                        "problem-severity": "hybrid-mw-structure-2-0:SEVERITY_TYPE_NOT_YET_DEFINED",
+                                        "timestamp": "2021-02-20T02:23:18Z"
+                                    }
+                                ],
+                                "number-of-current-problems": -4,
+                                "time-of-latest-change": "2020-04-26T11:36:17Z"
+                            },
+                            "hybrid-mw-structure-capability": {
+                                "supported-tdm-structure-kind-list": [
+                                    {
+                                        "tdm-structure-name": "58mEztj4oohC0nh9LmeB7bnlnivp5kRbs5PTz0QPpZrpeAz0XNt4YQie9Nv67mhrsYcTZ2Ig11x8C60rLtnCcFQdsdjrzBKTrXEiReqLgYTK4T3Ieqkq62DqfXKGqmAJb623lsGBirdfkgXqG9REbmXqbH6B3ylfFfa0zQtS9y7tO4Tm5CTgZQG2pEEs5RzK6BCxjXpsvoVbkHxpbqF28d5xKBSPsrrq33XeSfHnvuyQ3Xf",
+                                        "tdm-segment-size": 362571542,
+                                        "max-number-of-segments-reservable": -52
+                                    }
+                                ],
+                                "performance-monitoring-is-avail": true,
+                                "supported-alarm-list": [
+                                    "9o0eWCPOr97Sz2NphxwYU1kk"
+                                ]
+                            },
+                            "hybrid-mw-structure-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "suspect-interval-flag": false,
+                                        "timestamp": "2021-11-05T09:30:26Z",
+                                        "performance-data": {
+                                            "rx-level-avg": 74,
+                                            "es": -774149705,
+                                            "unavailability": -161819785,
+                                            "cses": 3945266,
+                                            "ses": -716650903,
+                                            "rx-level-min": -123,
+                                            "time-period": -1397194149,
+                                            "rx-level-max": -112
+                                        },
+                                        "scanner-id": "lVcxORlsgptgVwdiOm1dcm67bRRNj47F0j4G2q1aPuqKTEVz0OM43KceB3UV71sZcwyfWzhEVIoOmbne01i3Em9fpV2pWug11G8P7pt37KJlV7zN0KIE6SMoFGFubNv4uDLB27w2RgnEfPk7z2MxMqNk6sO9gj5CWR5QYCSHSgd75pewkSVYaJi936ibhoN57TWXvOwfWBmT1shld5bnOuwRAH",
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 19
+                            },
+                            "hybrid-mw-structure-configuration": {
+                                "clearing-threshold-cross-alarms-is-on": false,
+                                "number-of-tdm-segments-to-be-reserved": -21,
+                                "g-826-threshold-cross-alarm-list": [
+                                    {
+                                        "g-826-value-kind": "hybrid-mw-structure-2-0:G_826_TYPE_ES",
+                                        "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "alarm-clearing-threshold": -1559038561,
+                                        "alarm-raising-threshold": -1483135203
+                                    }
+                                ],
+                                "performance-monitoring-is-on": false,
+                                "problem-kind-severity-list": [
+                                    {
+                                        "problem-kind-name": "ZDyEMWwTK9IqsKqdbk0ABqYrkSMxB2PsFf6j3vcOEN66xwjIRcbkC1E",
+                                        "problem-kind-severity": "hybrid-mw-structure-2-0:SEVERITY_TYPE_MINOR"
+                                    }
+                                ]
+                            }
+                        },
+                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                        "extension": [
+                            {
+                                "value-name": "VFAP79DQTZ3nDz2ubAoYLcY30HN8Jlgw1Id0SQIDHM1dd3zovXm89cb2TZauki0d16dLWWoEAhJNcibI7qQhCUboTdS5vLjoRo1NcijMz2rMcvmkV4BxYEVJRGPer0viowXtO97gbz2o4gIRkbgjH42yKJE",
+                                "value": "J9l0yatejsun1wLXMlOZo5a594vLO1Opb1pBbKPvdkS6Iv4nIKm6Hw3QAqtorhOui55uQVRVfJ"
+                            }
+                        ],
+                        "configured-client-capacity": "Apwrq5A59BMVYTUKSlF0WJiT4YZKi3pKkN3LSDQT6uOWnIH74e7SXiD2guEqp3aKIdvsJdlPHaMWKlWGzVrpdWrtjXTITVsB9P4S2hzBrdy4ymK0h3pv0QQjFK1yxu2Gb6qenSHH57LEtnELr38rLYCqADR8ZTGbZ7heRYNW6qszO6c71kqEj25TxO1xHIAyHREqPsmNSPfyNrxPMXl5RiYp6SWNsod1fSrWkFK4uZvai",
+                        "ip-interface-1-0:ip-interface-pac": {
+                            "ip-interface-status": {
+                                "errored-packets-output": 402820416,
+                                "last-10-sec-data-output-rate": 1336661626,
+                                "forwarded-packets-input": "-9223372036854775808",
+                                "errored-packets-input": -237661845,
+                                "ip-v-4-address-cur-list": [
+                                    {
+                                        "fixed-ip-v-4-address": "zeb2SD1OmksnZjU431jqetBZ4KHsfrdOGoIy1JffVHCUSpZVqadEDPvzz41Oweu4vcCwNJMIrovbNm75wkC117tB4uhsBMw6Q0uEK8e3xBecXlalyM",
+                                        "fixed-ip-v-4-address-prefix-length": 65,
+                                        "fixed-default-gateway-ip-v-4-address": "LI2P4chxYNDGO0cq8jtxUHKK3UXtyc2jMX1R9igZYUFEMS4U3xsX64H9QxCoJxHouI7vTnuJ91fVTjQWIaMO6lQWSkcuRTSduZIfe4"
+                                    }
+                                ],
+                                "broadcast-packets-output": 596066744,
+                                "dropped-packets-input": 1909772460,
+                                "loop-back-kind-up": "ip-interface-1-0:LOOP_BACK_TYPE_BACK_TO_LOCAL",
+                                "dropped-packets-output": -1033431949,
+                                "unicast-packets-input": "-9223372036854775808",
+                                "forwarded-packets-output": "-9223372036854775808",
+                                "neighbor-list": [
+                                    {
+                                        "neighbor-mac-address": "65bRo1GY3sE9Nu5yP92y3MEpDewRjm7hrj8HcOFg8jhWGfmnogNj2rAFy6oJsw0LH8sTX715jjTRy7eOn18plIWTHdu1BuNiCfbrf5pqoahOanCxoCPBlLm2QQ3rkIJPYN85Spv8sEWC1q9h3YTgCfasY5MaOvZMa0J2peaRSYtLpv2slVIX3Si1X4bLr3pC30wkez4YxxJWUEggzQ5uInnyjzb",
+                                        "neighbor-ip-v-4-address-list": "utfptDJAcNyCdaq7OH",
+                                        "neighbor-origin": "ip-interface-1-0:NEIGHBOR_ORIGIN_TYPE_STATIC"
+                                    }
+                                ],
+                                "timestamp": "2021-02-21T18:42:19Z",
+                                "forwarded-data-volume-output": 379941084,
+                                "total-packets-input": "-9223372036854775808",
+                                "last-10-sec-packet-input-rate": -1106905283,
+                                "last-10-sec-packet-output-rate": 1891090296,
+                                "vpn-binding-is-up": true,
+                                "multicast-packets-output": -1349364939,
+                                "broadcast-packets-input": 2142664404,
+                                "last-10-sec-data-input-rate": -1316893995,
+                                "interface-status": "ip-interface-1-0:INTERFACE_STATUS_TYPE_NOT_PRESENT",
+                                "statistics-is-up": true,
+                                "total-packets-output": "-9223372036854775808",
+                                "multicast-packets-input": 88124416,
+                                "data-volume-input": 340015668,
+                                "data-volume-output": 214330442,
+                                "fragmented-packets-input": -1572908035,
+                                "ip-address-origin": "ip-interface-1-0:IP_ADDRESS_ORIGIN_TYPE_DHCP",
+                                "unicast-packets-output": "-9223372036854775808",
+                                "forwarded-data-volume-input": 1586775808
+                            },
+                            "ip-interface-current-problems": {
+                                "time-of-latest-change": "2020-08-21T02:07:49Z",
+                                "number-of-current-problems": 123,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -23536,
+                                        "problem-severity": "ip-interface-1-0:SEVERITY_TYPE_NOT_YET_DEFINED",
+                                        "problem-name": "XaonD0neZV8qoNctrwTQrTc1jaXUzK2oUqLqi8EaVMAkrEFS2yAtjNnCPcogWjFQJqgUrU4eywyZa5RdvsyO7VjW7Hd30SUCa2wBPsQnYgf8e6lJqUypHRePqrSjbEVdzjHoLpDJFSJTRXv9J3rqMFfc60v9wie5tVlekRPSBrDko8m73NxPsFUqxhr3AF13BeaVXRNzijTGr7FvU5kmK6M9o54YL5T",
+                                        "timestamp": "2020-06-07T04:01:40Z"
+                                    }
+                                ]
+                            },
+                            "ip-interface-capability": {
+                                "burst-size-max": 21137,
+                                "statistics-is-avail": true,
+                                "supported-alarm-list": [
+                                    "oDXOQP06xdpTie6qEAWLRjXl8yMVv3qLyfzo4zvtFMmX0sfwUc9LnZYvxKrVNJGeY8CUHZfmLtcENr2IvclS3cosWHnCqWQg4s2Lk905C4BpnEZTIdDLp15dAtP0pF8l026kbYhFULXihW3Z1GCiAHwa2l3jT3EL6D59tePoRMG8ABZuhtMR3i25wXhp0Va6y782dXi5BQ53r5xIqcs",
+                                    "umr0jIhbDji4iqYwfgtI6yLpvbZWnrpJFQCQqL245c0nCYLJ6er4F4tafk6uMo6j6IaxlctqotGSjrthGUldYGn60msECyYA807u4sMsNsc6UFfsrAFh8Uf9gINK8DlhDkDHNp1sS5rEKG639DlhxAqGa6qjBDA7YdODuI5mNoSq5QletGvT9OrjUJCvn4ClhjQMTV0ycTQhBcn5SSQTG9dsSP"
+                                ],
+                                "information-rate-min": -738322807,
+                                "maximum-number-of-ip-v-4-addresses": -2672,
+                                "fixed-default-gateway-configuration-is-avail": true,
+                                "maintenance-timer-range": "RvIDfizWhobbhN5yikMjObQUhPlHSi0CNA7USGI25UdezbERvr2bCSYLAbsktlW8V43GKLIHFVWe6sXtT0FoSv1sGuNaHBiCxlaa7SREGFLE8I8TIF9tabVQFASm4bQBo1LnLD2raF6an64YLdjNo6vVHo9Lr0mPT0dED7YFM4Q12MZNRas8hP3Y5dBw5PmQPrmkyk0cgIdiu5Xlfptw7pmcuXJzNX",
+                                "admin-shut-down-is-avail": true,
+                                "dhcp-client-is-avail": false,
+                                "egress-shaping-is-avail": false,
+                                "information-rate-max": -1660763001,
+                                "burst-size-min": 19587,
+                                "ip-v-6-is-avail": true,
+                                "maximum-transmission-unit-max": -658,
+                                "ingress-policing-is-avail": true,
+                                "maximum-transmission-unit-min": 20986,
+                                "supported-loop-back-kind-list": [
+                                    "ip-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE"
+                                ],
+                                "vpn-binding-is-avail": false,
+                                "arp-proxy-is-avail": false
+                            }
+                        },
+                        "termination-state": "core-model-1-4:TERMINATION_STATE_TERMINATION_STATE_UNKNOWN",
+                        "mac-interface-1-0:mac-interface-pac": {
+                            "mac-interface-status": {
+                                "errored-frames-output": -1438849713,
+                                "loop-detection-result": "mac-interface-1-0:LOOP_DETECTION_RESULT_TYPE_LOOP_DETECTED",
+                                "forwarded-frames-input": "-9223372036854775808",
+                                "timestamp": "2021-10-11T09:27:37Z",
+                                "multicast-frames-input": -612955209,
+                                "unicast-frames-input": "-9223372036854775808",
+                                "last-10-sec-frame-output-rate": -364611195,
+                                "total-frames-input": "-9223372036854775808",
+                                "multicast-frames-output": -1131994793,
+                                "dropped-frames-output": 1363843150,
+                                "statistics-is-up": false,
+                                "forwarded-frames-output": "-9223372036854775808",
+                                "flow-control-mode-cur": "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_RECEIVE_ONLY",
+                                "received-ethernet-frame-format-cur": "mac-interface-1-0:FRAME_FORMAT_TYPE_802.2_SNAP",
+                                "last-10-sec-frame-input-rate": -1317408419,
+                                "errored-frames-input": 119484176,
+                                "loop-back-kind-up": "mac-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED",
+                                "interface-status": "mac-interface-1-0:INTERFACE_STATUS_TYPE_TESTING",
+                                "mac-address-cur": "ocyDmvXcgxZOgSNFdUZF3ne2DbTRDmzTy7wUulZ",
+                                "broadcast-frames-output": -1287168619,
+                                "total-frames-output": "-9223372036854775808",
+                                "fragmented-frames-input": 1848746776,
+                                "performance-monitoring-is-up": false,
+                                "unicast-frames-output": "-9223372036854775808",
+                                "broadcast-frames-input": 1177677804,
+                                "dropped-frames-input": -910209921
+                            },
+                            "mac-interface-capability": {
+                                "supported-flow-control-mode-list": [
+                                    "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_RECEIVE_ONLY"
+                                ],
+                                "statistics-is-avail": true,
+                                "broadcast-frame-suppression-is-avail": false,
+                                "supported-frame-format-list": [
+                                    "mac-interface-1-0:FRAME_FORMAT_TYPE_ETHERNET_2"
+                                ],
+                                "admin-shut-down-is-avail": false,
+                                "maximum-frame-size-min": -22928,
+                                "loop-detection-is-avail": false,
+                                "performance-monitoring-is-avail": true,
+                                "mac-address-configuration-is-avail": true,
+                                "maintenance-timer-range": "mAaRQkJWGnZ4AIOOqA97K2WAFkhByfnMHxvpR6lqtcuWMaK5KL4nF0Xkk7VKeipVHUlr1yRmLdipnUu0GznlzcyMjtoxENldAGEt6nPRs0hQUDQsc5OEheiBHG0dmlrWTXp0d6JFYSnLwddIiTeA7w3Hd3Mzh5n23EU8KENBwbmUgrvrdJ1cgWTlRGM0L93GN",
+                                "supported-alarm-list": [
+                                    "ptuSSF6MVyheLT7X13JmVh0NU9QtOGh51LYTi4y6uHk7AsXBnGPaPPYJYG4EemCgZA1awrg19s0BUXdav2kkKiWAZ0fdeRl6jngHOoAPQBrDqwNWq78ai4LhXSm3BI9U5htLF4Box21XqGTQFU1XQMeNwBJ7bSTgamTHiu5Po6FOEqxkkyhbcoQIRzP2kAamW337q9WG7BnM2UY",
+                                    "s7pwv86eHVgTnifjmjqMkfkrIH5CB3RV38rqgxFQkNJH6RTsab6uqqN10TDBOmxJvQaDoPlACXaAO32Qe0cxjZyjK"
+                                ],
+                                "hardware-mac-address": "euDxJGNL0y2V2jkp6CK0slzrv18uGOOViks108ETyyGBS0SQvDJPYi8lbgQS4wNeQ7fJfMCGkih4b1VGEwvCODQSTyKP4p3NwawEW0khitdtu019wwDd1t5U1HBY6EDuP98L9kUjN8Ni0OjxdOKeaH13oC1u9EYYFZBGjw07wFhwls3qgFFqmyuC2n6bUX1zOD87106pFfVSzRjQoQ8DoCfiSemM3ndRSlQLl",
+                                "maximum-frame-size-max": 13542,
+                                "supported-loop-back-kind-list": [
+                                    "mac-interface-1-0:LOOP_BACK_TYPE_BACK_TO_LOCAL"
+                                ],
+                                "link-loss-forwarding-is-avail": true,
+                                "loop-port-shut-down-is-avail": true
+                            },
+                            "mac-interface-historical-peformances": {
+                                "number-of-historical-performance-sets": -20034,
+                                "time-of-latest-change": "2021-01-29T17:08:28Z",
+                                "historical-performace-data-list": [
+                                    {
+                                        "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "period-end-time": "2020-03-30T09:51:12Z",
+                                        "performance-data": {
+                                            "mac-pause-frames-ingress": -1130238517,
+                                            "tagged-frames-ingress": "-9223372036854775808",
+                                            "jabber-frames-ingres": 1728475706,
+                                            "mac-pause-frames-egress": -1427853665,
+                                            "mac-control-frames-egress": 612757436,
+                                            "oversized-frames-ingress": 1360866944,
+                                            "undersized-frames-ingress": -219647677,
+                                            "frames-of-1024-to-1518-byte": "-9223372036854775808",
+                                            "frames-of-64-byte": "-9223372036854775808",
+                                            "frames-of-512-to-1023-byte": "-9223372036854775808",
+                                            "frames-of-65-to-127-byte": "-9223372036854775808",
+                                            "mac-control-frames-ingress": 597786752,
+                                            "frames-of-256-to-511-byte": "-9223372036854775808",
+                                            "tagged-frames-egress": "-9223372036854775808",
+                                            "frames-of-128-to-255-byte": "-9223372036854775808",
+                                            "fragmented-frames-ingress": "-9223372036854775808"
+                                        },
+                                        "history-data-id": "w1LchxxmERlLjgklRNRsf0Ea7bVw556B6JFng4CNOXy75SsWxbhMbVOaYBH3GNxFo42E9wrXmRWrBoo8rFMCsANq4mmK1LppPk3QQnF4eBwQRUQirDNL5Ab9OpUPabeSn9A6w8aDJGltsbDLOqwUSA3G",
+                                        "suspect-interval-flag": true
+                                    }
+                                ]
+                            },
+                            "mac-interface-current-problems": {
+                                "time-of-latest-change": "2021-12-07T09:48:57Z",
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -26050,
+                                        "problem-severity": "mac-interface-1-0:SEVERITY_TYPE_MINOR",
+                                        "problem-name": "ppbKoOCfnDPtivBPRxIjC74tfdxWeavEAygYmT5BoV4Gixv946kz5hUlur9AuE644nUq8STwFXcXnAZryjSDAMY468xsEDoJ0a102VwHK",
+                                        "timestamp": "2021-10-17T22:14:58Z"
+                                    }
+                                ],
+                                "number-of-current-problems": 56
+                            },
+                            "mac-interface-current-performance": {
+                                "number-of-current-performance-sets": -70,
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "elapsed-time": "-9223372036854775808",
+                                        "suspect-interval-flag": false,
+                                        "timestamp": "2020-07-11T23:51:14Z",
+                                        "performance-data": {
+                                            "mac-pause-frames-ingress": -505376233,
+                                            "tagged-frames-ingress": "-9223372036854775808",
+                                            "jabber-frames-ingres": 379929068,
+                                            "mac-pause-frames-egress": 1453088794,
+                                            "mac-control-frames-egress": 958245740,
+                                            "oversized-frames-ingress": 575327136,
+                                            "undersized-frames-ingress": 2036481184,
+                                            "frames-of-1024-to-1518-byte": "-9223372036854775808",
+                                            "frames-of-64-byte": "-9223372036854775808",
+                                            "frames-of-512-to-1023-byte": "-9223372036854775808",
+                                            "frames-of-65-to-127-byte": "-9223372036854775808",
+                                            "mac-control-frames-ingress": 1559228890,
+                                            "frames-of-256-to-511-byte": "-9223372036854775808",
+                                            "tagged-frames-egress": "-9223372036854775808",
+                                            "frames-of-128-to-255-byte": "-9223372036854775808",
+                                            "fragmented-frames-ingress": "-9223372036854775808"
+                                        },
+                                        "scanner-id": "GqThXTslc33nildvz1Idpru3UvS8FBhm12vRNYcZTfnbssyUu87TAtPmYzuwaDS3FfUt57kZ"
+                                    }
+                                ]
+                            }
+                        },
+                        "pure-ethernet-structure-2-0:pure-ethernet-structure-pac": {
+                            "pure-ethernet-structure-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "timestamp": "2020-09-10T00:56:18Z",
+                                        "performance-data": {
+                                            "cses": -1301057127,
+                                            "es": -1751048973,
+                                            "rx-level-max": 76,
+                                            "ses": -895590129,
+                                            "rx-level-min": -46,
+                                            "rx-level-avg": -80,
+                                            "time-period": 1956921936,
+                                            "unavailability": -1970208649
+                                        },
+                                        "suspect-interval-flag": true,
+                                        "elapsed-time": "-9223372036854775808",
+                                        "scanner-id": "FGHQNChTeSqvzMvopE2eHcbSCH6qGXAmv94bEm4SemnF9T3qpYE6aPRMo"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 11
+                            },
+                            "pure-ethernet-structure-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "period-end-time": "2021-08-25T15:53:30Z",
+                                        "performance-data": {
+                                            "cses": -1562329949,
+                                            "es": -981460523,
+                                            "rx-level-max": -90,
+                                            "ses": -2086728639,
+                                            "rx-level-min": -126,
+                                            "rx-level-avg": -42,
+                                            "time-period": -1343821953,
+                                            "unavailability": -1022035313
+                                        },
+                                        "history-data-id": "p4PLkm",
+                                        "suspect-interval-flag": false
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-05-08T22:34:57Z",
+                                "number-of-historical-performance-sets": 16695
+                            },
+                            "pure-ethernet-structure-status": {
+                                "segment-status-list": [
+                                    {
+                                        "segment-status-type-id": -23254,
+                                        "operational-status": "pure-ethernet-structure-2-0:OPERATIONAL_STATE_TYPE_ENABLED"
+                                    }
+                                ],
+                                "performance-monitoring-is-up": false
+                            },
+                            "pure-ethernet-structure-capability": {
+                                "supported-alarm-list": [
+                                    "bIkJOzcAktYXYG0kfE3ypvOJ6f6TimJlW35LC9dOubMkKEEZaAqr56a3l8OwnxRbtO"
+                                ],
+                                "performance-monitoring-is-avail": false
+                            },
+                            "pure-ethernet-structure-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 20206,
+                                        "problem-name": "LuGPxb73zeKIw",
+                                        "timestamp": "2021-04-24T17:15:00Z",
+                                        "problem-severity": "pure-ethernet-structure-2-0:SEVERITY_TYPE_MINOR"
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-12-20T12:36:27Z",
+                                "number-of-current-problems": -89
+                            }
+                        },
+                        "lp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE",
+                        "name": [
+                            {
+                                "value-name": "L3ngE3dEFdocEe7Mbme5TMSwx7p8UOXG",
+                                "value": "cOof1UMebYSp6xtkLqexaCWa144ITCz6qXdkK0yVQjkOIF9t5fSgJGqKLukw7UCpJIJtIagqtBf38gwevgu6WUQzg36fXAxya8USiajDDqGMG403km998RIoUGwJ93ij3c4mefZSFGEdKEgX0h608GoVfMEgHWzL0v7fKY7hEDuh9Ce1Tc1UShP74lfLaPoacnhXmg6STB9U5fVZrWLc"
+                            }
+                        ],
+                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT",
+                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL",
+                        "configuration-and-switch-control": [
+                            "Sc9Jv00BKOh4cu5rmogy3SvqJ0A1Ur6ED7g07gCJ5LN9fSBu8J2cBxCkpclcvjQ0r61qfv2cgPlnAWRIx"
+                        ],
+                        "fc-blocks-signal-to-lp": "8jokJAGVXRDYiKZBRmD3CsoZUdJDKDpTOO5xgLkevY4NA3grhTmLeKC8XlDAQ3lFJq4Z4p5zf9eH4v0lgm6u6JvW48wN3RsMhwElNJUUT9BXwBjMXhh40ESXMoKI74mos0C8Kw2DxEA37LQ53Z1VDTSh9uRgqeETe81YF3t4zW0HHIECHFycqilzFdP5jlQxuJo1FJXeFXNfFrReYhiosEP7Jw42SVreEP7br4q6U5dzxXGneYMGuBF50K7",
+                        "air-interface-2-0:air-interface-pac": {
+                            "air-interface-current-problems": {
+                                "number-of-current-problems": -123,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -17070,
+                                        "timestamp": "2020-07-26T05:07:22Z",
+                                        "problem-name": "j7dPd9yIa2N2yXnsiGxzgWCjQhZu5PtpPy62IECKHiMff1zpA6YQ3A1LS17PItep1djBRWly",
+                                        "problem-severity": "air-interface-2-0:SEVERITY_TYPE_NOT_YET_DEFINED"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-12-19T05:46:04Z"
+                            },
+                            "air-interface-status": {
+                                "xpd-cur": -82,
+                                "transmission-mode-cur": "tmbm4Dglu20fyM7WAI2dXAjalik4jyPMVS8Rvo4Zi47IIeEbOGoL8zVtJ7p2y6OlYW4mc8dn4k5MqKXfid0rFOMoV4rta7",
+                                "rf-temp-cur": -64,
+                                "mimo-is-up": false,
+                                "tx-level-cur": -103,
+                                "local-end-point-id": "jKhR8dAqOffj66dBOSv7IRgnlqkUmx8F9pphCRHq7XC53PGKzbJiUZF7hR1Ep2byrsQ4kxmjmYoiF42f7Dp1u40LWUpdWtDfVtbfTyy7oWpWSj3ZWsSqoL4cFlptO3IKoUR9kihA6GoZ0rQOTJ7imbu1wMmdH4X5QO726ovd4T4WlUD6vCgRNLKbp6o63d3T2aO0y",
+                                "rx-level-cur": -74,
+                                "link-is-up": false,
+                                "performance-monitoring-is-up": true,
+                                "xpic-is-up": false,
+                                "remote-end-point-id": "5vc9jpWOwrqMb5pV9O2xM5DQQx0ExrXvW2w7rsWXUeC5k1StIUSuRvkI2dmsEcXsetrxOfvAu7xO0phIc153xpLzu0T04QkicMP01csvbZb4osMAuRET9hkv9ewdWQv0Cd0whk1lj5pIx3",
+                                "received-radio-signal-id": {
+                                    "numeric-radio-signal-id": 39097,
+                                    "alphanumeric-radio-signal-id": "vQR1DIF2iYmh"
+                                },
+                                "auto-freq-select-is-up": true,
+                                "tx-frequency-cur": 1845877796,
+                                "rx-frequency-cur": 321737290,
+                                "atpc-is-up": false,
+                                "radio-power-is-up": true,
+                                "snir-cur": 38,
+                                "loop-back-kind-up": "air-interface-2-0:LOOP_BACK_TYPE_IF_TO_REMOTE",
+                                "interface-status": "air-interface-2-0:INTERFACE_STATUS_TYPE_UNKNOWN",
+                                "alic-is-up": false
+                            },
+                            "air-interface-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "period-end-time": "2020-07-29T00:59:07Z",
+                                        "performance-data": {
+                                            "snir-max": -89,
+                                            "unavailability": 929428430,
+                                            "rx-level-max": -61,
+                                            "xpd-max": -126,
+                                            "ses": 747903476,
+                                            "rf-temp-max": 3,
+                                            "tx-level-max": -16,
+                                            "es": -1542872611,
+                                            "tx-level-min": 97,
+                                            "tx-level-avg": 113,
+                                            "snir-min": 123,
+                                            "snir-avg": 65,
+                                            "time-period": 442258088,
+                                            "cses": -265942363,
+                                            "defect-blocks-sum": 747,
+                                            "rx-level-min": 48,
+                                            "rx-level-avg": -103,
+                                            "rf-temp-min": 94,
+                                            "rf-temp-avg": 56,
+                                            "time-xstates-list": [
+                                                {
+                                                    "time-xstate-sequence-number": -59,
+                                                    "transmission-mode": "uAYB54iEgTrPms4Ng7boIDCB5IQ5Y6zkypWEt6iJZBzm",
+                                                    "time": 1615778272
+                                                }
+                                            ],
+                                            "xpd-min": -62,
+                                            "xpd-avg": -10
+                                        },
+                                        "suspect-interval-flag": true,
+                                        "history-data-id": "KPl1ClJwFkcB4HHLkreHYAhKQFO41xhEeCxQPhenBrYG0xjkYx1O8izYQfUJNbn1OVKv4YSxhQ5hnpBdWD24NtVDIPnv1CpHp14lZXT9NYq3fU8cp28cv3IeLXBEz0dR1hcT"
+                                    }
+                                ],
+                                "number-of-historical-performance-sets": -28026,
+                                "time-of-latest-change": "2021-12-27T15:10:36Z"
+                            },
+                            "air-interface-capability": {
+                                "expected-equals-transmitted-radio-signal-id": false,
+                                "duplex-distance-is-freely-configurable": false,
+                                "supported-radio-signal-id-datatype": "air-interface-2-0:RADIO_SIGNAL_ID_DATATYPE_TYPE_STRING",
+                                "rx-frequency-max": -901649183,
+                                "supported-loop-back-kind-list": [
+                                    "air-interface-2-0:LOOP_BACK_TYPE_IF_TO_LOCAL"
+                                ],
+                                "direction-of-acm-performance-values": "air-interface-2-0:DIRECTION_TYPE_TX",
+                                "adaptive-modulation-is-avail": true,
+                                "supported-alarm-list": [
+                                    "Y9WFNb5bzov1rlKB3psLsfCJ8uiMA",
+                                    "b4MrOyIQzx73gFHPjV6qvzedeIgbOTlZY7qEF1u6qt1G8AojwuJT3X69yekm8FdYEvCcwYaWrcvrMLKaft3bj2cRgx5g4a6JFIN4yX0R9niO8UYgg2jzWvi42fl7prIW2n0skTkm8ua9p0pFUI6Q5gV0n87MrHAlWtO8m8umCwvTxUqruoaAEXA1XzFo88C4Bq4XqzbU5HOuB6OYvYq",
+                                    "O51Pf2uDTTVyXysYBjppS6OklH334LWTIPAXSWsDHg3FOnviGUHy0vKlcOh9r529VuYFjia0qex7B3paX6IQBt3G9kPsqJBd5rKoJUha0OhuRGEHMmpfHsNINua5dD",
+                                    "NS3KjA0rICnjUr8kSkfQ1Vcu10swQKyDCBfV38eMKt5FVeRFqYvrTIVNAgjr0JWvc4qgcx2W07tNddtDbQWXqKK10VkSF8fRcy7o59d59yTeLeSP4OMnqooijA3YIiINQP3VRgT0HM6k",
+                                    "5HhTq0PwAQzYdeB8HpiELwR3GFwMpyNmf5fy544xNvo0JR0qgiXTGOWn",
+                                    "ErEtYrE3v6jS7CdJe98yUBNocOKmAcY7vuAtW6pj4AbcdgNjpORbhwrtk3PNgFULam7Ykw9p6kBbAgmS45VlCfGOinBq3",
+                                    "45BbVWH4lFgOJQ45A1bomND3tViXmdkqaWB5Ka"
+                                ],
+                                "tx-frequency-max": -1150231383,
+                                "maintenance-timer-range": "1a9MoRpiEcL213ZyVHPpsf0JInP",
+                                "transmission-mode-list": [
+                                    {
+                                        "transmission-mode-name": "TCGQNXN4D7jBKiPpH6Vty4UuenfAD38pyGflw3i92BKMLAbkG7N63zAhXPJsLJRbp7wV2O5WhHI29LePK",
+                                        "transmission-mode-rank": -1881409549,
+                                        "supported-as-fixed-configuration": false,
+                                        "am-upshift-level": -95,
+                                        "tx-power-min": 54,
+                                        "am-downshift-level": 122,
+                                        "symbol-rate-reduction-factor": 17,
+                                        "channel-bandwidth": 1524274786,
+                                        "xpic-is-avail": false,
+                                        "code-rate": 89,
+                                        "tx-power-max": 125,
+                                        "rx-threshold": -4809,
+                                        "modulation-scheme": -20197
+                                    }
+                                ],
+                                "encryption-is-avail": true,
+                                "duplex-distance-list": [
+                                    -1297944853
+                                ],
+                                "atpc-range": 2,
+                                "performance-monitoring-is-avail": true,
+                                "auto-freq-select-is-avail": false,
+                                "tx-frequency-min": -1125018405,
+                                "rx-frequency-min": -44679771,
+                                "type-of-equipment": "pgEMs8z4at",
+                                "atpc-is-avail": true,
+                                "supported-radio-signal-id-length": -12543
+                            },
+                            "air-interface-current-performance": {
+                                "number-of-current-performance-sets": -108,
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "timestamp": "2021-02-05T23:10:11Z",
+                                        "scanner-id": "e1pIfZ2o1faWu3yjigpycXpZbucDHYiOZzw6yqmAFwo9rOkJWK98zz7D3cgDarj10P7rfl1UJhWaX8MTKVUcmTPi55N7o60p",
+                                        "performance-data": {
+                                            "snir-max": 70,
+                                            "unavailability": 932888740,
+                                            "rx-level-max": 80,
+                                            "xpd-max": 3,
+                                            "ses": 1634963096,
+                                            "rf-temp-max": -108,
+                                            "tx-level-max": 49,
+                                            "es": -472162617,
+                                            "tx-level-min": -34,
+                                            "tx-level-avg": 5,
+                                            "snir-min": -101,
+                                            "snir-avg": 12,
+                                            "time-period": -1386358509,
+                                            "cses": 430739916,
+                                            "defect-blocks-sum": -31980,
+                                            "rx-level-min": -82,
+                                            "rx-level-avg": 101,
+                                            "rf-temp-min": -96,
+                                            "rf-temp-avg": -44,
+                                            "time-xstates-list": [
+                                                {
+                                                    "time-xstate-sequence-number": 116,
+                                                    "transmission-mode": "JKs3401vTBAq5pla3YfR9FQyybIsZJKAt4vqXwVQ8n8dMlnIkvzl2iUBtu3s5F2rJyRGWEo41oaFKpn4UPhX7bqAyl2D0W4BmNajryfsXp8zPnvBcMyjQQLobFT3CYFQDP15fhp4yxvfN0RZNhbv0WTbCMf6CMO8tQdAZCFx22FP3",
+                                                    "time": -1521519663
+                                                }
+                                            ],
+                                            "xpd-min": -32,
+                                            "xpd-avg": 80
+                                        },
+                                        "elapsed-time": "-9223372036854775808",
+                                        "suspect-interval-flag": true
+                                    }
+                                ]
+                            }
+                        },
+                        "label": [
+                            {
+                                "value-name": "sbaNrNX8c0kzh9Vq8GbJP6GX1xgQisWKw6yXTnXXn9xFbk5j0g2IeAxg8NYq8U3E0ttLQiJer8LCkQVdYPNdqklqZjQ75LDXeYIX8jbAjW4wE0JuHozZIUpz58z2T4Z03AX3T0D5OIBkA",
+                                "value": "G9Ag1a2qJ0qa2cf2caC1dnTRkzrVTT7zUzHVJKmlCMvEYKG2UaV0qOJKf2G"
+                            }
+                        ],
+                        "is-protection-lock-out": false,
+                        "tdm-container-2-0:tdm-container-pac": {
+                            "tdm-container-historical-performances": {
+                                "number-of-historical-performance-sets": 21322,
+                                "time-of-latest-change": "2021-08-16T15:20:49Z",
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "period-end-time": "2021-12-09T15:26:49Z",
+                                        "suspect-interval-flag": true,
+                                        "history-data-id": "YthLNVTV7XHzOZAkqJwC7CXF7JNTW59Mqqpedi1l8IUWzm806FudhjKh2q2YnbCNC11PcV2kvW85bhXhO",
+                                        "performance-data": "kbYAyFNV3VCGQLsLDYXMbWNIXGZLtRLF2J7soMnrHZZyCkb7a8TlWG3LfVwAM9fHSn181pzJgr9LLkSVkM88k4TrZi1DrhckwesxvU8Ld"
+                                    }
+                                ]
+                            },
+                            "tdm-container-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 14692,
+                                        "problem-name": "oODD5XV0PfT2I6geLBlCepQBBBjs1lTp1oUYlPY25JWFPcUsN751pNv0hGsi1dz3BtTOaKQ7tMNbRzDEyIyXoVQFBaPvooqRJjGL3oLp3qAUZ5qpGQf4L5Bf7qCvG2nhdV29jNqedS84XzmDhBz3yaaFAE38yipLdsMo74DdWD9U",
+                                        "problem-severity": "tdm-container-2-0:SEVERITY_TYPE_MINOR",
+                                        "timestamp": "2020-10-02T15:53:29Z"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-10-18T19:57:20Z",
+                                "number-of-current-problems": 75
+                            },
+                            "tdm-container-status": {
+                                "loop-back-kind-up": "tdm-container-2-0:LOOP_BACK_TYPE_BACK_TO_REMOTE",
+                                "performance-monitoring-is-up": true,
+                                "interface-status": "tdm-container-2-0:INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN",
+                                "statistics-is-up": true
+                            },
+                            "tdm-container-capability": {
+                                "performance-monitoring-is-avail": false,
+                                "supported-loop-back-kind-list": [
+                                    "tdm-container-2-0:LOOP_BACK_TYPE_NONE"
+                                ],
+                                "supported-tdm-container-kind-list": [
+                                    {
+                                        "tdm-container-name": "sqxj5W89TMG4Wer8q3xmKbG7XLha7x0APqTUeUW7GubuAuD0p2eadV9byqdGPdgED1rRVnQuRTQjolbNopPBcQEL8RrXXHCsA3coi2K1OAk4WvJcUzN7hkKq3bf0KRlkM",
+                                        "tdm-container-size": -1432998721
+                                    }
+                                ],
+                                "supported-alarm-list": [
+                                    "VjmAiDM23QdbIP231HACv2Wl9Julk18fcuIu7uw3cBeVq8YrHr3dl0quBUHWNP3ZjLlj8RmkssfSA6caxffS7FeBrWx7DA6Pek",
+                                    "mbmywOOggUsqrAFbHcpaElHLRaJGg3OCf22LQQ1YCmhVWO6v1wGFJfqAp9gF5W9kYcXGUQxx4Os0CrwvX4aGjs9JCpgHeiT4uIDoqaNvQ8vkzTQwX049ldSXv0wJihFEZi3hkIM2Qinh3dN15K2qXUfkMDV5MBBDL"
+                                ],
+                                "admin-shut-down-is-avail": false,
+                                "maintenance-timer-range": "kXfV9bJw"
+                            },
+                            "tdm-container-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "suspect-interval-flag": true,
+                                        "performance-data": "9r4C5ZKvh28mmVCtZfGWTQIXd7bcYsA0TwCQnedE8mSuhvY8CwWnewdswowuR6uCvYlS5ypdU9I3Eyc940wbxJv301pRZUtmKG7HfwV1Fv5c39lZ9R2GtxBtq1kiNFExmL7t92uPpz1sIejS5mqqL2Tc35uID07ZMekVg",
+                                        "timestamp": "2020-11-26T15:10:43Z",
+                                        "elapsed-time": "-9223372036854775808",
+                                        "scanner-id": "ZYJbIHp17aVTeQQAytBFkfUEa2lFABazrMC2t13scQdiG4TepuLKJFgLIBqa4tJwfeqAfl2jb8CR4vXtZIdAgudQXE027ByePYO5bIomQ05Un2geClOSP2IFyIHxc7L1Xz68hnu0fzMDt2R5oGY5AyK09jxlqimnRlv0IR0XiNALHkR50H3sfNso7ZBp9YN0ba0TUTIcybYfvPdnogPDV9UU0vk9lZ1w11hV"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -40
+                            }
+                        },
+                        "address": [
+                            "OIyMh4H0x7tVqLBV3z0phNgc2R5SX34DDvhUrQUYPgMg1f3WO3m5Ju9Dm7nb2kHFPQrgHefou1En8zjXvxUe24Robfrdz8KgZ3wy9DWvwtSF24CxBoDDsvTvClAblcrcgPKptzVRUFwWJ0mlpZYJmK7Y5H1iUkv2a7rvGemsMLhvLDI2uzMJjTzgsBymV3o"
+                        ]
+                    }
+                ],
+                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN",
+                "name": [
+                    {
+                        "value-name": "JsWVuGsYi7KnNViYYj3dfdx3TZPWQqWrSKeeqH4IOO6tJgrzznNHAcKt3riUS6dCRsR91VKPCIidYCNxZs6zwRUAacm2jzF2TobUjVJNDU1toG1n07OwQIY1VkV6MA0FYbAaZbXuXQYlwRAwQoVz7Ls",
+                        "value": "6nSKYShO3RQUVOpKwn63eGr4Xev40XQYlAIbsZRnJIiwozgUWeP2NhYKnuGnrodEY"
+                    }
+                ],
+                "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                "physical-port-reference": [
+                    "c942beda-266b-a670-ca1b-e78a3653775b"
+                ],
+                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT",
+                "extension": [
+                    {
+                        "value-name": "u",
+                        "value": "dzpdyyf1gq7H9qjbfvOD7cYJ644JlqXyReDpNTr3byCkYVw6icJhoI1mMX67gVx7a3xXWQS7gmj69HcsTOB9ouw2su2IhzPruegiW0hcmBjoivQ4bjdzOJC85EQn5xGAEXSAPaN"
+                    }
+                ],
+                "ltp-augment-1-0:ltp-augment-pac": {
+                    "ltp-augment-configuration": {
+                        "connector": "07wpeqzDCeErNGQsYiiaCfzpi0iDsCNsCbRIBjm5pSw4q",
+                        "equipment": [
+                            "c942beda-266b-a670-ca1b-e78a3653775b"
+                        ]
+                    }
+                },
+                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE",
+                "local-id": "I426HEO3ShDRJ4Nqadr9ddyc1Lp2smKaiMgRiWUbexUPtH7ENzN0Md4FQtAiPkkZYsIgpujv1dknNsTATyAFMEcC0MNPY7HOAhXRMgmFuG2h0VJTubq8PvKP9px8x6OZnLQ92cPoKJxDxgw1rP18kDQt3ftAlirA3hKXlrd52KAz07srOts07it2xXCS73k2c4Sxn5uiQ5RQ4kaKFCKEM5Gj2a315n4h",
+                "fd-rule-group": [
+                    "5ea42646-26ca-afda-19a7-ad7f7cc924e6"
+                ],
+                "label": [
+                    {
+                        "value-name": "PiNzFohPMFoUrc9heOq5yNz63Sugpk46CRF97WZLtfFVsG4yuuDU940cXmteGxkag0kfWj0iyF5Sm1rIv4Dw1vJYSc4qBoBRoN6d66vwDshRtIAQEdmFI5vs9zLKYetm1zzZxWnbgE2Jmuz1zWGaT4CVDnFBB1YuApt0eRbuv56KsFL1tjbfnOa13HuxIk",
+                        "value": "bCnbQemcBjilLYYNjaQyxwAqAiNZS7S3JfertsE5MWipMh4YrVoQrZ9T9WS13D5FSb6eECbirtH5CM33zkM0bVMkRwdM9aj2mi80MjadMRbhv6k4q65BTJNCf1hpbAjpKrhxKrCojNFOUSLcQIGKrteGuvXyYgXIH77jyKAJpfqbZbgQTWscpGSM4Qc2Y1Cy8CRHejiDzIHqLXgETAQa9BWdj879aBHa5rRjK2PbKwColK2elL"
+                    }
+                ],
+                "transfer-capacity-pac": "1iCiViWCtquL8kjmU6lVYnHs5myx7Kw028bYi7sLpWox8ILUO6HEuo6zDx6ChuujDF9NMtr3iPAqxlddsURObQnOfmiwQMHlsR96csauhKNHY0UiUE65mtLBH37yQOTaxUgCmq6w3Ld1L7jyDpvZKhssczS2gDcFqlhMLgaO1nHFn0dShISURce4M6YUB3r1oBG9RQQK6ppliudz5XlWazSOxRI9U1aiCQjlz16Frn0JS5aP3wDdXw1v",
+                "external-managed-id": {
+                    "manager-identifier": "HIQA0bl2MCBCN6o7jEsREjM195D7HRwgrmIjyWlcyOOeUcldQN5nYJg0GT7gCDoVR7ehVztlfiz1mUf5zckyNAqllxBXa0S1ZYbMpE7EOHFbBM8bYsBD21ZnqscAkWtbUEXjb5XZMu2fhai7CTLwMCTc4XEpT0ANwyYHvNz9iBorMzygkbF7FqbKoI1hIBX61NOoBnxLQOcunCLHGiGlISX6AYgas5",
+                    "external-managed-uuid": "lSWKtbh625awkN92lrIGasE8Uuo4Wtdim92HlbOn9YLtDVvYm6xoy3xlxVpmhuEDEycRB06KRR6uMBl1zSp0VOlsKCO17kwLKIueBAYsr4O6y177ToZOdk9PX"
+                },
+                "client-ltp": [
+                    "c3794728-dc8b-5233-0c67-0b857c32ada1"
+                ],
+                "peer-ltp": "f7872522-16c2-ce17-fc7a-083c8517e7b3",
+                "ltp-in-other-view": [
+                    "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                ],
+                "address": [
+                    "laZxtd69OIhUm79sxP2bEUDuWiyHgSvC2u9nH7xoQOa4Wjwl8qoNd199kHJsre4tI5"
+                ]
+            },
+            {
+                "uuid": "189d4981-f197-74a2-1383-ec0b302e7187",
+                "embedded-clock": [
+                    {
+                        "local-id": "R1zX",
+                        "run-mode": "core-model-1-4:RUN_MODE_FREE_RUN",
+                        "phase-aligned-clock": [
+                            "YVeiPwRShBgjzQZvC8Zx7SnUMwm6JiLAdZK2vtNM43XDTX0o5SV5KiRoH5uiofKt7uoCXbhT6ewZ3pf1ha6TlXiUVMcjUXE1j2D95M2b1r34Qi57l30yTa"
+                        ],
+                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                        "encapsulated-casc": [
+                            "N0N2eC8sjbVA0Q"
+                        ],
+                        "name": [
+                            {
+                                "value-name": "HEk92taqK8hp84rmGrORCBkurnllWaSvO4FJpP99Xqy5mRrVi7MMA681lle9wYFcUkVj9Ws6eS3BJmwTtax39FWu13EpTjBODp7ElsKAcF3W1zHuJ7pSMdfFgT42cyQH",
+                                "value": "PlahXKuCNiDeRZQYgADtPiCIfEMNutCjOMtLpPf4ZSbQJ1HZBktjC51JBGw590gQNBt4qJ0ptb8dcP4G1pZDmSfXyL2AEbqjMTn5"
+                            }
+                        ],
+                        "encompassed-clock": [
+                            "zSzgZS2utSYSlt8xN7dsLeEaUA9zvWk4GUcxEe2ZYSSkdSR1Z4lDaRNXjWoOKJKivOQ12K1TCLdPDWIu0W73NN0ZBoNeZqwmemo96h2A27ix3STVO1YuGQth78n6yUlN8BOfSQHMXZb0S4NyXM2Dun"
+                        ],
+                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK",
+                        "extension": [
+                            {
+                                "value-name": "bNoNj0viI1CSsP484rDogIhT4t1wNRqQEOvQP08pTChdsdmwEZUVz3GvwzUbrk1X9pNQpNfjqwwSJKgfB2a35IyBisMBNFyO4eEm1TFjh33SOj7plasqS112lFD0l4OhikDb5aneeq62K6j5gEw0xx3S5GLqKrzUM5YJflYtL",
+                                "value": "nv2zBidZbKoeutMfTpHljlqh4Fu21gZgD1P6cU5nEut1XfgJEP4QamZ71u1UK0bf2Sm6N"
+                            }
+                        ],
+                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE",
+                        "label": [
+                            {
+                                "value-name": "nmYzu3Db7jcxaIT3XRtALVeOlxt7UyBaUrBhuesCyF1AnMvcvZM9M1X0yq7lYAnL2Y2wcu0C11dgGIsbzfke8ie",
+                                "value": "AlTrV8cX66mbseNu8SKOt5ZUkk8sum04zMnvUrk1xy40NJmVC6JX3ARfUSHg6AdGeA382n1rO5rBPNojM78HHRXuJwCQ6PwkizlcOmvCkX51CtcgskY"
+                            }
+                        ],
+                        "encapsulated-fc": [
+                            {
+                                "uuid": "25ff67ae-40fd-6e16-e76a-3009c3799308",
+                                "service-priority": "-9223372036854775808",
+                                "supporting-pc": "GaZYx0o41IEO5ynKh1j4LrVfAOVhlRsT2rSrkgwdQ2TNAgyR9ROVaJaDp6MLPfwRGojSwH5eJQ2k7s38bR3dteQScDv1S2Lqi4bPD83mZXyYpC6staGOgwHs1clL664p2feFn9UeZscg4bJqlpetVNVPS8AY7En9TtH9DBnu3AK0LtiYSorGcev4eX2lCinnL4wgxUKsmvkZYC",
+                                "layer-protocol-name": "ip-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_IP_LAYER",
+                                "forwarding-direction": "core-model-1-4:FORWARDING_DIRECTION_OMNIDIRECTIONAL",
+                                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                                "name": [
+                                    {
+                                        "value-name": "iUX72pGfYCGbvK0Kb0Rwjgw7dSHmIPq0Kn7MMF1DhAGEkzgnz7USgiSt2zIKp8C1oBN2gHFphm3tVjRmjDfzV7UPyuAXDcYTOEVWdteuP9XCtGQEj5564ZWvmokZsbK8PF528boPkdjNUaj57oc4g0rCoLtQWdZDKWxL7NAr1",
+                                        "value": "7VOq0VH4RX4irkWM3SZ2oBQNmXBPgCBnphGh4feW4a6vv2hyN8s3BiQY7rFnV8DcpjmtyApCKoZ7i8F5870JpRHwaeM6mpaLAwf0YwCBUtIdBoaJnbsN22b4gX2DedgOBvOA2i3WLL1e9cXxfichcflk5oPjt604BOwv7zkKllZmpOLEYPN251n2p"
+                                    }
+                                ],
+                                "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT",
+                                "extension": [
+                                    {
+                                        "value-name": "SzWEAT3s",
+                                        "value": "PyiMnVL2ZFcvT3ZuVVDE16oAU2aGXC5N2nzqbcsaKwFvzwRmkm0lkoVei6MgASVD7m3izntbT0ytppPJLQ456RbhPYpqIk3PG687ttielQHK7xlKfhPd9TuYJTgj5j8Mh8TCt4RPMyrMXNw44e"
+                                    }
+                                ],
+                                "fc-route": "L28GnMiOnke9GdUKUKffQYjmm0zrq343Y4JlRT",
+                                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE",
+                                "configuration-and-switch-control": [
+                                    "fUoBgWUlFUCkuanl1HhQV04LxhQEfa2u4iYk6SyLMaX8ldtmUL4HL0lahbOxlI1h0RC6J2JncHvpURLGCHofIJpZM6w0OqhPhLNTNx806EpSn3qZKO6spvkcBQ4q8l7i7UbUjjMhPc1c7s3R89cyFwC8eGqn1xF0kIVv1HFJLGVS8RC"
+                                ],
+                                "local-id": "iK2mZ8qvv1dDQ7T7R7RyTawsv6xKHMGZpJdgRDMeERRmYCtHKc7vfDXKKmmj03ihEwyn1cBy3kMTX8szkz4rdT4Pfq8ftqx",
+                                "lower-level-fc": [
+                                    "9bc11e2d-913a-2fa6-a64f-f01427c75d88"
+                                ],
+                                "fc-switch": [
+                                    {
+                                        "local-id": "CXSYc9YQFXgW5hh95WqsQ0NHEKU3pQvTNfRZoIH3FYRC71DdX3FNVkmsWhve7S7N7RMozmj6k3Aj4dw194G4gVw54Tj3LiQL9v1IRcG3fgmjmLcvHLzXyYUCRdFvwo8xT18CdOxt5LEjoRO5unV2dPw5Vbs",
+                                        "wait-to-restore-time": "-9223372036854775808",
+                                        "profile-proxy": [
+                                            "kkWuPKVxB4mK6QY126zZKEkSw5Lg2a1mmPQbzDI2I4MOMLHPJ8O"
+                                        ],
+                                        "control-parameters": {
+                                            "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE",
+                                            "prot-type": "6q236kbSvPsFXe0fjyENmKG9YAM8W0UUiXPo908EIsbxG3ESBaxQVdRTNDUBDOvNDdbM5biNDudkxR412BRPPAAudu6IbtvOyyt",
+                                            "hold-off-time": "-9223372036854775808",
+                                            "wait-to-revert-time": "-9223372036854775808",
+                                            "network-scheme-specification": "Lrm7wyxoCyi6h7VRHhW4fEfB1V9zgNaU7w1DXqTzYbF7asQKKEORaVsbICCZhMTobM28dVz3Z731rLL3qrVAenMXRgO93zx6dr6qfFm6Eh762T9sc43rkHgbP4kKvKQIbW1iuno0Ew6yh81t4WMovUAkQM5loN"
+                                        },
+                                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                                        "switch-selection-reason": "core-model-1-4:SWITCH_STATE_REASON_NONE",
+                                        "name": [
+                                            {
+                                                "value-name": "rAQcBYOONd9KZO3fxJl168VcXrhKuB3W3U8EKPkpUm1LaW1HFmAEunQjGZ42AZYDLZ9wGlVAHPmRLnqrBSXX7N8NMcQe4GRPF0lld9OVYaMBp5USXRP5wXKa2Ao697VO792daQ80SMB9Rw1HfQEMFg",
+                                                "value": "zRlF0stGsCAFEqFEar7jbDkSL2oxAEl9nGPf1aWlEoSiPxWRY3b1znTkq9J0O41bDQjwS7RwvBOc8C4Yyf07CLjUV2MJYOMBw57pcQVIrCUreQiM5aLAVWmQQ9rPX6it3"
+                                            }
+                                        ],
+                                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT",
+                                        "switch-selects-ports": "core-model-1-4:PORT_DIRECTION_BIDIRECTIONAL",
+                                        "extension": [
+                                            {
+                                                "value-name": "H2IdU5UalOaZsFAUuzzib56y8HlFt312XCgSH222I413KBP62hp5enE",
+                                                "value": "5ZTqUNtKpBu6Do0etTh5n6bpnsvCQ9QN0K5MpqwO10MxpELKxUPU00kglHKbQsYI4VutmT9nTVMazxMZjBTcu5sPM4SuwIctDzWZs6fdT1glr2kKw5W0bgHPcrkB9o4EX0wpYDDSwTdXNxAjCobFxKvJbHcc5gR39fk"
+                                            }
+                                        ],
+                                        "prot-type": "yk8t6et50f6D65kLrpxn24bu1rhQe1HEdPZjVtoNAvjzADkT3R85NjrODIEJCdoP2f9QIpDbMWKes48vNgsssUh5uNO614WVkXDUmh515PfxLnUqwnTYh2VLPBKIGGwSv9EJiCKoj0N5nInT5gJeiER0gBAO96yw8cgqO0G00u5g4s11BL7LhYLpse5tcD0kI8",
+                                        "reversion-mode": "core-model-1-4:REVERSION_MODE_NON-REVERTIVE",
+                                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED",
+                                        "configuration-and-switch-control": "N0db6Rs01tefaXrKA9Ma6rQS4yzNGg9l8exe5Z6YkleuiF6KGTNEcDpg3YVK64XfjmlglsfxNt2X00zGLmlX0K53A1FH5vOgR9x5BECg7w57xFFaTS8LudH5eeEcJkkBtJy5nadmzjlYQ18JLgvgm4dsiJE23RvoA3lQ5zcEKqCAjDb4Tyc7ChAV06XVXkkqnF8k6kZQKti36m0SUcZxurkmy9antuNI1V288TQKn9Gl",
+                                        "internal-configuration-and-switch-control": "y5hKXG6o0lO9vcuZRcSF70F0RpfSXBfvyw8v56U5rA7WMBNwGybNyQFh7V15o8sWFssKzeH0OOPtiuZY22DtSiCR5wOtE9qbBKVaQv3wbKZt6Qj1SWmC7YmcuaG1jYcVI0Xqv0WGCOaJwtKhi6LpW7Bjahkl7w8Pw671Y4ABKCc85OpfMbEAa8Tkp5GxCOe0Ue",
+                                        "label": [
+                                            {
+                                                "value-name": "K80GQkaCLgl33i5GS1D7Jlg3a59lq4DbcvJ2PTxB9Sw42CDVv8Uet29w7iRxnmAzRjuH4Ta6Dy2F2FsxNmE9oNFnYwNdSnMBz8aDTkBoTE4NjolZDR81ENhCb4P3juwSuHog1ZEMDIsPZNOCw",
+                                                "value": "vaBMFMI"
+                                            }
+                                        ],
+                                        "selected-fc-port": [
+                                            {
+                                                "local-id": "17NLowTInclMc9jmZ23tRdeTR3rb1i4UhJyFgjgvvB9HCk3tm7W5kbQb6he0raUIUsf2Lvp9ZyQBSU561T3dWTo32D3tFP3raatVGK4xaN02HX0AR3NFO3IIGD3et6FD91qPLneWaeQJcRjVMYst13bAGfO1dtEmuX3gkhcmo25sLgnq6PL7SOHr3vs9Z7nlWr",
+                                                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                                                "name": [
+                                                    {
+                                                        "value-name": "8AFuYArqdzFvFngM75my0RT1ISp4OIxWi5i9xJrKa78PmottlPUeHN7hxwdl6D",
+                                                        "value": "pIry7aZRkYZ1cguGtkszT7H2E5gRcT0Btr1AtSjNJbGVratMmVmfU3iq0qhcbhFEIG63rhQ2soXLzryVeU31PlrPLJ2WSzst8qwzHfB2DqNcRd0YZ3ZGgiwT1qHMZ1f7rLy001UEsAIb"
+                                                    }
+                                                ],
+                                                "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE",
+                                                "extension": [
+                                                    {
+                                                        "value-name": "u6ybZ2zG80Vfq5YNhd012yjCDmC0pQELO4OG6gm6g9dy6bdgpe9jE",
+                                                        "value": "NhGih50NIOSxmQNIXVKatImHYDN0OrkuI1MRYMEzsoYPfDpcy1eTKsAA5fsMGNggG2ZwGw50U3H"
+                                                    }
+                                                ],
+                                                "logical-termination-point": [
+                                                    "bc478ce2-7d3c-9c53-dff2-7724bcef25d4"
+                                                ],
+                                                "selection-priority": "-9223372036854775808",
+                                                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL",
+                                                "port-of-internal-fc": [
+                                                    "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                                ],
+                                                "label": [
+                                                    {
+                                                        "value-name": "I1FD0lLbJE41dQ1e50xJ",
+                                                        "value": "yJskfMUYYIyZf4SAP3km7lzQeON7lwqL8S6nx0dvAMmPQeix9CT9PtZ49M3ubt8jdeGK6U7HyuogIGNSazT02SWbwZxzsFSxTriSlprLTP1uoGeyf7q9RmkflKPFpHdb0n3l"
+                                                    }
+                                                ],
+                                                "is-protection-lock-out": false,
+                                                "fc-port-direction": "core-model-1-4:PORT_DIRECTION_INPUT",
+                                                "fc-route-feeds-fc-port-egress": [
+                                                    "dv3EF9jH3gUSpR7kQrDp7VFaQJPCX9T2EPGjYR"
+                                                ],
+                                                "is-internal-port": false,
+                                                "role": "8jo1FthJOaChNJ25AGmUUsn65frNn4cofApVWyECI9TwSVtsBPenhCufJN27J6nYzMTnkqZ2zSqjFTM9B0wSuS76x25g0s7ze0WqiNkJxL3dwHeZzCK4vJ2UL73EzadF225lPh4nUZsjGGiga2c",
+                                                "address": [
+                                                    "0s0CUs5SApE84MpKGg9eMeezaOIINOHF8zaUT7MtwiCB4TdC9mQOt5nDLXdqLMXLd7G76ksvv46rPb4ZyUF1R2wCRBUvoSgBRWAY93lE7r5PC9G2Wl3Nfri63ctrWKUOyvEzyZdxibeMkUP8fKWmc6lfaOy7qkVRPrqfiwFAHTe1O32VGYiS4vZ6jpdCJ0trrLGBhd3Y7iSNdUITKSDGnuMzT0bv0wWk9CVrQZhP91CmVc8x5Ldk80T1SWo"
+                                                ],
+                                                "fc-port": [
+                                                    "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                                ]
+                                            }
+                                        ],
+                                        "hold-off-time": "-9223372036854775808",
+                                        "switch-control": "core-model-1-4:SWITCH_CONTROL_FORCED",
+                                        "address": [
+                                            "I4eotGH64TDtD05HHhTNyCQHR2GJ0G0ACeY6Uy4QjHcWIhvpqh4YTMxLP6mHMm9gA0mmyqdR0pFIybZYs4PdIeQxkdeYr"
+                                        ]
+                                    }
+                                ],
+                                "supported-link": [
+                                    "x4"
+                                ],
+                                "label": [
+                                    {
+                                        "value-name": "dKadO",
+                                        "value": "2dh1EBDZPueebZL1Hy4MzjGQvTAG7hk1utU0Xp0MU6SXXDYE42iDdYuJS4hRd"
+                                    }
+                                ],
+                                "is-protection-lock-out": false,
+                                "external-managed-id": {
+                                    "manager-identifier": "J18h5eE9sB3O5d3tZ7ZfwLSYZnjQdNFOOF5TTJUmdQ2i35L24Dasg2q8hBYmpwb5b8R5KLjXBd7xiTzeoBGEvYEMsD1R1cO4cF1WjkLMxTjHELN2mtySkdwMIxvJBjFORHCaToWj980NTOP79fZlso72VCLxOjdx0PHTdvcmv5",
+                                    "external-managed-uuid": "oLQwM6n8qLftHK66qpjXp8wbeTfspkuNXcbKizSBcZ4LBaR1s2YR3mUhgaJFm5kkioWsPO31F7NhawaCz1lCn8LDimawsnIKLEcsk8t0f89hFjT6k7IIfldpHgV9DELgaYIv63ndcwnJP8P2fpKmKPLr5ztA5eIf"
+                                },
+                                "fc-port": [
+                                    {
+                                        "local-id": "9T0CjJcKTcBQ9wMb23Vr5EWgvdMvRq11b1vmCH7nUIe36068VUA0qo8VBUilcjendBKPjJd5jr0qj7ye106rpffS9x5mJjBWVdL6WY3gh3GAa6O3ZNng2C831ehKpTGk6kiVilbspJ2rPJvOwK4qm5lfbv0AgyVeS593rkv",
+                                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                                        "name": [
+                                            {
+                                                "value-name": "3x9L8wrEgoWulaKwFK6VaT93Zj6ivB0r0949yvNOLCb6MVCjxJeHufKtqQLWjLfkNjtlG81sKcqo7",
+                                                "value": "zwENe0VQulz79SLo4yHxLgGEAiR0zQV8frOtsJbW4KV6vGuz647RkFoUXfMoXIxc1dxtWJhSldYQTliSppBBWZvL69a4Rz8TMGeAhwkCJbluwDeN2QoQPLBWUL0Ec0xYGLqX9DAKOV7cqlZkbfa10LPMpHqBHPsotKdCnNn3Auf0P6cTdmU50BSpiaSZ0cflXtXc8cgJynBgmO9z2VF2wprOzcFroVMdoC"
+                                            }
+                                        ],
+                                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE",
+                                        "extension": [
+                                            {
+                                                "value-name": "gZ2GaE1xKsigm36BP31k9vzwGrcuR7y0YsG17zyJ1IZfDYRl1Sx2f6yNpChhCHhAaPthp10iBSy7QhsJ1ZDgX33mGcvaTEC3u6cTZ53BXBIFS2gT1T1YW4cu8IEUe9P",
+                                                "value": "f2te7xHW8ht1jJMcCO2qKfVTPrF3AuEHo7WnEvjNNMG6nkbZ8diLk5w1wb5ZFJG4Iurn0D2FhADFUOwV2OGeTcgifd9UWPQwcaT4NNJWnmta3055ODbAHrSWE1QsIzZMJKQoyzcNOGXRGUOmxZWejG2XzTiak9W3TNjjev72b4LJRz6orUvKtxz2iJ4"
+                                            }
+                                        ],
+                                        "logical-termination-point": [
+                                            "f7872522-16c2-ce17-fc7a-083c8517e7b3"
+                                        ],
+                                        "selection-priority": "-9223372036854775808",
+                                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL",
+                                        "port-of-internal-fc": [
+                                            "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                        ],
+                                        "label": [
+                                            {
+                                                "value-name": "wOy7fVBvhhERjromXNFDeRaG85kllWDSDbRS7sngBTZVkf992GE9qOHyM1L7QpRtsBlrVAIxtzkFPtGJ9kSz0rZElLEb2nEmYROUrojUXDrE67o7j8zbAqQV3uY5JCsIl8uMwFy",
+                                                "value": "iZ0gYgfhoOsQ7aDaEBgg5AYqIk46ZCr9tjhrzwIYd3GkdkuKNC0TcQbM2gKTS42enjFXHgNUjleoFB8ld06iQh4SpPDaTFo8Q35ybKku6rLD2TYfMWxC6unvb0FWy3"
+                                            }
+                                        ],
+                                        "is-protection-lock-out": false,
+                                        "fc-port-direction": "core-model-1-4:PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN",
+                                        "fc-route-feeds-fc-port-egress": [
+                                            "hKpaRDiYgw0EE"
+                                        ],
+                                        "is-internal-port": true,
+                                        "role": "6d8fLl1o8MDfutyIHza0Z5",
+                                        "address": [
+                                            "OIXU6WPhTATK2R0lDvX6Vo1585IS67wMImzOio5bQQNKHO5lb2j6jccriMjgLIVt4mheKfis555FTa055b3oo7HyLSOxABSwX2Lzh3Ue0ZLU1DR6PMmdU3LxOr4oVXN"
+                                        ],
+                                        "fc-port": [
+                                            "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                        ]
+                                    }
+                                ],
+                                "address": [
+                                    "Iqc1no19xaVaDR1kvrMhhzOdv2nB12pJktCHRDJpNwrjnkDSDp2UQQ8mKvPDpeeBHQbrtMI9i9sxlXhYnjT51TrDg88ymm1W4cfqYXz8YTFjQXh582b2NuF4DOuZ2vN7I2xyR6HHRe0z3aF44I6ScLOPzaHCFmBfh8O86nQXtIoxK3BPLHzQknFMxeg4BRkSZ00XfIMIja736AKR9jzuyfg5tw24fmOeeH3thP3AZbw5DgPNAo90vp6"
+                                ]
+                            }
+                        ],
+                        "sync-ltp": [
+                            "1c7e2c79-af6e-8d12-d18a-957fe616ceeb"
+                        ],
+                        "address": [
+                            "kL3tuAiqilMhsFLtAnmLDgvZmiiHC6vORqhlSsDaFpk74XswdG9QWFHaXRRrXe8OFp1pJEAo3Mn0JIwWoGEdddna5fu2tCJ0TKqDpSTkEhcnRBcf9Qsm4Qo1XSViuEjgpJTGBMS7V5mMyyUHhe3dWjeTc94yGnO"
+                        ]
+                    }
+                ],
+                "supporting-pc": "6zDzeny9kUOStArKOmXDG3oS4siKP7HNGkeUIMW2HCN2ceESBBvhwM1AejlWi2JZfQLPuHJ3bw5nDJ8ecDnIhgjwzwsSy3JNLuug4ejfKpvf0Dt58INqYYWqugiVbTAXf55jjorVFWbGrwLzfqZ5pNvLVFGZyhWOe1ZxhqkXevvx2g79yY6XECBrh9qQqewE7v3pOoeULJsFRrOp",
+                "server-ltp": [
+                    "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                ],
+                "connected-ltp": "f7872522-16c2-ce17-fc7a-083c8517e7b3",
+                "layer-protocol": [
+                    {
+                        "local-id": "GN96YuNZ6RaDd81LsMenKNf2SH8RuDR2i008nN7lw9ZJh0vJEJ7goei8V",
+                        "layer-protocol-name": "ethernet-container-2-0:LAYER_PROTOCOL_NAME_TYPE_ETHERNET_CONTAINER_LAYER",
+                        "vlan-interface-1-0:vlan-interface-pac": {
+                            "vlan-interface-capability": {
+                                "configuring-pcp-bits-decoding-is-avail": true,
+                                "ingress-vlan-id-filtering-is-avail": true,
+                                "port-and-protocol-based-vlan-is-avail": false,
+                                "statistics-is-avail": false,
+                                "configuring-service-access-priority-mapping-is-avail": true,
+                                "max-number-of-protocol-vlan-id-groupings": -20004,
+                                "configuring-ingress-tag-filtering-is-avail": true,
+                                "supported-sub-layer-protocol-name-list": [
+                                    "vlan-interface-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_D_BRIDGE_COMPONENT"
+                                ],
+                                "number-of-available-traffic-classes": 30,
+                                "supported-interface-kind-list": [
+                                    "vlan-interface-1-0:INTERFACE_KIND_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "available-pcp-bits-interpretation-kind-list": [
+                                    "vlan-interface-1-0:PCP_BITS_INTERPRETATION_KIND_TYPE_8P0D"
+                                ],
+                                "drop-eligible-indicator-is-avail": false,
+                                "configuring-pcp-bits-encoding-is-avail": true,
+                                "service-access-priority-tagging-is-avail": false,
+                                "received-priority-overwriting-is-avail": true,
+                                "egress-vlan-id-translation-is-avail": false,
+                                "admin-shut-down-is-avail": false,
+                                "tagging-and-mvrp-is-avail": false,
+                                "vlan-id-translation-is-avail": true,
+                                "restricted-automated-vlan-registration-is-avail": false,
+                                "number-of-available-priorities": -6
+                            },
+                            "vlan-interface-status": {
+                                "statistics-is-up": true,
+                                "timestamp": "2021-08-30T01:58:04Z",
+                                "total-bytes-output": "-9223372036854775808",
+                                "total-frames-input": "-9223372036854775808",
+                                "interface-status": "vlan-interface-1-0:INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN",
+                                "total-frames-output": "-9223372036854775808",
+                                "total-bytes-input": "-9223372036854775808"
+                            }
+                        },
+                        "wire-interface-2-0:wire-interface-pac": {
+                            "wire-interface-current-problems": {
+                                "number-of-current-problems": 0,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 8872,
+                                        "timestamp": "2021-01-09T20:35:56Z",
+                                        "problem-severity": "wire-interface-2-0:SEVERITY_TYPE_CRITICAL",
+                                        "problem-name": "CkFnBPk4NIziCRuVh6UUKsfTqo7Z6V"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-02-10T22:18:43Z"
+                            },
+                            "wire-interface-historical-performances": {
+                                "number-of-historical-performance-sets": 13225,
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "period-end-time": "2020-03-16T02:06:59Z",
+                                        "performance-data": {
+                                            "es": 632894086,
+                                            "ses": -1584224125,
+                                            "low-power-idle-receiver-ms": -1138485043,
+                                            "low-power-idle-transmitter-ms": -1490168703,
+                                            "symbol-error-during-carrier": -1590959865
+                                        },
+                                        "history-data-id": "b9d9dzYMRWiWGHkGJ95TYrPxwTFzpTLAUYJ0yzEhnW5VwqCfzz0pSQXpBCQ0nBsas320CG9RufM0Fg86H8wAQtRrXHjcaLmuOomiWw9rLWji4roMsUmifdC4MVhOzvjnUFGI3H9ODt6IMnme9IphN1lrOCff8qvU63C9KEQg7OYT3c0dUpuziP0Ykf6sGBeEEQFouvEtcuffG7sswO1Gw",
+                                        "suspect-interval-flag": false
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-11-04T14:26:27Z"
+                            },
+                            "wire-interface-status": {
+                                "rx-sync-role": "wire-interface-2-0:RX_SYNC_ROLE_TYPE_NOT_YET_DEFINED",
+                                "link-is-idle": true,
+                                "eee-is-up": false,
+                                "performance-monitoring-is-up": true,
+                                "rx-level-cur-list": [
+                                    89
+                                ],
+                                "tx-level-cur": 71,
+                                "pmd-negotiation-state": "wire-interface-2-0:PMD_NEGOTIATION_STATE_TYPE_IN_PROGRESS",
+                                "loop-back-kind-up": "wire-interface-2-0:LOOP_BACK_TYPE_NONE",
+                                "interface-status": "wire-interface-2-0:INTERFACE_STATUS_TYPE_UNKNOWN",
+                                "pmd-kind-cur": "xlX3GFKLAOkNkiTufkB0sJlt",
+                                "receive-signal-is-detected-list": [
+                                    true
+                                ],
+                                "signal-ordering-kind-cur": "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI",
+                                "pmd-is-up": false,
+                                "link-is-up": false
+                            },
+                            "wire-interface-capability": {
+                                "wavelength-min-list": [
+                                    -1988277439
+                                ],
+                                "supported-signal-ordering-kind-list": [
+                                    "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "rxlevel-high-threshold": -49,
+                                "isolation-is-avail": true,
+                                "supported-loop-back-kind-list": [
+                                    "wire-interface-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "short-reach-mode-is-avail": false,
+                                "wavelength-max-list": [
+                                    -1766998411
+                                ],
+                                "unidirectional-operation-is-avail": false,
+                                "supported-pmd-kind-list": [
+                                    {
+                                        "pmd-name": "FeDss7nm3pj4JW2O27ln3lGkHKNRm621lF",
+                                        "speed": "FMJ1I8dMJ9OqbNLyJY7VFRIodOi71PtGu4IccVYV4Fd7kYG3WNQuwySJf3QgSbXmfxyrspfo4svgj3c7I2BetmYIpGQ9SNw7cWrEly2h0qybtKjcMUi78gPxPGHHl5Gy174fFZoypWJKyUOdP7kXf2n4IWLV1klUri9Zhyxym8iV370K6kzlmOqWK3KDn5yHnzGw754m5f90e9KklcxISXwDTg8",
+                                        "duplex": "wire-interface-2-0:DUPLEX_TYPE_NOT_YET_DEFINED"
+                                    }
+                                ],
+                                "configuration-of-number-of-bip-errors-per-ses-is-avail": true,
+                                "auto-pmd-negotiation-is-avail": false,
+                                "required-medium-kind": "wire-interface-2-0:MEDIUM_KIND_TYPE_TP_CAT6",
+                                "temperature-low-threshold": 79,
+                                "maintenance-timer-range": "fY5KJeT0szPVHdNXNKilNVU5qdypsrQHiOk12dTmEB9mOPbtztPegBbHOKY83PPlv9npegDTRM7xta12vI9MjklZWj700OlnYIM4RpXI4W8x69sCRBg2NB1KM0",
+                                "supported-alarm-list": [
+                                    "FO52EGPJx6y72nf"
+                                ],
+                                "mii-kind": "wire-interface-2-0:MII_KIND_TYPE_SOLDERED_CONNECTOR",
+                                "rxlevel-low-threshold": -107,
+                                "auto-negotiation-pmd-selection-is-avail": false,
+                                "wavelength-grid-min": -1724345285,
+                                "performance-monitoring-is-avail": false,
+                                "auto-signal-ordering-is-avail": true,
+                                "configuration-of-rx-sync-preference-is-avail": false,
+                                "eee-is-avail": true,
+                                "temperature-high-threshold": -89,
+                                "admin-shut-down-is-avail": true,
+                                "mdi-kind": "wire-interface-2-0:MDI_KIND_TYPE_SC"
+                            },
+                            "wire-interface-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "performance-data": {
+                                            "es": -570773979,
+                                            "ses": 1416940098,
+                                            "low-power-idle-receiver-ms": -1815582847,
+                                            "low-power-idle-transmitter-ms": 498025456,
+                                            "symbol-error-during-carrier": 591095020
+                                        },
+                                        "timestamp": "2021-01-30T06:23:24Z",
+                                        "scanner-id": "YE4Spw0aXo9Ou",
+                                        "suspect-interval-flag": true,
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -49
+                            }
+                        },
+                        "ethernet-container-2-0:ethernet-container-pac": {
+                            "ethernet-container-capability": {
+                                "supported-fec-interleaver-kind-list": [
+                                    "ethernet-container-2-0:FEC_INTERLEAVER_KIND_TYPE_NONE"
+                                ],
+                                "maintenance-timer-range": "SfQmtVka",
+                                "supported-alarm-list": [
+                                    "mB2bvyP3hmW8OsZu5tDK0wRQScE4mZ9IA3U5BJ0L",
+                                    "WTDhK8mdLY59POT1kXnj66T9SQDtQoiF9VOL3aYH1VIQJCS3z7my57zPPciysA"
+                                ],
+                                "statistics-is-avail": true,
+                                "encryption-is-avail": false,
+                                "performance-monitoring-is-avail": true,
+                                "available-queue-list": [
+                                    {
+                                        "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE7",
+                                        "available-dropping-behavior-kind-list": [
+                                            "ethernet-container-2-0:DROPPING_BEHAVIOR_KIND_TYPE_WRED"
+                                        ],
+                                        "available-drop-precedence-kind-list": [
+                                            "ethernet-container-2-0:DROP_PRECEDENCE_TYPE_LOW"
+                                        ],
+                                        "queue-depth-configuration-is-avail": true,
+                                        "wred-profile-per-drop-precedence-is-available": true,
+                                        "available-scheduling-kind-list": [
+                                            "ethernet-container-2-0:SCHEDULER_KIND_TYPE_NOT_YET_DEFINED"
+                                        ],
+                                        "max-queue-depth": 791857378
+                                    }
+                                ],
+                                "bundling-is-avail": false,
+                                "supported-header-compression-kind-list": [
+                                    {
+                                        "header-compression-name": "cTcf3MSleTBTVJIiBe5YPFLc85X2wLG",
+                                        "mpls-payload-kind-list": [
+                                            "ethernet-container-2-0:MPLS_PAYLOAD_KIND_TYPE_IP_O_MPLS"
+                                        ],
+                                        "compressed-protocol-layer-list": [
+                                            "ethernet-container-2-0:PROTOCOL_LAYER_TYPE_IPV4"
+                                        ],
+                                        "header-compression-mode": "ethernet-container-2-0:HEADER_COMPRESSION_MODE_TYPE_PROTOCOL_BASED",
+                                        "compressed-header-length": 25296
+                                    }
+                                ],
+                                "support-of-management-frames-without-preamble-is-avail": false,
+                                "explicit-congestion-notification-is-avail": true,
+                                "information-rate-min": -293139409,
+                                "fec-is-avail": false,
+                                "burst-size-max": 18671,
+                                "ingress-policing-is-avail": false,
+                                "supported-fec-redundancy-size-list": [
+                                    "ethernet-container-2-0:FEC_REDUNDANCY_SIZE_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "egress-shaping-is-avail": true,
+                                "information-rate-max": -735456447,
+                                "admin-shut-down-is-avail": true,
+                                "bundling-group-size-max": 87,
+                                "supported-fec-interleaver-depth-list": [
+                                    "ethernet-container-2-0:FEC_INTERLEAVER_DEPTH_TYPE_48"
+                                ],
+                                "burst-size-min": 23664,
+                                "fec-word-size-max": 23782,
+                                "supported-loop-back-kind-list": [
+                                    "ethernet-container-2-0:LOOP_BACK_TYPE_NONE"
+                                ]
+                            },
+                            "ethernet-container-current-problems": {
+                                "number-of-current-problems": 89,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 14063,
+                                        "problem-name": "FncvhKBa7p8Y4bPeZ6VKtLoPQWwjhZBOeObnyMyx3GvZKcdJa0lDLJt",
+                                        "timestamp": "2021-06-10T02:51:09Z",
+                                        "problem-severity": "ethernet-container-2-0:SEVERITY_TYPE_NON_ALARMED"
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-09-15T11:14:36Z"
+                            },
+                            "ethernet-container-configuration": {
+                                "fec-is-on": false,
+                                "fec-interleaver-depth": "ethernet-container-2-0:FEC_INTERLEAVER_DEPTH_TYPE_12",
+                                "bundling-is-on": false,
+                                "fec-word-size": 24895,
+                                "encryption-is-on": true,
+                                "maintenance-timer": 1383169938,
+                                "performance-monitoring-is-on": false,
+                                "fec-redundancy-size": "ethernet-container-2-0:FEC_REDUNDANCY_SIZE_TYPE_NOT_YET_DEFINED",
+                                "maximum-burst-size": 28142,
+                                "ingress-policing-profile": "18e43d24-0971-5669-ee67-cba5faa4eabb",
+                                "interface-name": "oTejV40W0BNJ5xFEwT4C1ErIIC834dws",
+                                "loop-back-kind-on": "ethernet-container-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED",
+                                "fec-interleaver-kind": "ethernet-container-2-0:FEC_INTERLEAVER_KIND_TYPE_NOT_YET_DEFINED",
+                                "egress-shaping-is-on": true,
+                                "problem-kind-severity-list": [
+                                    {
+                                        "problem-kind-name": "EUUPk",
+                                        "problem-kind-severity": "ethernet-container-2-0:SEVERITY_TYPE_CRITICAL"
+                                    },
+                                    {
+                                        "problem-kind-name": "QTFe1nVYYFb",
+                                        "problem-kind-severity": "ethernet-container-2-0:SEVERITY_TYPE_MAJOR"
+                                    }
+                                ],
+                                "statistics-is-on": true,
+                                "maximum-information-rate": 1542413474,
+                                "interface-is-on": false,
+                                "queue-behavior-list": [
+                                    {
+                                        "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE",
+                                        "dropping-behavior-kind": "ethernet-container-2-0:DROPPING_BEHAVIOR_KIND_TYPE_DROP_TAIL",
+                                        "scheduler-kind": "ethernet-container-2-0:SCHEDULER_KIND_TYPE_STRICT",
+                                        "weighting": 15,
+                                        "queue-depth": 1342600024,
+                                        "wred-behavior-list": [
+                                            {
+                                                "affected-drop-precedence": "ethernet-container-2-0:DROP_PRECEDENCE_TYPE_ALL",
+                                                "affected-protocol": "ethernet-container-2-0:PROTOCOL_LAYER_TYPE_Q_IN_Q",
+                                                "wred-profile": "18e43d24-0971-5669-ee67-cba5faa4eabb"
+                                            }
+                                        ]
+                                    }
+                                ],
+                                "explicit-congestion-notification-is-on": true,
+                                "cryptographic-key": "jml2YtXVztfx61rOyavFFOSIEB9oo40AqduhHr48UjFTlZHL94qOTaopLpF2tGCUT63sx7Ajq84D7Lo8QHWBRl0DKyF6e9S"
+                            },
+                            "ethernet-container-historical-performances": {
+                                "number-of-historical-performance-sets": -30693,
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "period-end-time": "2021-01-31T11:42:29Z",
+                                        "suspect-interval-flag": false,
+                                        "history-data-id": "7gXU0SPyY7GevwEubr4Ms97B0o5mCB0KRQwJAdhylXMQlicxChb4qaxqzuM3YFFHnbrXpIvCy9kTkwiWFuS6Epo5L31JAGrXKSM1s9D0iXMul4i1qaZXrfUdiVWKufHeZl7kuKcNHY92VsVdCU2WaX9kKX5e5Ek40ro",
+                                        "performance-data": {
+                                            "queue-utilization-list": [
+                                                {
+                                                    "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE6",
+                                                    "max-queue-length": -1508143247,
+                                                    "avg-queue-length": 1846139038
+                                                }
+                                            ],
+                                            "fec-uncorrectable-blocks": 1752887852,
+                                            "tx-ethernet-bytes-sum": "-9223372036854775808",
+                                            "tx-ethernet-bytes-max-m": "-9223372036854775808",
+                                            "fec-corrected-blocks": -1764200263,
+                                            "tx-ethernet-bytes-max-s": -1172090243,
+                                            "time-period": 1322846624
+                                        }
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-08-04T19:17:10Z"
+                            },
+                            "ethernet-container-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "timestamp": "2020-04-28T15:03:53Z",
+                                        "scanner-id": "JlLUl7x7ISA8BfPjDcgHKsbXcc5CJcFtxifLhES0xk00rQk4UsDFUGu6TzAuLfXby4WPJGH8SI8kqsgkUMRGslMdMnIquxt2CpKdXjlP1t1rOaMAWvhgR3uvi4NFtgz5xjauDvcwR5YxfC7b7osQkOeuK19daJbHUlcpJgWslMZBg6Mfn6YHM43w5dKfONXI810J9WbuAa5Q9KXwIVdvZgTXlv49iTKjMK2VGeq8gnQp7NV",
+                                        "suspect-interval-flag": true,
+                                        "performance-data": {
+                                            "queue-utilization-list": [
+                                                {
+                                                    "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE2",
+                                                    "max-queue-length": 811096864,
+                                                    "avg-queue-length": 498156356
+                                                }
+                                            ],
+                                            "fec-uncorrectable-blocks": 822153572,
+                                            "tx-ethernet-bytes-sum": "-9223372036854775808",
+                                            "tx-ethernet-bytes-max-m": "-9223372036854775808",
+                                            "fec-corrected-blocks": -408353255,
+                                            "tx-ethernet-bytes-max-s": 1830494130,
+                                            "time-period": 783373190
+                                        },
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -127
+                            },
+                            "ethernet-container-status": {
+                                "timestamp": "2022-02-08T10:23:08Z",
+                                "last-10-sec-data-output-rate": -472391875,
+                                "bundling-is-up": true,
+                                "total-bytes-output": "3064835212984776192",
+                                "total-bytes-input": "5696499557804544000",
+                                "interface-status": "ethernet-container-2-0:INTERFACE_STATUS_TYPE_ADMIN_DOWN",
+                                "loop-back-kind-up": "ethernet-container-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED",
+                                "statistics-is-up": true,
+                                "last-10-sec-data-input-rate": -128341121,
+                                "forwarded-bytes-output": "9029488683218001920",
+                                "performance-monitoring-is-up": false,
+                                "forwarded-bytes-input": "8666062401730778112",
+                                "remote-site-is-faulty": true
+                            }
+                        },
+                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                        "hybrid-mw-structure-2-0:hybrid-mw-structure-pac": {
+                            "hybrid-mw-structure-status": {
+                                "performance-monitoring-is-up": true,
+                                "segment-status-list": [
+                                    {
+                                        "segment-status-type-id": -2631,
+                                        "operational-status": "hybrid-mw-structure-2-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED",
+                                        "segment-is-reserved-for-tdm": true
+                                    }
+                                ]
+                            },
+                            "hybrid-mw-structure-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "period-end-time": "2020-10-29T12:54:19Z",
+                                        "history-data-id": "ic3X0JjZGXym0zsDBWYU7zD9YCe7rtFBFIrxjKwRAXesoy5ZuVLtmgvcLJj44QGBqZ8KBxtbmHDKgACCof6KoBP1c85gZDRhCR16gnhC4NfcnJPLQNoeod7sddA4IjmdafjjCAVzf2LDLsgCfEIvJQXXVx1DQfITv1c7uZGJ2keFMv9U1SpLAfInEB0nRB8mCkl6bUI56WLSrUEtEW66bOtHhm4",
+                                        "performance-data": {
+                                            "rx-level-avg": -104,
+                                            "es": -1562072609,
+                                            "unavailability": -1233454081,
+                                            "cses": -1582488013,
+                                            "ses": -594301559,
+                                            "rx-level-min": 90,
+                                            "time-period": -2014374963,
+                                            "rx-level-max": 60
+                                        },
+                                        "suspect-interval-flag": true
+                                    }
+                                ],
+                                "number-of-historical-performance-sets": -5425,
+                                "time-of-latest-change": "2021-02-24T02:54:48Z"
+                            },
+                            "hybrid-mw-structure-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -25150,
+                                        "problem-name": "YzxQ0OHr4HtfNGqfBGSODgwlfFYc4ub23IKVxsmt1IIOo0WZGGGbW4o3KnfOJqIM1szqMWTNEtuUtqM16scUoAX0P4OyvocwRMWDAHjeaN0",
+                                        "problem-severity": "hybrid-mw-structure-2-0:SEVERITY_TYPE_NON_ALARMED",
+                                        "timestamp": "2020-11-06T07:17:07Z"
+                                    }
+                                ],
+                                "number-of-current-problems": 51,
+                                "time-of-latest-change": "2021-08-27T21:37:02Z"
+                            },
+                            "hybrid-mw-structure-capability": {
+                                "supported-tdm-structure-kind-list": [
+                                    {
+                                        "tdm-structure-name": "XYaKh7BOKRrcwlAbqAxH1KHxI9vRFp9unj7EiIk3sE7YZH1iayRbaqASz5C7vLBKXIhfjtaL7iBZRCh120ccqMWZKqYfcAR1a8glCj6BBzAs3Jm5Jq99561PoZ4ArNtCWKXq3W1wvCQzdcwXDy6Iw7pUZlnq8QU4sKmnyoT3SCu5OT2jr1TX0iRZD6iEXcApWXNmdyi5aM2RxX2YQWN",
+                                        "tdm-segment-size": 1497274596,
+                                        "max-number-of-segments-reservable": 47
+                                    }
+                                ],
+                                "performance-monitoring-is-avail": false,
+                                "supported-alarm-list": [
+                                    "QCD0gAcQS1FFnSdFPgkK7RH9Ip5nf4MXGqXOS2wK3chi4nYMDawKT5TtuRRJNDzlVw9GyF"
+                                ]
+                            },
+                            "hybrid-mw-structure-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "suspect-interval-flag": false,
+                                        "timestamp": "2021-03-01T08:35:55Z",
+                                        "performance-data": {
+                                            "rx-level-avg": 0,
+                                            "es": 700706490,
+                                            "unavailability": -579331909,
+                                            "cses": -1704418191,
+                                            "ses": 1158294036,
+                                            "rx-level-min": -14,
+                                            "time-period": -434770685,
+                                            "rx-level-max": -39
+                                        },
+                                        "scanner-id": "rhFXRegXo3XT8KpjQ7gliaJa8VAuv5dPmTMd7U2oP0hPKz8sGoOQqp0ykt2Py8EV1i0043oL3yAF7A7FYNogcgPwJJeaRK5KVXLZ01LVrdAqOA6EnmVsCCQel4o5HtPCistjm66Nkz689cEoyzQ2bHgpDEmkZ3OiwitKozpI8vI9zny7Og20XihtXDFOGu64MzO216L9Bl",
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 45
+                            }
+                        },
+                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                        "extension": [
+                            {
+                                "value-name": "jWCUT8lz1JP1wqeWuzaBvHb6Te9PzJySFaFqbSZctP5ZfjNJSXcgEoeyunf36NNDPk40d34GK9yZklA5jNdP3rnpGukF9ZaZk6Rp2OXMXvEaJ6fUTsJOLZ5rtpYDp9uBfd0h1PWRdA1WG8QsAr",
+                                "value": "lqeEMDDhUELvLQnVK5Rtijm6ZuWj4fshGGVkbqB64etI4RDGWm96FvcEZ0QVficNQ07TqIZnWl5T4AzSWBYBYa7Q2XLh7Q5PQ4JgFAvBVAmZ2OJYpHrfJz5LoJ3or0dhWWpBpV5knrcq7VgwvIE69JSpkNNLF1UBPk5e72rutDUBq3ZNLDUMfMbrrZ56SZzHjwWqynN2SzvaC"
+                            }
+                        ],
+                        "configured-client-capacity": "KeWqTTgDCn7fJQarRpIoeLbmczDJT02D6Z4ZSkvmzCBjkDKb2kr85Cm94RTXSVsYMwQEJl0iPut9Z5cUpD2n8hoc8910XtRJ0HgBUgTJCnSCs4wKHqZPHnTQxUImgr580lJUuCv6RnAkjYWTpVAYauGHgh3wI1EBennISTHJ8hVsgRdxENnP94oqlkOVllozIMasFR4N8Z7gJkFn83ch7BzkVg78BwHbiREXAICJHKRi4xG4ASmzlNL83SgE",
+                        "ip-interface-1-0:ip-interface-pac": {
+                            "ip-interface-status": {
+                                "errored-packets-output": 576041976,
+                                "last-10-sec-data-output-rate": -1068297381,
+                                "forwarded-packets-input": "-9223372036854775808",
+                                "errored-packets-input": 75997024,
+                                "ip-v-4-address-cur-list": [
+                                    {
+                                        "fixed-ip-v-4-address": "BvF1bp6QXjsq5K8QOZ4QNCtYbsBYFlG8Rm92D7Ksq4SvH0evZieFMHvX16NGsuGbIQddXQFgUyDBqRZi1dP",
+                                        "fixed-ip-v-4-address-prefix-length": -55,
+                                        "fixed-default-gateway-ip-v-4-address": "kuVjiuDEaOmS1zIJeQwEt7XdYf634MXggLzq7449Sq2MRCvYs1CN1r0RGZVCLKLTnckuhoE9HyVy2jomc19dk2511SvEC8x0lJmC80DHqr7kKwGWpI2JCZC"
+                                    }
+                                ],
+                                "broadcast-packets-output": 2127834946,
+                                "dropped-packets-input": -132466137,
+                                "loop-back-kind-up": "ip-interface-1-0:LOOP_BACK_TYPE_BACK_TO_LOCAL",
+                                "dropped-packets-output": 16298632,
+                                "unicast-packets-input": "-9223372036854775808",
+                                "forwarded-packets-output": "-9223372036854775808",
+                                "neighbor-list": [
+                                    {
+                                        "neighbor-mac-address": "09t8yltiIXiAtZTU6dECMs1uuD6tfBcfCGo2TJcBzu42lXWkasWWUQiplg",
+                                        "neighbor-ip-v-4-address-list": "AJXQlv6goPs0oX4iaTeu3GjSB12SmjCW2zEg4KwlsYdQN91Y2fsXOLHhMK90VDXP5BX1elmGczoZIpPCFaAtN9KsLLsGopo",
+                                        "neighbor-origin": "ip-interface-1-0:NEIGHBOR_ORIGIN_TYPE_STATIC"
+                                    }
+                                ],
+                                "timestamp": "2021-11-29T18:24:31Z",
+                                "forwarded-data-volume-output": -1009949259,
+                                "total-packets-input": "-9223372036854775808",
+                                "last-10-sec-packet-input-rate": 1465451862,
+                                "last-10-sec-packet-output-rate": -2147136225,
+                                "vpn-binding-is-up": true,
+                                "multicast-packets-output": -1207255553,
+                                "broadcast-packets-input": -907030393,
+                                "last-10-sec-data-input-rate": 1463065566,
+                                "interface-status": "ip-interface-1-0:INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN",
+                                "statistics-is-up": true,
+                                "total-packets-output": "-9223372036854775808",
+                                "multicast-packets-input": 1564805774,
+                                "data-volume-input": 345267082,
+                                "data-volume-output": -1593136315,
+                                "fragmented-packets-input": -1702121889,
+                                "ip-address-origin": "ip-interface-1-0:IP_ADDRESS_ORIGIN_TYPE_STATIC",
+                                "unicast-packets-output": "-9223372036854775808",
+                                "forwarded-data-volume-input": 264855716
+                            },
+                            "ip-interface-current-problems": {
+                                "time-of-latest-change": "2020-05-05T01:07:26Z",
+                                "number-of-current-problems": -10,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -15878,
+                                        "problem-severity": "ip-interface-1-0:SEVERITY_TYPE_MAJOR",
+                                        "problem-name": "HA6VXdmGS7ZWBLpV9xh70r6XUJNQ3L4KdaxagTR8SI4ullhuSrtKSsHEbmv60rRdBgoR27SUHOg3aqpURTxBd6fgtCnt36GxmWgg38bDPjyRJXLAIibVpj4KVr5RxDoLAE2vF50uoyl0",
+                                        "timestamp": "2021-05-13T13:49:38Z"
+                                    }
+                                ]
+                            },
+                            "ip-interface-capability": {
+                                "burst-size-max": 29416,
+                                "statistics-is-avail": false,
+                                "supported-alarm-list": [
+                                    "qELrLzn9twlvDLiVOUZnm5XXvocrACsT9dcUEzV768uBUMpAzoPVlNSJ34awzCpAHBmda9c8hGKbt9E2ptPD8Hm4DwA40ZEzs0MC9YDrEnuZo0TFuIiuhEyV20Z2ZwBjofWydzRKOdB4enJA524fyv2BvTvnpZGOeuekVX4BaxFgUpQSjV7Ri1kFUQUcHtSVXY7LV3mXB2evj4fuRed1fyH2gt6XWQKUOS",
+                                    "BVTqwNwU6t1AcgOeneNpmgnjddVZTNwuBhN75jT3MVwZ3c5qqSQM05XdjS44ysz9Ke8HxUKkPgbSsgaK80w8Yle96adEDMNf0NWqHGCoPN8h3j23bq39EhiKswoXa3c3Q8lqGXGvKPFF0zIbZDdvVnffLD4W"
+                                ],
+                                "information-rate-min": -1828046703,
+                                "maximum-number-of-ip-v-4-addresses": -2136,
+                                "fixed-default-gateway-configuration-is-avail": true,
+                                "maintenance-timer-range": "z2TWsKi16EIIdoha0I0McXtmOo53sR72L0Q5C17AFHaK6sVY2VKeK5tytqBV9APUtyS5zZyeyIYw2Lu4G6jibERE4ksdVh7gPRdgILmhmdNoYatxgEPkiyQmTirGsqW9i9q0VM9hZXxQZ0n7w4rODi2wstcUU0449m440ed03LI2D51a9tQMDTa5eeS0eO4o29k2fqUi3CcGz5IByrf3c",
+                                "admin-shut-down-is-avail": false,
+                                "dhcp-client-is-avail": true,
+                                "egress-shaping-is-avail": true,
+                                "information-rate-max": -591123597,
+                                "burst-size-min": -28707,
+                                "ip-v-6-is-avail": false,
+                                "maximum-transmission-unit-max": 21940,
+                                "ingress-policing-is-avail": true,
+                                "maximum-transmission-unit-min": -2689,
+                                "supported-loop-back-kind-list": [
+                                    "ip-interface-1-0:LOOP_BACK_TYPE_NONE"
+                                ],
+                                "vpn-binding-is-avail": false,
+                                "arp-proxy-is-avail": false
+                            }
+                        },
+                        "termination-state": "core-model-1-4:TERMINATION_STATE_TERMINATION_STATE_UNKNOWN",
+                        "mac-interface-1-0:mac-interface-pac": {
+                            "mac-interface-status": {
+                                "errored-frames-output": 29573350,
+                                "loop-detection-result": "mac-interface-1-0:LOOP_DETECTION_RESULT_TYPE_NOT_YET_DEFINED",
+                                "forwarded-frames-input": "-9223372036854775808",
+                                "timestamp": "2021-07-30T00:58:05Z",
+                                "multicast-frames-input": -210272341,
+                                "unicast-frames-input": "-9223372036854775808",
+                                "last-10-sec-frame-output-rate": -912720169,
+                                "total-frames-input": "-9223372036854775808",
+                                "multicast-frames-output": -1754742591,
+                                "dropped-frames-output": -2046074751,
+                                "statistics-is-up": true,
+                                "forwarded-frames-output": "-9223372036854775808",
+                                "flow-control-mode-cur": "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_NONE",
+                                "received-ethernet-frame-format-cur": "mac-interface-1-0:FRAME_FORMAT_TYPE_802.2_SNAP",
+                                "last-10-sec-frame-input-rate": 243119862,
+                                "errored-frames-input": -839027859,
+                                "loop-back-kind-up": "mac-interface-1-0:LOOP_BACK_TYPE_NONE",
+                                "interface-status": "mac-interface-1-0:INTERFACE_STATUS_TYPE_ADMIN_DOWN",
+                                "mac-address-cur": "oOn34fhDbmsYWwKQXHWpmhXxrdUrvYfTNDPJK6fNsHLpev734Vs",
+                                "broadcast-frames-output": -1154489331,
+                                "total-frames-output": "-9223372036854775808",
+                                "fragmented-frames-input": -1088392719,
+                                "performance-monitoring-is-up": false,
+                                "unicast-frames-output": "-9223372036854775808",
+                                "broadcast-frames-input": -1394598757,
+                                "dropped-frames-input": -1111073385
+                            },
+                            "mac-interface-capability": {
+                                "supported-flow-control-mode-list": [
+                                    "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "statistics-is-avail": false,
+                                "broadcast-frame-suppression-is-avail": false,
+                                "supported-frame-format-list": [
+                                    "mac-interface-1-0:FRAME_FORMAT_TYPE_802.3"
+                                ],
+                                "admin-shut-down-is-avail": true,
+                                "maximum-frame-size-min": 11040,
+                                "loop-detection-is-avail": false,
+                                "performance-monitoring-is-avail": false,
+                                "mac-address-configuration-is-avail": true,
+                                "maintenance-timer-range": "bFlRJaJoGXdeiP8dykSI2ZO4Sp66e0YhFb8glSFTHS0Zz848kWQnOwjyNpETiubPxb6SVLDCvDu5Mq56fVl3jEtZWZSelV3S71C2MfxiTTfxjkDq7ZlivOhrF2x0XBS4CmZhCorvhG2s0xT7oehMVzdABLtqednIAeZcCizLYtdQSYP957V0G0s9LVrR9OsJ2jNECmhAPvjzl8IqfDiNELOhyg1H4tiZM5vgjNR0a2AvaiWqW65sRUJia",
+                                "supported-alarm-list": [
+                                    "6d",
+                                    "5SfB8zgRz"
+                                ],
+                                "hardware-mac-address": "dwlReS8BgM4shbHPi2iGQjeedL4mne3tKgcR8kso7oQgsq5Kknj2zxhMil8yA31cj53jqnIxEqN6IKI2015zrmdBHl99g2mz8hSyFsXbTChtmRweLBNcX0NwdPGtJ2UJbN",
+                                "maximum-frame-size-max": -25914,
+                                "supported-loop-back-kind-list": [
+                                    "mac-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE"
+                                ],
+                                "link-loss-forwarding-is-avail": false,
+                                "loop-port-shut-down-is-avail": false
+                            },
+                            "mac-interface-historical-peformances": {
+                                "number-of-historical-performance-sets": 7686,
+                                "time-of-latest-change": "2021-12-19T03:12:40Z",
+                                "historical-performace-data-list": [
+                                    {
+                                        "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "period-end-time": "2020-11-24T11:52:51Z",
+                                        "performance-data": {
+                                            "mac-pause-frames-ingress": 662974082,
+                                            "tagged-frames-ingress": "-9223372036854775808",
+                                            "jabber-frames-ingres": 739648304,
+                                            "mac-pause-frames-egress": -16058849,
+                                            "mac-control-frames-egress": -133422973,
+                                            "oversized-frames-ingress": 556232086,
+                                            "undersized-frames-ingress": 744006200,
+                                            "frames-of-1024-to-1518-byte": "-9223372036854775808",
+                                            "frames-of-64-byte": "-9223372036854775808",
+                                            "frames-of-512-to-1023-byte": "-9223372036854775808",
+                                            "frames-of-65-to-127-byte": "-9223372036854775808",
+                                            "mac-control-frames-ingress": 570138762,
+                                            "frames-of-256-to-511-byte": "-9223372036854775808",
+                                            "tagged-frames-egress": "-9223372036854775808",
+                                            "frames-of-128-to-255-byte": "-9223372036854775808",
+                                            "fragmented-frames-ingress": "-9223372036854775808"
+                                        },
+                                        "history-data-id": "PJ84J5lFREtL2tPcV9tWcIbm3emPk579O86qdrXWXiHSLoWGppuu0yQ3M4L79K8PK67PxWLnflfSB3r1sNvkldg0h17iD77g675D3RSa473F2mGv93HvgXvpQuH",
+                                        "suspect-interval-flag": true
+                                    }
+                                ]
+                            },
+                            "mac-interface-current-problems": {
+                                "time-of-latest-change": "2020-06-20T00:16:24Z",
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 23153,
+                                        "problem-severity": "mac-interface-1-0:SEVERITY_TYPE_NON-ALARMED",
+                                        "problem-name": "g5i4p",
+                                        "timestamp": "2020-11-06T21:00:40Z"
+                                    }
+                                ],
+                                "number-of-current-problems": -72
+                            },
+                            "mac-interface-current-performance": {
+                                "number-of-current-performance-sets": 6,
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "elapsed-time": "-9223372036854775808",
+                                        "suspect-interval-flag": true,
+                                        "timestamp": "2020-05-19T14:48:13Z",
+                                        "performance-data": {
+                                            "mac-pause-frames-ingress": -285384559,
+                                            "tagged-frames-ingress": "-9223372036854775808",
+                                            "jabber-frames-ingres": -342470805,
+                                            "mac-pause-frames-egress": -1338003801,
+                                            "mac-control-frames-egress": -1692368601,
+                                            "oversized-frames-ingress": 831385080,
+                                            "undersized-frames-ingress": -1413645603,
+                                            "frames-of-1024-to-1518-byte": "-9223372036854775808",
+                                            "frames-of-64-byte": "-9223372036854775808",
+                                            "frames-of-512-to-1023-byte": "-9223372036854775808",
+                                            "frames-of-65-to-127-byte": "-9223372036854775808",
+                                            "mac-control-frames-ingress": -423388335,
+                                            "frames-of-256-to-511-byte": "-9223372036854775808",
+                                            "tagged-frames-egress": "-9223372036854775808",
+                                            "frames-of-128-to-255-byte": "-9223372036854775808",
+                                            "fragmented-frames-ingress": "-9223372036854775808"
+                                        },
+                                        "scanner-id": "8aOJqub4NwNQtrLGV11zOtkuRVkaLqzLAnmSRyXxWCnh30XQ1YqIjCcbxwlaOUNo9a91A6ywINODNDuHuMhNolYVScYyYLX8NY9n4zUEeA915DAzpJfN55BPhrng4cgSapf6Q1C4tMXzpq0H9fmelP3CgjKlv0dyhkE7m93HV1gcj9Tso8zJXueeNQrbRwJ0Qf04o3MjW"
+                                    }
+                                ]
+                            }
+                        },
+                        "pure-ethernet-structure-2-0:pure-ethernet-structure-pac": {
+                            "pure-ethernet-structure-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "timestamp": "2020-12-17T22:15:57Z",
+                                        "performance-data": {
+                                            "cses": 1874866070,
+                                            "es": 649927884,
+                                            "rx-level-max": -115,
+                                            "ses": -774867477,
+                                            "rx-level-min": 61,
+                                            "rx-level-avg": 36,
+                                            "time-period": 1549976292,
+                                            "unavailability": -433876969
+                                        },
+                                        "suspect-interval-flag": true,
+                                        "elapsed-time": "-9223372036854775808",
+                                        "scanner-id": "03fQ6Pt3ms3RIHS0ujQ08ZcigOq4SgcKjrsigVlufgdXX6PkpykppwHGd7K5gOHrf9Jo5WKcdY224RmlpzKP5knirZfHOW1VYKjVz47MU9GY1VbiuNZz7eKzeR82O9XEM9zl5GZZQFPJsSTWFToN70edRefxg5b26Kf3jeU1LBKetv20oqFo"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 99
+                            },
+                            "pure-ethernet-structure-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "period-end-time": "2021-11-02T17:01:49Z",
+                                        "performance-data": {
+                                            "cses": -1264950057,
+                                            "es": 736847768,
+                                            "rx-level-max": 22,
+                                            "ses": 2111767288,
+                                            "rx-level-min": -25,
+                                            "rx-level-avg": -3,
+                                            "time-period": -275415741,
+                                            "unavailability": -634928165
+                                        },
+                                        "history-data-id": "DpPOvBP8creFXhxdHdB0Y5aYOR6mK88gxP4UqU3udh1aqyg0LR0KOaAu1HQEPQUfFQ1XC4rQesSE18EESwgGyR3sqT67KSehIg7lcq3iTVXM4tiWSzuqqxSIrYP3I4crkjEoKHHvCw9GZruJ0Zaio20HTIKtMXUY8ymS73nKroijQN2IEcTU7LCStel7b8Xkyc4G7kqzIASyfU9TZ2GYFiQ1w30A3YMCaQa9a",
+                                        "suspect-interval-flag": false
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-07-12T19:32:33Z",
+                                "number-of-historical-performance-sets": 8152
+                            },
+                            "pure-ethernet-structure-status": {
+                                "segment-status-list": [
+                                    {
+                                        "segment-status-type-id": -8685,
+                                        "operational-status": "pure-ethernet-structure-2-0:OPERATIONAL_STATE_TYPE_DISABLED"
+                                    }
+                                ],
+                                "performance-monitoring-is-up": false
+                            },
+                            "pure-ethernet-structure-capability": {
+                                "supported-alarm-list": [
+                                    "1bpMvo632bmgMP6J0bi32Ye6Wm6i1M92YzPlPNgSYC8KjelbhD6ktkiqGhIH3KCTjr606nS4R0H362egylA1FSje12N5EpQXIXXOcI"
+                                ],
+                                "performance-monitoring-is-avail": true
+                            },
+                            "pure-ethernet-structure-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -32106,
+                                        "problem-name": "LVnYK1o1PuVHNYAUY8jOmqmyddkU0HMMC1Cf318Sv3ra125R2gyoyUXL7hx0YcEtdgIg9Q1EUsPNuMFwUdNk7KX6TnYKzC5MLN3UD4rpw851MKpyP4SOOPMAcLcLfhq04tNzxeR3eWW0GeyniibZ7XrcADPQUfQQAvh7J83P4RPCXfZ8p27pSqBk3iaPqTx0oO00P3PLMxoCEfK4aJtU9We46pLwaaxyQpqFk8r6FHIbOkfY3AK4wZ0",
+                                        "timestamp": "2021-03-25T03:24:58Z",
+                                        "problem-severity": "pure-ethernet-structure-2-0:SEVERITY_TYPE_WARNING"
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-09-24T05:50:45Z",
+                                "number-of-current-problems": 109
+                            }
+                        },
+                        "lp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE",
+                        "name": [
+                            {
+                                "value-name": "0h3RkdKkl78ksEtroKjTmYuleSzx1uPTMTK66mqktqEW50flCz6YpAbvkK2d7K6TvJRt59NrAkn",
+                                "value": "ku0W36NkyY"
+                            }
+                        ],
+                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT",
+                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL",
+                        "configuration-and-switch-control": [
+                            "yzmna40LDCC"
+                        ],
+                        "fc-blocks-signal-to-lp": "1CLtmZ2AMFIIyReOH4n8qCimC306yONriqVEpP63vPDVySJfWYnfByt5ttcT9Rlrh86yX4tkL77jZJqNHOUaeo8HJcBT3OkcWiCLn5Y045k3OKJoqDqETqeDCHoxvIJjTl48jU8nSsjy52Wvxf2rFgWaXcHkUrDFEzNXuWdegwMlyBRXQTgn1cxYofibyNI4mw2Ik7WsDJO3kx02ihpblP9C4jFu6nykLs35zRq4A67Mv",
+                        "air-interface-2-0:air-interface-pac": {
+                            "air-interface-current-problems": {
+                                "number-of-current-problems": 98,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -15232,
+                                        "timestamp": "2021-06-02T02:15:54Z",
+                                        "problem-name": "u73sPFV9Kb6qaaR21pEMIA73czZwO2xa1BCQ8p0Ss6bD82F9jcN2EM5QdWnTQU4SnyAvYAoqyrVyltzEFnyb1v27sp0ab42zvv4l5kLwLzW6UwDrL3CMzET13M37IYGdtCyqXcOADLzxhcY2",
+                                        "problem-severity": "air-interface-2-0:SEVERITY_TYPE_MINOR"
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-04-11T05:10:18Z"
+                            },
+                            "air-interface-status": {
+                                "xpd-cur": 108,
+                                "transmission-mode-cur": "tmbm4Dglu20fyM7WAI2dXAjalik4jyPMVS8Rvo4Zi47IIeEbOGoL8zVtJ7p2y6OlYW4mc8dn4k5MqKXfid0rFOMoV4rta7",
+                                "rf-temp-cur": 41,
+                                "mimo-is-up": true,
+                                "tx-level-cur": -82,
+                                "local-end-point-id": "z34PqDFHslvtder8MI72a3xRuxbz1QhALmq3ZXKkifNnt6v7Pu9RxHITeTsgBJQm58p5X2h7h4uD3ZKSlUBStjLH55PGPyVMycJwe0DwX810ZLKdFl58EJIBOpavX5io91UoUpMRpNRhytu6Oz6kaOWR66e",
+                                "rx-level-cur": 71,
+                                "link-is-up": true,
+                                "performance-monitoring-is-up": true,
+                                "xpic-is-up": false,
+                                "remote-end-point-id": "3wjcq5scn63MTM3k7xiVZof153Sb9764vihNnJZKQUpBysNFS5ARuISzLDCNKAR7S0V8CUKkH9VfuJNmGf5aXPBBk5g4G74y0ZGCLjWk",
+                                "received-radio-signal-id": {
+                                    "numeric-radio-signal-id": 62117,
+                                    "alphanumeric-radio-signal-id": "VZ8czGlwEhOrR4ZgPCoGhZSx4ozsR63EX3QpK3VgkKz3Gyko3A4kzWSEcj6Vp1zn5hMHlzXxbwBKWV8ZnckX04t4nrRFki2pzGYU7VkbjVV8I3Z57bUZfn3DOMa144qDKhqJ4KUoxPofKncJz7AOuvjbhtclxuR9LhLQTF6qnuxZJJBaQbZdHagYwscVO3XscIi5fgnCCUulD5wmgnzXpPOV90JXVGp7gz4v"
+                                },
+                                "auto-freq-select-is-up": true,
+                                "tx-frequency-cur": -1318232405,
+                                "rx-frequency-cur": 493060666,
+                                "atpc-is-up": false,
+                                "radio-power-is-up": true,
+                                "snir-cur": 119,
+                                "loop-back-kind-up": "air-interface-2-0:LOOP_BACK_TYPE_NONE",
+                                "interface-status": "air-interface-2-0:INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN",
+                                "alic-is-up": true
+                            },
+                            "air-interface-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "period-end-time": "2021-12-03T13:42:50Z",
+                                        "performance-data": {
+                                            "snir-max": 35,
+                                            "unavailability": 16258874,
+                                            "rx-level-max": -103,
+                                            "xpd-max": -48,
+                                            "ses": -947088235,
+                                            "rf-temp-max": -108,
+                                            "tx-level-max": -81,
+                                            "es": -1619608241,
+                                            "tx-level-min": 116,
+                                            "tx-level-avg": -23,
+                                            "snir-min": -86,
+                                            "snir-avg": -69,
+                                            "time-period": 598573790,
+                                            "cses": 222208048,
+                                            "defect-blocks-sum": -12321,
+                                            "rx-level-min": -105,
+                                            "rx-level-avg": -15,
+                                            "rf-temp-min": -91,
+                                            "rf-temp-avg": -31,
+                                            "time-xstates-list": [
+                                                {
+                                                    "time-xstate-sequence-number": -75,
+                                                    "transmission-mode": "uAYB54iEgTrPms4Ng7boIDCB5IQ5Y6zkypWEt6iJZBzm",
+                                                    "time": 1465975862
+                                                }
+                                            ],
+                                            "xpd-min": -83,
+                                            "xpd-avg": -55
+                                        },
+                                        "suspect-interval-flag": false,
+                                        "history-data-id": "qimSMTrYiYdXlVqGsRQGDqRXI6CTTUaccoWZhnPreUpzPP7hyXP"
+                                    }
+                                ],
+                                "number-of-historical-performance-sets": 7589,
+                                "time-of-latest-change": "2021-10-01T15:29:25Z"
+                            },
+                            "air-interface-capability": {
+                                "expected-equals-transmitted-radio-signal-id": false,
+                                "duplex-distance-is-freely-configurable": false,
+                                "supported-radio-signal-id-datatype": "air-interface-2-0:RADIO_SIGNAL_ID_DATATYPE_TYPE_INTEGER",
+                                "rx-frequency-max": -130601917,
+                                "supported-loop-back-kind-list": [
+                                    "air-interface-2-0:LOOP_BACK_TYPE_IF_TO_REMOTE"
+                                ],
+                                "direction-of-acm-performance-values": "air-interface-2-0:DIRECTION_TYPE_NONE",
+                                "adaptive-modulation-is-avail": true,
+                                "supported-alarm-list": [
+                                    "lWP6N3eCBfC8Y00uhS9yrGdpjJj6Rls49a2X5hrGw3Om4OQdzZLSyYhRABPjOagXkiMpz65X9Tj5z1i014TrUaamD0yjaO9u6VTy1Yn3JH8aArbtnWU965wCXWV7KWtIKegD4EGFdHPN0ShnO3wN0UhXQ4Ws1hbLvjorXX62EWIEGZTnUhaVcjKUnzfoI",
+                                    "CkoI6Kctoux5I6zCLqNRqGBO1y4KvYA0iRIptVSRhhXRfwm0X1JfIdVBLZd8PG87xJw0wgSNpHxE5LwUM81",
+                                    "3hN9DNJqdGi3U20CIwHvvhXb9hAjGKrJ16KxLmXR2fUOhViSrSnP9c0alst24MDYLovoCkfEAakJXCtouQ5vVYG8i12nGGdrWIPy2X4u7oeWSHcfqiKdgilycoNSW0bSISqDPm7OKdKCNXR57uanEvNQLBAHBLrcwJHl5G2PMEkzt3wApGP43DUP6noz8IDErkSx1MeFqq6UmCmLi4PdHC2FZjeZ1Swk4gRX2",
+                                    "crMSU7BuKAnHw6YOrxFyfu2BZuQGpZPBittdsWH4w5MU3CAu1g2gCWRBqz9PqQiJbDWEADIYAmLDQlZRt1Z5PRz8iAPJr8sCDo85TJ4m5HRW2RFoKFlAoUAGnphGpJa3Zj8T247ZLYNOPl4s0p",
+                                    "7CWzumtCyXj7IheTYv7F6u7ANy4ZYeK5IGw5UZHsO0ro9xi",
+                                    "KPbutLPEGx4GrcWAEeEVZ516vJnSJlmt2xPwaEaQ3fpnjdXXruKizMh5nEP6S3sUAhqDOtlJIK6TXWIoqtzR7QOumDAeG29",
+                                    "gcuOzT6fjHpeHAmsCrzucph"
+                                ],
+                                "tx-frequency-max": 806170844,
+                                "maintenance-timer-range": "wtff5kH7etiVWlnYt7Ba4rP7JJPKMztj3Iq827fhsq4oLrefyHhu86",
+                                "transmission-mode-list": [
+                                    {
+                                        "transmission-mode-name": "rK6EX7Jdoitbuy0nozvMnSzPVf0HSpOjaMPZTz5iJyld6dsnNY92IBRwIKdA",
+                                        "transmission-mode-rank": -1962073085,
+                                        "supported-as-fixed-configuration": true,
+                                        "am-upshift-level": -127,
+                                        "tx-power-min": 1,
+                                        "am-downshift-level": 14,
+                                        "symbol-rate-reduction-factor": -111,
+                                        "channel-bandwidth": -183931915,
+                                        "xpic-is-avail": false,
+                                        "code-rate": 106,
+                                        "tx-power-max": 5,
+                                        "rx-threshold": -30623,
+                                        "modulation-scheme": 24263
+                                    }
+                                ],
+                                "encryption-is-avail": true,
+                                "duplex-distance-list": [
+                                    -1679055241
+                                ],
+                                "atpc-range": 11,
+                                "performance-monitoring-is-avail": false,
+                                "auto-freq-select-is-avail": false,
+                                "tx-frequency-min": 1651504910,
+                                "rx-frequency-min": -510537651,
+                                "type-of-equipment": "00Rop7iZbgt8nLO9PUTeFenhNO1IBWutWdRdd9dgpyoNk4O1YH8wNnNAbO",
+                                "atpc-is-avail": true,
+                                "supported-radio-signal-id-length": 23968
+                            },
+                            "air-interface-current-performance": {
+                                "number-of-current-performance-sets": -82,
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "timestamp": "2021-11-20T11:50:01Z",
+                                        "scanner-id": "eZSg5vq26742rwoI3zsknK1k7xjJER1SIT9OgzQeGMg0axA562qmFjGMQSvvJofjao7qXPFwtNoEkYJj11Fycdk35PqG5F0fW7yLPd9i0xOdwqwpr3Xw8hreYRM3oEbcEJYtO7LGFATb0hsjkpPty8zoZdjgSusw5iZTqCs54l8WvA8PRXap6BNXP65Htq5yI4k0yM5DZ5z",
+                                        "performance-data": {
+                                            "snir-max": 8,
+                                            "unavailability": 1119147150,
+                                            "rx-level-max": 87,
+                                            "xpd-max": 92,
+                                            "ses": -1044500203,
+                                            "rf-temp-max": -102,
+                                            "tx-level-max": 123,
+                                            "es": 811075588,
+                                            "tx-level-min": 43,
+                                            "tx-level-avg": -109,
+                                            "snir-min": -99,
+                                            "snir-avg": -40,
+                                            "time-period": -915582259,
+                                            "cses": -706960817,
+                                            "defect-blocks-sum": -17713,
+                                            "rx-level-min": -68,
+                                            "rx-level-avg": -108,
+                                            "rf-temp-min": -73,
+                                            "rf-temp-avg": -92,
+                                            "time-xstates-list": [
+                                                {
+                                                    "time-xstate-sequence-number": 69,
+                                                    "transmission-mode": "JKs3401vTBAq5pla3YfR9FQyybIsZJKAt4vqXwVQ8n8dMlnIkvzl2iUBtu3s5F2rJyRGWEo41oaFKpn4UPhX7bqAyl2D0W4BmNajryfsXp8zPnvBcMyjQQLobFT3CYFQDP15fhp4yxvfN0RZNhbv0WTbCMf6CMO8tQdAZCFx22FP3",
+                                                    "time": 291842604
+                                                }
+                                            ],
+                                            "xpd-min": 117,
+                                            "xpd-avg": 46
+                                        },
+                                        "elapsed-time": "-9223372036854775808",
+                                        "suspect-interval-flag": true
+                                    }
+                                ]
+                            }
+                        },
+                        "label": [
+                            {
+                                "value-name": "KJKYQuW",
+                                "value": "ZxstDt843sjAMNsJJqo3YmTB5wzN0ng0VIlq4tm7WxIAc2bVtz"
+                            }
+                        ],
+                        "is-protection-lock-out": false,
+                        "tdm-container-2-0:tdm-container-pac": {
+                            "tdm-container-historical-performances": {
+                                "number-of-historical-performance-sets": 7151,
+                                "time-of-latest-change": "2022-02-10T03:37:42Z",
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "period-end-time": "2020-05-02T11:59:35Z",
+                                        "suspect-interval-flag": true,
+                                        "history-data-id": "Ymq8mmbY546wxg2Ab6u57qGM45RxTlgJ",
+                                        "performance-data": "GhvxMpT2E7iwkHl9YkMS5y3wZU63O6Ruff1UwMOaMZz6GUgweUgbskHk6NfUL6gTd9FKWlMIklGS7OpdJFo3RXnXDCJgBZ1O9Gq52dFmqd7y2wDD32GVRWKuquDTtEAul0rf56BwcIWe6zR2tpXldHHE3kxpZ7Tc0lr5jUBvvpBBZsDsSsF52fB5r1ui0gu0tNYMIra5RLGQ6caQwINyXhwoiSHa833BR1grsiwbV4T184JFEx5tO"
+                                    }
+                                ]
+                            },
+                            "tdm-container-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 25907,
+                                        "problem-name": "XaVLSCJMZidHzaBt0Dns5AqNOTtni4M7eAKY4uC3MIDlS6GSJWdGwvmcoPsyL6GSGqQDMlyz33MVatGLpLkNgGZFnr50yLS64JJQ4ahZd4",
+                                        "problem-severity": "tdm-container-2-0:SEVERITY_TYPE_CRITICAL",
+                                        "timestamp": "2020-06-11T14:51:29Z"
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-09-14T08:53:08Z",
+                                "number-of-current-problems": -55
+                            },
+                            "tdm-container-status": {
+                                "loop-back-kind-up": "tdm-container-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED",
+                                "performance-monitoring-is-up": true,
+                                "interface-status": "tdm-container-2-0:INTERFACE_STATUS_TYPE_UNKNOWN",
+                                "statistics-is-up": true
+                            },
+                            "tdm-container-capability": {
+                                "performance-monitoring-is-avail": true,
+                                "supported-loop-back-kind-list": [
+                                    "tdm-container-2-0:LOOP_BACK_TYPE_NONE"
+                                ],
+                                "supported-tdm-container-kind-list": [
+                                    {
+                                        "tdm-container-name": "nk3eeJcU1UVqXV0TLMvVuF5F7Fq98BrvWvJa6N48HRqwFqpq4Meqjb5iQnsYZLlV8WXfJ2fiLFPqX6R1TXj48hnQEPHvs2itRgIsaXLVuseryXkjUDoUULKrsrWMm7f5nXxpMac8uqzVfLe9hu3",
+                                        "tdm-container-size": -1252039285
+                                    }
+                                ],
+                                "supported-alarm-list": [
+                                    "GRwvyA679NVgHl0xRqr2D5Bk4Ci9uPr2yYx6yw5zb0QKdQ949AZEGsZC49LqQdsobSnBgs3jtT3GB4LKECpc4gP1hsj7FEvIwScEdfXG0SmBWZestDFyLmr2OK1mowWMh8quff2f7gRVg5oJAV9dhAfXdgbBE0gN8G9oObDNsmJAr",
+                                    "aduwXM0Td4zA58WrLcMjRMz7OLIV34seiWK7AD0GHrgEscY5hKo8oQ75tQ0wUkC48f3IK3ornxYPJWU0yb0W181uQTSCdnHlCKWeGcFVJvClrodZreOsePO4BzGOWf2qSQEq2bdMHPZ05c0x"
+                                ],
+                                "admin-shut-down-is-avail": true,
+                                "maintenance-timer-range": "z7rmlytqNjQc5So6nHxaWjo6AL1DSz8szrGUR9dEsVIqN6o2NVcCetAGetk63kqCLYoC0t8kgQK4O0YuW362oGJC9VA4fTySJXmJiu4zcGv0HlmDosFM0gg2bJ6qu"
+                            },
+                            "tdm-container-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "suspect-interval-flag": true,
+                                        "performance-data": "tuTk18E684K1aGCMoyWGx9Cjp1MizZv2lgee",
+                                        "timestamp": "2020-11-07T03:19:55Z",
+                                        "elapsed-time": "-9223372036854775808",
+                                        "scanner-id": "Xp7DTLTjzrQA3"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 49
+                            }
+                        },
+                        "address": [
+                            "1Zo5qP4vNOvevGLjZjyMdqlAtQXj5H3ZGj4680uNO"
+                        ]
+                    }
+                ],
+                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE",
+                "name": [
+                    {
+                        "value-name": "jkAUCW3AxbgjfRWPLDZ6SmvPFZWRKZF3k8POWKolNwE3nsK06KYQYuFEltn5l20F2QtQAJcgfIjub3uhFt7EPEaaZ",
+                        "value": "8kr8ZmYkcrVgH2ZSw2NTjteiZ3O95Nyd0ZeZlccqvZG42FWqHKjS5x2WsQ5ywvDwuRnI"
+                    }
+                ],
+                "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                "physical-port-reference": [
+                    "c942beda-266b-a670-ca1b-e78a3653775b"
+                ],
+                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK",
+                "extension": [
+                    {
+                        "value-name": "Lv",
+                        "value": "2QmycxZt8h9gatin9kE66gd"
+                    }
+                ],
+                "ltp-augment-1-0:ltp-augment-pac": {
+                    "ltp-augment-configuration": {
+                        "connector": "07wpeqzDCeErNGQsYiiaCfzpi0iDsCNsCbRIBjm5pSw4q",
+                        "equipment": [
+                            "c942beda-266b-a670-ca1b-e78a3653775b"
+                        ]
+                    }
+                },
+                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY",
+                "local-id": "LcBLIUPiken",
+                "fd-rule-group": [
+                    "5ea42646-26ca-afda-19a7-ad7f7cc924e6"
+                ],
+                "label": [
+                    {
+                        "value-name": "r8rrOwtmkT345O1CQX5zUv5h8BMSQuOiu7JiD4EYPAUUoOp6DmFqRKHRdlJ4PxebFXuaT00IAVvQBUXegCwZfeQszAohZCswrOzkPz3hmq8Xc54sHAjWG9hgBFptaRZByyWn0REm9MclJgNjI67p7",
+                        "value": "xJWW46F3zdunsue7InLUIn2nGLlN2l4zWSn0QU3p0pNsLTru95gJsbZ0WcFQxJhttEtjqpBqGgTs1kOahWMJ7LJVX"
+                    }
+                ],
+                "transfer-capacity-pac": "Au8FA4ikodZJJVPQYvbFMxCVuO9W5JeFdmcNiv0yAZ9jMY1Cld98KLV7s4VpO94Tn8zFvz65qfh46iyrnHz0lm7FrU47V0Si0rPwSVBi3Se93MAim2iHoheP3iOYaH8a0YGTLi3G2iPXWqgisyZQI5yLneKxNSIOIozmyu2tMKqB2yTmZL4HQCs6J4DwPdc",
+                "external-managed-id": {
+                    "manager-identifier": "VfVpQnGZFoiUMOTiSaY8oST7kzQLfg32vQjd504Lgmx33qdNt3VRVGR87HLfPOhcxBpCtmnBIUwDdBqGEdpAU8A1Ilgx2qKzT1benrPYdeBqPUYm7gO1ooV6J3wLt8ce1osp",
+                    "external-managed-uuid": "af2gIl5CbjKr7DIvqG7ucKPkX4mdoDUyKOOs1MXd5zw5c6sDNzZZcOc1Sqe930HFOo7Q24V7vj4IqxddY442Sg3DGhMBhl86Jg"
+                },
+                "client-ltp": [
+                    "c3794728-dc8b-5233-0c67-0b857c32ada1"
+                ],
+                "peer-ltp": "bc478ce2-7d3c-9c53-dff2-7724bcef25d4",
+                "ltp-in-other-view": [
+                    "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                ],
+                "address": [
+                    "M41HUn76UYrVgBbq4lF6Gkc"
+                ]
+            },
+            {
+                "uuid": "634ec9bd-ba1e-2524-cf13-429d7a724d6d",
+                "embedded-clock": [
+                    {
+                        "local-id": "rSHuZ0g4AGUyaDa0L7jO6ThPHYU0x2fYNOlEPBAhinHkSRkDQDrOpBv6ri6YcePZUavBL6SVlzgdjAJ162IvD5B4nAVAGKzsUX4xVOtggBlzb4s972EK88HvAu586xA0uEpplKxBlS2pXuy4x5GF5faFJ8FPFfH9MZq7JXIXPKmM6MIDRhaOwdl8l0P0gp1Ugr1ZoBOdd2SjPsPyJZn84I8pBXpReqDuREm772dk55DUpsk9kz9oahOL65",
+                        "run-mode": "core-model-1-4:RUN_MODE_FREE_RUN",
+                        "phase-aligned-clock": [
+                            "YVeiPwRShBgjzQZvC8Zx7SnUMwm6JiLAdZK2vtNM43XDTX0o5SV5KiRoH5uiofKt7uoCXbhT6ewZ3pf1ha6TlXiUVMcjUXE1j2D95M2b1r34Qi57l30yTa"
+                        ],
+                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                        "encapsulated-casc": [
+                            "OdiH8"
+                        ],
+                        "name": [
+                            {
+                                "value-name": "do7H7DVfKYs43pzPOU1P6BYuL7aoe8SrwZ0vuWC6U42PlBE2nFRt8IYTP09V81ewSf2m3EsPBuEOYaQlHAPQiFBZFLVGE",
+                                "value": "cx86LbD606swUqyDE8dlQn0jmx49dB3q0boLn1Jf7cE2u4F0cKl27lmlTin6TqoLBNpYG86OcKIHOfHTZ3VYg9j1sy0dYgZA3gqCooqB08aHnJAeEncNxnORWO4U5Vm03FCs3UVWUXD9GdndAz0ZPGQLvNxsAMkEjP6eJTaEQNNoS3tlutkj234xQuRq8bWr"
+                            }
+                        ],
+                        "encompassed-clock": [
+                            "zSzgZS2utSYSlt8xN7dsLeEaUA9zvWk4GUcxEe2ZYSSkdSR1Z4lDaRNXjWoOKJKivOQ12K1TCLdPDWIu0W73NN0ZBoNeZqwmemo96h2A27ix3STVO1YuGQth78n6yUlN8BOfSQHMXZb0S4NyXM2Dun"
+                        ],
+                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT",
+                        "extension": [
+                            {
+                                "value-name": "UwWNmuf3N0Q2nhLYCIe2ZcoPWRgBXbpJIlxWHEZvEQx1ZaZBS5DJ9Tr6KHHzL6blkIh1m9o0RVTQ5TjPYWr0PS6rrFScD3pXDHRRI7J",
+                                "value": "3Dh0oAIeo1e5TkocZghDcGsPfbzXjioeVF6j7GyvHMssZQxY7OtbuWSKZrHaKYgxvnJDV90vNtPMjmDia6lFUehUxQW9OdHksiPnrPSeaATmWwE7CSEp6NbvD7FskeEMwt2PaMVlmOHbkdaP5O63thr6o6qBc4fAp9pAWkNa1uldzv2xb8AEh1LGZ3938gDpq2ZmfM"
+                            }
+                        ],
+                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL",
+                        "label": [
+                            {
+                                "value-name": "UFCNQ8vvNUoQfJlJVwLYtaOXT7543wXQ3rDTr1peNFX2gaDbGg29qQ6bP38Lr5Bvo6gP7FVMkSPA2sEJJGS1oRd6MlR6ikByiRnipa4B3T45eIGPgrQEaVKOgtUqNnY67dgwo",
+                                "value": "Zr63ocDX1TgJyqFaeNE1ero4pvixTGSTZQOf2scVlsELKbWRZASdT8hbErIp7saYaZe4jiZwDwinH6eGGYLr73CDmd2uF5kQWyUfRUDmiVJZTQGrOrTVmnqJAt5gqp6mQStzE6V"
+                            }
+                        ],
+                        "encapsulated-fc": [
+                            {
+                                "uuid": "aca68c9a-d4a8-677c-ba2d-ada029f3eb15",
+                                "service-priority": "-9223372036854775808",
+                                "supporting-pc": "3m4iw9tWZcBLDG9XkPgwZLOUtovdUyTXUXgi7B6YNIBigKfsAoYz9EmC3JPXhIV3y3lxEkvj27BaJJCj7sL8ZZL2IsRS3EVBH",
+                                "layer-protocol-name": "ethernet-container-2-0:LAYER_PROTOCOL_NAME_TYPE_ETHERNET_CONTAINER_LAYER",
+                                "forwarding-direction": "core-model-1-4:FORWARDING_DIRECTION_UNDEFINED_OR_UNKNOWN",
+                                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                                "name": [
+                                    {
+                                        "value-name": "iDNnIo06Vr31FxUvjC2TUwrg",
+                                        "value": "rZGflexY1NyhFwc6A5MZRhbub4gHwxOPom4JAuzt9ZKOwPUYUyXEH08T5gstNgicvfN5JfrSebGC0sAN1qrAqrtnHWQn49rzoex"
+                                    }
+                                ],
+                                "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT",
+                                "extension": [
+                                    {
+                                        "value-name": "0HBIkQXMrj9JWBsdACwFxSbTOHJoefd6WPPgFEUYX4ILx2ZZEnw48HPWgycnNqtBfaSMGMCwIc",
+                                        "value": "7e06LovPw4wkl4pIJP3cWe"
+                                    }
+                                ],
+                                "fc-route": "eS95kodyiIs24FLNzLtsbXQFV5k7opkD9tIuJVU1veVrTGfljINuyv1tseARDMmEf40YRURm0MNUkUfDvUZ3h1oK7ZtKDHgTDhJubBIcfnYAa55FZ5A8YYS5PdHtUXepeXTiqtuyJk0Tp5qoa0w8QhdymUT9K7yYWkgfFCNoWNhlSzBVr03i99IvVBwFA5wwhMDWhildXurI42Dv2yFbHnzvQ5aq2GPjls8CLtHAP8iLbV95uO934IyU",
+                                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL",
+                                "configuration-and-switch-control": [
+                                    "5yI7sd2Y6HQNCOYJdR0nOKPdyFcOxYovpYCRcwQadyXQmNrrErOl3wqu3DaABy50xAKBY"
+                                ],
+                                "local-id": "VtFjWXOGMxVBiPIWz46cfsnZVK5vhf55JCoxz55mu1XMQxIiB",
+                                "lower-level-fc": [
+                                    "9bc11e2d-913a-2fa6-a64f-f01427c75d88"
+                                ],
+                                "fc-switch": [
+                                    {
+                                        "local-id": "oBCvo1K3DJ9kcroxHAUdcQJw8o0mvTyLn3hD41yHCHUO0idHSZU5QvtQTl4p6D2lGjZKcxkGfemfoAPhzJeh7HZ0U4h0HkmfDlRIKbgZhD7GdWPEx3WECVFwRWoygKFMXxmIACzSfGqkufZ2aVyMIdas2q0a3yW05",
+                                        "wait-to-restore-time": "-9223372036854775808",
+                                        "profile-proxy": [
+                                            "GvH3sA9tq5RlOFlWKqfooB1t5lGcvGUc"
+                                        ],
+                                        "control-parameters": {
+                                            "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE",
+                                            "prot-type": "aAOkfaVMkgp5IPfGuW7QPORegd51RGH2gneox22KisPT94zDTymAf5PviMo2sX4BdaZKc1m",
+                                            "hold-off-time": "-9223372036854775808",
+                                            "wait-to-revert-time": "-9223372036854775808",
+                                            "network-scheme-specification": "cgv8H0TfemujbRCX7Eh5AKaCBMPv9cQdkdd1678ktDwwm0luECr6nBIYfplotcBNhPGnOPA9k6FG602CulIJWiA4AVs3ZWJhDpwj66sicZZiRTUdfuX3Fx77ksakoLt13Zc96Esavjtm4fzjCof9Vmg8Ois44VX7M9gSNA3aTowYvY97mo8aDoirHCoLplKbv0WatZlefJ4KHeK4uK679orI0Plha5sxXgIq7VxmEBZeHBiclobmEC4wrhNum7"
+                                        },
+                                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                                        "switch-selection-reason": "core-model-1-4:SWITCH_STATE_REASON_NONE",
+                                        "name": [
+                                            {
+                                                "value-name": "AFN2p",
+                                                "value": "APf5WeZ61xKBDM3FdWPguE8rGJ6tLogddvi"
+                                            }
+                                        ],
+                                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK",
+                                        "switch-selects-ports": "core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL",
+                                        "extension": [
+                                            {
+                                                "value-name": "f5KnI0gTSYOvJPxxcNUrQGUgn5HHc74scGPNzXGjVmOx3d4g0QHRpu7MzGuLGq5SZUxyJ5RxsxWvCSDCAllZPkEgT0TzqZjpLRPnOyUgXIEzAh4aup2bCGrvGdW6c7oXY5cFw6VtOrVgBZj5glhS",
+                                                "value": "AfzN3xZbNP1T1Gp0"
+                                            }
+                                        ],
+                                        "prot-type": "8U5GwjuUt7uvb3yKN8a7OUg7b33Met9mf6UMpgyTn2oy6OaLOdSvZ0Ca3yP9TQw8WiMmzl7Onnfl3hYSuRnlRRwNhdWa3kbZvXd4icKyzZLDhKvDtKZcBnRTAO3D06uv4AreMcEe3qJk26YvQXzrcrcM78h7eDvadWp",
+                                        "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE",
+                                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY",
+                                        "configuration-and-switch-control": "t7wVgZllJz1gUPSc5gAGiWEDuQ1aCde5kKTAC6NdFPtzweLBueaE2OawwbG9oN6ApZ216PeDwA5VOIoiWyXYe7uLa3UyIS07K29IJfl8Pi3D1jOXSDO6CaJM5vcNocV06WIHbVHTeCwfWc4GPKEjVo5SThG9lt1jpJ1sxAlLdKS1WOHEzlXmBVen4MwqfyJw9CRG54jaObbD0S9",
+                                        "internal-configuration-and-switch-control": "56FHTT4YysoFSZc2u3Az7UJOXMjPEs8BqNikzea7HyMzpQtLL4cLQVrNzKv54DHurZG0eQZNgLmGuIjfMwSujj9T3EY7aFuBxatLTsq95MHzm1H0xz",
+                                        "label": [
+                                            {
+                                                "value-name": "Jh8CHTdkx9ZK5G0rc9STKQeneuAkRTms2u4JfaVNjMpglqHxrri3hpqwL0QDLc5Gy2hOcdtnZSDkacKtDUwUbWiXP8sAcx8LrqrDvM0uwvHHHjakdHfpvxekyGNC5VfxdG2Ik35RyMq8XAs29zrx7xRxd",
+                                                "value": "9jspIxXKgaNl1eZrmWTGYVgisfPbMVIN624OzUyP4e25kToyHhey4uQwJxInkq3qs761TFJXLLU5xiDesRMweu3PUD5e38xn7Dg1iZQ3DL0aVvonf3UtxParsfy"
+                                            }
+                                        ],
+                                        "selected-fc-port": [
+                                            {
+                                                "local-id": "bdqLqqICIbskcgJTZTAs44epnr3rTWj51JQs1r4BCoWPFFIwqaYne4MBoP2hDdexOXZIoVj0bfHQNin5sds",
+                                                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                                                "name": [
+                                                    {
+                                                        "value-name": "i7ayO5PkaWRZTIH9vS1G0JxN1UKl752hc5P02xccl33eLCngvoXv7ma0gUmfZgp3d647v8kQcf4XSj6fA3KzhMAxGOEyWVB22x9pGtgSBcHtoNAYIcxZYZoEN34CQGESdNaT9qLKul5S8FQRRoIPf7l32qxS6bDbQN5Z5IJz3Gs4laV4qvTGu7Bwx8hvbMG1rD1omCXhbhlws8BSEmq8t1xS9GfcsWeLz79NBY5MgqbAzMk50LduMKeO",
+                                                        "value": "u0Kq6nRdwxHnCtDUE5tih"
+                                                    }
+                                                ],
+                                                "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                                                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE",
+                                                "extension": [
+                                                    {
+                                                        "value-name": "JbToA95aWAcuuaXY8eJPZrimdP38wCQ7FBvgKsizUv3pF1fNfZu6iMlwugE0SmZqYmGAHQ9Bd5ST68ydZ3b9HwF3Nb3xyUPo9nQQeSjrX4c34D83yj47IKbnN6Md1Ct2ZkS5c3x17J4bm46",
+                                                        "value": "fb2XN5cAbZOct9ektYqx2Xy1yudNybzGmtv9yICKziWUr3eVTEkVtTP2n2HO5gusKZBiz520nRUPM1KFF4t1PiV5cCThSfBu65NyaHyyqlncmZK1V5ULnPQrjBA4IcyGhderNFZd0eimd2f972MmRuF35f7FjxdADsUiZLvZ0Fddzseyu0Meur9rz"
+                                                    }
+                                                ],
+                                                "logical-termination-point": [
+                                                    "bc478ce2-7d3c-9c53-dff2-7724bcef25d4"
+                                                ],
+                                                "selection-priority": "-9223372036854775808",
+                                                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY",
+                                                "port-of-internal-fc": [
+                                                    "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                                ],
+                                                "label": [
+                                                    {
+                                                        "value-name": "j2ENHg1nznfbNmzxrX48kyCPs8UOr4eC6ShF1a2AyiLdwcKXaG6meAczIYn12tD1mUGn5BPvLAIhFteP1c38M7Hn6Wg0pM1DyA0v3H0OaJXP43w5gzdUHUhFIqF8czLK1Eg4lgKvRzcVCI1Ki6FZTOwBebBqCn3DTjz6rbujCG6fp7ZH6wyZl4sz74SCjV746HaxKEQnlXuKWljUSJL5F6wEaoglbophXzPz6xW",
+                                                        "value": "mi3bwe5gXJluPR0R8hcbxBtu2a38HSrW2u7yI4OxF1TuTUlT3p4ASp4VzZVhJn5MRcks81RO2DaNxoGANDaG26tC5oLHLQtvUFP2Gy"
+                                                    }
+                                                ],
+                                                "is-protection-lock-out": false,
+                                                "fc-port-direction": "core-model-1-4:PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN",
+                                                "fc-route-feeds-fc-port-egress": [
+                                                    "eAaqpp3ybFPlgc1nSVaHyXA2POcPha3vCdV1vQzGvg1MtV1dQ3Vg0vaPbnwsxAQ9FLbauCQZTKDexwrfzevABGhM3O7sgXBVAE649OW2qz8XYz4xGAZh8hW3X3ndSY0svYpEFly5MGVK7ZaNr9XriTmfOJkGAl05jpBYK1WpHJ9OAjuUtrdLcAT"
+                                                ],
+                                                "is-internal-port": true,
+                                                "role": "3Y4lHgnNeKD3kWfD9TKhaJvO6GTVXDV0BRe",
+                                                "address": [
+                                                    "laE7svSQuSnz6X1cvodauHBD12D7Vab8dPfFc7nG0L7YA125pf7LXJgYLTXy31GgQVO3V3BNOJDgKFe1VlEK4UAINpgIqPR9Cx4xAxch8PxKnLLi7hU3bmLQLUr4JiddP9DhGPyPx6rUJ54QmYUykxgXjH12Z68GfLYOAwv7uWTe1XWoVIW7845rM6mL5ukkfi0"
+                                                ],
+                                                "fc-port": [
+                                                    "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                                ]
+                                            }
+                                        ],
+                                        "hold-off-time": "-9223372036854775808",
+                                        "switch-control": "core-model-1-4:SWITCH_CONTROL_NORMAL",
+                                        "address": [
+                                            "Pow8uNlDxe5NNTQkK10r3TlJad5UT1sIpYILD3gbhmY4fGhRAhjv2E64RcYCdidu9V8MRoX0KN5RmeJWnUrhqxl9JbLOuQbDEjhvz7vcUs38yE4Nqn4QNpZoBD55lgAZzJm0QKcL4gTDMQqd5n3SMV9nqekLuMLVwZVeJ8ZOgLj2tJ7y63jLYs0gGd12ZEXnESCf0t3g6mbrYi0WlbHbvArbNtdM722DUwTNZO3Yb6p1phXKsxWX7f0U"
+                                        ]
+                                    }
+                                ],
+                                "supported-link": [
+                                    "BUegdFNEu0HSq3V3dnxMlpbV1MLtpPlSBz9OfWkBW2te5gabDzXYY0LSExl3eHOQ8PEnDZYrTjFQzP15oQ3fQH7u6kqkT6a2VHhyG8Zrrw9Tm3YCTTJCAI6GVoTOm3IhK0Hi0GBj5LcrO2VzWFbwfa5aqYRNTr4wjMGjkiDpVPIBSwa"
+                                ],
+                                "label": [
+                                    {
+                                        "value-name": "tYJI1hc2JNHC50dnryL0mtnruOSSVpJgfsYhJ3jlQSXNS22btFbP9rgD71o2q7bGs1X348oU0ezK8CVB9YripzOpAcj1buzvwozAwPno3W84qVFAT6KbyyA8CT1Ggs",
+                                        "value": "MQCeesBunqCrIp7aj5VuDlWEYHxE"
+                                    }
+                                ],
+                                "is-protection-lock-out": true,
+                                "external-managed-id": {
+                                    "manager-identifier": "8dtvonu0peB1pIl2Qc1teKWYuZCpscyAhTXG8syxy9qXJM0rY1V5DJ37Axp2BPuTJrrRLZpj0PhJt92k2XhGGcFgB4adUE6vYxeJov3gdcZGl1SnR1VpdBGPxIUjn0GdpVWFqRVD3McgFWwwYrW3UuKk4EDrwcEN7tspkf3g17wH3U51eTX8fHkkmYDK2ay9D0yP8t59AuIwoGpCzmDH4X1iNw2PGsYblp1tS6Cl",
+                                    "external-managed-uuid": "dRRTglkvY1zOUJBrDjZ69bry4Uj2owvBfeuvrP0iQr6D2zWGSVM2Y5s2ZD5n1sZgylMZaEhTYnw0PkyHfcB6hW0gr5wtpvJXQnXTU6MSmaKbubKBneHFa"
+                                },
+                                "fc-port": [
+                                    {
+                                        "local-id": "oXHA5Gt1VpaXeQkfXsca81h8sHJ3EVbULSmQyPKm7UjlCvsrXxBYyT61sP46D7SoS66iWQE3CXg6lIyi798G2fznWvlrDeHnkOF8wkb19j7u2FF1PNHJUg6REsa9ySwKybT4vW5Fgd1aSGbzuTjg1h7FJaO92kUA",
+                                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                                        "name": [
+                                            {
+                                                "value-name": "NwTJCqRHs1r0d1mYkDZBCxdMdmGqg8OVFHx90oQkihkvaHlukcYWJ3BPphfyq3l5CS6C9WOr59WgI9CUlsIXvjMNt1dTWyQyrW3AKR1HSPPsYkmbM50agMXJFaCtIk218XBKGukrb9T1tgd8dditSfdphHTZ2N12KuNiR7J28v4uD9CQeUj69ooq6hh04aUGxzYoyAiHX",
+                                                "value": "bAfNquzBsI0Q0YZ9Q3kKBJks7S2hrRourD9JZIcki42a22kK5wvzfH1erVvLMTf5ppOoZ0Ii5LsZNMKKa7bpOcD771STM"
+                                            }
+                                        ],
+                                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT",
+                                        "extension": [
+                                            {
+                                                "value-name": "0qB3eBPGoSmI6XAHMw51CFI",
+                                                "value": "Ewsp4rL4RfZ5QPE6z0OFPhftFkua04kwAEVE5zBXGAUohqvQiboZkDt0PP2HUmdu011XsCM84zwmZT4a5k9hXC9FkbmexsIplJfNd1Nisbws5sC2NDbC8lhswwGWYgdb0sQ5mDnOGL8DeKx1gJDo4NQsjwo9MCcE42KixZ7dLfRRSgS8ZnwV2mgdK"
+                                            }
+                                        ],
+                                        "logical-termination-point": [
+                                            "f7872522-16c2-ce17-fc7a-083c8517e7b3"
+                                        ],
+                                        "selection-priority": "-9223372036854775808",
+                                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL",
+                                        "port-of-internal-fc": [
+                                            "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                        ],
+                                        "label": [
+                                            {
+                                                "value-name": "YbhEsgF2yCNTBsxd5Ikg70tD8sESeiS4m9JOigQQSwBlY9zVJ",
+                                                "value": "cQMxlUZRE5apawyLcQ12zLy2Yp3xkMjov5VQRNInKKMUgdFsVymmbVpacszwfKNKHAsqfaO0UAU2FsmBSJX4wm6AHF6WqLy7"
+                                            }
+                                        ],
+                                        "is-protection-lock-out": true,
+                                        "fc-port-direction": "core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL",
+                                        "fc-route-feeds-fc-port-egress": [
+                                            "mdXr0dov6tQkMgQTXWASKD1O6h639jSvoPWh2cM0FulrK3dH0NrCqsiwKorLIk8614fW81OOv1775kGX78ryAJWc"
+                                        ],
+                                        "is-internal-port": true,
+                                        "role": "BdI921uu1Y7uGIcOSXRO6PaNY5RyEDd7QVgSPDfQBed9OpQHeznlop0muRU0m07dVgXCTclmjyw7PeO3N3gcsg",
+                                        "address": [
+                                            "35sNnZMudpCWgu40C4g0RimZw6wKuEbxBDcZDRlI8XwpjAhVwpVgI9f67LICiT1Tp6KUX6u5V0mfAE2Z3YfDZmB78cJi5CbmIW8FUCDPCZW5vZ4rPbWOxqNxCoPz11WJP4hJHMqbLf896csVfoBNOpkqNa0G3OiSKrtjdLvQ0DZ6IrTXInCoEXPjZH02niM7J7jOKGEDbwBTXnJxKlWoaDH9cz3zRHysGJ8rpNWBj"
+                                        ],
+                                        "fc-port": [
+                                            "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                        ]
+                                    }
+                                ],
+                                "address": [
+                                    "ijpsjvshgIM56RtjcpIM0xPdl3h3QS704wsn2NEanj8uaBNe1n01MPe7Lo2tg9tkyWzsBeCYxKsze7NfmF88unf7DhATj46RSFbtLNraqMJELoL83Tgq8oxLF0xQ4vHW2ShGyIQQmsm8I7gMSo4TMtwktVapqKdluu125JKrb6rU5zyYYuJKXfWjb7ItJ"
+                                ]
+                            }
+                        ],
+                        "sync-ltp": [
+                            "1c7e2c79-af6e-8d12-d18a-957fe616ceeb"
+                        ],
+                        "address": [
+                            "Ano7zoz5GtQesUnwUD1j34bhbPGjYyMqN2xer6kZz2dUWsiIXj2Tf5aqUQJKgoaWqH2JGmI7pN1dfjO5vIYKN0bHRUkZauNt4QcCcNJtsLzIWnNr5DcKDfjm1Dmc01F4RJy4ohpR2YrRd6aaJmUmteJvRXHJYeFQXdMev35p2w87CjilF4H1iiw2f5LejjW8wIm1LjjFPrFrKXEiTej4wP6EMJS52G5rokk1"
+                        ]
+                    }
+                ],
+                "supporting-pc": "DzlXeMH3jRWx20VRYzvIjsCZy3fKohfTQAQWfqZy9V5cOS3MsrmLTRDjUS3a1jWJTMF84wyekvq8olMQM9tG0YZMRVPK6LuZp10myyAS4SSk5E2SFvqxmhc541PaEbaVd2hDAJnwtfQzTSrzgJ6C0aH5bo7HAhDFbMiMoFaRUTqFLJ6Ts5nlf4ijtp0VzvAKaSoyprhbkI",
+                "server-ltp": [
+                    "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                ],
+                "connected-ltp": "cb398360-6165-86b2-5b57-2fea3e77edb6",
+                "layer-protocol": [
+                    {
+                        "local-id": "jKE2wZqvFUa1CI4vNNwwkWQLogt3ao0l0wfwnG13A344M0srNQYZMGKbWe66C7sCvH0TnTOPOKMsLeUq4KqIiaLfgSlKRFemfefCZ3kOO6grc2R8EhIXkucAmpd55rrcyHOxC0diYuJ2oB23KL04f4xtlKyi3ZuByb13bel2AX4Zq72aSU7ZQwsb80mbRQFi1Gl5My7nv3mNagYU2XTStdVB5hEX0j71RsYES5Tg1733",
+                        "layer-protocol-name": "tdm-container-2-0:LAYER_PROTOCOL_NAME_TYPE_TDM_CONTAINER_LAYER",
+                        "vlan-interface-1-0:vlan-interface-pac": {
+                            "vlan-interface-capability": {
+                                "configuring-pcp-bits-decoding-is-avail": true,
+                                "ingress-vlan-id-filtering-is-avail": true,
+                                "port-and-protocol-based-vlan-is-avail": true,
+                                "statistics-is-avail": true,
+                                "configuring-service-access-priority-mapping-is-avail": false,
+                                "max-number-of-protocol-vlan-id-groupings": 697,
+                                "configuring-ingress-tag-filtering-is-avail": true,
+                                "supported-sub-layer-protocol-name-list": [
+                                    "vlan-interface-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_EDGE_RELAY_COMPONENT"
+                                ],
+                                "number-of-available-traffic-classes": -104,
+                                "supported-interface-kind-list": [
+                                    "vlan-interface-1-0:INTERFACE_KIND_TYPE_UPLINK_RELAY_PORT"
+                                ],
+                                "available-pcp-bits-interpretation-kind-list": [
+                                    "vlan-interface-1-0:PCP_BITS_INTERPRETATION_KIND_TYPE_7P1D"
+                                ],
+                                "drop-eligible-indicator-is-avail": true,
+                                "configuring-pcp-bits-encoding-is-avail": false,
+                                "service-access-priority-tagging-is-avail": true,
+                                "received-priority-overwriting-is-avail": true,
+                                "egress-vlan-id-translation-is-avail": false,
+                                "admin-shut-down-is-avail": false,
+                                "tagging-and-mvrp-is-avail": false,
+                                "vlan-id-translation-is-avail": false,
+                                "restricted-automated-vlan-registration-is-avail": false,
+                                "number-of-available-priorities": -9
+                            },
+                            "vlan-interface-status": {
+                                "statistics-is-up": false,
+                                "timestamp": "2021-05-07T18:40:40Z",
+                                "total-bytes-output": "-9223372036854775808",
+                                "total-frames-input": "-9223372036854775808",
+                                "interface-status": "vlan-interface-1-0:INTERFACE_STATUS_TYPE_NOT_YET_DEFINED",
+                                "total-frames-output": "-9223372036854775808",
+                                "total-bytes-input": "-9223372036854775808"
+                            }
+                        },
+                        "wire-interface-2-0:wire-interface-pac": {
+                            "wire-interface-current-problems": {
+                                "number-of-current-problems": 105,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -22270,
+                                        "timestamp": "2020-09-06T10:27:53Z",
+                                        "problem-severity": "wire-interface-2-0:SEVERITY_TYPE_MAJOR",
+                                        "problem-name": "NyfMU20oypD6g8MA9MC59ozIHBEYWn6CVloHfo5ONAMWIyoRl0Puog4YRBWGY2iLfytuXyaC1WqBnOlIPa45i132CRIATSl0qOvffFS8uaJRZ4rO6nTpoPr0G1AsTOsbuPrJnbRRltAkx10EoM3NBmF9ngBg4WrqDS2"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-08-09T18:45:16Z"
+                            },
+                            "wire-interface-historical-performances": {
+                                "number-of-historical-performance-sets": -3078,
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "period-end-time": "2021-01-10T11:16:21Z",
+                                        "performance-data": {
+                                            "es": -1173430545,
+                                            "ses": 814540054,
+                                            "low-power-idle-receiver-ms": 1001641408,
+                                            "low-power-idle-transmitter-ms": -658818997,
+                                            "symbol-error-during-carrier": 1400451792
+                                        },
+                                        "history-data-id": "DIaQ09SgP4DIOyj914b1hjodewTP0LQDlSte1euRi7rYxK0zObs6uRbAn4hnIZS3SehL",
+                                        "suspect-interval-flag": false
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-01-13T11:30:20Z"
+                            },
+                            "wire-interface-status": {
+                                "rx-sync-role": "wire-interface-2-0:RX_SYNC_ROLE_TYPE_FAULT",
+                                "link-is-idle": true,
+                                "eee-is-up": false,
+                                "performance-monitoring-is-up": false,
+                                "rx-level-cur-list": [
+                                    17
+                                ],
+                                "tx-level-cur": -53,
+                                "pmd-negotiation-state": "wire-interface-2-0:PMD_NEGOTIATION_STATE_TYPE_COMPLETE",
+                                "loop-back-kind-up": "wire-interface-2-0:LOOP_BACK_TYPE_NONE",
+                                "interface-status": "wire-interface-2-0:INTERFACE_STATUS_TYPE_UP",
+                                "pmd-kind-cur": "QwOR9tvBAl00L6leeOC81s2srpJBi7q0v6RErm81A8Ul67zkN3kPvm9PDTiVSAVfGFU7TU0t2UG8T7kHbEoy1xnwixs27fiFM4EGYx10jI0dHkUSQarJHGgSeAUdPcLugp2eW368D6lli759",
+                                "receive-signal-is-detected-list": [
+                                    false
+                                ],
+                                "signal-ordering-kind-cur": "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI_X",
+                                "pmd-is-up": true,
+                                "link-is-up": true
+                            },
+                            "wire-interface-capability": {
+                                "wavelength-min-list": [
+                                    1709314010
+                                ],
+                                "supported-signal-ordering-kind-list": [
+                                    "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "rxlevel-high-threshold": -124,
+                                "isolation-is-avail": false,
+                                "supported-loop-back-kind-list": [
+                                    "wire-interface-2-0:LOOP_BACK_TYPE_INTERNAL"
+                                ],
+                                "short-reach-mode-is-avail": false,
+                                "wavelength-max-list": [
+                                    520913986
+                                ],
+                                "unidirectional-operation-is-avail": true,
+                                "supported-pmd-kind-list": [
+                                    {
+                                        "pmd-name": "QwOR9tvBAl00L6leeOC81s2srpJBi7q0v6RErm81A8Ul67zkN3kPvm9PDTiVSAVfGFU7TU0t2UG8T7kHbEoy1xnwixs27fiFM4EGYx10jI0dHkUSQarJHGgSeAUdPcLugp2eW368D6lli759",
+                                        "speed": "wSY50IbADoiH9MYrO4",
+                                        "duplex": "wire-interface-2-0:DUPLEX_TYPE_FULL_DUPLEX"
+                                    }
+                                ],
+                                "configuration-of-number-of-bip-errors-per-ses-is-avail": false,
+                                "auto-pmd-negotiation-is-avail": true,
+                                "required-medium-kind": "wire-interface-2-0:MEDIUM_KIND_TYPE_TP_CAT5",
+                                "temperature-low-threshold": 97,
+                                "maintenance-timer-range": "KCKAVywaazqpB0RVIogGklvlz3xg50eHuZ9ppGrz7RYISHvs6D8qZEEqH3yE3",
+                                "supported-alarm-list": [
+                                    "epMnO338DbZtLJ3h39McrLQ54p1CV4h9m3x2ZAauD2XpD0yH1kTtYBq20rwNoOXKJuEIWP4sJ2RmUh3OBO9rhzl9TSX9yUT9gpS4eWwXQfcDw7j8Osz5TVfMFcV5YGee66acVH2DW68tdjt1LUZx"
+                                ],
+                                "mii-kind": "wire-interface-2-0:MII_KIND_TYPE_SFP_SFP_PLUS_SFP28",
+                                "rxlevel-low-threshold": 106,
+                                "auto-negotiation-pmd-selection-is-avail": true,
+                                "wavelength-grid-min": 735685038,
+                                "performance-monitoring-is-avail": true,
+                                "auto-signal-ordering-is-avail": true,
+                                "configuration-of-rx-sync-preference-is-avail": true,
+                                "eee-is-avail": false,
+                                "temperature-high-threshold": -112,
+                                "admin-shut-down-is-avail": false,
+                                "mdi-kind": "wire-interface-2-0:MDI_KIND_TYPE_LC"
+                            },
+                            "wire-interface-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "performance-data": {
+                                            "es": 781125690,
+                                            "ses": 1446282460,
+                                            "low-power-idle-receiver-ms": 1409234344,
+                                            "low-power-idle-transmitter-ms": 126808760,
+                                            "symbol-error-during-carrier": -1372002807
+                                        },
+                                        "timestamp": "2021-07-15T16:30:05Z",
+                                        "scanner-id": "HNS4VmcRaDiNokGb5hsktWYxigSyBShay16tnidxNnd3zTfEaHQvvO3N4NdxGuHeoNzLXEbL1oOAh37jDPP8wKWsp105wzbUfDxchIPbYEL7zKrcA8l6K9y9aq7y0ak7NKbXk18jxLq6wRj6Rw4BxCDHVC8NMkUs45hpYpIv20CySNwBjA5Q5Ip0cpNQKzaOwr5vINSLOmjy9Q1ki62nGknSJ2JlBTa0df",
+                                        "suspect-interval-flag": true,
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -19
+                            }
+                        },
+                        "ethernet-container-2-0:ethernet-container-pac": {
+                            "ethernet-container-capability": {
+                                "supported-fec-interleaver-kind-list": [
+                                    "ethernet-container-2-0:FEC_INTERLEAVER_KIND_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "maintenance-timer-range": "Yl0l2nMaKOA2fNUlUmVyDjmZZjlNA30qo0DrniB7639lIVGCit2VNo",
+                                "supported-alarm-list": [
+                                    "IZra2rtrr6KGodFmgOHQBfkTBmGgLkUljlneEQF5XpDdCiAKY9AzhMlS818Te26pfuDTkiQ9ztf3DPNBQf271nR2hZVnTUM8oiTAAJC24R5HyTao05o2kf4B7RQ0LD11VUCnwehsXn2v8cL891auh65",
+                                    "YO8Bj1D6W7tklLMa0OF8Tig2krwBxuJniRZBTCHHJ21WFF6FmDFfVW9ffGIE2r2cb1F4veL6gEUObSlxv1EiXOy4m8IgAKsLD7H0lkYtYS91Cvr7w5qlLQhZYZ7qCzb7yS0L4Yf2JoW"
+                                ],
+                                "statistics-is-avail": false,
+                                "encryption-is-avail": false,
+                                "performance-monitoring-is-avail": true,
+                                "available-queue-list": [
+                                    {
+                                        "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE4",
+                                        "available-dropping-behavior-kind-list": [
+                                            "ethernet-container-2-0:DROPPING_BEHAVIOR_KIND_TYPE_RED"
+                                        ],
+                                        "available-drop-precedence-kind-list": [
+                                            "ethernet-container-2-0:DROP_PRECEDENCE_TYPE_MEDIUM"
+                                        ],
+                                        "queue-depth-configuration-is-avail": false,
+                                        "wred-profile-per-drop-precedence-is-available": false,
+                                        "available-scheduling-kind-list": [
+                                            "ethernet-container-2-0:SCHEDULER_KIND_TYPE_WRR"
+                                        ],
+                                        "max-queue-depth": 1275685954
+                                    }
+                                ],
+                                "bundling-is-avail": true,
+                                "supported-header-compression-kind-list": [
+                                    {
+                                        "header-compression-name": "7fPvfrJhC1aRpeofgwO5A4G8Ia3pVAN2HuxOV95pag8rmpHCVvHnrfv9qqzdSefA",
+                                        "mpls-payload-kind-list": [
+                                            "ethernet-container-2-0:MPLS_PAYLOAD_KIND_TYPE_NONE"
+                                        ],
+                                        "compressed-protocol-layer-list": [
+                                            "ethernet-container-2-0:PROTOCOL_LAYER_TYPE_IPV6"
+                                        ],
+                                        "header-compression-mode": "ethernet-container-2-0:HEADER_COMPRESSION_MODE_TYPE_LENGTH_BASED",
+                                        "compressed-header-length": 801
+                                    }
+                                ],
+                                "support-of-management-frames-without-preamble-is-avail": true,
+                                "explicit-congestion-notification-is-avail": false,
+                                "information-rate-min": 321766980,
+                                "fec-is-avail": true,
+                                "burst-size-max": 32618,
+                                "ingress-policing-is-avail": false,
+                                "supported-fec-redundancy-size-list": [
+                                    "ethernet-container-2-0:FEC_REDUNDANCY_SIZE_TYPE_NOT_YET_DEFINED"
+                                ],
+                                "egress-shaping-is-avail": true,
+                                "information-rate-max": 793625942,
+                                "admin-shut-down-is-avail": true,
+                                "bundling-group-size-max": 115,
+                                "supported-fec-interleaver-depth-list": [
+                                    "ethernet-container-2-0:FEC_INTERLEAVER_DEPTH_TYPE_2"
+                                ],
+                                "burst-size-min": 2349,
+                                "fec-word-size-max": 6302,
+                                "supported-loop-back-kind-list": [
+                                    "ethernet-container-2-0:LOOP_BACK_TYPE_NONE"
+                                ]
+                            },
+                            "ethernet-container-current-problems": {
+                                "number-of-current-problems": 37,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 13510,
+                                        "problem-name": "Yp8vZb3x5Kp319L8kbI9jeii1upm4M1239pUdlki5JlYTY652GelMxEF1V25HVZD5hxaCRszBOxmEvrG",
+                                        "timestamp": "2021-09-14T07:44:41Z",
+                                        "problem-severity": "ethernet-container-2-0:SEVERITY_TYPE_NON_ALARMED"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-07-05T20:08:15Z"
+                            },
+                            "ethernet-container-historical-performances": {
+                                "number-of-historical-performance-sets": -31910,
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "period-end-time": "2021-01-02T23:29:21Z",
+                                        "suspect-interval-flag": false,
+                                        "history-data-id": "DSKA6KKIDcuZmK0q8DbajkBOKQAd4izz2ba9VURr7eilYaM6NX9Z9KNLsfQwqp6sB8to2lP1z",
+                                        "performance-data": {
+                                            "queue-utilization-list": [
+                                                {
+                                                    "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_QUEUENAME_NOT_YET_DEFINED",
+                                                    "max-queue-length": 1701640242,
+                                                    "avg-queue-length": -162918123
+                                                }
+                                            ],
+                                            "fec-uncorrectable-blocks": -242709693,
+                                            "tx-ethernet-bytes-sum": "-9223372036854775808",
+                                            "tx-ethernet-bytes-max-m": "-9223372036854775808",
+                                            "fec-corrected-blocks": 2090081624,
+                                            "tx-ethernet-bytes-max-s": -1836763175,
+                                            "time-period": 643910560
+                                        }
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-12-30T23:08:20Z"
+                            },
+                            "ethernet-container-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "timestamp": "2020-06-11T23:52:07Z",
+                                        "scanner-id": "UmyATU7olNs1Pi6nNcRdnUqiAItF2hCODahxWoNab731pag5m7aCTAUtaf14wD",
+                                        "suspect-interval-flag": false,
+                                        "performance-data": {
+                                            "queue-utilization-list": [
+                                                {
+                                                    "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE3",
+                                                    "max-queue-length": 554937350,
+                                                    "avg-queue-length": 882496290
+                                                }
+                                            ],
+                                            "fec-uncorrectable-blocks": -1085145515,
+                                            "tx-ethernet-bytes-sum": "-9223372036854775808",
+                                            "tx-ethernet-bytes-max-m": "-9223372036854775808",
+                                            "fec-corrected-blocks": -2134345351,
+                                            "tx-ethernet-bytes-max-s": -1530542703,
+                                            "time-period": 1631573276
+                                        },
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": -75
+                            },
+                            "ethernet-container-status": {
+                                "timestamp": "2020-01-26T13:40:00Z",
+                                "last-10-sec-data-output-rate": -1968721773,
+                                "bundling-is-up": false,
+                                "total-bytes-output": "3091757253419614720",
+                                "total-bytes-input": "7628666793824677888",
+                                "interface-status": "ethernet-container-2-0:INTERFACE_STATUS_TYPE_TESTING",
+                                "loop-back-kind-up": "ethernet-container-2-0:LOOP_BACK_TYPE_NONE",
+                                "statistics-is-up": false,
+                                "last-10-sec-data-input-rate": -996448157,
+                                "forwarded-bytes-output": "2264229888180900352",
+                                "performance-monitoring-is-up": true,
+                                "forwarded-bytes-input": "8271111562787407872",
+                                "remote-site-is-faulty": false
+                            }
+                        },
+                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                        "hybrid-mw-structure-2-0:hybrid-mw-structure-pac": {
+                            "hybrid-mw-structure-status": {
+                                "performance-monitoring-is-up": false,
+                                "segment-status-list": [
+                                    {
+                                        "segment-status-type-id": -22490,
+                                        "operational-status": "hybrid-mw-structure-2-0:OPERATIONAL_STATE_TYPE_ENABLED",
+                                        "segment-is-reserved-for-tdm": true
+                                    }
+                                ]
+                            },
+                            "hybrid-mw-structure-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "period-end-time": "2020-12-20T03:50:25Z",
+                                        "history-data-id": "WQAlha0UhfgfFfVSGEJaz3U",
+                                        "performance-data": {
+                                            "rx-level-avg": -48,
+                                            "es": -1988419369,
+                                            "unavailability": -1392482223,
+                                            "cses": 2132857624,
+                                            "ses": -879563985,
+                                            "rx-level-min": -106,
+                                            "time-period": 164279846,
+                                            "rx-level-max": -38
+                                        },
+                                        "suspect-interval-flag": false
+                                    }
+                                ],
+                                "number-of-historical-performance-sets": 27084,
+                                "time-of-latest-change": "2020-04-14T15:26:03Z"
+                            },
+                            "hybrid-mw-structure-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -7447,
+                                        "problem-name": "7lbxFM6aQEMCyJB6I1KkY02O3z5Qt9SAu3Z2H54yKI2asDg2E0m",
+                                        "problem-severity": "hybrid-mw-structure-2-0:SEVERITY_TYPE_NON_ALARMED",
+                                        "timestamp": "2021-01-18T21:29:43Z"
+                                    }
+                                ],
+                                "number-of-current-problems": -65,
+                                "time-of-latest-change": "2021-10-02T16:10:43Z"
+                            },
+                            "hybrid-mw-structure-capability": {
+                                "supported-tdm-structure-kind-list": [
+                                    {
+                                        "tdm-structure-name": "xaITidu0KbqBAXQeh70gVZwyF51e1d0qnAjyNFypRQTjNJx5QxdEoB43y6izjaZzCb7qQFHzvASbbh8UPdqdOuhmArOUtFt5QsnH758ux1FJaFDZS35GxmV0FBU8gfd7HBGGyO25HIOSfjJ8eOGE2BEH4yHlFVkeo0UOGWTgwA0MLJU0qAEs4i28IJlfwFtMFnAebmmIWmuHXgzn",
+                                        "tdm-segment-size": 329623252,
+                                        "max-number-of-segments-reservable": -84
+                                    }
+                                ],
+                                "performance-monitoring-is-avail": false,
+                                "supported-alarm-list": [
+                                    "EnKNXl0cSGFEdU7r6tNOp1aYZiqe0vWFTykIUkVE0sienpxlSd99eb05tqktV80Gzchtx47pwhvLz36jg7luilALDM7qUZ7lcoOJsN0QXwCozAHHIU3S7vwKhDb4uapGq6hSLiAAO4YfFyOfsR7AnDcw8nADxSbXYtHBLacreayLAm0350vsDHZE5rhujsk9NTLq3XRaZhVAvOvBO0VrzM5w6eTpz5rmY4NU1wWSGRkbxHElzAF9eCFkR"
+                                ]
+                            },
+                            "hybrid-mw-structure-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "suspect-interval-flag": false,
+                                        "timestamp": "2021-12-21T17:36:24Z",
+                                        "performance-data": {
+                                            "rx-level-avg": -23,
+                                            "es": -1526349661,
+                                            "unavailability": 760758242,
+                                            "cses": 1668706754,
+                                            "ses": -256233437,
+                                            "rx-level-min": 86,
+                                            "time-period": 843600090,
+                                            "rx-level-max": -43
+                                        },
+                                        "scanner-id": "skICElSGZK3tDbDy1TkkbP6PgRnwzZ42jEEQZxwQhrbUDOlEAFRLmXsCGP0fO49ZIOPzdehuFkha1CHB9yevnG8Vn8235c2N0KfdYozvJIGKcfdlFrJ2ZJPeRRhO3juV3J0T7spIaXsncxARYbLPUs3Ebks7wW2rxVlFnKfxzIMD7fm6q7NlrJZ",
+                                        "elapsed-time": "-9223372036854775808"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 13
+                            }
+                        },
+                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                        "extension": [
+                            {
+                                "value-name": "KtVwsPoACRafQ2jjjuPOIV01EaLSfkFZNsvghMIUvS1lVcE6HmVhhNjNX4F4gc34FqcO4UAzNCMAOjGnFtFOgYt5U192d46Snizr59TSDFkkQ0HvumbCcFIYGR1TOZEbi5unef7KVj4DjD1FSciWRSVpBOjpNPsXUXc04b",
+                                "value": "ZuGvGcwl4Iv0snNRZt2g9RJYLybECeouJXZp9nC550XxnDpe6rn7bY6Oo9s0nJm6GdnHA0My0B5femmdGJcRzaxXj0PzJ4xhhVYKNCaF57Mku0p2JBLaMi7XaXwT142aR0Uwu4bA4PMyQbsrEdCinJ8yGEjzAmKrmwXJt0jxQ5Xy8pZEuBXRl5hTBBlcX5vbtlUWd5lVaat"
+                            }
+                        ],
+                        "configured-client-capacity": "idnyV4IZ01wd9OBW1C53OEM9505qAb9Kgoibs02kTyx3f8RgDPjjl5sjXyBqBK2R9dUB5WWZnlUCuLS",
+                        "ip-interface-1-0:ip-interface-pac": {
+                            "ip-interface-status": {
+                                "errored-packets-output": 150125220,
+                                "last-10-sec-data-output-rate": -607988055,
+                                "forwarded-packets-input": "-9223372036854775808",
+                                "errored-packets-input": 679653720,
+                                "ip-v-4-address-cur-list": [
+                                    {
+                                        "fixed-ip-v-4-address": "ytqVHrodxrJZ1BTgCVR3Gv6JlbbT7sUFVktCDJH33r24UOkpB4shzqSUB3FBvz8iMBMplusoNnkH3EYEIqV9RFWkJBV634hPF36SprgcGAMJ7KnH3aJMPF6qg2pb6G0DBZw1iE5Y7Jz6mWNpYw3F396cbnn9VgNofbhpPnnOYWUkKIBI6Ef2OdeRAB1nRGM6",
+                                        "fixed-ip-v-4-address-prefix-length": -21,
+                                        "fixed-default-gateway-ip-v-4-address": "nqiKfhy9BaJ5"
+                                    }
+                                ],
+                                "broadcast-packets-output": -1685723443,
+                                "dropped-packets-input": 1051326886,
+                                "loop-back-kind-up": "ip-interface-1-0:LOOP_BACK_TYPE_BACK_TO_LOCAL",
+                                "dropped-packets-output": 294644708,
+                                "unicast-packets-input": "-9223372036854775808",
+                                "forwarded-packets-output": "-9223372036854775808",
+                                "neighbor-list": [
+                                    {
+                                        "neighbor-mac-address": "J0KpdYhGza3rIPpjTNJbpYkQ0WSBTDjCvVUIT3oldkEN936UIP60GiIy6A1Z5luA8ob2rzfwTTjVOhPp6NpE6Z4cz64xjy7rWilnKATvt4qil8HjNYQTXUYoS2VbAVvodQDProlUsD4FLLYrBGcqtaPl4CpwxUUDKxs3VFYfj2UWGLn9rAAUCh8HTx5jj0W3pg7dWXkfR73pSrzbT16vi64bD2uW2iRjzQovNJCxQFW",
+                                        "neighbor-ip-v-4-address-list": "YnLRoJfGPbSsdeg7x0j6QHBEi530KZAJnesLXHsNLc7Yqg6PgpV6YoC9tF96FCPUQ9FFRZsu3ssmIqbYH74GnHPJeQPTsENaNlQwca0gClCcLFalE712GILUysOT6t3LGTaLW21yfvLT2NeHU7JAPmnfO38Mw",
+                                        "neighbor-origin": "ip-interface-1-0:NEIGHBOR_ORIGIN_TYPE_DYNAMIC"
+                                    }
+                                ],
+                                "timestamp": "2020-05-05T06:22:52Z",
+                                "forwarded-data-volume-output": 1469181516,
+                                "total-packets-input": "-9223372036854775808",
+                                "last-10-sec-packet-input-rate": 679190354,
+                                "last-10-sec-packet-output-rate": -1150667363,
+                                "vpn-binding-is-up": true,
+                                "multicast-packets-output": -988795533,
+                                "broadcast-packets-input": 99961656,
+                                "last-10-sec-data-input-rate": -441499165,
+                                "interface-status": "ip-interface-1-0:INTERFACE_STATUS_TYPE_NOT_PRESENT",
+                                "statistics-is-up": true,
+                                "total-packets-output": "-9223372036854775808",
+                                "multicast-packets-input": -124888787,
+                                "data-volume-input": -1738556605,
+                                "data-volume-output": 1270944004,
+                                "fragmented-packets-input": 11091360,
+                                "ip-address-origin": "ip-interface-1-0:IP_ADDRESS_ORIGIN_TYPE_OTHER",
+                                "unicast-packets-output": "-9223372036854775808",
+                                "forwarded-data-volume-input": -1798235895
+                            },
+                            "ip-interface-current-problems": {
+                                "time-of-latest-change": "2021-02-04T04:40:36Z",
+                                "number-of-current-problems": 60,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 17398,
+                                        "problem-severity": "ip-interface-1-0:SEVERITY_TYPE_WARNING",
+                                        "problem-name": "OYg",
+                                        "timestamp": "2020-04-05T20:12:46Z"
+                                    }
+                                ]
+                            },
+                            "ip-interface-capability": {
+                                "burst-size-max": -17215,
+                                "statistics-is-avail": true,
+                                "supported-alarm-list": [
+                                    "MUMh96KPxYrkxELVcNjRkgkUk0urfa114Na6TUViKeC9TfW",
+                                    "MdZYA0P2psSOfg7tQaUXAGHReNUopKccX32p4JrtbkaishLajx0T6HDkupAL1FXZI0gEBI0NUa5mjJxD8xoe6Tqsj1dkG3bg3sVw2VbW59agSHT06a7cVxE6qSr6VunQOaeQ5qE2zPirw4jveiH1Qe88YzfLVutKEHsJ77LGW3Zk7bPdtpfbDnktOreBVHdroG2wFF4tA4FAfnN"
+                                ],
+                                "information-rate-min": -134617317,
+                                "maximum-number-of-ip-v-4-addresses": 2997,
+                                "fixed-default-gateway-configuration-is-avail": false,
+                                "maintenance-timer-range": "runhahEHUmUgcmpK2Sa1gLBp26YM5vUo0aF2rbJdyvtKRTuTDwULaobcu1QsxLQpVorez2r7yURhFe3aC",
+                                "admin-shut-down-is-avail": true,
+                                "dhcp-client-is-avail": false,
+                                "egress-shaping-is-avail": false,
+                                "information-rate-max": 1485872160,
+                                "burst-size-min": -4220,
+                                "ip-v-6-is-avail": true,
+                                "maximum-transmission-unit-max": 3175,
+                                "ingress-policing-is-avail": true,
+                                "maximum-transmission-unit-min": -386,
+                                "supported-loop-back-kind-list": [
+                                    "ip-interface-1-0:LOOP_BACK_TYPE_BACK_TO_LOCAL"
+                                ],
+                                "vpn-binding-is-avail": false,
+                                "arp-proxy-is-avail": false
+                            }
+                        },
+                        "termination-state": "core-model-1-4:TERMINATION_STATE_TERMINATED_BIDIRECTIONAL",
+                        "mac-interface-1-0:mac-interface-pac": {
+                            "mac-interface-status": {
+                                "errored-frames-output": 823732698,
+                                "loop-detection-result": "mac-interface-1-0:LOOP_DETECTION_RESULT_TYPE_DETECTION_SWITCHED_OFF",
+                                "forwarded-frames-input": "-9223372036854775808",
+                                "timestamp": "2022-02-10T03:54:28Z",
+                                "multicast-frames-input": -1007402133,
+                                "unicast-frames-input": "-9223372036854775808",
+                                "last-10-sec-frame-output-rate": -868280205,
+                                "total-frames-input": "-9223372036854775808",
+                                "multicast-frames-output": -1381368851,
+                                "dropped-frames-output": 604874090,
+                                "statistics-is-up": true,
+                                "forwarded-frames-output": "-9223372036854775808",
+                                "flow-control-mode-cur": "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_NONE",
+                                "received-ethernet-frame-format-cur": "mac-interface-1-0:FRAME_FORMAT_TYPE_NOT_YET_DEFINED",
+                                "last-10-sec-frame-input-rate": 842069974,
+                                "errored-frames-input": -53685683,
+                                "loop-back-kind-up": "mac-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE",
+                                "interface-status": "mac-interface-1-0:INTERFACE_STATUS_TYPE_DORMANT",
+                                "mac-address-cur": "vsgoA0Qsnh4XHuNmdts8zpDB6m8lv3DSvUh5U7y9huYQYD43ZxcyWH9U39frcLbHxsFjs5sBzijpWolVVxlJ6uv1DLsPwEo3Y3ei0GTzY5RMtcHgB2ZHomIT7bAvHZqFUEQVcBm3G5P1hphSj8rIvaBud40U3irPXhC1TR4rWUt6jKQCTic",
+                                "broadcast-frames-output": 681331616,
+                                "total-frames-output": "-9223372036854775808",
+                                "fragmented-frames-input": 742686940,
+                                "performance-monitoring-is-up": false,
+                                "unicast-frames-output": "-9223372036854775808",
+                                "broadcast-frames-input": 1656490336,
+                                "dropped-frames-input": -1167928987
+                            },
+                            "mac-interface-capability": {
+                                "supported-flow-control-mode-list": [
+                                    "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_SEND_AND_RECEIVE"
+                                ],
+                                "statistics-is-avail": false,
+                                "broadcast-frame-suppression-is-avail": true,
+                                "supported-frame-format-list": [
+                                    "mac-interface-1-0:FRAME_FORMAT_TYPE_802.2_LLC"
+                                ],
+                                "admin-shut-down-is-avail": false,
+                                "maximum-frame-size-min": 20777,
+                                "loop-detection-is-avail": true,
+                                "performance-monitoring-is-avail": false,
+                                "mac-address-configuration-is-avail": false,
+                                "maintenance-timer-range": "5bimCdHogPEF7eXGYSxEhDHOyudGUbA0eTeQ6OeeDLUDZJjPtIuKd3qMyEkkHUcVFrLDfSSKDEnufzcJ9ylnBM11ilmZ7yMFRpi6h2JMyY9OxdxzLSWeEXgWauN92rOMRZK0TtNssO8R1FqMp",
+                                "supported-alarm-list": [
+                                    "2d9bjXBJQVVk",
+                                    "W30KduynpZ3bI2VJOhogB4os5VLJkZB83CT86jnnaryTlmu1DSh6WxyTkbCF35NYHy6GRmV2FmV0I"
+                                ],
+                                "hardware-mac-address": "aFBJmE4k1VvBarLp9Kh5unegP0KkDGVFdohz2lL3ggxiIiHJ2Q",
+                                "maximum-frame-size-max": -12331,
+                                "supported-loop-back-kind-list": [
+                                    "mac-interface-1-0:LOOP_BACK_TYPE_BACK_TO_LOCAL"
+                                ],
+                                "link-loss-forwarding-is-avail": true,
+                                "loop-port-shut-down-is-avail": true
+                            },
+                            "mac-interface-historical-peformances": {
+                                "number-of-historical-performance-sets": -27589,
+                                "time-of-latest-change": "2021-09-16T20:21:39Z",
+                                "historical-performace-data-list": [
+                                    {
+                                        "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "period-end-time": "2022-02-09T10:56:37Z",
+                                        "performance-data": {
+                                            "mac-pause-frames-ingress": 1705370236,
+                                            "tagged-frames-ingress": "-9223372036854775808",
+                                            "jabber-frames-ingres": -1193778865,
+                                            "mac-pause-frames-egress": -1647116169,
+                                            "mac-control-frames-egress": -252866361,
+                                            "oversized-frames-ingress": -1486798629,
+                                            "undersized-frames-ingress": -1786647955,
+                                            "frames-of-1024-to-1518-byte": "-9223372036854775808",
+                                            "frames-of-64-byte": "-9223372036854775808",
+                                            "frames-of-512-to-1023-byte": "-9223372036854775808",
+                                            "frames-of-65-to-127-byte": "-9223372036854775808",
+                                            "mac-control-frames-ingress": -1838588555,
+                                            "frames-of-256-to-511-byte": "-9223372036854775808",
+                                            "tagged-frames-egress": "-9223372036854775808",
+                                            "frames-of-128-to-255-byte": "-9223372036854775808",
+                                            "fragmented-frames-ingress": "-9223372036854775808"
+                                        },
+                                        "history-data-id": "SbMFFjlb3Fh2d93Y2CwIdtB400RCo8cgjQOY2925Gb0Tk3KeF8XKtqOljFXHO1QZKEQMFKRlVR77MRmjRj4kJSF2quC6vkXfYN1vx",
+                                        "suspect-interval-flag": true
+                                    }
+                                ]
+                            },
+                            "mac-interface-current-problems": {
+                                "time-of-latest-change": "2021-04-05T18:16:28Z",
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -19619,
+                                        "problem-severity": "mac-interface-1-0:SEVERITY_TYPE_MINOR",
+                                        "problem-name": "JpdTCtlidS2QjHL33v52800YfFAWpno0NBTh46raYl09ULdX8i0gjS7qxzmXXDXC6JL3PcdOx5XjIagQt8YE154qFifuN56UOJPDVUjkZ9DHjLpEUnaVl6d0htm4ykQe3FRYr3aqcFZvqo2kEc7ZblZsO",
+                                        "timestamp": "2020-11-09T10:07:19Z"
+                                    }
+                                ],
+                                "number-of-current-problems": -23
+                            },
+                            "mac-interface-current-performance": {
+                                "number-of-current-performance-sets": -108,
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "elapsed-time": "-9223372036854775808",
+                                        "suspect-interval-flag": true,
+                                        "timestamp": "2021-09-24T13:53:23Z",
+                                        "performance-data": {
+                                            "mac-pause-frames-ingress": 80327190,
+                                            "tagged-frames-ingress": "-9223372036854775808",
+                                            "jabber-frames-ingres": 564788764,
+                                            "mac-pause-frames-egress": 158105102,
+                                            "mac-control-frames-egress": -1869403595,
+                                            "oversized-frames-ingress": 901607600,
+                                            "undersized-frames-ingress": -4399587,
+                                            "frames-of-1024-to-1518-byte": "-9223372036854775808",
+                                            "frames-of-64-byte": "-9223372036854775808",
+                                            "frames-of-512-to-1023-byte": "-9223372036854775808",
+                                            "frames-of-65-to-127-byte": "-9223372036854775808",
+                                            "mac-control-frames-ingress": -2105933851,
+                                            "frames-of-256-to-511-byte": "-9223372036854775808",
+                                            "tagged-frames-egress": "-9223372036854775808",
+                                            "frames-of-128-to-255-byte": "-9223372036854775808",
+                                            "fragmented-frames-ingress": "-9223372036854775808"
+                                        },
+                                        "scanner-id": "oxSB460byA5K0bYsQhzm578VRHPA6VNnkFQgERr4rpGkAxMiOeETdNOWmvwsibHDJyTnpdrIC024xHnlV1e0GUW2pknIw4d7uYuTbNCFNwKkd"
+                                    }
+                                ]
+                            }
+                        },
+                        "pure-ethernet-structure-2-0:pure-ethernet-structure-pac": {
+                            "pure-ethernet-structure-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "timestamp": "2020-07-09T17:21:37Z",
+                                        "performance-data": {
+                                            "cses": 1026273834,
+                                            "es": 670554814,
+                                            "rx-level-max": -54,
+                                            "ses": 763211472,
+                                            "rx-level-min": 89,
+                                            "rx-level-avg": -68,
+                                            "time-period": 776915998,
+                                            "unavailability": -1408453083
+                                        },
+                                        "suspect-interval-flag": true,
+                                        "elapsed-time": "-9223372036854775808",
+                                        "scanner-id": "HbpPUmuzxAlE7MymLjBiRXBqbv5MNCXuNmbzAx077dDeZbsCm4NdTgD4LIIykxUZT5qluqlBEYPv2i0oeNCZ37VOIwf239UP7c2Bvn51eUwg4oEab816gXVYl2SgbEXaR0EefJftvLJs2oCdowkEl7uG9fOcLMnuE1ITCXfZBYrDeWQDs29N9wlaL9noNKTrDtd7rs62qqxxmfaGijtjPGusPRJDtCW6595otbiUBPjPXtv7EQqm"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 89
+                            },
+                            "pure-ethernet-structure-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN",
+                                        "period-end-time": "2020-05-24T09:25:44Z",
+                                        "performance-data": {
+                                            "cses": 1680338094,
+                                            "es": -795039079,
+                                            "rx-level-max": 79,
+                                            "ses": -1227872317,
+                                            "rx-level-min": -85,
+                                            "rx-level-avg": -7,
+                                            "time-period": 956124244,
+                                            "unavailability": -1442023333
+                                        },
+                                        "history-data-id": "H1fa5qWy7fo4ALbfCuB0g9eMzXKsvHjcAreFRbeQiuVTfY0RsBKJKYvbO7EjOPnh8BWRE2IXwvIMtIvWbfxN6UZU1v5IckZlVVcsYUhmhZ8LzEzKL6xR0oDTTIB62sjQgva6ijszaBcJ7LlSRSCJ97D2Q60KzjsPHuVZNnqXQD",
+                                        "suspect-interval-flag": false
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-11-21T17:12:51Z",
+                                "number-of-historical-performance-sets": 23296
+                            },
+                            "pure-ethernet-structure-status": {
+                                "segment-status-list": [
+                                    {
+                                        "segment-status-type-id": -5988,
+                                        "operational-status": "pure-ethernet-structure-2-0:OPERATIONAL_STATE_TYPE_DISABLED"
+                                    }
+                                ],
+                                "performance-monitoring-is-up": false
+                            },
+                            "pure-ethernet-structure-capability": {
+                                "supported-alarm-list": [
+                                    "tDsWso"
+                                ],
+                                "performance-monitoring-is-avail": true
+                            },
+                            "pure-ethernet-structure-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 7930,
+                                        "problem-name": "CYPhoFZAjFVj8ErS6Masm3s9rj13n82ZYR8nw7PHED0Mhjxf6HHkL1t4dn7An9rl0zAoyq5436RcpgrnX0AA2VE7iEHxF0TyrlWZL23G0MSh2bxSc7s62ZddDMKaMvIdJF4mz73rMNIGR7y36T11K6efSQpEe8JXNNjeM",
+                                        "timestamp": "2022-01-29T09:45:24Z",
+                                        "problem-severity": "pure-ethernet-structure-2-0:SEVERITY_TYPE_NON_ALARMED"
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-05-03T20:29:02Z",
+                                "number-of-current-problems": 79
+                            }
+                        },
+                        "lp-direction": "core-model-1-4:TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN",
+                        "name": [
+                            {
+                                "value-name": "TYhQJ9bXWM2ejReCY7mi6033Lj4Sm07gYoYHpawlOzr7ixC9FYjDQmyBFvl2vsatI827azkZ0M6ijAjQyDtoZ2RxpcrUwBneJhdUQy",
+                                "value": "QcJ1nkkeSPz9Ht0eS5FMB81IJjVv1lgSp0LNcXTWNk5mOYAy37dw766Qp2mjfC3xuOkyL5vqpsM5ieEddRCkXIbfCxyS1BhohBW2yjlXE73WmH2zqEUfmXuZuUJnn0LEtAH1T2Qp1TefsgHKMt00qmRM9s9wkN"
+                            }
+                        ],
+                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE",
+                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED",
+                        "configuration-and-switch-control": [
+                            "iG1DZRbA9MdbvmgpPmdDlAZ74lSXkdTuTU7KDacMWpQjD6ItsO6FoXMtixiCC3ZvP67thj75BXpeWZzgNyW4vApO7ziBC96rg5MppUm0JL6FDGWq6KmBkLhkksVOBUgJZ20gOn8y875LF14LLieY4oigQ55jRd3J73ZWq0mr7r4El0p6jD4f1evJcs33FYMFTEtcwPDv8z9tAqsT3o0XvvyHYtKvjp2dVvhrcUW"
+                        ],
+                        "fc-blocks-signal-to-lp": "XGVn0GipG7U4yBU1dhdukqpHHIUtw7GtFuIG215J0RFykzsxIFU2",
+                        "air-interface-2-0:air-interface-pac": {
+                            "air-interface-current-problems": {
+                                "number-of-current-problems": -75,
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": -28842,
+                                        "timestamp": "2022-01-05T11:41:28Z",
+                                        "problem-name": "pp2QRKO6WgITgURoaC3u5DUFim5KkmfJD9svUgtIobtFXk37OYBTtorLCooPDvqgESDq161pau47HZfvPIhjYIWBYcqBHQSeBnwCux1EU6LBXS6FtfYrXMUOZcpG39Uwxj8TQ9xK7adXVcCorsHheC5dOuMJwyf3RfOIpdkonqlaCXq3p8kwCpJqMv2i4",
+                                        "problem-severity": "air-interface-2-0:SEVERITY_TYPE_MAJOR"
+                                    }
+                                ],
+                                "time-of-latest-change": "2021-02-22T20:29:57Z"
+                            },
+                            "air-interface-status": {
+                                "xpd-cur": -8,
+                                "transmission-mode-cur": "tmbm4Dglu20fyM7WAI2dXAjalik4jyPMVS8Rvo4Zi47IIeEbOGoL8zVtJ7p2y6OlYW4mc8dn4k5MqKXfid0rFOMoV4rta7",
+                                "rf-temp-cur": -11,
+                                "mimo-is-up": true,
+                                "tx-level-cur": 63,
+                                "local-end-point-id": "suBkPr0tY859luRcUZd89sve1IzQPZVatouaPmDFuBOP5x20w78GADMtelbVc65FmrP3NkIiVp7TW1Tt9T1BpN4D0fqcewRAXywLSeVGvUzsWkNX5OyutuZtJqFXOoqLWWoO2bmy6VSUfFJll9HODHhmZOcNcuq0qHGkS3SQYCC6hljuu0iZzreqfqdjUwjcd0wXVhOTTiR3Eax03I0u9eVhw0siwMuBESzr1fcNx4Q36f4",
+                                "rx-level-cur": -18,
+                                "link-is-up": false,
+                                "performance-monitoring-is-up": false,
+                                "xpic-is-up": true,
+                                "remote-end-point-id": "PWEZ2r8yrAQYeczK40b6foLFktIq",
+                                "received-radio-signal-id": {
+                                    "numeric-radio-signal-id": 35803,
+                                    "alphanumeric-radio-signal-id": "7orTPzYpfvwTwkcSxaj4qiia7MMlBPJBe2uVCskRPQCd2OYAZhwhzOrzA5U4VwF1y9W2u8UbRopTdnt4wZlYGExgKjkxHZqg1minm"
+                                },
+                                "auto-freq-select-is-up": false,
+                                "tx-frequency-cur": 1143914772,
+                                "rx-frequency-cur": -1818792469,
+                                "atpc-is-up": true,
+                                "radio-power-is-up": false,
+                                "snir-cur": -38,
+                                "loop-back-kind-up": "air-interface-2-0:LOOP_BACK_TYPE_IF_TO_LOCAL",
+                                "interface-status": "air-interface-2-0:INTERFACE_STATUS_TYPE_DOWN",
+                                "alic-is-up": true
+                            },
+                            "air-interface-historical-performances": {
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS",
+                                        "period-end-time": "2020-12-25T00:14:30Z",
+                                        "performance-data": {
+                                            "snir-max": 50,
+                                            "unavailability": -1552165799,
+                                            "rx-level-max": 30,
+                                            "xpd-max": 114,
+                                            "ses": -601848357,
+                                            "rf-temp-max": 23,
+                                            "tx-level-max": -94,
+                                            "es": -2111301359,
+                                            "tx-level-min": 93,
+                                            "tx-level-avg": 0,
+                                            "snir-min": 115,
+                                            "snir-avg": 57,
+                                            "time-period": -1228941407,
+                                            "cses": -899000095,
+                                            "defect-blocks-sum": 15773,
+                                            "rx-level-min": 92,
+                                            "rx-level-avg": 66,
+                                            "rf-temp-min": -1,
+                                            "rf-temp-avg": 71,
+                                            "time-xstates-list": [
+                                                {
+                                                    "time-xstate-sequence-number": 78,
+                                                    "transmission-mode": "uAYB54iEgTrPms4Ng7boIDCB5IQ5Y6zkypWEt6iJZBzm",
+                                                    "time": 623924296
+                                                }
+                                            ],
+                                            "xpd-min": 42,
+                                            "xpd-avg": -31
+                                        },
+                                        "suspect-interval-flag": true,
+                                        "history-data-id": "Idpw27IJWiGz0QLA9dDbPT70iKlSYXKya9449EG5WewO59h6mMi3GhVY19IR6kh8ulcDRSAF7Yu40DampkiXCdNvmonsIEA4SFzBp1ho0Ds0gvexPwvrKaX6ycr9ITdsqN4Q"
+                                    }
+                                ],
+                                "number-of-historical-performance-sets": 5783,
+                                "time-of-latest-change": "2021-08-13T18:22:30Z"
+                            },
+                            "air-interface-capability": {
+                                "expected-equals-transmitted-radio-signal-id": false,
+                                "duplex-distance-is-freely-configurable": false,
+                                "supported-radio-signal-id-datatype": "air-interface-2-0:RADIO_SIGNAL_ID_DATATYPE_TYPE_INTEGER",
+                                "rx-frequency-max": -1916434107,
+                                "supported-loop-back-kind-list": [
+                                    "air-interface-2-0:LOOP_BACK_TYPE_NONE"
+                                ],
+                                "direction-of-acm-performance-values": "air-interface-2-0:DIRECTION_TYPE_NONE",
+                                "adaptive-modulation-is-avail": true,
+                                "supported-alarm-list": [
+                                    "85MV64sX2KUT5P9eR5fB4n5Os6i77ORfMv2KzvHt7tedafr1kHuoWr5oxnvwbeMXKGHjbgFbJToT9HMto8KcAPAZ4Xwf4a5OQEZUVE5wytiz2WUr5EDxl6opVUFZ4CNNgFH3jMs",
+                                    "2zOO5MpBWTUArZBp4gnnbfCNwoDYrh8lQX1OBqhpkbZD2BV6Rim2xYHWekUFt30bSTZtk8SwbR15kWc37qXEgwsuQn1bi1naMev6ffuq6wwjsAez046gAyKjNLuXEJ7iYuhdJLvI91TuB",
+                                    "w4xzo1YyCe1bQxOfOSI36SL5MZIS35fz1M0qFZYi5ZtVoha41K77uK58BN1w",
+                                    "7Ki9y5svJY25WrmRdTJavoXM3w",
+                                    "na9Y9T9akeDPXtKUp398g2Riyg7cjDTyF3xOOGZ8",
+                                    "3t31JEslX7Yj5u34NTz46aHtSRvLlYLgsOa3kCphBftGKwDxp4tneaQ71dKecn",
+                                    "JdHGiDDsADD4x8AlqHr6fYfgnQ8wPdNriuZA8CVAgywFG7S7Ok54ikcx2c3KpRbId2adE5NMvkjcjcbZwgVGt7evb97t0i36kdjRb7DGjXSu1Vtx4p5xobUsl2VdcYjp3DgeCLVNAFhBtC0x16Wi9IKuKFIPvTeyomF0ZAFA7O3ArW7kUVC3EeygT85g1bHqpmipOQRVEUwXIviCrMy51YdM6j3ZmChMYsbE"
+                                ],
+                                "tx-frequency-max": -1195364699,
+                                "maintenance-timer-range": "F15028OTl13MBpwzrskZAZSwl8CZp4d45aW8iCTDEWi7eOGx80oB0h7d",
+                                "transmission-mode-list": [
+                                    {
+                                        "transmission-mode-name": "BzmMQphuXPZ0l3vuuGR25pbJWTy8u3r6uNKl51P2JO24Kqr66a8brcNf5dnzgPxLuhYzbFuMmoI6O14MbdYCpDRmQfVZWlCqCASF7mrtC2rj3w5fJVR0qBehI18EmK4RcOwj2QNFSeYVKV2lJMd9nri5tqBP2xyem5qoNd3FjTsWHn9q9nzoGSl1aW",
+                                        "transmission-mode-rank": -1815191585,
+                                        "supported-as-fixed-configuration": true,
+                                        "am-upshift-level": 62,
+                                        "tx-power-min": 82,
+                                        "am-downshift-level": 31,
+                                        "symbol-rate-reduction-factor": -88,
+                                        "channel-bandwidth": -858169829,
+                                        "xpic-is-avail": false,
+                                        "code-rate": 114,
+                                        "tx-power-max": 74,
+                                        "rx-threshold": -2565,
+                                        "modulation-scheme": 18047
+                                    }
+                                ],
+                                "encryption-is-avail": true,
+                                "duplex-distance-list": [
+                                    -316059119
+                                ],
+                                "atpc-range": 63,
+                                "performance-monitoring-is-avail": false,
+                                "auto-freq-select-is-avail": true,
+                                "tx-frequency-min": 392239594,
+                                "rx-frequency-min": -637161133,
+                                "type-of-equipment": "Ptg3JIpasQmAYTZVOcOCujYhWqsglvuaQK6AlvCNlYfbS67yjN2N6053ipbvMyyuaE4v9zimxxyhExH",
+                                "atpc-is-avail": false,
+                                "supported-radio-signal-id-length": 32226
+                            },
+                            "air-interface-current-performance": {
+                                "number-of-current-performance-sets": -86,
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN",
+                                        "timestamp": "2020-11-04T23:10:08Z",
+                                        "scanner-id": "bh7hRcDRu9tJ50g20jAa6z58kjenBZGF8GWZSzIeI3XG4eIWxi6vK4D4nJjQJ0vRGkJqTjEuft2jHK7fU6KwagBpZMfAMDkkX3CQe8ctCeEbQMqLK3hUbKbaxqLb35o00SJ61NAv26GKKZvu2Fg5hrfGKSSNX8GP0hWTWooQmXB7WYBQDKVN32tNVdtKl1Aeio76EoX0dy79wBZ2dMPgOa4JoxuByW",
+                                        "performance-data": {
+                                            "snir-max": 77,
+                                            "unavailability": -1253587025,
+                                            "rx-level-max": 69,
+                                            "xpd-max": 71,
+                                            "ses": -824177715,
+                                            "rf-temp-max": -114,
+                                            "tx-level-max": 11,
+                                            "es": 632989196,
+                                            "tx-level-min": -58,
+                                            "tx-level-avg": -38,
+                                            "snir-min": 100,
+                                            "snir-avg": 4,
+                                            "time-period": -1042739949,
+                                            "cses": -362461687,
+                                            "defect-blocks-sum": -23313,
+                                            "rx-level-min": -93,
+                                            "rx-level-avg": 11,
+                                            "rf-temp-min": 110,
+                                            "rf-temp-avg": -121,
+                                            "time-xstates-list": [
+                                                {
+                                                    "time-xstate-sequence-number": -122,
+                                                    "transmission-mode": "JKs3401vTBAq5pla3YfR9FQyybIsZJKAt4vqXwVQ8n8dMlnIkvzl2iUBtu3s5F2rJyRGWEo41oaFKpn4UPhX7bqAyl2D0W4BmNajryfsXp8zPnvBcMyjQQLobFT3CYFQDP15fhp4yxvfN0RZNhbv0WTbCMf6CMO8tQdAZCFx22FP3",
+                                                    "time": -1456740921
+                                                }
+                                            ],
+                                            "xpd-min": -38,
+                                            "xpd-avg": -76
+                                        },
+                                        "elapsed-time": "-9223372036854775808",
+                                        "suspect-interval-flag": false
+                                    }
+                                ]
+                            }
+                        },
+                        "label": [
+                            {
+                                "value-name": "NnKG8EpyFaEVvUufyX7ynuq9DSa15XcScWrlAIL8SpVnbpvJmC9BYrKtcMvhKH1WEk962UeVb1amqFXMiZf8qZCCE7LoONck7mja8xXkz7yRFowXnL5FDzahGVxnIJHIX0S6qHiRGIIl6eal081vHbMo",
+                                "value": "jLHUkpSd9QDQ0moI4KHbU232VyC6cS5vvEhP3924RxMRLasIU1THVOBRedPq5MNsq4il6cpXC3Hne150UQHPwjyCog2mUHOdEYyK3QzFT8U71S8VAHDZ03Bhjwve5jrJaRldH"
+                            }
+                        ],
+                        "is-protection-lock-out": true,
+                        "tdm-container-2-0:tdm-container-pac": {
+                            "tdm-container-configuration": {
+                                "maintenance-timer": -807548639,
+                                "problem-kind-severity-list": [
+                                    {
+                                        "problem-kind-name": "BQkd3Ky6RUZyslHfvlM3",
+                                        "problem-kind-severity": "tdm-container-2-0:SEVERITY_TYPE_MAJOR"
+                                    },
+                                    {
+                                        "problem-kind-name": "vjCICEyblcuoSxEZ0J4LmRWQ2Yby9vcEOHmilNlyZPXJetA65ERroFaqElQNJUjpBFIPk3fjL42RyuYD1H4pf6HTsxybjRAVoaCJ6RUJWPAmjqZc0VBf2a0mHqx19ZOpai0g1VZPCrbVK20CQBJSMJ6l1De2CUrE4sM6fDVR5ZEHTEbJ8UtUvz7w4myH8Zddj0jyD6hAXW9RsksAeWuJvu7AQF9Qxe3Iee9KdqkaemTHGmhViEwF8E7Qb8GAn",
+                                        "problem-kind-severity": "tdm-container-2-0:SEVERITY_TYPE_CRITICAL"
+                                    }
+                                ],
+                                "segment-number": 4811,
+                                "performance-monitoring-is-on": false,
+                                "interface-is-on": true,
+                                "loop-back-kind-on": "tdm-container-2-0:LOOP_BACK_TYPE_NONE",
+                                "interface-name": "44CRck3u6f0zEWSxKJJojOj06E8V4gP1ckKowNSD2K4zyX6iGHyZnRZloZ8k7YdjaYzGLrbG3g7B5dLLVjCa2"
+                            },
+                            "tdm-container-current-performance": {
+                                "current-performance-data-list": [
+                                    {
+                                        "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "suspect-interval-flag": false,
+                                        "performance-data": "1zPawWXnpMpW4Kc3vPSiw1jl50gN7oI8Ypaum7RDL9rITEDhtvrRwCcBuspCQZCGpN2DMUgy3IgOeTXzggqNTugnWFRExudWhfz31Ht4hJLvuA4LRm",
+                                        "timestamp": "2021-02-21T01:20:55Z",
+                                        "elapsed-time": "-9223372036854775808",
+                                        "scanner-id": "EeJbL5oHeD89FPDB7eeuBPrmyNM2EkTiyutjrR0Fn0P2QkDPySb1zCn7i11WmU6Uhs6IbYoyZ5AHp6oPYzRx46we0x2ej80As6bE5z44wxDND1CtslSokoCkNEy6Fyz7FKDCbIyH7buK4Y5wcXNwdpQ04gYBOxIl9eXkWv"
+                                    }
+                                ],
+                                "number-of-current-performance-sets": 13
+                            },
+                            "tdm-container-historical-performances": {
+                                "number-of-historical-performance-sets": -30439,
+                                "time-of-latest-change": "2021-06-22T03:10:14Z",
+                                "historical-performance-data-list": [
+                                    {
+                                        "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED",
+                                        "period-end-time": "2021-10-17T00:41:04Z",
+                                        "suspect-interval-flag": true,
+                                        "history-data-id": "B11kJcDhrpD7CLPDYIEwD1Xwe7N4PVbqO4Lx9gHAFcz9XoMVYjrBkh0yoNudAxvpC8ODovd4HM5E3Ks13Tvf2vFqaaDDz923hIGG6TCNyzkBjMCex7tAu90FbwaKx4OGMueSgQyOiShBwTIVTbnfcgUfM40b0GRN26FiO5Y6X7Al1ihMlw1qMOFqKFBLdlqgr5q73he0oGehQv3b1XBGD96nOA0UVqaeoslrJzj87xpXUl1OiuuV",
+                                        "performance-data": "fxCeC1izOOEdwE9MuKAUlW3zTgnh9iPpPsvjtNKhBom7UoTo0lil9eMVu9cDj120lpjOc35NjkMdIxuILM4USIPmSTS3VM48cfXobU4meIAOg4x1ItNBbvPVoHRbuNky2hW53SsaBUYJQvCyQp1UUJPbqymMlGkgP9dT1F3ur1dhpPI"
+                                    }
+                                ]
+                            },
+                            "tdm-container-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 27643,
+                                        "problem-name": "OymZ1cjf8VNeMzdcTrU9W7NZtX2Eilo6TCXUPg1",
+                                        "problem-severity": "tdm-container-2-0:SEVERITY_TYPE_MAJOR",
+                                        "timestamp": "2021-10-12T06:45:31Z"
+                                    }
+                                ],
+                                "time-of-latest-change": "2020-12-31T08:26:37Z",
+                                "number-of-current-problems": 51
+                            },
+                            "tdm-container-status": {
+                                "loop-back-kind-up": "tdm-container-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED",
+                                "performance-monitoring-is-up": true,
+                                "interface-status": "tdm-container-2-0:INTERFACE_STATUS_TYPE_NOT_YET_DEFINED",
+                                "statistics-is-up": true
+                            },
+                            "tdm-container-capability": {
+                                "performance-monitoring-is-avail": false,
+                                "supported-loop-back-kind-list": [
+                                    "tdm-container-2-0:LOOP_BACK_TYPE_BACK_TO_REMOTE"
+                                ],
+                                "supported-tdm-container-kind-list": [
+                                    {
+                                        "tdm-container-name": "cRNjmH1tIEUT6JstwjgTK6KfEzvy9DclnZFBGy4gcQ2bzuE5OMRyStFxUa54O9h38WEOnB5zr7KTtgQh3zHN2mcPx9Tdia8qZM7mf4Nz3yswGaOJKvpEKBlhLemVhum88lmop9XszhYgrER32gAMKVVn2hibDwjLRF9gO6Aofrwz5nCZE4LgSyDUHV5ksg6jV7sB62ZltnUrLpqht4xdCa7c54wpkCB7K3JQXA3rYYKJfa0I6pWBz",
+                                        "tdm-container-size": -2017265301
+                                    }
+                                ],
+                                "supported-alarm-list": [
+                                    "rt38gDOt4Kgw0I7Zb2b",
+                                    "cLyQYCPbpPrIimQzZE2Vgaj8Sq73ki4oVD6M7WPoLg64uWvtspoAzHIsZPnb0ksNPyzWugcgwic06HlyYB0xaIR1p7dprFd8dEWAV8QjqUcwtpWr1WQbEId3Pil8Xq"
+                                ],
+                                "admin-shut-down-is-avail": true,
+                                "maintenance-timer-range": "jOcOpkqk38hvbAt1k4gn4RtlF4MAJbk3ZxJgJ9AEhJ9kcvmozCLwl7R03EtNPNIGcrWVsorJ7tVbYhAxMd37kV0"
+                            }
+                        },
+                        "address": [
+                            "4EFhJW3cpogmlMyOZkDcqQ8s"
+                        ]
+                    }
+                ],
+                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE",
+                "name": [
+                    {
+                        "value-name": "kxFqw1lPwGXlNEyQ1yYGCdOxHoRefCVr2BRyC5n1LdmqRUgKt6iXk7v1ve8CQ3VKwFi1Ky2vDgVma37v9ptloQfM4noMicxHRHABfu6SKT7MWeiXvDbUtqGxNWjX8IEZqesxIqikbp77DhX0U8UnysMdh5ahGH96NBDo2VIdkPdP62QS2Cfs51FeZHvxoED4g8sa4afgSsYQmOJoqQQnKnBB578lLDpTLR3HUj",
+                        "value": "MDOu0udgUWZaGmD9jKhFo"
+                    }
+                ],
+                "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                "physical-port-reference": [
+                    "c942beda-266b-a670-ca1b-e78a3653775b"
+                ],
+                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE",
+                "extension": [
+                    {
+                        "value-name": "xAN6b5VQTHw8KHUEB5sMxIDzIkvja6aHGXFSUAAF96NTFzy8wSVWsqnaKTmUZwtxl8h7JKMSIrEo04woWjkoJIqmBM8saCZnC9ulT86BzKRrGoICz2SbCip55xx71pvEqZRj0PMzrET7UBJtvtE0M35JtvQmUlScdCvdrhM",
+                        "value": "Nx0H0C3o5HoJDtsYYjcKE5WRHj40BJTg8MY1g1plAN55gp37I8Rf5OYM7VEAwyRwcHxsIWFaJCg02b"
+                    }
+                ],
+                "ltp-augment-1-0:ltp-augment-pac": {
+                    "ltp-augment-configuration": {
+                        "connector": "07wpeqzDCeErNGQsYiiaCfzpi0iDsCNsCbRIBjm5pSw4q",
+                        "equipment": [
+                            "c942beda-266b-a670-ca1b-e78a3653775b"
+                        ]
+                    }
+                },
+                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE",
+                "local-id": "4mJZ7ro3gsitUYe6u3rvk8W7Pdbm08F4n",
+                "fd-rule-group": [
+                    "5ea42646-26ca-afda-19a7-ad7f7cc924e6"
+                ],
+                "label": [
+                    {
+                        "value-name": "W9xG5fAo5eTLILfW21KTbqfPzrrI6HuUR1AWg2cdgXYZJ5ND7xwaPDZg4jY2SsPBtppCstHIrGz2LmFKT3VIy",
+                        "value": "YD5OxQ8mrCEJ6YcNyDl8FZucJgfEQOjHjgvI6EXq8B96rlTZR7Zo6mBHCIekox1HNpiMVfc3Id19yM0hT0GRmhrQZFag44XJt7vomHjWUk5l6YuSQaB4j2Ubz4rv0gftoKRCk2z6ewjdmO5cYygatal27My7UFtipcNBfmItKTy7Hvjy4sIxCVrBzRBtw4EOgrpnFZRpThosNA0R2AgwnH8WzBiXFWLNf3bU2UbNbAgY28H4BXA"
+                    }
+                ],
+                "transfer-capacity-pac": "VsL8JN8D4fLcN07FyDpA4kuXDUBtTlEGNhHo4HT1XEdKwkhWXyx1STRnGkRrGv0lNHCJovKd2XXy97nYFUSyFJVl3MNBaNPPuryKWbYY8NpiUM8Ay08dJVzFAe8K1XrngR752XV3LklFYt7wm7C533CDhLfaAGxRpwOsmJv7WIEU3EjpLVnOQRr7uy956GOw4CQiddh9VWWQsfgd2v2SmlRRU0O0yuou6eNb",
+                "external-managed-id": {
+                    "manager-identifier": "XjPRMMeZ1b9cwqdrZA1CKLSa2js5D2NBlCk7gqYiBZuZqzqh2jL",
+                    "external-managed-uuid": "WEXQXhVtjJWEdgEuyuE2u01UAk3CDPgsl5iim6DFPzc2HQogk2iG3jsDDw79dntylLIHRmfyVrtD9RLlU32XeusSSrT5OmD1ZeJJAQhn9K0iCDDoGxdV2FFM6ySMUnOLBpu3fMroojySX3gDBtqv05hYv1Lhpr3SQpWX3ndsGLcDOt9pOrUHp4FU5"
+                },
+                "client-ltp": [
+                    "c3794728-dc8b-5233-0c67-0b857c32ada1"
+                ],
+                "peer-ltp": "c3794728-dc8b-5233-0c67-0b857c32ada1",
+                "ltp-in-other-view": [
+                    "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                ],
+                "address": [
+                    "owI2wvHYT7HpboXDYTi9vVhnPsmrEcbUJLP78o51vNqG3fb21t3wgkT5Efpars52dU1da7eFMwdPMgJNJMjSY4PvjeFCGCFLoGYyF45rBi9fyS2aFdUvhJ0AYG4waJazi87PddhOnq3WaXYP2SdjtdLjLPQWr0vB0uq5HzT5ROT2DJJFtWQW2tgNbYBCQY5ItvO25z7Og0QTBAr4o91qD9"
+                ]
+            }
+        ],
+        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED",
+        "local-id": "CddaU2coPvQ2OmR5tRmGt22ExcLAO5JiaOs4QwlG13AIpjNKa1qD3t9sFM3lKEwUsYRbn4Rg7jQwCw8MxzhtUjNr5IMHmiuH9lSohBEoUnMoTUailrLfKzGIhlpwDT5E6P2nizD4OpsHcCZxVDNy4l8lGxJcjOQhDLxVcaZ0sjzEVq3J3Qh74plKOWWZLNhgqG4uQVuafVG2dKL9sU8wjth0i5Z3S8baO7ExV0H2Vg410IakCiJOM0O45NZQO",
+        "forwarding-domain": [
+            {
+                "uuid": "5ea42646-26ca-afda-19a7-ad7f7cc924e6",
+                "vlan-fd-1-0:vlan-fd-pac": {
+                    "vlan-fd-capability": {
+                        "multiple-local-bridges-is-avail": false,
+                        "static-entries-on-individual-ports-is-avail": false,
+                        "protocol-frame-format": "vlan-fd-1-0:PROTOCOL_FRAME_FORMAT_TYPE_SNAP_OTHER",
+                        "hybrid-vlan-learning-is-avail": false,
+                        "maximum-number-of-vlan-ids": 13583,
+                        "traffic-classes-is-avail": true,
+                        "supported-sub-layer-protocol-name-list": [
+                            "vlan-fd-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_EDGE_RELAY_COMPONENT"
+                        ],
+                        "independent-vlan-learning-is-avail": true,
+                        "configurable-port-vlan-id-tagging-is-avail": true,
+                        "overriding-default-port-vlan-id-is-avail": true,
+                        "component-id": 830702206,
+                        "shared-vlan-learning-is-avail": false,
+                        "maximum-number-of-msti": 21515,
+                        "extended-filtering-is-avail": true,
+                        "supported-version": -18361
+                    },
+                    "vlan-fd-status": {
+                        "number-of-static-vlan-registrations-cur": 183260486,
+                        "number-of-ports-cur": 20378,
+                        "number-of-dynamic-vlan-registrations-cur": -2062072227,
+                        "fd-status": "vlan-fd-1-0:FD_STATUS_TYPE_TESTING",
+                        "mac-address-cur": "09s3dSThMYId6ONO9GgHlf1SvJrzYcQRlaMyVFQHwqMuezaf8rWlGX53yxCxBkgWv2nqI5Z6vMABdKQd3FzJCEE339sEtItYKIgkN8qaMSDZvldy0EaviOyeX0SrIlhk3qFIyXKcQfblBgTBU365KEjHw306parks6V03x4LNfYooKZaFYfpuqZ1uR7T1y5twSlsqpd5xctVWk5tadT"
+                    }
+                },
+                "fd-port": [
+                    {
+                        "local-id": "m6crpqPlqiX2N0kIC1qisanCbPOoJax58BpxU6Kkozn4AzMcA5mU7KoazdyjfYgnrFUlLEy2eN6OmSSOPeIWY67ybxJqnZNPxH2ieAkkfq0BbShS6ZHXYGn156stX7auP4NVFZfUi7otZFlXx2UnAhoGfI9dQbHxfmsMezzwGXZxucu17pgHyxnOfo1XzAuHXOt3",
+                        "fd-port": [
+                            "m6crpqPlqiX2N0kIC1qisanCbPOoJax58BpxU6Kkozn4AzMcA5mU7KoazdyjfYgnrFUlLEy2eN6OmSSOPeIWY67ybxJqnZNPxH2ieAkkfq0BbShS6ZHXYGn156stX7auP4NVFZfUi7otZFlXx2UnAhoGfI9dQbHxfmsMezzwGXZxucu17pgHyxnOfo1XzAuHXOt3"
+                        ],
+                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                        "name": [
+                            {
+                                "value-name": "2zVRysmCPfJ6ojEVys2Xl0oWm5LbrOqtfedNyzhnGTt4c8ZCs2rGUQugN7j6VKs2YFPoeYMURfRVfQyAKZgwHKNnR6tEIVGyAnXGlBt5Qk0Y2yyFqO37qQuhPQNpDtQ6QNM3g786j9WmzmTZ2W7sFtBmboLPRtVz8zvoHDn0Eje6G75IW43BqEXB3AiM4de4NJtmeQmL9BRHAWiw",
+                                "value": "lZjZOM2h5HdiVhXwKjKAyvC1ejBbB04WZfOG1QX6p2hkj6Q4qtwYQ8Z5ks8Nk4CcjqSc8HbyJkK2qBYIWvyMvpRPSZvc37oep8rxPCXyWItebrX7WvLkVD1FuwJqv0EU8XkYr9ofRRuUjr17OFjBalgER04f0B10ylY0vf7e"
+                            }
+                        ],
+                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT",
+                        "fd-port-direction": "core-model-1-4:PORT_DIRECTION_INPUT",
+                        "extension": [
+                            {
+                                "value-name": "vBp2YtEAxA60XTuVOD1L2uxQz7NJVnqqYQkWjZoIrvAog5b5AcICG7l7f8I2v9slZEaavyKW3dckanhKzRe7Zz66IP85QsrH6tRu1tq5GDhQSqAkhPj8oqeY7e4XGnEFQn9JQrGp4XfPfI9xpsFNKMER0AGzPk6xzfgiGXHDMOk2wtrVNYBqC7hvHY4waa3ChbUX0tsFhMzG70tNQWdt3mYCcU0nW3Zd7L",
+                                "value": "7enEn9d395xWOl9hpv71I12XPXO2WrWWFjA2lGYuDnqrIrA7OH1oAVdpS1jHsgDZr5UMLSgpfyQXZjXG0Y4tLiKvb4cwcPvDVhqy9yXg7GeYZ3wRTBkEL59O1mk53IIQZ0p1rehyUvoLqVDjoPX1MZPFd2KgKl7JdoKEC24xptaQg"
+                            }
+                        ],
+                        "logical-termination-point": [
+                            "c3794728-dc8b-5233-0c67-0b857c32ada1"
+                        ],
+                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED",
+                        "label": [
+                            {
+                                "value-name": "B9hU2hJHAkRVtoFlkUlVVlm9ceErlKpPTHJOYkvyFfm0D1lPNyDITZJX5fgi0G7TnJzd35LAc7AH0VwNt9of074Xnl8n1f8gYItUFeuJe5qeSOUeQilQhpGEKOTDVUTMumG1taKH72N0QH6GRrp9QXNtLz6Gt0kXe0YH3AoaC42kL01vriEa7jDSSJqdBL2QD0xGAOJ4SLpvMi05swf",
+                                "value": "QSrAuJOXmQN0JdGbTpgD3F0HPTMhpUQ7M9I8So6f6L7PQN1J59e0GfHv8lMp7uxUD7UnvSCBEJjmpkYmlcm1jVwr8aJgEg2hfWEKP9dlKwH1Ixn3KJ43EsnNC63ge5ptTW5AXiVH"
+                            }
+                        ],
+                        "role": "DLeNK1IxqqxV5K9ERin9jA15sS2djmnW0BBKDbhVBPQGrRda1skc2",
+                        "fc-port": [
+                            "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                        ],
+                        "address": [
+                            "x9QmP3orj0EiCSGewj8tIyWSg4q9AV07WQlDTC55CBn6tW"
+                        ]
+                    }
+                ],
+                "layer-protocol-name": [
+                    "core-model-1-4:LAYER_PROTOCOL_NAME_TYPE_OTU_AND_ODU"
+                ],
+                "fc": [
+                    {
+                        "uuid": "9bc11e2d-913a-2fa6-a64f-f01427c75d88",
+                        "service-priority": "-9223372036854775808",
+                        "supporting-pc": "ZYo83UwihUts04RaRRhux9vdFu4NeDMdBamF5KPeEaywfqy69PsyZYDwsHbGlXMOZ0lWK33hdBFkTei3VLtMJ7i3OlK1aoIao360619cDPowVHrQsND3UN6A1ICb6clufkvelEiQlGfgfyZHluC7hJIijcuqoHUv1hJfOTX1sciHLhh6LT6UuO5O0reg80L2an9Qg6RIb9qWiHUVs0IXGNDy6ROeJA8LX9B5gtOju67N",
+                        "mac-fc-1-0:mac-fc-pac": {
+                            "mac-fc-capability": {
+                                "admin-shut-down-is-avail": false,
+                                "supported-alarm-list": [
+                                    "tkeDYAJ8G4G1pPXzecUGYJzjoHFoCPA59PBZhc7Y8FRxmG6BTShRtI3SpAgTqQRrxkrPwqFF6w4kc3V5V4PpMKh3kpPCfy4NSnuoF93DF0YJ3LHYI"
+                                ]
+                            },
+                            "mac-fc-status": {
+                                "fc-status": "mac-fc-1-0:FC_STATUS_TYPE_LEARNED"
+                            },
+                            "mac-fc-current-problems": {
+                                "current-problem-list": [
+                                    {
+                                        "sequence-number": 3338,
+                                        "problem-name": "PUC9v0D6TgM8avMQlSEjtB7Bm8gVdma38M4DMABFQfFSKjAXb7hxIg84ogRCu2xCGt7t3A0LQGwsZ6q3dzAWPASeRCIdw7Q4APxwiqh86NsXMK0ZjsN93GfMaXZy4HCwx22PscPqR9fDU8DdAieDYth0ihyeYbDndF4xRTXB3cePkJ2V29qSCITNRjTPmw",
+                                        "timestamp": "2020-02-09T02:19:36Z",
+                                        "problem-severity": "mac-fc-1-0:SEVERITY_TYPE_NOT_YET_DEFINED"
+                                    }
+                                ],
+                                "number-of-current-problems": 93,
+                                "time-of-latest-change": "2021-03-17T22:13:07Z"
+                            }
+                        },
+                        "layer-protocol-name": "core-model-1-4:LAYER_PROTOCOL_NAME_TYPE_PHOTONIC_MEDIA",
+                        "forwarding-direction": "core-model-1-4:FORWARDING_DIRECTION_OMNIDIRECTIONAL",
+                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED",
+                        "name": [
+                            {
+                                "value-name": "sITRp08ojXBru6DRX467Dd6e9EvtJHPchAVyA3WLSx4nwI6tMcshhqwq51LGBASK2GjDJfguFlRb3PwHTRQbhmBegfVJPFlSlEnXMDrrYauTR0sKRjV1xp7FEUolsK5Ng",
+                                "value": "C26VlWXHIOIazrlmkTDkyhePvGrAmH3QC1MPXJxFq7IRq3dDWRXn0b4vKv6641Oy2AoRcNpuM7l42qHR9EeaIixsFvqJoeiqHyaLdzfZyA3A0Lr2hxcZHBrm7J6nQgOxOQa1ppSPRVpJyJLQ8PPQr94qK2NAitZYb9RAqBh9pHTXiwFqmn8FodX87CJqYIg9K0CaBTk0s"
+                            }
+                        ],
+                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE",
+                        "extension": [
+                            {
+                                "value-name": "fUNM4Z4cQ2YB",
+                                "value": "ewH3HLQPYEWeSs9H4kWQ7AVZEZPHXjBcPi7w3PdTt90"
+                            }
+                        ],
+                        "fc-route": "1vd2NMBSP6VDKNMpijjgVuVTOeKVXWYQscT7YmRFkMa4zWmJ7xZ21MNHSxvIttqNxbMnxD2ShcOQ02r7Ai1BXOjPdOpz9QmH",
+                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE",
+                        "configuration-and-switch-control": [
+                            "piUhWvjhBrw0ofR5B0L"
+                        ],
+                        "local-id": "6vHfDomSNFJtHIZwsWQU52LMIBg58Il65UmJiIB6fcrOUicf639c5NYFg6KoGXnMRJn1jQ7q3yeXQqcXle1i1RXhPHywwVanwppPfo7iPd8xvkmRyn9z6",
+                        "lower-level-fc": [
+                            "9bc11e2d-913a-2fa6-a64f-f01427c75d88"
+                        ],
+                        "fc-switch": [
+                            {
+                                "local-id": "2A17BJcKcFIO2fbHDsaAywLONB2GFxZzZSystL4xiNllUp2pR4ZiAC6fe0WLpVkpFTR9wWGOBU1njVM",
+                                "wait-to-restore-time": "-9223372036854775808",
+                                "profile-proxy": [
+                                    "2pz78NzXmzAXbw7nmVKGOZvDH25WoYEin6inTRdfiN4ucbJyYt6EkBh1DmY2cucAAuPue2BwQySUBBsAWqeg1oaEK0yPuLh576rl9UKRsCL465w2vCbo0d2Ddtsz6JwdPXzQSjHcNk8TpEOMhRa945M9qeAwX7JF4avOl5T9p1UHyAlHjwQftDoTRZpHY0eUbBBwGuxYnsxV2SCegltJYSCHJ1gzUut5Y4twq1uOlTBfM6t2rXM"
+                                ],
+                                "control-parameters": {
+                                    "reversion-mode": "core-model-1-4:REVERSION_MODE_NON-REVERTIVE",
+                                    "prot-type": "DRa3J78AKFQ570Iu7G0t4gldLSLSH5RcO17y9f8LMRITRinQZfj3vE98oU0XRS1GL86Uf6y1X8VGrawqiQlNmuWDhOA8yuGkCE6SLwLAFyh6JNo1vJGK6unnjPnJj43OA2ylyjWdS5jtSHmgj20ppfEAW1j8XfWyhu",
+                                    "hold-off-time": "-9223372036854775808",
+                                    "wait-to-revert-time": "-9223372036854775808",
+                                    "network-scheme-specification": "NzVxE60xOeFZ9FgyMU8INrQDGE3P8OFOosd2yeres6dBDt1hf903tIy1nBRnpo3FQhIov1DP0IjD4kVjmNeHnMIKfr0FP3kxkUOPOjxO1Ij526hgTnX92yThZTOHX16hVUZJ5op76J40Pd9Bt6KvwvEwht56ubnhYe13"
+                                },
+                                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                                "switch-selection-reason": "core-model-1-4:SWITCH_STATE_REASON_NONE",
+                                "name": [
+                                    {
+                                        "value-name": "ZLkrniHtbveAqrR5kB6IpFw0zqfKl1MdM7w1h5vsAJ302MYmnW4EBtw2TLM6MzjqyQsHVXawy5oBReP73MLE7azSVlYIMa8c0sUNp4bQ1sjKG8JBUn8TxHLs2K2HUbTMDNrVJDDC5WnD46fRlnKS4olY0nFMqryW6ZRQumkziz5eyk5TzIMv67tYm1KNsaBy1kgwGBXYa2cIeauNSga",
+                                        "value": "fEGtFq8ZAJxt3OZJhPHjRMUYWoDGEOoLk4eZmnQO6nh239LcYlwH7qFVGbtcZRXjN3a9q0Xpf6rbfcndpLVw3sjJDMV"
+                                    }
+                                ],
+                                "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE",
+                                "switch-selects-ports": "core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL",
+                                "extension": [
+                                    {
+                                        "value-name": "weM0ekn0m8yaSZUs75OZyMeVrLyQ4MYBSCBZPYRbYpdRgZbf5Z7DDlq46YM2DCvnf7mWX57WudFKcIS9HZEdc59aVWcqyIGFHUBw0BkuOZ7SHZ2hQGm2Dv4rjgJSQhppc1Wcugya8x2HoWYevc80Icj1l3Lbkbto4pAyx1AFyCn",
+                                        "value": "rdbWqcW0o8TJbxNnAgMEFe44fEKO87LzcOnu0cmpkg0nFNKf3oTADPFKlhytgbVs0aXSmb9yraV6XydTWYlrN048hCuxOpSGzHyOSImcKaaHIoswmOQ2GU2YwwncN7KfOb3zLhLvrV49bxyqdosTiuJGT7LG6vNVGQmj07OrUTt6i1wvpQozc8f570E5or0Waegal4tgPWe7PKu6sTFETNKSFgX3HQSJ48Ti4fyM3ELTggZI1FmMs6E7et"
+                                    }
+                                ],
+                                "prot-type": "PKfzNYUKvepHSIWVPOmM0WFSguberyfgamHPkBzHQYgAy5ngTJ2TGzDW3G2u69Cgvj5PNwwDnN5VSsbLb5wJE1xHHz3NIxVdRS2wgr1D66zYqCBBIZdmSKWrkZ6Up188L2E1lFFrL6hbIKEiBRFtutUGkSAJLARwDvqQaXiN3rQDcvWNet9AWVg8ORSzrBYW7gN9dXX8gFDs2r",
+                                "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE",
+                                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL",
+                                "configuration-and-switch-control": "Hg6iafR4Bk1zhu6HnsvIm7Y0dr2EoGV5PTnZ863KrWbIqhpOCNoYMmYZOSv4ri28bp7cw2OPYZpg9OWLtlBfHr6nbtsuLuCPLJ19DHYByfKH",
+                                "internal-configuration-and-switch-control": "GkpTVFteDQq7aUKwxza8sjM1afApZ9lyuDjhaMwNvWMxQx4fY6ojp2krhUJ94WHqz0HJFdxa1bHSIDZzJfS1h4krZ3AV09dr1UbG0AI1LiLmVLVx0NqaRKBIO3vGcI7dvaMvKuowMaSAVFZNspPb9iMPlhvxSvLfFpCqT0Oyay0XdZDxgsAhLm76wuwoZ9v",
+                                "label": [
+                                    {
+                                        "value-name": "vSNiWXjeP8DXf48u9nAy9nXcP8WtVRXqCDBqsUEi3a7a6fwfC6GLtvQbDMEyvtR76sxze4JheQjkXQszW8div3t8HZz4sqcrKBSYFt8Ljr68hyH6yMo3HR3gICl2UptE0dvyGDjZ4h7ePHkflAiVjmb1Qw3LVxhOKMejppamHaAoRME4mOZF23GTrJEf8V3LA94ZyedfoNE7z",
+                                        "value": "4NY3sTY0MqCiFK5AnFJjxhqKxOq3OZ5SFVN7OE0s4CKJeIbCnUVMbdxA2XvIOAstw7tcLtFH5pij7tNnnB1zOy1Inxi47KxvKSIvdn5iEnuER9TeKUFztH9I6sMd4cBO4jciyhscEWQv6BKIwh9RYjz4LmaPyLwuWIMuZ7yD3h91SLCo2LfTWHPz3RhtuNXivCMuJl7EC8ymLaLGNSrKz8ju0AXmnNFKpje"
+                                    }
+                                ],
+                                "selected-fc-port": [
+                                    {
+                                        "local-id": "SQcbzT5M7ltA404QXg21SPMggAuaHDyrlKDUvIyCVTcRLhzApuC9boqsQMC",
+                                        "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                                        "name": [
+                                            {
+                                                "value-name": "paRKMuwh45TZQYIC7acwEOGP5YhNKLd1V5Lzr9Qw6CnXA6rH8D5MkDBhBT4dwaek7ZTy1K47m",
+                                                "value": "WOqnnyTsc5YNmzyiN5s1pzTi8MU4L8wAWOXbeIEqNu693EsIJMC0mnbm15qM6Xm2DceKMKaAegB9NVKoIep4tAiuxI8DxnybzEVdoXNu6hvTc7hUlyQO08ayRj3gGBr77ekv40R2hnVtu4gIDYov7z3QKZ6isqhAwtXstPuC4"
+                                            }
+                                        ],
+                                        "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED",
+                                        "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE",
+                                        "extension": [
+                                            {
+                                                "value-name": "i7bmBaxMTam5lIsNcgQ067uaRP8gi5St43HF6ejZoxXJgppsF7sDeXO5EOdOL6hH1Ze75yZmXOXd5exKmSfAHVylCD1nBb5v2ju7JllH9jMexcQT4YmLLMYnhZLTaIocTKcv6x47IQe824T6U7JGTH3bzGWJgcOaW0F2pJ28rggmk1k794N2DI5cp1OxdCH2Ce41P619m9vzbPGkLleh3ktkdhSjLrlfGp9noawCkT3",
+                                                "value": "BJHe4Vv07Zkl8cEUEZ9cgizElY9xJcUkWBzSo4SwVdR4hvQVmR7C2z9npiU8mOlahU3FQNbMSUIahq5D958bwhyVrk3N0gY9aTPTGSxzN7B4xGAGDIS9Zi4iv05v83Fj"
+                                            }
+                                        ],
+                                        "logical-termination-point": [
+                                            "c3794728-dc8b-5233-0c67-0b857c32ada1"
+                                        ],
+                                        "selection-priority": "-9223372036854775808",
+                                        "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED",
+                                        "port-of-internal-fc": [
+                                            "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                        ],
+                                        "label": [
+                                            {
+                                                "value-name": "6qme8RcpmbYiTAhSKBa1byu91QQvsUNqc9Ed0JCeMswy2FqMhsFs01t1Rbpk5cKalhndSZrErY",
+                                                "value": "lvuZMOE7PFAIxM7JJjlLwu8Bm73TqTXLokC38gaPOCydgxWSR9DfEMR0LML4xJHV3kQ3s0TgvjlLQhDzr9P5VyXycJuJkcwfonaQf3ZKekw5u1ENalKXLHoXiSGuWdJksU3HP2s4eY1IRxv2T7ZwPnuZ82m475hzRkhzeJvszw3i3ykOGcdnrHezBAEJyVah7rIl2dNtBQMFh6lPay4C7ibJLHkbuusBObOQgCcSkYptW"
+                                            }
+                                        ],
+                                        "is-protection-lock-out": false,
+                                        "fc-port-direction": "core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL",
+                                        "fc-route-feeds-fc-port-egress": [
+                                            "Pi1stFuCetYabyHpfxBG3M2HssbCCzOrRHTcmgHsJxCU5cccBNLwzNd1fh"
+                                        ],
+                                        "is-internal-port": true,
+                                        "role": "U9RI40RKRBcac2ZbiEdnt2vJH04Ksc1edKXhCGUl96wd8npq1CNuEa5l295ulYJyByI5eCrfAXsIcR05lFzZHEdJOae11Psun2ztw0I6PaG12y6fdx7M4cvKmBDfq5BNZb8v3QBL19EVHDaM29y6l4IIxmPYjrDbuMGx",
+                                        "address": [
+                                            "BWTIxQf5qNB8xKZIHhdzeAHa7SYtWlAxhlfG3mEt2ftzRshyBmZQXz04rYqgkSNt5V299GCbN6LEq25Uh4KeDCaXAAdMkS8qNazXI38v1L9sG6eXbYbGAdv2OIH0BPqgRZ5z3644R5oxcCufsxVULjPr1wrudKD4BIDwOztGwR5ImAXG7LBK4ibXOvk1fXXQFsnm1"
+                                        ],
+                                        "fc-port": [
+                                            "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                        ]
+                                    }
+                                ],
+                                "hold-off-time": "-9223372036854775808",
+                                "switch-control": "core-model-1-4:SWITCH_CONTROL_NORMAL",
+                                "address": [
+                                    "gVryRyYDBChuSpuAq1W4lVAk13nXfavvXO3PmTkXvtkfSOPaPDe2qOmsSKhZMMuCspjOaDEF7YUREB2l6gnx5JRPl8G0N2CfrVWBqs"
+                                ]
+                            }
+                        ],
+                        "supported-link": [
+                            "M60IHq2HQkB7gYipAJVs83kdwcZ7RM4vT46su82ctDjBut14dOodRIqfMhevWi1Hm71Rf33Azfc3I5ZNLn0v6jKKAZgwhhdEofnvai6JpaM0fLN01Gv7Z8Jz"
+                        ],
+                        "label": [
+                            {
+                                "value-name": "QKBv3PS3m8gjhoO0GMAOVcOxfqjziLw8wZwrPgu3pDfG13yzP0nCd42smlTE6pNugbV5ri1QVgwOj4n0XCCaGEu2RnzYEekUpgSQyTHl159k2ocZ0O1zlvtcK22g8naxvUgVFXgG2pSW",
+                                "value": "4VFLW66jAa3u5bDsm2X8iKO70m2hfY4bMBWAIUUi5PEa19ufcjnm33u3qwcxmgI8RxJrrvJocgqdpUktdAQ8Dc3VAfkWn357sGyT3aafqAtPvFbAf1JT5EGFU1BhWyoo6X997bppMK69phJFakqfZYULZo2NOj3N8dW7odw2XC"
+                            }
+                        ],
+                        "vlan-fc-1-0:vlan-fc-pac": {
+                            "vlan-fc-capability": {
+                                "supported-sub-layer-protocol-name-list": [
+                                    "vlan-fc-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_D_BRIDGE_COMPONENT"
+                                ]
+                            }
+                        },
+                        "is-protection-lock-out": true,
+                        "external-managed-id": {
+                            "manager-identifier": "1A7UiWsXz13iPaUhiFeshkAC0T660LDTeKFwz8u01pjQzd0SKec1qMvqxuoxf1itEYSdYedZDoHdBHXeW97eNDFk73Re51AJZsOXG1ObiwoT5d71m789KNlRQ4XN6xo5Z4Vx6J",
+                            "external-managed-uuid": "g7Z1d516r8etS1OBKTypZ6O4XSRnQBY6IP8VU92ehgH1anCUg2j70Z4QKV5Ao3z7KzUxAODR5cK7zm1IgcPh4T7OHcg57P4JgZ8QNLzKXjJpxC7OPO5LA4z9gPefxjYFa7wPK5sAhbROOQuvEr"
+                        },
+                        "fc-port": [
+                            {
+                                "local-id": "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S",
+                                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN",
+                                "name": [
+                                    {
+                                        "value-name": "FlIJBljn2rxeuZ2Btw68z4RVOED5Ana7ISQc59z7t7eXYgrkEps5mb0aQw7iT9hC10OY9f5umjkdrDx62Z3o34qTsx3lGcPzcDpmTvI7G2c0FJ6AB9YE5hpxGkLfwAGJ66XRtFY9A39fE7",
+                                        "value": "79GLeP2EvepCLZjmXpbOSQFTqIVym2fu3N7iC2O0gdCT4N72ciIW1nQrXDRcF7yJMFThzH9IMLBIrBCDTlsUAaeqN5Ck4aVJHO0hn9Z1MsKd3eJPrbJ2dPs0VWkR68"
+                                    }
+                                ],
+                                "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT",
+                                "extension": [
+                                    {
+                                        "value-name": "nBPjsVdZJTIZcGwY1Najfl17aQLpb5WqyLJ0yWS9Hs8M0FCTkMcr75r9V4q61ewAR7A",
+                                        "value": "3kyLEHpEe1pyNBSMGjNun5AokZYb6rB2L1FiI4WO5mfKP7woqbSNgk3Ab2Eal7c68RgJVdxSrMC8T0wbbgQrtUUEOyO9F07NJooE"
+                                    }
+                                ],
+                                "logical-termination-point": [
+                                    "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                                ],
+                                "selection-priority": "-9223372036854775808",
+                                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE",
+                                "port-of-internal-fc": [
+                                    "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                ],
+                                "label": [
+                                    {
+                                        "value-name": "FWsWcBN5g8Ht3W4Kn7mhkbBkYxxQvFibtDZx6FDmNkII8MtwUPNeShrROYzkDJvYmmwt19PGlxpucK06rFcjWD2DBBX6lk5zGt2AuKgP9xj",
+                                        "value": "hbjAJwMx9O2DiZBDby4K17kvRsd00oe9AxKb3wA5cDIuub7GK4iDbu1UWeUWC064yI7BeIGqlgVPkUn4YFz11AVYOIMjIKfgsnKy5iZqrM7LyvPp2gi4R6UxOGQor6xLlhkqzbQ0PXDfkk"
+                                    }
+                                ],
+                                "is-protection-lock-out": false,
+                                "fc-port-direction": "core-model-1-4:PORT_DIRECTION_BIDIRECTIONAL",
+                                "fc-route-feeds-fc-port-egress": [
+                                    "4Pmz1Xn1J3pjSU4cxNJf1wTegRJeJSROz6fA3vtEyTXiF1ucG5rzCcNS3oZF9QlIOAbR5wnvhkOWei0MokmSw1KsiB7rks98Uc0SJfn0AbXGmXsK9GCGIe80Qfj2zsalF2dgiBgSE5q03SK4ze"
+                                ],
+                                "is-internal-port": true,
+                                "role": "14zEZjW37E42Y3Cg5ddLoVR4kq6aEN4FJDcIO0MNwIPuLrLIxQmVDdSY",
+                                "address": [
+                                    "02u0rF3zon2ihH6Hn7mge1ZCqw5eUROVMiN5QREeezon8m4vtiLHbLcBhhH31wYNGESwvoCBX0Y5eUtHcepnRBR0Ky4LW2qDGa13zEwowmmLgPkk3JANcjNXRRAGU1js3koCQUTf9fShWcCRO4E0nsP6jqM5j5qmiGR0sKfBRZTNcnE0rbSODIUO0HMjE4FWKoXc84OR4zE8Wb0neKbRs5xkEbDjfb7Zz4cA1SrXrYX"
+                                ],
+                                "fc-port": [
+                                    "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S"
+                                ]
+                            }
+                        ],
+                        "address": [
+                            "lBglc3kQ29pZs039baxeZK0lL0qe15EmHMHTP1BR31InTEp4GWbyzbTk3br4hXiYJSJyLchO5R4Znt34heCQhnbkyugHrrxaj8A4lJLisHhQadUrjwaBLlNbP4T8nqaGrKCMlf4NWeDYrxiKVsdGN1SuXDukVESmom0JCXoqb2purH6f9kVOdFaaaEm6i6sysl9WixnlzMPTlN8u7V"
+                        ]
+                    }
+                ],
+                "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED",
+                "name": [
+                    {
+                        "value-name": "eZW8S6uV2KHoSDm1BTvVXLr5TPEWWeQb5EbYLFLNhs415q3ycql93EeWtSTp6Bs4fv2S3Fyk7Ce429u6zPfCllqO5b54Mq82VaMYPkbOOpKJyePZV5tgqTWw51ARjILfKqdrCo7rNRadXZ4SWx0nrOLoHd71VLgxblYNK56pWgvL8zv47vjqb4OShVT4y1BJnrp7wvokMT5MtAQsX2S86y1glMcUOODbfUaEqyY4kWQNoyfeAZezx7PSU1",
+                        "value": "IHiLPcVtuljyF7gkwPzChqQQXYxQSzus8"
+                    }
+                ],
+                "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED",
+                "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT",
+                "extension": [
+                    {
+                        "value-name": "hj1NRrz",
+                        "value": "QkLM5M9aRHymZw4A3q0lF4tOfmtZN3wvfh9d3inMZV9YrdqmvjIafbYmyrldmRBC0KP43cIU0RLrW3OrmottzrQZL357VGBNiqRdvs8vjLW8OCz303wsmejZioZ5WASfTCsg4sLfdznU4PP4Kdo6sIYKYXPVpH2ajmqfP3vUDSOHHvDrJ2q3CgNA5CnmbhxnEPCtT7nw045zrITaKbdmrSPwm4SymhV07pt0xIopEtQ6bJ8OMe2d6RBtWm1i"
+                    }
+                ],
+                "logical-termination-point": [
+                    "cb398360-6165-86b2-5b57-2fea3e77edb6"
+                ],
+                "mac-fd-1-0:mac-fd-pac": {
+                    "mac-fd-capability": {
+                        "admin-shut-down-is-avail": false,
+                        "maintenance-timer-range": "ZlU5hckllMFHbdjgxGOylgswJgvr9P593Sec4qyh4dZfqavXQbo3rIA2Y5t8NrhQjn2fOAwSGn06xnWfzcjSUTNKQ8S",
+                        "maximum-number-of-entries": -1396932233,
+                        "supported-alarm-list": [
+                            "z1dShgZ5IoPoLPnj5bywnJo9u3TdcEILFWwW4vTETB3xiiQntgTI0aJmdCzp8abG6zu24oGQZBf9L5x6dqO5sxsG2T5238I1Hd3EtCmk5BtRy0XLjERL3br54p80pQ17VXDorZ"
+                        ]
+                    },
+                    "mac-fd-status": {
+                        "number-of-dynamic-entries-cur": -1682662369,
+                        "mac-address-cur": "dhI1XjY0b4PWGEV06YHLuiLE4vvLXjWbBEcqP2q078PFMKFKAfn4p0AlwX6th2wKyBanDtoCBd",
+                        "fd-status": "mac-fd-1-0:FD_STATUS_TYPE_TESTING",
+                        "number-of-mac-registrations-cur": -1496683169,
+                        "number-of-static-entries-cur": 1685714326
+                    },
+                    "mac-fd-current-problems": {
+                        "current-problem-list": [
+                            {
+                                "sequence-number": -14694,
+                                "problem-severity": "mac-fd-1-0:SEVERITY_TYPE_WARNING",
+                                "problem-name": "qWnmloPHUMFfVIEx8fIwK3UnEZwTGdTY99dnp24bGJiCjW9s3JQOMC3qBzc9N58O6lbnf7yVRJx2FzmBachXOkfhTrjyprnnEqLTybOhUejsNyVPCcEjwUAhdTIuc5KQnnJVyqclEoFjWA8yENRazkjE511aYL0m8Chy2mLyKqJGSR6wwYyXaSu7LvhK8iYgM7OGts6dSPLDyS15IsUScgZXL",
+                                "timestamp": "2021-04-16T04:00:31Z"
+                            }
+                        ]
+                    }
+                },
+                "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE",
+                "local-id": "ThsSiEADI4Wr6ioUSFwiOwFiIwfik905ikXAYy6GC2ZAcnn4ULfB9UTRq0aC12HkmEUk40SzUR1Y7g3T1au24fUmgWYhYFtkbo",
+                "lower-level-fd": [
+                    "5ea42646-26ca-afda-19a7-ad7f7cc924e6"
+                ],
+                "label": [
+                    {
+                        "value-name": "5XR0iddCETJUd7BFJT5sB3q9LaA7CIMHyvzQIMseF49L3CqFnn7Zix0VHA3baHKI4jzM5T1DP",
+                        "value": "gTwyqUVxLeWL1vd4GnDi6HBxmyqf3"
+                    }
+                ],
+                "external-managed-id": {
+                    "manager-identifier": "S7tlP19z95ZjFMjEB2ReVlb0YNg484h0bLdSEejOjbZYXauqcmx0HI0xn8uo",
+                    "external-managed-uuid": "Lgnouf3IzJ2KISzKfSXBpXaZPAfYWD2zTqYfx1QYKKAku2WJULcjAnaqPpgL2acOAa303LYFvrR0tOJfzWyabIsS0Av2KHQdKMdNx3lVmcVP0w4skuun5Wf5oK78kQl4uqJ1m4WIhJq98uBkR5AWT"
+                },
+                "address": [
+                    "DuudKTS5CQhdYX0cZ5bJHEFVxPqdZViuhNz2yj729gg0dg45dfOUTlHq20v1VOnctW61g64hmchskmxxBdkvy1NA1jtWZQ"
+                ]
+            }
+        ],
+        "label": [
+            {
+                "value-name": "8B1MNOzcqb5t8K4miDQc03IKeAT2zqDH1wmGcVSD6XY6A2lSy34q6Mace36FlBfn7B3cwWHuTFslANd8R9qPWA22v0IQCX5By9NWXuiI2K4Cq9K9j2Q7CK9ZLJHnGNY6OEUD04l2PhE7rg8KiYRUJ0LuKlJi0zhO53j68E8XWNWn347m2Q8DQU7s",
+                "value": "ID7aMNfP6lXCuMyhINkEMyHCHcltcFAUaz4WmcMkxJW1ona6anLPVkjCwwXIcxve6rbkDPE3qBWOY7V0myHhK1M8xJJB96Q7x1k3IY68rUXhTKafaRpUK3"
+            }
+        ],
+        "external-managed-id": {
+            "manager-identifier": "R7taq660DmxUkPaC3o7zcea9TtvsZVdQ2GSlEZl9dS3xH59LugcGmeP8HcAy7Nh2l9nZ0I05s4C11DEvMQc841gE6Ic5vlZQveHnWItgE5aFBObnxfnB8w7eeccKxbs2q2ieCLvgIFNblQyS5WmektsyFEadIv78xhm92JhDg4OCNfmS3I6n4rVJX6OFBOF05210DiDMejg1yCMBdKYhbUS1SHGlnels8ekLwXxChNwPiajvUhM63EZV",
+            "external-managed-uuid": "xgsLtVTH7F554AeK6V2gep2w30zHZnNxvfiZ2cyaJE7F6dhc8bkfAmLDncdmr0LX74W28m4JSboYoG2oRmDkBgXYlacM2YJ2Ux42U0DM31DrzFHj2lDDBAtWDxBxvkzhSvbEvOiyIVRhBzAvMd0fGl4jSFQgZixJFJf3pqB7llpOMRbyXbFDwJOhowxgO4RmFZp5p0cCdtrZlupaG5N4GtlXZS5GPW2uVrzcjEPp78gkCGuaD97bCs"
+        },
+        "top-level-equipment": [
+            "c942beda-266b-a670-ca1b-e78a3653775b"
+        ],
+        "address": [
+            "fAzGdIbXKN3HiLSaHPTQ6r1Gqv6TSmj8WLO9tS65x2MINxSmeD4l4X1vsZgdlrlhc1qFTpLjjp16WTk3xgotdpQxo6KCqXTCZcaKtV3McWK1I447csApRrW7pHJPwvkvHu82p3OB0qC"
+        ]
+    }
+}
\ No newline at end of file
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/ControlConstruct-data-test.xml b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/ControlConstruct-data-test.xml
new file mode 100644
index 0000000..a143722
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/ControlConstruct-data-test.xml
@@ -0,0 +1,4725 @@
+<control-construct xmlns="urn:onf:yang:core-model-1-4">
+  <local-id>y5RPrOmv1V3ocQui0h2qHoVg2J2VQmzhjq6K6k7872obKKuK2waBUYKWzEJp0jGcBEOIYWI6QY9BIDlCao64eQTNmC4nNLrphfZg3zeUxnv71IK36I7kqS7Mn41aPsr6IieLRkFgA2otL0wJI</local-id>
+  <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_AVAILABLE</lifecycle-state>
+  <logical-termination-point>
+    <uuid>4a6d6e3f-51b5-6582-034d-e87748001085</uuid>
+    <physical-port-reference>371eda64-3aa3-f78a-2711-ea75d567381f</physical-port-reference>
+    <local-id>6UaS1ywHile82TKiwR20LhKG3Raiwx3vjdnkL</local-id>
+    <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_AVAILABLE</lifecycle-state>
+    <external-managed-id>
+      <manager-identifier>kR7jEig7qpF7S5ZYTX4ycwNPiRkjpVqJMx2iIah0AX7kUYaFOed0CTHVK2e1PELt4FLMQVMiKLuEKFbyLoqoh8jT2pVRWykSdXwVKa5mVA0F735Ksw8JwjvqBqhxYtp3iVR35WpSoiynlv8F18hpkMPV4YsUjJXCwGxtvWlL6L9kh9Za9gstU9oY8ISrrI3PgsaLhwxn9yziHrlQHNcuWAs4jdoCVjs3MCP30ei2MSklbF3SkfehQHd1U</manager-identifier>
+      <external-managed-uuid>DHNXKrsrmkFEmroHEzeIkzXyIF7VGTpcs495vtwROcnavEJadYKppHY7fXUVRbZjf1oCuVliZBtmf4okU8KjIAiXx5KggKAoLQ0fDeqCPTR4PfoKo0V6AeV0jFgrhQP2zQacWAHLlyH2NXM3YI1qOWqZCHqLpgGYYQ3UiKxviexX3c11U2sAZSztrZeJ7UH5CKRMmo9EuHCyTvrFxTfoEGJXFYGFKgKfSuTfK3TfCnFn</external-managed-uuid>
+    </external-managed-id>
+    <label>
+      <value-name>VwAOY9gDN3UMq84a</value-name>
+      <value>2jkFj17L22KC4XxtqdjzuXexJ1YRX0D0jPxCQFnKzZewXLRnZaOlZUKJNIsLI5DTM2oCHLehDsFs</value>
+    </label>
+    <fd-rule-group>4cd72b11-5cfa-9e34-94d1-42b54486ca7d</fd-rule-group>
+    <connected-ltp>485ddcfd-8e40-0021-4ded-622c0d9a41be</connected-ltp>
+    <name>
+      <value-name>iFplx2uhAx1KQp9TUs69MJUNx13k14ScBip8cThNjix9IzUC1SMOtyt0rollk5pVnO3szlfSDE1ddNI7FmV9Ug1mxez</value-name>
+      <value>kYNHMQ1d3g6zVZM0Nu7kQUtD3nRABqrVoev2XwfSNdrA56sKsA4bmqOpNFZo5rklxPfmduf0AGsFEVp7nliJL69qD8PAr1VZI2</value>
+    </name>
+    <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_PASSIVE</administrative-control>
+    <supporting-pc>6DddDgT7Nj5s79GPtpR5O6eNnsfKUbv1GI</supporting-pc>
+    <extension>
+      <value-name>wPXGvaGhUh5vBI5zdZlfnQX046DpL5nhMkP9unrowoT86ZHjQUy5Kn5HtBYeylndx5m1sFhZ3371UGkKsLP58MECnCIOP61m3ffvVwuQrtSl1cXmXErYr5AGzauo8nKbDZHqn3gPp82id0E2E50X2swBDSZDgBPLAobQrjFQsH1xzFz6Ls3</value-name>
+      <value>MrphkgVASKdk8oarHHa1pbyYQ04tk0h6ryoDOj5yViTVGVmgDwhUzIKqAHTUH2S0sgE9rJHe2s9AowQ1U0VuAxMaexWNAOO2XkbgVL</value>
+    </extension>
+    <embedded-clock>
+      <local-id>RpFH5aL9kdh2h6ZRhrubu8RIDOsAmn7dEFMCPqL9DUbUS3D9u7kZ84zLS1l6gkjNZ5pOn2P0W1MO4qXqpahxeIaYCv4SQfxHcWoAYdsM6fA2xqtOsKmylwwXUsHCHfjT3HtUNWGT39WszhgTTure1XbNhTpY0AR3adPX9wI4xEw6NMRHhiVa7ZPoS6mKG5NIivFj1gnqUToAyfhHx4Rw3yUNE8xk5d3oIAHBQ51DQp5owm53qOrmed</local-id>
+      <lifecycle-state>LIFECYCLE_STATE_INSTALLED</lifecycle-state>
+      <label>
+        <value-name>OsFmFtKSgAqGgQ2S9EtMzUUMjubZja40CBm957TdzbUI2OA3sVP2</value-name>
+        <value>CG1YJ1hTXhnzEowD9B4lvMfbmaEaZy0t6TrPUJASSPjw5H1ei6zGKOR7Yn9QV1bTUDIPeaz6ZKv4jobtuK97rT6pgf74gjXaOyR2Ai0s2nodMzH8kQfLBl2KA2OQlD113S3wbVY5jmj5O0d0ItLcOFWpHC7U78VbTQH4Mx15Lc2zc7zNAcZhSVy</value>
+      </label>
+      <encapsulated-casc>za4XZjaeoyN3mOsraxb0uwAnSgnU1zHsBLpt5AHl0uoebIFl8QdCeFS7WfTPHB9aeqDb0cxSHN7KwE5Ena8BQ0AE8mtHPuR3UvfNHMFgrE0XbXty0C1QuCuuQPbFj3IdqX07Byg348Sf6eN6QPOcjiH1ZSGiNgnd6gdHGtCKBn0zBNxjulnFv4GuPeEuv2IBaVaQgNAJ2AjvgQOC4baz8Q4P5IjsC13MOduWS5GU</encapsulated-casc>
+      <encompassed-clock>AsuvU4rbRSpT9HFIa7buM3wiMnUvF4TfonCij3l3NKWXjCxmJIQvEeGqCsW9wHoN415fWriK3fzfR6BsPrXtGvLaYzjmgz9cs7spyK1tRAIAGj2nDSIjnull3EIc5JoyQQPgtQKkqsVYEPehHWsXiNaejSqouOOkxDB0tlcLFZKbPYso</encompassed-clock>
+      <name>
+        <value-name>Sdz5iM0GmAoPjlQO37TsD7pyp6RLk4N5hmaz0a8eKw3VJLBMSm6ntoNTuEEGAjLRFVix5qLIOOvxz7cjtiyPGdI2</value-name>
+        <value>eBjym25alD7DoPs5dREc3QFeomMC4PlbqFJEzGGUjOqAvKFIBjUx1sDqOpUL6fWoMx3mdJ8ppqZVaEvEPi3RKG9q53b4aZsXonbC7bToCSbMoHqdZtWB151Z853j4v8tTjXSmQ8YAkDY133Sp0tiXuh6rkhwIpRtAGdWolVYxqOylJiKBL3z8cxzpOX7</value>
+      </name>
+      <administrative-control>ADMINISTRATIVE_CONTROL_QUIESCENT</administrative-control>
+      <extension>
+        <value-name>xFeEO1HHSgDwNwtrJv0NCAA5ErmomUQLrWifXROH8jdNQyer37eyzHvd8JCnvk8Wgi45aSNa4SXMr4dm3jMC09P9SrwnDwkTPoRR8w1cgQYHM3WPnArnKhoCAU0ejcZ8sIZAeSNvID4nHScWtEj5NIHfuztNDlN53EGawlF7QBupuylPcxUR7B7B</value-name>
+        <value>shGN4MJBkT</value>
+      </extension>
+      <phase-aligned-clock>4FWoq782APXUwepFATR6jnGPlBKxGc5DRUTa11c</phase-aligned-clock>
+      <address>1sNn18c5F6XMA4gvox3ctPN41G4yY2WRnB7oBjl9iaVK637vsaHW0mST2OkSR8J6JQuk2HtcShOYcVtF52tXodRi2baLjMRUudeoUAAMRgL3b6Ah93exhXIb0SWbwF5TSchMMKrv04qca1lbWrB5pjgp34BAJylBKCgwez1fDkjFdER95kfmDnEGs783FtFqYNWceQrR2Cofg7oervA4</address>
+      <encapsulated-fc>
+        <uuid>25ace2b9-d4fa-cc90-ef62-106ed4d4d673</uuid>
+        <configuration-and-switch-control>XDntVe3QlNq8wQ1tDMFrSGFXVW9AuXSks7NfdQ6ywwH2mAoSmVb6BQVoF4Y91ItlH9BUZHtvd2qrCGbRBmP4dLtSHj1BUnWBwxwneRTjLbDfJO6cbOgorB88V1JHoGaM5GakpVv268iHXgT041ovDowqpfZGN</configuration-and-switch-control>
+        <local-id>kELFJS6hspZLIs4OGAj8YmmeHG8oskh</local-id>
+        <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_AVAILABLE</lifecycle-state>
+        <external-managed-id>
+          <manager-identifier>tP09KmlaSGInI424ioUCK2w8y1Q0W1hhQiqAEDDpjlMTpGPI5CkHEII4Bq4prmGiEYKaBfzMBeySUnARZMrwm9AXrFmT1U3FKNPd3p0wDyopNRhNvIjSJTPaq43rQ66BMOOH5G5I6l7U4gzAYSsHD9K45NnWMmpqa5ZfMWPShOEm5dWVXgvthfpfUM</manager-identifier>
+          <external-managed-uuid>y8sYaxPpbLeWV3A90G5VDdqYmFnBs2E026RdwGCzkRv7MYgMwdz1i00ExngZhMSkLJx9h9ItS6Aw4Qas3KtdCtS1J0T0MLkxuRGD1h7LnHijqsLl4ezGIrIjjBj5eEvAnbdgsk2HUc</external-managed-uuid>
+        </external-managed-id>
+        <supported-link>u57pA</supported-link>
+        <label>
+          <value-name>dsMn6qYeoVzYdALcLYZPm9qVA8dDiRMvbyLhQJw6w55KFIOizN7VWxIpGVUQEGdQ6Y7Xzv36s0I7Joha3h5SONhmA34eKaWQ8WFArJGUJgTkE3uzkzr0eAfOEjVgtJYuFE4ZnCL</value-name>
+          <value>SwjozFXT7hMlR12vkPDGyCa6g65vIQlseEIOcxzjOdEyey3rnz7Wb92jfZOPH1hVGRBSo335gHDvgyWv7Vra4ltbk901b9PJ0qtolwlCdY7lxVRwQaHMoaXIcXCn6j66BzmX5IzayyoXlfu3h3PFdEgpBKEz3KxEbLB8l2jUsHRNOdQ5gxDmbTDEDi5y2Cc6gGeBAxn367QUkzSt6vPagsOTKUjFovDE3RgEhDHnKpaXYUqXh</value>
+        </label>
+        <layer-protocol-name xmlns:x="urn:onf:yang:air-interface-2-0">x:LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER</layer-protocol-name>
+        <fc-route>e4EieUx3MKxm0QeSuFGD4xFAAeWgPbWV7sdlfKh1nGffou7S1Fo643yFhmNYyBLF4YTjA2cXIr4YN3JPI7NFadcjAZ90tUFpSqIksMa25e1TiCISJnxTAB4atd2W7IlR0V3tHdnMkgxCSfmBCUm5nifQviMCSZlSUpdtCt8WJFqCNN5hzkmWCuN0MrCwrQgdfmzJPHyyeY21D0b4cx1O1GOFZj3i9kwgG5ZnEpNSgQMTIXYU</fc-route>
+        <name>
+          <value-name>QJRqbWeKopSmE6tlN</value-name>
+          <value>B7WSUNN6nzo6G6Pxx1lLDK3nYHujU9VvgRo2wb8TCxZiDPIaI3OdFRAwqWPk5CHml5oR8pKLWCVzjvCTrq669yurncDsOkGaiX1qmE3i8RJrmdcNDaMEA85XkAq9VYbdV4vhIzrQq39E</value>
+        </name>
+        <administrative-control>ADMINISTRATIVE_CONTROL_UNLOCK</administrative-control>
+        <supporting-pc>nJk4yAPyxRO2mcqEtGD1tEmemQjmgUwDvQA3i</supporting-pc>
+        <extension>
+          <value-name>7xzNiczBJYYmu25Kymg7CSoMHfy7cPebeGQwSqZtgXPKRUnh9vgLfFpXUX46Eb9SJRgt97Wp4D2OppXyMeb1TAYNpVL3YMNHD3aNa647B6N0nCr9</value-name>
+          <value>C3Bd1gCWTyMFltbhvQjtMq4T5X8Ioaq0d25eaA340PBlbMCGuWahe62c32Ujcccp6hwhJrlJ8W5jBzS5nUeu08G4bsffwrxDJ3Ukmf4u31GEsyCIsI4kRKgU4w9AXG5yBZTXePkiI0OayqKS9O4SqlMuRNXGm2fP20N</value>
+        </extension>
+        <service-priority>-9223372036854775808</service-priority>
+        <forwarding-direction>FORWARDING_DIRECTION_OMNIDIRECTIONAL</forwarding-direction>
+        <fc-port>
+          <local-id>T3zMi1Ncey6QTbY8Q3Gli3perwp3T4bM7LqhE6lSwkApvrplm5GE8YKAm2vg6zUecdnQjJAH326ytvTPtrmBh63E8rMf0ylcLIUWruDuoBUSZFHs7V3g2ZM2qqhiZuuCdgzwK410GNSFtsZsnUIhTnkbNttMYPh35QzHUsIsgsZJUY3aTLrE0LIO73s</local-id>
+          <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_BUSY</lifecycle-state>
+          <logical-termination-point>8c0b5632-f6b1-1b90-dc8d-4334c833133c</logical-termination-point>
+          <fc-route-feeds-fc-port-egress>pAvkKscdBygEFv7g8FTR0pIqDUsWqYjPyO1b8dgJMwgjTnr1UlSUCtcgfF4FDnn43ofbCvN</fc-route-feeds-fc-port-egress>
+          <label>
+            <value-name>l1tV7VrRRO4FrGa58a5EsBF1JDwammdAnGnuCOdtDi04Q21YdYuFs2y3FWdUaquy7RUJx04aaW70Y0RbZdJjf9mN6zHgZ3GYMtzjtD</value-name>
+            <value>Drtvqletck4vreRekqNsiI9guCQOXlasNvP5Q4yVgDqHJaO3AtnKcoTG0BmPWohBT7yC3ZpbuPKdZq8sUv46UXEMyTunhLQ3KpxFoWISDtXvT5XFs1DmZa1p3vMc8D7LUEias1U6mRt7WqNgjiDaswAn1eA1JzMD6XFyYzwcqZbehYvt90DBo5RhcjiVSXrYU6xKGVOYN</value>
+          </label>
+          <selection-priority>-9223372036854775808</selection-priority>
+          <name>
+            <value-name>TJ8QrHqe28GiAy1no4x9HYOACwoJzIGkkG3LftZhByz36simoPwYGk</value-name>
+            <value>iIOT9wrmQ7pueSlwlT5oRqHeGoKE4W4ewS7Fhq1ZpitEaPavA7Mkplq6J2KOYHUmzU1IkVIK53ogKqLdxxxXSXVuZxaPe4bGY4obRYVXUbdEtQJ0ggP05CuWaELoBO4rTlCCjpz5sEKVvlODCvDz80wiE9y7YDzJQ</value>
+          </name>
+          <administrative-control>ADMINISTRATIVE_CONTROL_QUIESCENT</administrative-control>
+          <role>RAopp3gA7zBjXRRUIeq81aoJW9jL7d8QOo75jgxiP8BEZkyHyYHs853XffIesIX86W5qcCI1KcxBw5bXVShWQkT5ztbU48Ua50s9ub37fAALyLItwZpmc</role>
+          <extension>
+            <value-name>54QsxZk3sI0jZcCh8v6zl0xSC5Gq4ti1p8tP7NSrnSLm5fv5CCwYu3</value-name>
+            <value>79op5JHY9HjYO6I8lsTHx0cuDO0Bb4ja5Ar2j10sIjiph0xClqbSqnf34fwfbQhgiIiBJaWsteRC7o6sGhcYFrUBzqQK871qHb2rmQTH4Cc30inyAswfLqQkJy5RxYa694xnUiXQU9MUr9k1tR8f9QzSgwKNuMUwQjTKCQs</value>
+          </extension>
+          <fc-port>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</fc-port>
+          <fc-port-direction>PORT_DIRECTION_OMNIDIRECTIONAL</fc-port-direction>
+          <address>gDcJmlYwbqosW07rMTXCdIeHrzdiNot32GFg1vM4</address>
+          <port-of-internal-fc>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</port-of-internal-fc>
+          <is-protection-lock-out>true</is-protection-lock-out>
+        </fc-port>
+        <fc-switch>
+          <local-id>0Nuqrs7o3zYL0JQGz6PkTGO0zs42YsuRfYhyqgWtPV7PwPnXWdhPL5HkpDeg5I7lzgTZxQleDk419jYXw7Fh4mut0IB5jAiSR4JgMWuh8qiiK878fMib9</local-id>
+          <configuration-and-switch-control>1YaMlRArq3n405W6k6rp0uExHnr2aX53W7Q9YisodPsdUhjfnCEf6aFFx6HIVELJLtTJDl0R3k4XBg4QKA6JLLoaJYKwCoggR9ZnmRepcafNqbEbMCUpfarY0cuvACLjLCG0uUpG5wlnIRqmtcDIn4yfgVKIxv2b0Ibuvs2sZfPz7gNssq3HmBXDoHdW5fZ5Q2rdutFlImMHCzaXRdweGlJ53WT0cK5UMo78RMmr88</configuration-and-switch-control>
+          <internal-configuration-and-switch-control>DAbsroYFWkgTfdE7ho4b2si3bWpC4pLzZW1jcSY147UbkriBPmMKGWNRSctOB7gtV9M01C1XJN83eiwWEiGc6l3YxxN0w3lr47j6Kk3l84hemNaT6Q54393A</internal-configuration-and-switch-control>
+          <lifecycle-state>LIFECYCLE_STATE_INSTALLED</lifecycle-state>
+          <label>
+            <value-name>wO3J5dsjiMVO24DRMpBPSI2U6qeGf3ELRzvPFX0XBVLvZgnLGQt</value-name>
+            <value>yndxFr5VuKGeb3VQT</value>
+          </label>
+          <switch-selects-ports>PORT_DIRECTION_BIDIRECTIONAL</switch-selects-ports>
+          <reversion-mode>REVERSION_MODE_NON-REVERTIVE</reversion-mode>
+          <name>
+            <value-name>w1m8YxI9prd1zZX4g6mqgYyn7F2pQb3m4pu2X5bewg76fX2nVgN3flqe0sDIvG5zXruMwxTVO0T3XVjK36Nis6wky13Wz0npjRbQhWD5Xw0MjjpmicxKiVWJXRFoR2NbMRTVNo0CUSh54GjmSQY3EUMtErRvlFyZojUbHMOtxXytDSPnAFqercH5vztJ61I</value-name>
+            <value>dvxU9doyaW1FGI3hntvPy5U3wnMChnYuKngLBEkLtdj1WmijHG0fLVbhaPLj4BNOY4szAEdVRwXNKfZrNZzyMCHPrk0wVOcMKwdcaq82O5HqcyS0qjq4V0TekUC8APUcd7goqgi6dZxqqhiQAAUnsGBNs6NUVzY0GeoYvG5Iyu0YLaOdLAA583SA9xmW6kXFzdDWUAws4xqHH6UkGmqPiahrAEgGY5dpiRdcjKwg9OXQUS3t6laonjIXX</value>
+          </name>
+          <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_PASSIVE</administrative-control>
+          <extension>
+            <value-name>FuQr0Hzfkf5Fyw3LVI40vyC4EG7zo0m4n4nfLWmY4jDCHyfC9jvERZAoFI</value-name>
+            <value>4Ac0P8n4UbiKfCfJjOYOPhbl1aWpIw6EYaEOjTK543Pcx4VIKUor3zN4KJlk7sY5CCLVnw0jrPvQMryodXQgoDl0eGkd0iiDM4q9srtL8QBM91bmQ1v7wQ7CosPhCZUp3kqnDL0MCBqLvB0duvkSdsmBMbSo3EN6R6muRm8tQz7d27qpCLhP5EiRH3fKHVJq15</value>
+          </extension>
+          <wait-to-restore-time>-9223372036854775808</wait-to-restore-time>
+          <profile-proxy>L4QSef9l42bfxdQ1tNE</profile-proxy>
+          <control-parameters>
+            <network-scheme-specification>2NR6ywvR2nY24tCqo0dlQL4mdUDoVGmXm5WUCrEwPCqLX33m3gzLTvZZiCn5bB3xHRrbaXHRs7up2yDXG5JAAIrSdGYohTNQC61E4Aw</network-scheme-specification>
+            <hold-off-time>-9223372036854775808</hold-off-time>
+            <wait-to-revert-time>-9223372036854775808</wait-to-revert-time>
+            <reversion-mode>REVERSION_MODE_REVERTIVE</reversion-mode>
+            <prot-type>nHOHFqTBLTF28TQiMO1KS4TNxjv0f0GuIu3nUXYyQvAQpi9</prot-type>
+          </control-parameters>
+          <hold-off-time>-9223372036854775808</hold-off-time>
+          <selected-fc-port>
+            <local-id>5H9FctDq8nPjc82X7OzgA1sxr8STGT2DAbaEEF4M3LXfUScTyL98Ftx6BiR9bTNE4PaAv7</local-id>
+            <lifecycle-state>LIFECYCLE_STATE_PLANNED</lifecycle-state>
+            <logical-termination-point>2b454936-1b31-1d28-4dda-1d3475708a0e</logical-termination-point>
+            <fc-route-feeds-fc-port-egress>bXBn1SOXxG0zvk6mNSpbXrRK6TKhUsc5qNlry1</fc-route-feeds-fc-port-egress>
+            <label>
+              <value-name>LwaiR0a7Eae91FavKGzj5A76liE1AdZdB9vk9GjNQ</value-name>
+              <value>PJcZ6PxF0Cg7IthnmRsl4Vmsgv0zbIZ0r3RySg5SSlZtO9Q20anX5Jhd7hFiZEaiHTIs9Ok11cmIl4Kde82cJjpQs40rA2CiVkKW0WQ20cKdhurvutz6FZW7VPrwR3GFfqBger</value>
+            </label>
+            <selection-priority>-9223372036854775808</selection-priority>
+            <name>
+              <value-name>qS4FEWKxunyu2211vbSFnEkTA933wahWVluz9eZvBpZwrTxX4hujNO4oP0rmaAa5WExXSotmNkK75h42qqde6iuViV9kvkijYH9J5uXSOHZMQVG8lTmr3QfdDoq1AIcrpl2mPZewy6ag1</value-name>
+              <value>ofBLyxtNK74a0EKc51y7nf6CLwIVMBL3QfGpM94o88z0NbdSdL0A0Y4EnEz18d4YkKf6MkuMkVN770ScDKEvAJ1XfBRnGVe0ytYcFsY0gDZfvRr8B5wcGx1W0SbGGpy</value>
+            </name>
+            <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE</administrative-control>
+            <role>GyBi8Hq3E7PjhY91iD04fSvYAcZJkRt0h4aqLstiAatR0CLagLfvEKl6OdP04i1le3D0o6aY8DH0fsbv6qTC26IJjqJfACBPG6P45ZUduB6JWh72z0EB6eciEWxfy0467L2cCWp6qvHmEOgdOUHN0T5FPCMoDImKlpWPddNDBuZfb7lZ12E2VBzL6l1BVndgE15SeSvHenPpuahocNi7pRKv4D6ZTb7xccpqWN022PswZBU3o42FVF2</role>
+            <extension>
+              <value-name>fEUsNgL</value-name>
+              <value>D7KJMJxTwmc2e7ATn0mv7OFmkrG7zs9czTNdul61HbVNiwyFoV2vBHJN0iMAKVEbPsojFmcmx82QwAnUniiYZTDSbpkNdYY2imdXBic8q6QOG6A4oSUfEq7PHjvUatOkIUajcmjus2i08SWoDJDh9DYQWtDYPrjxdtIpH1T13b13WYrzz5IAAyio2VnJfy8s1QSIJDJFPCIDsac17MBzkUXeHcXWK5pDN9dpMW4</value>
+            </extension>
+            <fc-port>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</fc-port>
+            <fc-port-direction>PORT_DIRECTION_BIDIRECTIONAL</fc-port-direction>
+            <address>OaVNWom9icn0gdOTa5wYeKnTyjeZ5lTMnOzccWln0IfgV3161yW7ab0IufIzstdPhN1lBmABXPJSLLQMbMTlXMVr1vTlY627T4tmi3PfLz0ocQ2nvVAszvMs1FNZDQ7pMsL4nBc824w6UythmVKNqwgj3VbGLa5puJmRkqSeugkgPFy3AaQSGYcBUf9xpfXTYbCaBug5LAdsfLnPV5zt</address>
+            <port-of-internal-fc>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</port-of-internal-fc>
+            <is-protection-lock-out>false</is-protection-lock-out>
+          </selected-fc-port>
+          <switch-control>SWITCH_CONTROL_FORCED</switch-control>
+          <address>1mdehkFGO</address>
+          <prot-type>wSbwbQp0kuAzb10hcNFxJzdgQ6LubHFzrJ5uznmTJWkVQk4U0BrJ3FZLDCfOjVgCwl65AsQkh377n31fEkYHRPsvkAbDnr8TN6QfzyzIByPRBI6gUXPMEahYKsu7UC0zIIG9g8</prot-type>
+        </fc-switch>
+        <lower-level-fc>25fbedaf-00e7-2908-fe09-07fe37aca56a</lower-level-fc>
+        <address>Z7zppkhq0liryWVpCK6YFdNzdszUrSjiRSHg4YH5cRwKOj2iW0gB5V2agB4zlnSc7zl4qU1uLp6rI0Jw0RZ5F17VDbmYqe3qGou6avsVUyfuzYTrISpnUwapIwf0LaqjqUpAhRw3hDqQtjib3HqX5AeN7mOKwe3X1kpa3VekqE3UPd5SMwIRYOF5alHzrCosWNDRBJ41f7V4cTOYhwPflmdnHMO1pcldSYXlz1mO0aKc</address>
+        <is-protection-lock-out>false</is-protection-lock-out>
+      </encapsulated-fc>
+      <sync-ltp>5b29f3db-6f13-96c1-f189-f038af15cc4a</sync-ltp>
+    </embedded-clock>
+    <client-ltp>4ace155c-6c04-f585-d9ec-d6a845794520</client-ltp>
+    <layer-protocol>
+      <local-id>Sf4m9wU0NaudiRbOjmN86mhTwn2y5IgXXccYBYQg8lti4E6fTUnR8wL</local-id>
+      <configuration-and-switch-control>MIy7Dvav0AbNOoCPf3QDavQuW3kfDeaqOIps5rX620LQpfFEjn9lT0PHV9WzfZR4z8wxAlDCmgkLvRhGej1ZbJz6Snx0mg4WhAlRNYl96FMtoWaC73CiMbgxyGxNWBB53WWQM9SSGwd4snHzrbJ5e0CMy1rmC2sxQooCq8m6EAb7PKy8Vie9</configuration-and-switch-control>
+      <configured-client-capacity>K5PAuy6kxSi0Xil1kvryo1hdDHvPCf8mkXXOoV9NGjNDB8END6mUZv7vcvcOKl3XaSDyFMdlX1Rr9neFlsrdPq</configured-client-capacity>
+      <fc-blocks-signal-to-lp>N</fc-blocks-signal-to-lp>
+      <lifecycle-state>LIFECYCLE_STATE_PLANNED</lifecycle-state>
+      <label>
+        <value-name>WqNKPP78tYNqJqVQc9WwPqcb0lgQXJ9T9OwRwDZRBEhc5d3hmRF49Sf9dnZ261V8PrZl4Q4yvmCs</value-name>
+        <value>xJNggJq8ZzdmzflA3tpmkDj2HRp3tRm1s29JLzJK9XZI4ca7FzuR4NTEwjzR2WKvYU6JtPmCEdcJpmI4O4VSJGo7ZYZ2UJpSvvtZkPtR2ysrUanA7a</value>
+      </label>
+      <layer-protocol-name xmlns:x="urn:onf:yang:ip-interface-1-0">x:LAYER_PROTOCOL_NAME_TYPE_IP_LAYER</layer-protocol-name>
+      <lp-direction>TERMINATION_DIRECTION_SOURCE</lp-direction>
+      <name>
+        <value-name>TF4ZncOcoSbRQ17Qes8a77pSTNJTbmpX2lWpxCCNvFFdyM4Ff4PebfYWUHP5462YrQnYlRMIojVX5RucWjiZygWsQLqMSkKb3ZagJOY77LW4DqhzKzqaImvy0VcK7WV2N5iwLgwS2sXxL66nFoxfL2FDPRnPFaRt8aRTinMkIBRtHPQe6fuRa9uZ1</value-name>
+        <value>GyTyT1ALVS0z5IaObRwT5C9rtjBPauqR2jhOdRz8BrzGaJvds17pvgRYrsFBO5kIgBwtkXtWp2urLRE5KLvfTm5kGCOuH84QKB</value>
+      </name>
+      <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_ACTIVE</administrative-control>
+      <extension>
+        <value-name>QRJYIHPCtq1lWoPNBw8szGUStWg33igM90KKzre3R8gNwXs7uBzV9lNCiVydeOZfGBZ826bUerzKh2SLDjyMxdhP9P2fv2m4vecykfsyG1</value-name>
+        <value>XV2Aye8dLmusnbuuyoQuU4GkoVEWux7jt9MTnU608ssnvPR45IqZM7b3UPZgn6AQ8mBn8Io92QwyFguLYUCCTGxGvxWKvwsDK41LEhUG7i6Fqsigf</value>
+      </extension>
+      <ip-interface-pac xmlns="urn:onf:yang:ip-interface-1-0">
+        <ip-interface-configuration>
+          <dhcp-client-is-on>true</dhcp-client-is-on>
+          <fixed-ip-v-4-address-list>
+            <fixed-ip-v-4-address>XisY3NEwjlpxsPkj5ptDrxoUoKLmNc6Cvzsye7Wxsl5U3h58GqD0Y1UmEyAjKGN77gGdnuLHQItTZzTyZpyPisbWSD7DcVCjbaxqFa7vSAgJ11h1qPQBaUx2xFxJs2VDck3Ru2eeCuXEo7xGWfhY9HTzeiaGkXjxheoDgDRSZHofOVWCbdtcUmL8wOORLZgV5wql1a61Rm8Fi49liCx4Qb5nZL6CLexIKY4M02FRoNoySxT22rYSu3f</fixed-ip-v-4-address>
+            <fixed-ip-v-4-address-prefix-length>-13</fixed-ip-v-4-address-prefix-length>
+            <fixed-default-gateway-ip-v-4-address>dXsrnacd6Qd0n4hasPURBOT2NMoITRx7</fixed-default-gateway-ip-v-4-address>
+          </fixed-ip-v-4-address-list>
+          <maximum-transmission-unit-ip>-4485</maximum-transmission-unit-ip>
+          <maintenance-timer>-1627250019</maintenance-timer>
+          <ingress-policing-profile>b737f45c-5824-79ef-f58d-6a5a991aeab9</ingress-policing-profile>
+          <l-3vpn-profile>b737f45c-5824-79ef-f58d-6a5a991aeab9</l-3vpn-profile>
+          <arp-proxy>ARP_PROXY_TYPE_NOT_YET_DEFINED</arp-proxy>
+          <interface-name>Sig4nuWuPaHS685syzsZnzZZiyYIkqJcIRgXdcs3f1Nl9KGHk0yHzxzJXxrhY2lyUBo7GQ2VRI8TkOsEG1e7qNQocax2cTtYmRY</interface-name>
+          <qos-profile>b737f45c-5824-79ef-f58d-6a5a991aeab9</qos-profile>
+          <egress-shaping-is-on>false</egress-shaping-is-on>
+          <maximum-information-rate>842391170</maximum-information-rate>
+          <loop-back-kind-on>LOOP_BACK_TYPE_NONE</loop-back-kind-on>
+          <problem-kind-severity-list>
+            <problem-kind-name>tTHxaKRREBslum08KI2t81aZr5TWmMgPxQfHAYq6zTr47r4Ka6diZf9jl3fHHnoedvNNu5M3YdZYx4Iz2NRU3SdgNkPuH5AVBfA5le0bs09RWJqQx9Cs1PAP1pbJuEw5TY2ed3ixVroJ3OrsX4UQLmxNDJo7nU58SZfXUxuPYSqTyKl</problem-kind-name>
+            <problem-kind-severity>SEVERITY_TYPE_WARNING</problem-kind-severity>
+          </problem-kind-severity-list>
+          <interface-is-on>false</interface-is-on>
+          <statistics-is-on>false</statistics-is-on>
+          <maximum-burst-size>19992</maximum-burst-size>
+        </ip-interface-configuration>
+      </ip-interface-pac>
+      <termination-state>TERMINATION_STATE_LP_CAN_NEVER_TERMINATE</termination-state>
+      <address>GQPDAd13IM7BpDSbjSlipMKz2ZdN0G6yoNbY0dTBRSc8vXjHPEZ6qBFttS8lqeTG2XxU2qvTb</address>
+      <is-protection-lock-out>false</is-protection-lock-out>
+    </layer-protocol>
+    <ltp-direction>TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN</ltp-direction>
+    <server-ltp>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</server-ltp>
+    <transfer-capacity-pac>W9pZ9EbzlG</transfer-capacity-pac>
+    <address>B20uX0hjsPXu3uqR47xZ4J2kwNPe1mwuowZdp8oRXleTQECML1DHKyU8lBmeXSBehsrGAIpq3DjLaNqNOVnqthyHSVVIFoWWQfujXMJThUwjHW7nKuNdD</address>
+    <peer-ltp>c931723f-d4e9-a03a-492e-a4b6db919794</peer-ltp>
+    <ltp-in-other-view>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</ltp-in-other-view>
+  </logical-termination-point>
+  <logical-termination-point>
+    <uuid>5eeb813c-3883-fd46-fff7-5c616b5420d2</uuid>
+    <physical-port-reference>371eda64-3aa3-f78a-2711-ea75d567381f</physical-port-reference>
+    <local-id>5rYeOYu6oZBt0AexhS1kWtUFwZ2GziAwJyCqo7w</local-id>
+    <lifecycle-state>LIFECYCLE_STATE_INSTALLED</lifecycle-state>
+    <external-managed-id>
+      <manager-identifier>5iEtqVrVqdp4UQTv80ihwdzg5icHQO6VYKhhyAcYNBVzkO4sOmJlraBwkN5btb6kNfBlPNcuo73IV72CtEXUOqi15fcriaL6qmj71vCpCF0qNUU8qJV79586dkxvuaBMwVUxiwPNbH5QBZR2IE9JJhPWtfkXpVKWIwlT2aG5RLWlKFfkjg3UxSR073PxYrlzXGkRJ0XsLLFn</manager-identifier>
+      <external-managed-uuid>UHBaKvzueruh9T8AezqMThnT6QwRnL9ikKk48UqmlUwuFEXT5nyYwVJDD7u1Swb4gv0ghqDDd1ZSxOEC34sARbdnazg</external-managed-uuid>
+    </external-managed-id>
+    <label>
+      <value-name>44</value-name>
+      <value>8YNtKyr1034zYI6g3uo2hSHJgOudSrv0pam1INUIIZayzgHDCXxLPeuX2ZaMqFEHP0ByGv8gmiHWyor2lYO2ci0692KrIo9xhCXP76X</value>
+    </label>
+    <fd-rule-group>4cd72b11-5cfa-9e34-94d1-42b54486ca7d</fd-rule-group>
+    <connected-ltp>4ace155c-6c04-f585-d9ec-d6a845794520</connected-ltp>
+    <name>
+      <value-name>6ib2L5AiXCYoVrUwRxWgwkVur3l1iCJoUUjxSTPHvG5iZZPQoDYMYT9hPma7YUvKGOiqHZ75F4nw4</value-name>
+      <value>nkAdZq78HOuSVlEi5c7fDGfCDMHTjDXyPpLOPKWxyjhlEVEB7DRCbY7PKOIVrxt8P7XERL3q4cLA7h47UNB6LINnonbPMwYBDN8vybNvoqXnITmuGQsjq7zPuKw9gmKM9K9AWWXceUrOGGjmwDyWL7D7JagRwTDGDM8rA5vPRPDxvOMTskH5jl42vlLT6prB3zVEEqto7YVCNzn7L</value>
+    </name>
+    <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_PASSIVE</administrative-control>
+    <supporting-pc>kWhdUfapMraUdB7KvtqzLvWQgvMz302nOksJzD8dWb7aM6M9r5IcAEVI1Hh5zbknvN6Wi7a6i98W8V5r0NEsjrac0r9zCuW09VWj2Yhc0q80l5rdK5F3oP7o8hXCDUCEPrXJheVhwVhR0JWCGB</supporting-pc>
+    <extension>
+      <value-name>oEiP2BRfzFaDY2BZ4lrMBscK49z37ppw3HdYa45JKfeAhPzmaS0EkcooeQslfRJirW8B1edDlrdDhER</value-name>
+      <value>xRXJ4m8i4sDjbftCbC6cQjP3KUGTrxdQh2zlgzvk10Ddf7HrJNvr6duJ73uqszgJ</value>
+    </extension>
+    <embedded-clock>
+      <local-id>613NJLdtSCCKNmhsvzSePaLiIl8UE4IC5DpHou296ETL126otYDj8gBRBKD7GlKER9d7EfgCU1oN4ubxkOIs5cbyOOGu2i0Trd0Xt9AnaQa6clEw2eYZq2peQXBSfBDzPwwiF6FHOHO0UkoWqnNRp5X72y0a2</local-id>
+      <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_BUSY</lifecycle-state>
+      <label>
+        <value-name>Mbf2PDrf2q3V56W9MEH1EgY6E8b3lZ67ae2RRt6LU1zZ8v0M9zFFPELlEXgROnRYBTHsmG6gHF7Ha7ubG1QvFtQci736mMWXFEhUcn2TUaB49X7QYXdwjWIBVDIhiE6PafJeDM8pOBmXqtFojTUCHu5C0NLakRZm6JBBnB13cf0CIGS1rFv81BC1gn3A63X4Eqy11rW5GWzguriN6FN0gpTxEXZC0O</value-name>
+        <value>Ee7x7qtc6hLmE5wj3c73kwXR3UJFMxeqMlPTLaYJjJYXOmhSygVLMKuHwdniLBApPpasz84TK2IqoRiP76AMI4tfaIxVc8c1pelRnpCZjkpA4ApbGRPgNjvX13K53O6k3kbiJNh30Gv48U7ODX5i8s</value>
+      </label>
+      <encapsulated-casc>0XbXymCBRwo79EA3rimkpOELI00XmPZnE2kcoON8k3flzPgTZCdorK21K2Q6JHlfJyjZm67z2eUtWbmNFscYceZO8HUKg8ZZGbRU9Qtb5gxTjTGYdKXpQOdRo0BE0swGDnANdWQa4nVn9udm62EXRRO7JhDJB9h7oSMCGCEKSs7TWkf2nTZ6DF5eOIQqS7xgZbKxNhhxJoqFByzYjrW</encapsulated-casc>
+      <encompassed-clock>AsuvU4rbRSpT9HFIa7buM3wiMnUvF4TfonCij3l3NKWXjCxmJIQvEeGqCsW9wHoN415fWriK3fzfR6BsPrXtGvLaYzjmgz9cs7spyK1tRAIAGj2nDSIjnull3EIc5JoyQQPgtQKkqsVYEPehHWsXiNaejSqouOOkxDB0tlcLFZKbPYso</encompassed-clock>
+      <name>
+        <value-name>JR1f1yey8UfOV90bYqyDhPI7XD</value-name>
+        <value>PNzcoi6DjEJRME6sr8sCYT3B2Kc9zPHgugtSzznK5ZCKvAcWAFqyyl2A66KxNjOhr910IgDFffpKHCyi9RIHcC9aILAv4oEwpxo7O1E384OQye0H5AoadpcN</value>
+      </name>
+      <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE</administrative-control>
+      <extension>
+        <value-name>1nK7iz5DupOM9C34uBzyKlFqQun8CI8E5TDosI1W8HA9bvdFYEdARL1H7gHKYQgWJTc3BdRBUjK6OXDMtRncugTBotdfbt3MefPIsyjeR4cxTQjfzyrVGdo5GCcJXfvcucMOK5Ut170NPb2gCt3iyrf63jP1yk5UwRI8ODt</value-name>
+        <value>Clvjxxr9SujrNzxRSfKjzHdYqOY6jsONNj6cIpdtLxMyYbhIqT10s7QSVOZ68FTWRR0z8eUTLGjJSBrimlaPk0H7PydX66LXPMoX0jQDZ9mJCF2ZS4Oc5njMOwBUufJj17gTiYwa0KTChNtaShmPxytl447rbQK4PTX8RliJXbmfRPhJZDqo3TJ8PIz1qb5f43nOgFpeJLl</value>
+      </extension>
+      <phase-aligned-clock>4FWoq782APXUwepFATR6jnGPlBKxGc5DRUTa11c</phase-aligned-clock>
+      <address>7tIbmjbb1K4jNayK5WqltPr4tMwOgz8o2Izo1KsUmw51GDLDr3ZNTiRmXg2dPatSKU8DwApSZuMx7xbzB2emc5A9lCf3MIVoD311wqUnUyU155syZGMcEmdRYsUC3P0GL1H9jtwd1q7Zorpf04rEqFnpZiT2ZUACNaL7D9cxAjoQLF5DJp92WwrVGcQG6qaMAWT655vxhTfUqdx2uG4icn5TzVrGm</address>
+      <encapsulated-fc>
+        <uuid>4ebe457b-f9b0-e393-fff0-bfb9473970e3</uuid>
+        <configuration-and-switch-control>FfbTFChkjonhmYaWabhKq2qN4cHvtSh17kUFXcZ8seqO5</configuration-and-switch-control>
+        <local-id>Y89J81N46xLaNOgnFIeMlBD2PMgHtaksjm3jnIntf8vUPM9mmo8HZLKOxSnS2HclVfFiP2D431RSN069geQ7ZsNoca8fKlAFs7Qi2te5uXP9QVi6116SlT8y4gNOBflWfbehxke1iV38Id6Jects6B02RFQlM3h1fnaMHgFR3IZLWYm22Pu8im2aTSvyWEr31uPAKmsO5jrT9GVcnikGwnIi75QVJ9YCDFco2w</local-id>
+        <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_AVAILABLE</lifecycle-state>
+        <external-managed-id>
+          <manager-identifier>ufbjXpLw7Xv4BDvb4h5COJNl6OgyrnCNuG6j5JQ4yd09QocMF9pmT4zZSPpb41Zzz5SFHIBfVCpE0tixDzToEkfo2EA6xrx7oqE50flOJCkJ5C9A4UYIfd6hJGf9ZNgo5Ml51GLLa5m8AnIEiHepMkGoTVxSAN8FruLs2o5dmklOHVkRuy8hSOFLC4w4REKa8nCbLAo7MBVlw7d1Flay2HbwLHAumkEuH8xlAVkmo8INfNGV0It2p</manager-identifier>
+          <external-managed-uuid>q2e1osd2WN2m0D9kZyszdImTDnBYhSuIUIBa2GcZt6dtJmOBU8a7QxStUtr3dOLZom9r3diokvK3RqEMyPLpeEK0Z435SP4g3eHYrZfLuRHehl0H2</external-managed-uuid>
+        </external-managed-id>
+        <supported-link>2Z3WhRSlynPjxQqRK5GO</supported-link>
+        <label>
+          <value-name>bLpfP6XbuHaWkxa57h3SV7n3km2H2XA5BSkqYatkRD8b2i8ar42f3hanEdWyapED9YV78pjZUr3XC3Z371ibatyOGnnIE1eNR9U0y5RlwMi8Q94X2e8czz17WgQAh4f0510E6KZCw9DmizckNkwnTpuHFc9O8oPepPSvrJ0YKDcU4o6RBu6uUBczNlgWK521MUxevx472816pZX0t4unxyPcM50o22pOOW</value-name>
+          <value>blYin7blw2bww7SLEjAI5xJlzDKoszivUhOagRvMUGaiFU3bdwUa3vvv88LsH3YBcELsn969H8rn3vy81kbWPGrQOcin88ZcECF2DDblEDAz08H1tKXajh07lbntjmGYQdS</value>
+        </label>
+        <layer-protocol-name xmlns:x="urn:onf:yang:air-interface-2-0">x:LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER</layer-protocol-name>
+        <fc-route>tviDLr49b3h4kUkgOhWcXNVQtqK58vSC1a7Et4Fx7WBrIOHoXvAMavuDWfIWCsyvvy9YCGnBDZ2dFBCCYcg8ALDo0dkCFL82j91VQowlfqyMTagJfxJPimdarxMYaM1tW2gEiMRq4p4PslyHS9o2vBcO0YNbDOwrIN5SrOaw5fdxAE6kNumbXyZQoMT1spk2chVE552bkfAUTH6z3sKT0JJhoCaQTvT6EOCKLEN6LnSx4Z60jQTc</fc-route>
+        <name>
+          <value-name>jPoReDzwCEeyfnoR1W3hQAdPiAz9w6dHOBq26ZqIvE8K1xBUlwbbYoSgRrifpvWd6m7cdxUIb3k5sVZFj3QirIqi1IxidlwbzDfMb2me5yjplb4FeMXFmfQfYfx3B3f2zuHCw3Qtu2KPdGurkj6GzOVp4l</value-name>
+          <value>xgzzP48js42Oy4ynh7SIr3G8unVTj8eQpFh6Bqq4usS2wihFp1fR5NRzaEltNrbc6tiILAE72o9qyqXYscHp0yQ243wRuz3t2e3FOHMJXN1v6Zly32PVsFYxJmo5VkyQqBv6aaP7XJv3AQtvLir5YpCzDTEy5dgvGMBROjQL2dHuWaZzliEbH9Kc2oLZt1u2F5TtgB7aHOEDQw4bOImoR6ALndKI76KM4v8k77nGV</value>
+        </name>
+        <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_PASSIVE</administrative-control>
+        <supporting-pc>Pg3748zHncBefxo6pJxEqI380NL6tzVaQY9M7ItmUWt2tJ0KkphL7kT87w6t6TvOJFAIfW5aSq4e94Qtu76BkSJroHMmAiakPL24zZ6jhaxifoMJnKcHCO1TvNf6XqiM3cJu4PNl0lE7BiIY2UyxAzi6ex4cPeQKqreuh2I9fm8QEQGyC6X5Ff3MN7YudGfv8tShnAiCWqks8TSKZQPx5SjKR97WHmsHHcY5M8zAyMUGFMjwu03sLe</supporting-pc>
+        <extension>
+          <value-name>I3HmyhVyhvrKfpNyyNyTYVna9V0Z0KlIF25eb0Etn65DnS3VGtOwo3ypYqhYaCzQxEWIwAbUyhp</value-name>
+          <value>1kIHOx64swujXL9ZfIPEeDfL6qxEzOsB8aaOz8T2Ffdu0mt75bEjOTWMblrL9LeaVoYnpRp46CqYQTYVWC7DnVpyhIjqtpshOrE5a399xzZfkP3hjaUG5bfeUqxnQZEwqaBt5KCCbtSnjVwCXijUuq1o</value>
+        </extension>
+        <service-priority>-9223372036854775808</service-priority>
+        <forwarding-direction>FORWARDING_DIRECTION_BIDIRECTIONAL</forwarding-direction>
+        <fc-port>
+          <local-id>L3q4ZxHEzQIVIBRsjGMTezJa5Xi075pS0PORmvvNd5IVHsn002M6BvgykyqjvP3nEReTeBGsHhfgBv8txUz0hPrBfJMKzP75ydQNOp7vGmL9RMCgG39QSsj7b6JCVQIu3q9RP8fnuS</local-id>
+          <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_AVAILABLE</lifecycle-state>
+          <logical-termination-point>8c0b5632-f6b1-1b90-dc8d-4334c833133c</logical-termination-point>
+          <fc-route-feeds-fc-port-egress>S4BUvvTs09IFOzPsxk1R0HIJLgDSbdr4i2QFpB7hLHXr8MMGZFpRm7A7fdRrqinAcd7BPeTsNQLWuput4LkiLUh0Z9rirOSEU07B603MIGAd64G2HTlsFCtFLMP5BzBnrIYyBTcbzMoxIXspQNSnhdUVZJSsjtPK3NawGmI886xQVZ8DE01O5VJ4xtpQWesRUvgsRYASW0ASRInoAgcF4NCBg1j47LN183u01WKQWkAGVX4ve83iN</fc-route-feeds-fc-port-egress>
+          <label>
+            <value-name>AAZp4jV2bzjhHwDWv4HEKs1AxSL6LlydWxCSJpUUY53yBGmZC</value-name>
+            <value>DeowOVos11FzeBYJlH87tZdwxGcTFHWiVcGC7440XJr4dqNq7VytMLZbj44ZLT9y5Qa5M65KQpOVPtlOgL93o1eI5bHI4Qg1yrYlxWXflD226gIm1ShqTw8QzHyvpO</value>
+          </label>
+          <selection-priority>-9223372036854775808</selection-priority>
+          <name>
+            <value-name>eE0md3n3NPmM1kvDgddCgED0tL7R7Zflw8AJbXERNSDGd9jlmpXv3snodu7klfyRn8sq5YhKRVqWWCha16FWyUcLocXCrvtGDO6BModvbwr70A91GPP6BTJ</value-name>
+            <value>XHugcXWID3bijgNuM7tMHCFojmmV86N5NhmR6irKdC2wTH0xOtkw6ZMpe8cmeZrTgNLnYcZbHTI</value>
+          </name>
+          <administrative-control>ADMINISTRATIVE_CONTROL_UNLOCK</administrative-control>
+          <role>utPYvGRSrPx7r9SXWQBjB8gs68LO1PfnaXlGvcyW253l6Nb2wMm7UurSC4GvUNS4KdK7hb3b8YxfMIhimvh8ZI0tEyYydQvYV75di1ojZNyDnHNJ54R4EJqjhoJv7el2mi7wboPbbnGrXu22qUY5DogNFZaM6vGkFOQR4G</role>
+          <extension>
+            <value-name>Y7nbFj0MEDPyB5gP607oLvwB4</value-name>
+            <value>9zvQXtXkEuDE999YzKVQrTIyiu3G5ZM7qhPoCM</value>
+          </extension>
+          <fc-port>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</fc-port>
+          <fc-port-direction>PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN</fc-port-direction>
+          <address>ifN8Pp3xQO7h6BcFzcjyCsnS41tc2zQkGvknMnMC4UL2nYHO20mwkBpovKsxjaKRF4fjk1WoNzqbx0Zz0e6dHnBc74Ci6m9EigXCaL0Xlj8Sj0kb6ioNx00wWCO2QPy86wLghD5CWenf6zrcJPZgHRMvlsqb9YcfuXnEst8hznoFWPRxxIN6ArCVLUZVSb2f0qTsLTBkh0R5HAD6iidKKHynBxilIdAIDl2g7Esow</address>
+          <port-of-internal-fc>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</port-of-internal-fc>
+          <is-protection-lock-out>true</is-protection-lock-out>
+        </fc-port>
+        <fc-switch>
+          <local-id>503YwAcj3KlD6fLEISSgG4erKCtmZ9049V2xo6RrQc4WkHB2rla7poq90TnR2nV3jQBHWs0FwWBQD4KWpUVGblPb6430sQ3DywcnYc2v8vdDAYzRKmyVHfZFkUFECAh37tqXxkkxHya9o</local-id>
+          <configuration-and-switch-control>8XPPWHyQI7T5ViTumHM5tq735hn3goNoeu52bDSLCLQq4CUibzfFZfAWwXREewUs1Zu4umQ60ywWaj6mKdTBslxQjpupVoROfdTJrBIr96fcply1zjC1E2SPreeev5VKaOmCh43iabuswUt5d6ZS8JzrXOxkLs5W8jqpnlIxw4Z3Zl04rZWrAoKqc</configuration-and-switch-control>
+          <internal-configuration-and-switch-control>KXCHLK</internal-configuration-and-switch-control>
+          <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_BUSY</lifecycle-state>
+          <label>
+            <value-name>on9e8rHMchMYci</value-name>
+            <value>IB5F1Iy4bXw1xuf0SC9ZCAyoEP3CTlWBO18PBzMNwiO3FV3xp4o2EWqaLtMEGA8</value>
+          </label>
+          <switch-selects-ports>PORT_DIRECTION_BIDIRECTIONAL</switch-selects-ports>
+          <reversion-mode>REVERSION_MODE_REVERTIVE</reversion-mode>
+          <name>
+            <value-name>18XrWwGV3SPIwraFu90M7xYj4GR6H7HIgw14UAZXsGxR7IwuRx8Q47a1FT7e1HX95Qd0qcXTSvCR58dOFeFCdHDKsCYtjNCpEHh4TePDBrnGssvZG2BLB6v3BuxUh1bNJsSuzz0aTfRlzec88OTJMpMnLba25dIOysa7129M</value-name>
+            <value>S7J6cRe0KXE1CUMNWHS9pyzRBGKDIxNAwozIfNAZD7171NUXmFYL5yCG6fcOMRhifQTuvtl0Ae7tUUqgzh2wPwdNLhup8LIfBtB6WW7p3eSX0bdzs769EbWhkiHs3hzEKaDy6KX1QIYRTcidbgmPjaZDty5wPw3rGGZFiPG8xFRiJavUqRCKTBfm1dLQJG9qm85wPDEmaoETy1OQSisMLI0MVDCEjLWxLT3BxAPHYm</value>
+          </name>
+          <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_PASSIVE</administrative-control>
+          <extension>
+            <value-name>tgc5PYSe9y9Ot5dS9CMGydQcyvI75QCrZGwGxgMGOWm91rT23GIuLrybWgiTZM</value-name>
+            <value>QtQw0YbyE7MN0dz297DDK43V0jeTa060lOpdNADrHp7HvyBEFe9piccaniWyb2ywQXCvxfX6xWF2uhy1nHiGLuI8NEGYy7mh4YMueBADpgFTp5M</value>
+          </extension>
+          <wait-to-restore-time>-9223372036854775808</wait-to-restore-time>
+          <profile-proxy>AJW4d59NYBDWmOBC1nO4kEvXg9Gea6CKQyH3wQQujmjGaUa49Q8uuvrLEZRO6tqWU7RqXAM9W5H6ZR21z2vWxOz3OqJULaIF9r571</profile-proxy>
+          <control-parameters>
+            <network-scheme-specification>t0k4Bbk3jR1zkYg9FEjdhHPEoeRAgMBBNNFgZSbaBdKV3S4IpfWyWDccSVM0zfBm38vU0G4BLGwOrsxQzlgnYsAIfeIOmj3hsy3k67WSGkG7FdP6q5uppW7E2Iso1vxlVAy2AmU8GA7dGWk6TOnaCn</network-scheme-specification>
+            <hold-off-time>-9223372036854775808</hold-off-time>
+            <wait-to-revert-time>-9223372036854775808</wait-to-revert-time>
+            <reversion-mode>REVERSION_MODE_NON-REVERTIVE</reversion-mode>
+            <prot-type>N3GEYxZZCiQqJrOtR0DtQfbtR3xTr4n6Z4KQBKH52xwEQkZHdC33JeoBhVmARKGJOjzh3gnXFTBw5t5i58dPeCiwxE6poF84YzeTHtQmekKjNQCKQPr5rJBRgzgE6gBWPPPoiyKwKvHpdj1</prot-type>
+          </control-parameters>
+          <hold-off-time>-9223372036854775808</hold-off-time>
+          <selected-fc-port>
+            <local-id>6T74pYuwU2q3l0mCkFaAtyW081PvTYmRKuV1sipekPhFPw99bjCxSqpSreoc5K4H6RIz97FlWX1El2NwmpV6PkY9relwZh5X9NoaU4wITpmer2CNjyT1SS2b6nHXFMNGrbQdfmW8Lae54RSohEp1ordmGMcdrZTSaK6iYUqCWxH1orhx5yytZLQxy2DZ1wJ38HlZBEBqbajrBAYz8w2ZaKoA</local-id>
+            <lifecycle-state>LIFECYCLE_STATE_PLANNED</lifecycle-state>
+            <logical-termination-point>2b454936-1b31-1d28-4dda-1d3475708a0e</logical-termination-point>
+            <fc-route-feeds-fc-port-egress>t4LMrQffkrgm7fDRDa5kw68eukL0DWP60tSrj0yvrGRqWm9zweTVl11HdMHQIoOARzT2zrxS0haWvbnUp8PC2QbfvSY59EGS5zVETkoTtqPZB4T1cAveiHuNrkTAYzl408ATsREWhlNTpGMC8hQqYceqw7SnydjylLkGCYCMkhxJXjlXs4nrgtJNAt20HlzUYLAtJ4fVlMFaXS7pWnIdQrSjVUju7Ko5vRy7VF2hjzjgsrGgOolEIdXvZ9</fc-route-feeds-fc-port-egress>
+            <label>
+              <value-name>0evtfIFro6gj8Qvm5TAbSzvy5tS3U6KUc7fkHUD50Tg1BLfGwHSogfWdJGhvFTpRSF3zrGwkrMl2psBV9tjqI7DjNMOsF6cpD7Y4Omg78Bax3Lk56DnGC0SiFGKcEOChWseCPuBX6Ln1oHYmdlVHeNZTlC50qzhe2vIR0kGYXVRevIsA3nhhah2oT0obzxitV0cNcTD2Gm8b4</value-name>
+              <value>L8Y3h0ccoXcM8Dci77bjUn4xhLTpOQ0AYYv7QzjfwnTw15P040bYfgnxT9WHZO9PEwOv50Ctnv0otPoxHAoWIDlBEaavYkcvQ10W1ChoZhFsY3SFv8u5LPGqRRV</value>
+            </label>
+            <selection-priority>-9223372036854775808</selection-priority>
+            <name>
+              <value-name>1rxqaBySOpls0Dv2WWEwUdwj7vlSUVoVeWdoxM8d3mG4Zb6W0CkMHR5Peiz05XWjT1IiNIwRW4NW7LK7oWU5FRMU2dU73IrWK17pJv8GrVuyz6GPUsMAbzudEglHZMwBND0o094rWqZnoxcjRZL3q784ntMefiPUNQjFRf6FyX3Wnf766S9</value-name>
+              <value>ZiBfDftTpjF41YJSePxMEAATIA0Os1lkjOzXV2Ikdfoee76kOwYk6ye</value>
+            </name>
+            <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_ACTIVE</administrative-control>
+            <role>rpIlGu5mcooCkHMetmgWonEb21WrnctOub92G7gSvFmHm1VQnc</role>
+            <extension>
+              <value-name>38dT1dH2HZiy8X17TLEgT0mEIUWzDKhGSusLz1Ng0XP1VI8GlEWeFaKn5zOIj6h3AJO2KtiDqZEdz</value-name>
+              <value>TUiQ0P0D4XcTyvZPqrqet2HExZv3d5HYRSGKHzfMwrx4OoLeH3k3Y1HvS4zX18WT0CvAbKeA3LwR9aXQ5hT3asr2xS0y0Oj</value>
+            </extension>
+            <fc-port>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</fc-port>
+            <fc-port-direction>PORT_DIRECTION_INPUT</fc-port-direction>
+            <address>qHWlssctC1bIiXDsp4nOWffP3yIlfbHxSDTcYXFsZQ2hFGC5CZLr60g9rQmG1W5LrQXpOuSFcMWSsqPXhAontwwUmLsfHx08gPq4jaJnWxfhQ4e7xuvS0TMeE6tdDleTaEPlOqICQYTGU7Njta3t4PHAV2Orn2cxGUSmktY2jKI5JohdqkGuag5XiLgGNt5lnQzzjxCC9czTsQ6TbEfdUca5XrDKMIX1y</address>
+            <port-of-internal-fc>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</port-of-internal-fc>
+            <is-protection-lock-out>false</is-protection-lock-out>
+          </selected-fc-port>
+          <switch-control>SWITCH_CONTROL_NORMAL</switch-control>
+          <address>z3pez6c0dyh9xVDDpegOmNALSmxojSNSNc6maamfIvp7r2CQ8KwmxY7hdxFwpko4pmqzwFH6a66B0Ij1lInSGn2TUzpb</address>
+          <prot-type>dT6k3pxG16eoHLzUlMnVhIXxPtZ5Zaz5VxpQWOwPUK6tnFnIjKDAltZ2OQ0GSzLN62DVQ2KCMQX2ncKGXg8aBZ4hP4XzvAmCuSpcU1OySDs7Q5OFlOPOOL5vQV5dnjPS36WX8Do0gQ76VNL8CsOi6UNWHK1W4RG7PDXXgdPwVPvJu8R6BygHk4v1GwXKfwK59HUhUKNHraqVjaUUIat26QVNmKpu</prot-type>
+        </fc-switch>
+        <lower-level-fc>25fbedaf-00e7-2908-fe09-07fe37aca56a</lower-level-fc>
+        <address>acQkNjqpNUsgEQrrm4gFfb1FchnKU49W8ZhWazdXtG60oxrCtI9ALa7PrvrezAaHAjvKSJAehGeF5x9zfj1St9HVE895JbEbv2NnDfBUVHr1fAsmTlffuW</address>
+        <is-protection-lock-out>false</is-protection-lock-out>
+      </encapsulated-fc>
+      <sync-ltp>5b29f3db-6f13-96c1-f189-f038af15cc4a</sync-ltp>
+    </embedded-clock>
+    <client-ltp>4ace155c-6c04-f585-d9ec-d6a845794520</client-ltp>
+    <layer-protocol>
+      <local-id>usMc4fOegFWin6g1zzbCw4k9D5FhviRZCD3yTJN1oBjMArF91QDxUXGqVdHinr9ZWdxHWcIdO2Zolwpmf3L1SjrFo1XLk7CgcaY0myd</local-id>
+      <configuration-and-switch-control>blDwbLdNs24xGZJu4GqvodsuCGn04zWfUrDY5RDpTzXryGNufdZvqjZVZeN3NBjA3Oq0F3pqCeK2Vxx2Lox3IpYHDLLjnWLiKbii6zAAOkuBS1Dviay0zxH5akoxg9PTcZ3azDKnYeYI8tdqvLq5aZ2lkqKsrsdvrgFSUp7Sv5ADqFVWidTtdVGpdqRwS51cdG475cZs9r6AY1oh7hCk4iJ9AsFlpGxDmBC</configuration-and-switch-control>
+      <configured-client-capacity>XJfBHuUZd0I9SL9qBLDBDQ7FGAvTG7FwIM7phTgmLRwvCxN6ajHN9GkQ8PJPWhdE3cVc54zIVXdpm1n</configured-client-capacity>
+      <fc-blocks-signal-to-lp>uLPVJhMDx3KOxWKPxThZyCh69MsDoDaSgZGS8kvFn7lU3XBAQKrgnAmoeG1vj4fs3Vk47HBuOPgJMJbvuuLJ507bG1G05Wk0JEWRdqdTfmCT5For92262aaI3QA0MU0oqPfDfkomG0fMxE5zy8FAaPidyL5cF5AYMHt12SfIKvmi1kRzso9C6jHw4MICJbsoSVhUNxvq2JA33juvHDZFOybLcMnWXPkPCBCi0ZI2IiXMBr9aW1ILzLwMxL</fc-blocks-signal-to-lp>
+      <lifecycle-state>LIFECYCLE_STATE_INSTALLED</lifecycle-state>
+      <label>
+        <value-name>K7p0HH09AhGWCtisiz4bzGGOdS6ySuluBCuajnkMESI8m1swsxH2dfIq0PYKbceEOBO0Y0MuTmv7fXDImd</value-name>
+        <value>zskRs1Qc4UjIAUxAKpe6iBBpQrVyN82fAn6VgOZlIi3jcsLWS032twkjXfKDfMSP1YCiNCvnUyyZTkNDcQFFfZY46AHlfz3gyFqd9VA4m1VflISxrp4GpUKvvkRKTUSjrjwB6Zxs0szd2jClJG10AEnXY6HJ0s3kLrVRikcaMLnG5</value>
+      </label>
+      <layer-protocol-name xmlns:x="urn:onf:yang:hybrid-mw-structure-2-0">x:LAYER_PROTOCOL_NAME_TYPE_HYBRID_MW_STRUCTURE_LAYER</layer-protocol-name>
+      <lp-direction>TERMINATION_DIRECTION_SOURCE</lp-direction>
+      <name>
+        <value-name>s4qOBI2QLGRvZbbgc01</value-name>
+        <value>ZEEbGu4U3hXvmfbXX6FAMw6LH91L9V99rOcZigTlyIJMYMBNSggEEmievbZE69FpXSo70alyS4kIQVoB3EfISxOnBNTzOrZDjfLjh6K22WKKK0lNwtnoSbDtRx3xYU399OkrM4tGT5iDYwiuZGTRJwdsVg0La3MbJ7un3P3OVdrLJKfIi0s1pFukNmYXpK00JvnFcil7v</value>
+      </name>
+      <administrative-control>ADMINISTRATIVE_CONTROL_QUIESCENT</administrative-control>
+      <extension>
+        <value-name>2OFVO8r35haF127W</value-name>
+        <value>Kf9tytFI7r6OwXQcvDSD5VAe57f8e3uQjEkR7ZrfqxVOnD0SgSvdGXsL5zTbDg2WUmFTd60EwVkTydLH58UD5ep2OaerqgfcCUYPSYloMy9cLUTIUGm0UL2IN81eo</value>
+      </extension>
+      <hybrid-mw-structure-pac xmlns="urn:onf:yang:hybrid-mw-structure-2-0">
+        <hybrid-mw-structure-configuration>
+          <number-of-tdm-segments-to-be-reserved>23</number-of-tdm-segments-to-be-reserved>
+          <clearing-threshold-cross-alarms-is-on>false</clearing-threshold-cross-alarms-is-on>
+          <problem-kind-severity-list>
+            <problem-kind-name>kaXxmEY5H41ziUNTD2q5qAS6jsNy55Cq8rPu5FsFJl618TMLVcJdNBk6V7E148j4z0zFGTch6ibebXSYaB3P4fN0ejTbs4f1WGyuzKMyUXM5MEVO7RDc6q4lKPo4TD5HkEcLgYjbN68rC4gKNLWT4S6OHuSs0P9ktl5KbhVQfVaJRqtEbh</problem-kind-name>
+            <problem-kind-severity>SEVERITY_TYPE_MINOR</problem-kind-severity>
+          </problem-kind-severity-list>
+          <performance-monitoring-is-on>true</performance-monitoring-is-on>
+          <g-826-threshold-cross-alarm-list>
+            <g-826-value-kind>G_826_TYPE_UAS</g-826-value-kind>
+            <granularity-period>GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN</granularity-period>
+            <alarm-clearing-threshold>1004349240</alarm-clearing-threshold>
+            <alarm-raising-threshold>-1165658109</alarm-raising-threshold>
+          </g-826-threshold-cross-alarm-list>
+        </hybrid-mw-structure-configuration>
+      </hybrid-mw-structure-pac>
+      <termination-state>TERMINATION_STATE_TERMINATION_STATE_UNKNOWN</termination-state>
+      <address>AV7VbTll56fRP2pb2jOWUB5VHl40e68O1fBd0XyY3FHKH6NBpBqb5n7EIbwOhFubM6gFVGDQlkBVigoHSOTP3SlE3SscpXf3VvIQblypx1cPiAp2paRk24YXWr1lg9p</address>
+      <is-protection-lock-out>true</is-protection-lock-out>
+    </layer-protocol>
+    <ltp-direction>TERMINATION_DIRECTION_BIDIRECTIONAL</ltp-direction>
+    <server-ltp>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</server-ltp>
+    <transfer-capacity-pac>FSgiunFhOKKKrlkHMackI3LSCaf9roS6g1pCg4U4GwGZR0Gv2K</transfer-capacity-pac>
+    <address>rdjsQwHP58qTEJRR6sQ9XhBwxd0f9TxBYQ3GeKwjLW4pyW8EoYNd7gCxtCMvnb6l1127LqjwenNMjNqAE5NLmhaHUXc90avUbp1XPklVI1ITO0</address>
+    <peer-ltp>8c0b5632-f6b1-1b90-dc8d-4334c833133c</peer-ltp>
+    <ltp-in-other-view>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</ltp-in-other-view>
+  </logical-termination-point>
+  <logical-termination-point>
+    <uuid>485ddcfd-8e40-0021-4ded-622c0d9a41be</uuid>
+    <physical-port-reference>371eda64-3aa3-f78a-2711-ea75d567381f</physical-port-reference>
+    <local-id>0tOpkd7tgIE0Xyg9wXQupByLngcqe0d6lTvx6C0fcE71cfbAc1Wtuu7KKjaQbfWw8s37W3e1Ad2Mt5fFZb1tG85ijf9vu51DpXCeSQfk3h7wfe4ep5zX5F8oU9Tp6NUwCoKmeZH98GynUutbr31wI9UCiGTolFUX3wj9n0joGJDsd7EEaFaSOWmYC8mXN9MJx6SVY3bxMOZZVv</local-id>
+    <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_AVAILABLE</lifecycle-state>
+    <external-managed-id>
+      <manager-identifier>KGD5KB86t2VEbapRNPeilr5LjOai4l0GTELDfMKJOxfRHxBumPMzgJcAxnKCALathWZoAJZg8f8PEJc0yYrHAD97STBswMOFAN42o3ioaidO1hGs871IDaHvVbQkPEZhjVjzRBXTU2ANk87sg82</manager-identifier>
+      <external-managed-uuid>aJg6U6iJC90NXbmOFbzr69eqieKqmMbxvrviqFT2OMQDX4jC8T3eUaE4oguC2x1xZwHh3BbKn1ncYHP6AKcmUIraYV</external-managed-uuid>
+    </external-managed-id>
+    <label>
+      <value-name>KMloooUDIWoj942EtsE5WsnxJfXE7bLRX78dn2R5Q7gR4awxC2urmSY67NC6QoXFnXTKRCHIJXrFZP4tRzUerKcqpOwf4lNjby32aCCLr4rqTvUD4GRnjVNIJbQGxDZIbVCdpfQRj994FVHBuqRNlEnX</value-name>
+      <value>dD7IuPTpjYPyPyJYzOvvnZZOQE1m1Y4ftbXYSJfczWCgmmfW2CjpBi5jW7yP5C4rGUhqvouWd7dztkvvWOUqY0JMZ9CWMynkkwKHV7E8eJzH354ZLQhCI1gH2KEObT0viD5dKBdYkMxnJtenjwR2p7BrS78</value>
+    </label>
+    <fd-rule-group>4cd72b11-5cfa-9e34-94d1-42b54486ca7d</fd-rule-group>
+    <connected-ltp>79b69572-4586-21fe-efd4-4a81a2b57515</connected-ltp>
+    <name>
+      <value-name>Y43OJ4AsBydopgzOVoFMbbi95PYObUu2YpQAli2XJ7d8oNWb3tXeE7nKPeq08U2ZcKzx3tmMBAMRnA2q3REAZ2cGgCygot7Ady082mMvWqmj0gBW78oYaAwi45qsqyVD6VE0hqveRJpJZ1xZ9VPbvelrbLUBjP6</value-name>
+      <value>CKiT3O7Mppvhi38rQPue3PFeAzPMgW4SymEB2Dns2LBkGJDwy7KuOqIhRq30e</value>
+    </name>
+    <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_PASSIVE</administrative-control>
+    <supporting-pc>A5acpfJFE7AApBNxwk9GS76gIXBM9CKBHMFYTpvxo68NzNl57mEStK84zBIAdkbN6RLR89pwfpbOcwLcTh4e24atFSWSc7FaQj2QsjmHIynMW0YHi2Wc66xLRtwVtb6bm02ObgnLGCxvDwcNq0RxZga</supporting-pc>
+    <extension>
+      <value-name>T0qbDngnYtda7CxR5E6p2XjrWMKOUSJFT2Qop6MorRyyuYhzunQwc1X9OHPAsr7dtXBS3f8m7zUtpcUTrLpwEeFkNmMfNTk8QWTLbT7asUDJ6qCp3TVH7s2VHO2mAn</value-name>
+      <value>qbg4m93puXUdVkQdnB85JtZwaFywfNTyY9CdjxCNvw0iJIv6cE3VZ2j9ARxPxrfvARALhcqMBj4k1Ai56m05gj6Q3vysWNXpxq2OCtA5MwhFYALWOLT4XZVSnlkj89AFzDt46V1SkjxiTafzW0DL0qvfLPyUQ1rqEVmCInu2GTdr4s0SswvkW0zAH0mx1NPxAb9bzvd7gqrcKr45PrhErJe8JsyC7n1Az2L0</value>
+    </extension>
+    <embedded-clock>
+      <local-id>2iE81LrPwXYD64P5N03VjdOyO7J121XWkt5dfo2DlSgrWXwBPrp0wdzddae7bc3nF0AMpuhKey4anAEdU35q8EDdGSkSWoftoI8NcpqrXutd47iQ2n932MgAwBssZAOfaWVmllF</local-id>
+      <lifecycle-state>LIFECYCLE_STATE_PENDING_REMOVAL</lifecycle-state>
+      <label>
+        <value-name>VhwJ7gZ</value-name>
+        <value>BWl5G4OU05bDmQ2w32JcyUat4G43W3IpRWvqSbkL8oon6qT2lD6Lpg6tWawK57aP3xfNAryJPXYWfRYsm45EcbZ0loKrvM8qbn5MOEnEtlsA4i3je8XqcWixk2QHHYZSl5w2JLy460E3azmoIbGU7YjkS2Tr0TceQIgrmOvkG9nQJB6jME5UCg6miZOjKSpAsF1Olo91ywJ90PkMlhyXxEbQwR1gJqJcXC0i11brqUAqBMcW</value>
+      </label>
+      <encapsulated-casc>xh3KvPyvhRSlIOLhZB0BSwpdC6uuvC13T5FoMdT3WEgEsTNjmFMe33jF1O1xq3Ab0fzMktHg7PMrIzC56pb9svOubQ1tTtELIdxUy62xVOQvftslKEu41iqc0jFTMjEmo3gX1iuWYdk5GMqiqMer5Fv5YaRDlnZKj8Hki399gteO7F6qrdRoSfmIp5lLkdvDd4Yv7ZEgkT4rq3RJ8B00QeI7jWSD9f9eb7JbYgri1nBjil2q</encapsulated-casc>
+      <encompassed-clock>AsuvU4rbRSpT9HFIa7buM3wiMnUvF4TfonCij3l3NKWXjCxmJIQvEeGqCsW9wHoN415fWriK3fzfR6BsPrXtGvLaYzjmgz9cs7spyK1tRAIAGj2nDSIjnull3EIc5JoyQQPgtQKkqsVYEPehHWsXiNaejSqouOOkxDB0tlcLFZKbPYso</encompassed-clock>
+      <name>
+        <value-name>P1oL0GC33LYXpeyWPSgGk4Ou</value-name>
+        <value>JJe4opLhFwid0dgDb</value>
+      </name>
+      <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_ACTIVE</administrative-control>
+      <extension>
+        <value-name>LLshOaNG3WhtFlihesafDBFp35SPaGKVjdc8n0GrOPMtb5CppNw3o4ks9d9jLU657j5mbLFZskkDhOUGtrBSvWcw1dIM7OR6ZOl2r0TUc5xtUk2nDD</value-name>
+        <value>0zbwAp6fwVYvMNQPeII8VOygASiXnWXnn8TQx05WN3jzI9gXJZXwFnNf7X4uL1R92LZzDWniZGRAH8xrZmPEKuLRsPmdJdeLQ5cl1ADT8ntQvS9meYSYtD</value>
+      </extension>
+      <phase-aligned-clock>4FWoq782APXUwepFATR6jnGPlBKxGc5DRUTa11c</phase-aligned-clock>
+      <address>397OSc1detJ7B6sjtksPqjHhEcZrwVbsWigOn9UBCDA6JUp4eKTEVsVzEMS2H3uweLkBM64hJEnkqEoEg9abBYCfCuicqMIEp2f41jlCPAXf6dLnfVyQL3Yox8AXUaBc4I851tIQ3x51CIoRwPIhSGxpOZfA9IEerMjk7Tb2q843RsUfhuw12WrIVybXgP3zumUB8Xwy5AtO2g3cKsdFgwn34q0d83ECiy5qvBQt3k9</address>
+      <encapsulated-fc>
+        <uuid>6e74b9e1-ab82-e9cf-5936-c51be1f174e0</uuid>
+        <configuration-and-switch-control>j8xrLjeH8pyDhj6Qej3xobxFIsWNCwQWwnf9ymRyLpb2AiKOtGeKRLpzdleHJ4vfjDhJZ8iCptw0DhG7XURGx8gKlmk4jPbCssejswVSRsKnJiuy5deCdmfyJzu2gFwJ0K2s8QcSiOfT7Bj4GxGTMVjnuNpLkNmkqgFq6Jigqp9p0stG</configuration-and-switch-control>
+        <local-id>bryQT9uX4v5DA6K0TCX6a71UN3jZyh2BJArCBNryiw3TvOLoqAuBHnnmqGdRXgsyQM2krtSK0VvnJ8L2I7vhvSEVqREn77WQLY2ckUOcPjzrrcl1jQjGIXu0G8nO7bwK2yXmkDy1PZs8bFamvt35ip5YxlExo2hqA6EUK4Wz3gH6WJtjcopmNmlcHZJ621ou7VhJZ5aVlK19tmtyKKUp6fCG7lE1m2nmXE5PJ8CX</local-id>
+        <lifecycle-state>LIFECYCLE_STATE_PENDING_REMOVAL</lifecycle-state>
+        <external-managed-id>
+          <manager-identifier>Lhj7l5EV3kdOaXA5dzjXfZUfO5do53oIkHQxEmkHyxoIuQFAhYxwXkLDhQ1eThX5YFvuTP4rns1JaGjrEJYt3B7cs0ida7j0EOvxvzYSTZC3xNubwkxrWwvgwOtGNEHsk4RQDIIozcr70Nao8HQ4dlc</manager-identifier>
+          <external-managed-uuid>1FaPkR9EN0uiI5Gi9Zh1NrqN98JmlVYnA94MSdrG5NYOKxYUwfNbG5YHdH4rCUO5VKROPamUQcAABqm8F2be7aVdJREeEkjz42fTdtF3Ggv9GKheMtkTv76eZKsv4D40GkTLNrGlHbvfVEtzZFtuNrBEc398z59fpU05lGiUJFaxcv6</external-managed-uuid>
+        </external-managed-id>
+        <supported-link>5KTrxacSXq4nHBOFlYWLoX2givX2EoyJ1r3yBfiqyfO7QuM3kAGIqIZIdOCS4at5tww4EOuc3ajMwXHRqorQ6iqcY2W34h0xGwBkdXo80zUowu7WSzEQJ4UAYQv20vzGU2070gfSP2gdwo2gPyYqDT0tBvwB15hN09U0p1K6V0cjg6z5Eyo9joDUU9wN6NA6PmY6fIdbBhu</supported-link>
+        <label>
+          <value-name>BAVgcBKY0QPAZzJFjp1qhdt6YUcq4M1xeOOrhqhhg6R8FsFRRGh0UC6KwjaB538jROC8eTpnZgvxAaokJxkvarfGKi9Hla0dYvd5oDsgLXNmZ3GAA05Crdb3nkKImDNl81qoESEhHjDGej9HcejDjuHGHjh3W4g45GlBqZT7boGhAPYMVih7EQNda4961p36YoAofloiBWAbDyXqI7</value-name>
+          <value>nXls7hB6i19hZxJfM4v5xjxJW5yfOFM3DZvKh7Qz0RIZor63nC0VVxEKu4ZaKDdnDBZUIIlAz4rQnxLL1LyPa4rw8qHS3Ufyv7k5PyFgu66RwRupu2ew6F3fXK7TwfrUmER3cpjGnixT12joWpU35PiUrhNYw7KKLBNP07vohU9iOkGLKtGHiYtC79sEgcgTF4IG35</value>
+        </label>
+        <layer-protocol-name xmlns:x="urn:onf:yang:mac-fd-1-0">x:LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER</layer-protocol-name>
+        <fc-route>yP0gsvJ4ttth9slxZMQkwTvZN25W40FuPGD93mexPzGR12oSG6ccZAbEC9</fc-route>
+        <name>
+          <value-name>G2aVwQURuN6obseHpVjpxgh2mvUOgpRWj1KPJwG5kEun6A4ovn</value-name>
+          <value>2vXWSsRyA8hxrb9gUFO0ZtmerWjHjynd4c9OESe60vDrGMztsgljBHy2vJCG9RTd3UTzN7FFvjZ3XyohGJBhq1cNKOtTxeZA9K9OKOl7ZkaXLz6raz</value>
+        </name>
+        <administrative-control>ADMINISTRATIVE_CONTROL_UNLOCK</administrative-control>
+        <supporting-pc>n4H1u53FtGzfHXUNDmMsIKyYlD1OUvp9r63N36sxM2ElRz0uVMWwpnmC0niVSH4kO77R5sgRmV4dm5I9JwF8T1CUoUH9CDliDk9IMis85werBOsdk8l61YSiKrrm4MEH6GqLYST3gZmKNOX0Oa6I0Q</supporting-pc>
+        <extension>
+          <value-name>kZXuGi3jUwZBGP4iW5KslWJ6uNG2ILYUDVob5ruZXtswipO6uzzInaORXnTx0JrvxHGu9auYvOuF5bMACdaZnYJcduJe62JvJiZSslJQa5vfghHSuRKRIl3VHE1FGLaq3aanvLdxRBNZSuKfemYWz</value-name>
+          <value>RgqTW7wYpr8zOwlU34vI3f5Fmj1dfA76JxRxwfvVGwnv2IhXEMGzTLfg48tbBs9cR1Jog6bXuyko8tmM7Ue0Ft8BttM4VVgFOR3XY6MkF6JNr5syZGyw1HZu2DrYyzDfrychwYBbWcRnhbV8RlwKUn6X0xNrZiGiQSzeI2qwf9L</value>
+        </extension>
+        <service-priority>-9223372036854775808</service-priority>
+        <forwarding-direction>FORWARDING_DIRECTION_UNDEFINED_OR_UNKNOWN</forwarding-direction>
+        <fc-port>
+          <local-id>KShcC2PcfFUsiCRhCiAzEzr1DiA9KtEmdNqPIf1XUOp5i8mUqWl4nEX1Wp2yTzUYmdGWszTffbkybGkCuGyKkoD9FFHqeuptH5p1EbgUeskp0ETnck7xIKyfpfGwB5Za2gcGrksxNMXNrIaD292CTASbIyHbvymxOyd8SyFFkulDdn97x3KqECte2apxAL4pb9p4H4BUrWxEcGLJKn1gRvmTxLi8pepAoO</local-id>
+          <lifecycle-state>LIFECYCLE_STATE_INSTALLED</lifecycle-state>
+          <logical-termination-point>8c0b5632-f6b1-1b90-dc8d-4334c833133c</logical-termination-point>
+          <fc-route-feeds-fc-port-egress>u5ia5WBfDtDcZWz3aAIfax278WCsPejkjBmgpXoVi17aYzd01Vfblhil5VNV167kztsZiQMASTKIkYIlLQoYZzj5m6Sn4ZzEs1</fc-route-feeds-fc-port-egress>
+          <label>
+            <value-name>7Z6d2ac3SB3uBshpITXJfUGX9f3r0rD8rBdlLqovTjZuM9LuUB5anDZwS2XTusTN368GoobhH3El4hHYSM0gpZEa2uVoWG3SMby3zCc8xQmB03zSIA0ZrF1l9WJXCMPhPgcgKophfDSfGjZgT0gdxhyy6ivAWdRMl325kjezWYGvhxL3pTgW3Om9YSJ</value-name>
+            <value>Xtzaot7INl9BbPYsfCnEvDBykXHiHj5wMwG20FLF0U83C7wRJTv6pYFJOeTnpRMbnkef0RUSLVWf2sYDdmJCkgd0n7gMQ2Qdm4lmN7fq23G4vEzA0b5dri5Ohlt7njdKfyY2F5sA80wvx66phbuAlAhvVKub3zNa7L4FRo7RpDnWJtdSwItJiKe5uJgpa3raHvPqTWharwYbZc3nUo748d1uOaLZ5c9MzQ4lEev5</value>
+          </label>
+          <selection-priority>-9223372036854775808</selection-priority>
+          <name>
+            <value-name>XK8R3WhH8XlJzALHs83dFHwFYK4q0KXYn5PqT602WlDnVgXfoStWrZtpByQCaNAxKhYDoYxcb3rYjoeAhHoIyR09hQLsvdZ7vPCLN2XY5oPgF3QWCew26w3nePHBUHIpodacfZ2cgRsVM</value-name>
+            <value>JgpfivEmLS3smX14fq9huohoAx83kUe33Dal1OzEHC63s0ZHi1YEh72SwaNQXTL0oWdpKF3j92eBU6a471Io0K8xNNfCG1u5XHmHeiTo</value>
+          </name>
+          <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE</administrative-control>
+          <role>z9g3YOG8RUeoCF5tGZJqFPCKG4VkHWU8523WQKWIw2Y8HVtfM4FsTh4zmZLVOy3LA6zjIvT7xJ7eFBtjF0LriP0wHEjnce8EcIPN5IU</role>
+          <extension>
+            <value-name>u8Cy4ZksYotchX0rBRxN0jfQgAuu5serAQZEIj7GzAKRpDi0uPGn1VdhnALs2ZMCIL9qXgYwIJf7ey0IfG5gtbpQD2aF2W9CIi2xqS38Bj8PJ8qYOn7hyw73zhIt6KXOURdlJgldrtU2Bk1pA</value-name>
+            <value>y0ox4XPMiVo7BbYOwIWJVgdHiO2b6ubwuA4ypLdAyBH1MGPagDU3TZK4FEfL8ra</value>
+          </extension>
+          <fc-port>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</fc-port>
+          <fc-port-direction>PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN</fc-port-direction>
+          <address>ZoSxSAyE8fHoK</address>
+          <port-of-internal-fc>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</port-of-internal-fc>
+          <is-protection-lock-out>false</is-protection-lock-out>
+        </fc-port>
+        <fc-switch>
+          <local-id>fQKrF8mUTE5A5n517hU4pfPHp071EoUL6wcDFrxy5C02ZX36eX3E4KdlCcngA9Tyx5bcoADlcDn3tq1Hg4dcOqyqCNy4WrutpFyNf31jyoe1PgJXkO917HjJmSGibaEsI48P799FxnHevibQ6dJ5U2P9MnrQpXa71iX0jYGRdf5Jp9rnm2t84ahJpBzOyJOsUDsdB0WG7Uho3IMhK7pHhzqGaRmAsaUeNfsgfoXfa6DdPhmro</local-id>
+          <configuration-and-switch-control>3xabExRDm5C4zGauU0RcsD7sPAisMIuIgwTU3DpiI2mhIwEvxvHR1GjIgC22kwKAVwmQ1M8JGuToTxTiUs9N8twg5yjhXVKSjYAkCJWi5PzYekg0NiONLk4ISfRH2BzmA2y4LunIbWHhgPiV76JKiFk2UcKWN</configuration-and-switch-control>
+          <internal-configuration-and-switch-control>afdJkY5zH9vgqDXIzXGaHYP21J6LxTWI1ard0wMzF9PYMFGlCfvbdc5eVbZt5O3YYu3QSPqqQ7oCMWQgbdspqxvdJnGGbJw15zRYg9g6hEAVsqcEwwVW3i9EFIcIjIJp9tfpunnL1YHlgLRMhMAc5KRCk3lDEWUNh1dMosphq6DzJud09O56yWISRVnvSib1</internal-configuration-and-switch-control>
+          <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_BUSY</lifecycle-state>
+          <label>
+            <value-name>9ABcTHSa2UXAKGvIpkgTTSueH1XlzntAX4NJDxLFjIfVgCExPUqAEMPdNEyf11PQXurA2c7dMn92RNrGzRh5w6jbKRqDLglAKNbEZiSMxTGpy8X7R</value-name>
+            <value>4fcnrO7RjKZFkCsngjG055LEmjEkinqnDDC4jJVDlViGpK3F3By1HjxVv3fNqy233x7m8VZuI9a7L5EHHcAgo7bTajyARtwU0Dg8y8C8hEf3KUC</value>
+          </label>
+          <switch-selects-ports>PORT_DIRECTION_OMNIDIRECTIONAL</switch-selects-ports>
+          <reversion-mode>REVERSION_MODE_NON-REVERTIVE</reversion-mode>
+          <name>
+            <value-name>8xdq5f9sPCCKQiZaq6rfdBm</value-name>
+            <value>Hb83uxHD4UV295uRzYthgkkHqLWEman3lvZQUGlRB8TC5ftEdWOmg83zTR572s3fP2XCAal3jeGot1VyYJU6RPxCzCBtWEIEyy</value>
+          </name>
+          <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_PASSIVE</administrative-control>
+          <extension>
+            <value-name>YczmbK7l3yNMTjGTPPTfPoo62D1EpvXoHwCS9K54aTR34pOL6z1VXpUSUNokjmI0ScL1WQ6YBPTyeHjl9k8YB2IoQ7I9li15uM7jv596M3ESCY5LaeKEgs26rC7MU1SgNRziOJhAEVkgLq2OEEkUYmTqY04K1W0HNsRt38VHWgXzGRfknz6mVZML0QvTFoskIkOLsJkg</value-name>
+            <value>9Qx15J</value>
+          </extension>
+          <wait-to-restore-time>-9223372036854775808</wait-to-restore-time>
+          <profile-proxy>3j0QTrNv3YfhvuNcuJBl1swWecZFWTNZ4NHY7nl2lsjIW7VjIoECQayXepCabh2fXJ54Yq6bShUPoH07XEBOO9D3q75Bp7RmJWiHfoT7FFOWeOV3swR9xmcXuhrTha70YpHdFsdcZT85IV92jS3QffGBpZuG1tGZSf5xAiJr3KxLFyGRqJzxR7886uO7Xm7Ht4e3eQnhAM37kBYCcq</profile-proxy>
+          <control-parameters>
+            <network-scheme-specification>WDyWHw0fWYFau4ZDsPswjrWW5ISIBjkqWSeDheKd5pnrum4W4oknHgcNQ4njfHB3sQGJWjWTIkl4yh0CycSfs42a0iugZ5jrNS2KbZDTbQYJ0Qey36NnaIya02iR7CbNudxFc2qnLgZL7db2bYpdyXnyZGqZaBEEO3bT5t8IK7tJcELnv2A30QuRoMIyfm43p7OnAX5cWrV1XyosBRotzSkXw3nLhjGzivWSk1XgkKhibyCM</network-scheme-specification>
+            <hold-off-time>-9223372036854775808</hold-off-time>
+            <wait-to-revert-time>-9223372036854775808</wait-to-revert-time>
+            <reversion-mode>REVERSION_MODE_REVERTIVE</reversion-mode>
+            <prot-type>Z9buANZNF0BK61yGLiu9NejYfCe3cX84YbyyYxlEpPgvQP4C7yDMMWD1</prot-type>
+          </control-parameters>
+          <hold-off-time>-9223372036854775808</hold-off-time>
+          <selected-fc-port>
+            <local-id>KM1V0QYiB5SJHHcQ1j0BMwbWS</local-id>
+            <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_BUSY</lifecycle-state>
+            <logical-termination-point>2b454936-1b31-1d28-4dda-1d3475708a0e</logical-termination-point>
+            <fc-route-feeds-fc-port-egress>EWSudKd0OdXb1kghK1rIF4jeSlz5OQ5kMXO0HU0oZPr01HaMABm8xGmpTVuHDz2qpIiYuaetZFmTfwxHZTPwrbNdZ9UCJOU0pcYTm5feCBZRZwrYh8mBc1ObaAFThsLyECrTHG7j9638umYDuk6GlUJwnhhwJV4nxn864fh5dkezy453pbBCYl0dCaJd5NAuaJA6QRcW4inCmsxDE98um8HQiq3f5vJf6jeX3qL7A8JWB9s7iABEIamTAp0F</fc-route-feeds-fc-port-egress>
+            <label>
+              <value-name>uVcmGRFsMK0nEktoMz1z</value-name>
+              <value>vCFvbtFWqujdHFTqkd4WdsspNQ3eJDN67kBaN97dDiqcXbu9pz5uTx</value>
+            </label>
+            <selection-priority>-9223372036854775808</selection-priority>
+            <name>
+              <value-name>oh5V3HA4CAUtTnqD77cbPdnHO9d0YXWe6T2asC6541qXgQtfQFrxLOfzPkrFigUo1WymqFjuyJkGzNWpkfX534xKoQqyYcXS0neqUxUkg61PTX764W370sRgb9P9lM1l17LWEy8ME9uqYBo2xr1pMLFXUuY88St2Z7YwFYij0MBYfZTEjU35xJUk5Ss6C</value-name>
+              <value>8C260HWiTW</value>
+            </name>
+            <administrative-control>ADMINISTRATIVE_CONTROL_QUIESCENT</administrative-control>
+            <role>HRCjSKYzM2sw1pJi74C4QNQwtl7Bx03eKGquqo34qvBrVcBUhdQ71GwmTvXqv0x7yXCRlFVDboWYBxKSKsRD0fZTKOb8HIf7xRYSpMnsajqLQ2vtunYuuQn7wqf59mdG6brvXGX00fDI993Do27SSmZoM6uNlzmrKFOAlDsdK5WT6ZwmTvfDR62v5obqXxRzcx1xalLUrzNpqbMcGTPpZJM47XuWudoyKhYMDBGWa</role>
+            <extension>
+              <value-name>GfPUZkz5jTzuGAtUdLciAgMJFdG165NEkDqbXZh9SIDziYlnBpFbFkMcxk6wpTaJwBVmA4vlM0U</value-name>
+              <value>Y7jzoRCWbg0AA66Z0hIoSvKkz7FdZr9XqloPcSLn8LXASWzKda8XFL97SPkK8mzzH</value>
+            </extension>
+            <fc-port>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</fc-port>
+            <fc-port-direction>PORT_DIRECTION_BIDIRECTIONAL</fc-port-direction>
+            <address>8JwXjgTT0YV9NsUXzEEMgM0QdHGlsoeA7DpjTj4U9ZVXrHUTdqxu4xkae0vGgC8gfxz8IDUSCHHVgtGuTdQXC27Q2voa7oqmWRmwu9gYQXM7qstjyj9al8TfD9pKyIYmzlSWu1UcYyjp1MAr5JBiKmxnwP04pYiYb2MF3zS2</address>
+            <port-of-internal-fc>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</port-of-internal-fc>
+            <is-protection-lock-out>true</is-protection-lock-out>
+          </selected-fc-port>
+          <switch-control>SWITCH_CONTROL_MANUAL</switch-control>
+          <address>Pg6HZBtERVYzfEcAgwQ7GyxzwgP36kvOABvz5Y5WUWo1sABIZkIxSfYgnFjmZPasiF1nwZciVsbfUNYTZyiJNg02WjoV0yfj69yu8CMV4XaZC0Kty3ddj5g7oEVp5aA</address>
+          <prot-type>wsbA7QPLY8Vt19Fk0V4xNEXkM41aOuBkOFUVvCylKtPMumYuh2T5zQhlUioBERVswIfTkOfW94AEiy0ztUw2CNfp5D0BnNVTv3NPRUE0Qew8NxH8j6aNTpcR34siSgbfjQ52CB2sPrsuQ2C18MO141S7XdhHtsXMbUONvI8k</prot-type>
+        </fc-switch>
+        <lower-level-fc>25fbedaf-00e7-2908-fe09-07fe37aca56a</lower-level-fc>
+        <address>TVFGbLDbbqCaIisq2TECNW82XTj9jIcdvRTGvoKGGmIgxayrV44I14DYQW09wceTW7sjncZ3qHbXJJpEOleHpRxf</address>
+        <is-protection-lock-out>true</is-protection-lock-out>
+      </encapsulated-fc>
+      <sync-ltp>5b29f3db-6f13-96c1-f189-f038af15cc4a</sync-ltp>
+    </embedded-clock>
+    <client-ltp>4ace155c-6c04-f585-d9ec-d6a845794520</client-ltp>
+    <layer-protocol>
+      <local-id>OmMsasPWbKTiep7OpEi3Xk6Boe9EeEvU09m2BbQMWK5214QiB1lyls1CG2gMGDGyM2Bg5rUT3RV4OEmpFIPS2RmITCms720UWB2TVWNYOI3Ceh1LZIE1z0BlvXFCZFoN9qH4nmU3WPFb7yW6gs0IlBVIzAkq7B6g</local-id>
+      <configuration-and-switch-control>0gX69d7J8EGBvBPm8JZYFRoM95UMR6jRm9QvmP6mlMQRoxdo84nNVDsWJmAssUbGV1chIiw45mNlTSB1WYGJu0F5nfxH1IoWCs6kKCgHY3UJNwKJmikQjZVy7kf03vXxXVRAx09nV4YJsAkOSFxbwkJDFREAet74oQwNQF2EB0n3AzSkehwLB7ggQUQ5fX1DGxiwck2GcpJMZt75KvImuZulLdi12jwIQP7U19AezcSqFZnim6wR504IdeBg</configuration-and-switch-control>
+      <configured-client-capacity>iNIm3kTjCdh9JSG5Ty2WdCs6MSUSu3rEI90MuL5YYe7A7OFSezOr39pP1kHvf99Xa1JwEGvuVuWUatEoUkPXt7NurmZGn0DyTf4pVrUIOIuYc8f6t44W3Jru5i2lbyT4NPmA9gjXYNN2W21hZXd2GwxDHrYSZJOMr2nAiyp9dc3174i61o8zUx5tZVdYx2DY4SqfqPgD</configured-client-capacity>
+      <fc-blocks-signal-to-lp>YfP51I7CWGOPYlGdvVj1EgUAZZOs7dA6sh3t02XOIDvyR4MmZXgvea551Tx9607q92L15BQNele5hSkgPALVCI0DBqMziTRrWvt16bGcoUiGEuWu4ApyaibMAYdKJX3FswyqzfCY1MEGgs2cUjK5tWJ3MWNnLR35ftvPA0FCMja3L4fyn0D</fc-blocks-signal-to-lp>
+      <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_AVAILABLE</lifecycle-state>
+      <label>
+        <value-name>oZktvFjxAqjJz3Xs35AUlacv0L4QGNB4EWp9tAGVSRFrUuTPrtKFvWavzfd72H3GvsHYUfMN6j60N0H6lrLRfWeH3kO51SDocce7r0MxbSpYS656qQXxE3eHf3E8V9w7lL6MDSbPLsFvzCBRlqoZmvzBq5Kd78ckLj7h3a6G</value-name>
+        <value>Dc4gFVB6bsky1VYZxb6yoqjHpACsyj5cn1k2OV0Znkqh8ogxAe5YEhxWJ1oakleHmyKatC1IPrZXQ7milk80txW4yceTxssT04VlHW4wg3lYbzgwTgoeNcjdox</value>
+      </label>
+      <vlan-interface-pac xmlns="urn:onf:yang:vlan-interface-1-0">
+        <vlan-interface-configuration>
+          <drop-eligible-encoding-is-required>true</drop-eligible-encoding-is-required>
+          <external-to-internal-vlan-id-mapping-list>
+            <external-vlan-id>-24583</external-vlan-id>
+            <internal-vlan-id>32175</internal-vlan-id>
+          </external-to-internal-vlan-id-mapping-list>
+          <restricted-automated-vlan-registration-is-on>false</restricted-automated-vlan-registration-is-on>
+          <received-priority-overwriting-is-on>false</received-priority-overwriting-is-on>
+          <default-priority>113</default-priority>
+          <internal-to-egress-vlan-id-mapping-list>
+            <internal-vlan-id>-26376</internal-vlan-id>
+            <egress-vlan-id>-10246</egress-vlan-id>
+          </internal-to-egress-vlan-id-mapping-list>
+          <priority-to-traffic-class-mapping-list>
+            <priority-value>-36</priority-value>
+            <traffic-class-value>-102</traffic-class-value>
+          </priority-to-traffic-class-mapping-list>
+          <pcp-bit-to-priority-mapping-list>
+            <to-be-decoded-pcp-bits-value>49</to-be-decoded-pcp-bits-value>
+            <associated-drop-eligibility>false</associated-drop-eligibility>
+            <associated-priority-value>18</associated-priority-value>
+          </pcp-bit-to-priority-mapping-list>
+          <service-access-priority-tagging-is-on>true</service-access-priority-tagging-is-on>
+          <interface-name>mEc11dw7CiPoBDMzNf0gh0t8CgwclZ0HvcIpp6wUoeiRRWjE4jMdcglGoJSCITj65Uvn01hh7r0ZojvkDaxHqTnGC7idSujQoOdgHmpPNqG3J3nedVVvGi4aqmnaQy06m5fWrED7Wb2G6iUk5QHL0LVi0btQJtP6zWUSsxZpA</interface-name>
+          <default-vlan-id>-9223372036854775808</default-vlan-id>
+          <interface-kind>INTERFACE_KIND_TYPE_D_BRIDGE_PORT</interface-kind>
+          <ingress-vlan-id-filtering-is-on>false</ingress-vlan-id-filtering-is-on>
+          <pcp-bits-interpretation-kind>PCP_BITS_INTERPRETATION_KIND_TYPE_8P0D</pcp-bits-interpretation-kind>
+          <forwarded-protocol-vlan-id-grouping-list>
+            <forwarded-protocol-group-id>-1082144443</forwarded-protocol-group-id>
+            <forwarded-vlan-id-list>-9223372036854775808</forwarded-vlan-id-list>
+          </forwarded-protocol-vlan-id-grouping-list>
+          <ingress-tag-filtering>INGRESS_TAG_FILTERING_TYPE_VLAN_TAGGED_FRAMES_ONLY</ingress-tag-filtering>
+          <admin-point-to-point>ADMIN_POINT_TO_POINT_TYPE_NOT_YET_DEFINED</admin-point-to-point>
+          <received-priority-overwriting-list>
+            <to-be-overwritten-priority-value>69</to-be-overwritten-priority-value>
+            <new-priority-value>-33</new-priority-value>
+          </received-priority-overwriting-list>
+          <egress-vlan-id-translation-is-on>false</egress-vlan-id-translation-is-on>
+          <service-access-priority-mapping-list>
+            <c-vlan-priority-value>42</c-vlan-priority-value>
+            <s-vlan-pcp-bits-value>61</s-vlan-pcp-bits-value>
+          </service-access-priority-mapping-list>
+          <statistics-is-on>true</statistics-is-on>
+          <drop-eligible-indicator-is-on>false</drop-eligible-indicator-is-on>
+          <vlan-id-translation-is-on>false</vlan-id-translation-is-on>
+          <sub-layer-protocol-name>SUB_LAYER_PROTOCOL_NAME_TYPE_D_BRIDGE_COMPONENT</sub-layer-protocol-name>
+          <pcp-bits-encoding-mapping-list>
+            <to-be-encoded-priority-value>-102</to-be-encoded-priority-value>
+            <to-be-encoded-drop-eligibility>true</to-be-encoded-drop-eligibility>
+            <associated-pcp-bits-value>71</associated-pcp-bits-value>
+          </pcp-bits-encoding-mapping-list>
+        </vlan-interface-configuration>
+      </vlan-interface-pac>
+      <layer-protocol-name xmlns:x="urn:onf:yang:vlan-interface-1-0">x:LAYER_PROTOCOL_NAME_TYPE_VLAN_LAYER</layer-protocol-name>
+      <lp-direction>TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN</lp-direction>
+      <name>
+        <value-name>Fcg1ZjXOY0VoXUxhUfun2cWCpfB0lS10WiTVBQCsJpQyjfP5uktooh0NwuNReHJaZCYslsM4RvubKj87vB</value-name>
+        <value>UToHpSn964K8Vf6fsq2oipSl93tgz5ElY2UfUhgSd1088ZoApiYzHQUI</value>
+      </name>
+      <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE</administrative-control>
+      <extension>
+        <value-name>N0zGSDtecqiIydVwgvENgU3vz8OMwlTcdkS6Pec2EuC4HqAYVeD30yyzGel5A6hFi1D8fP2LjwPTWpJJveFvMd4lsqqUwHrPA5PQUJB67rZ4IAFeGcJkqOFK65wuEXb720XPBqVJRMFsecGUpheHXUr3RPqoMBvHukw5KjGu5lWjqudPLjwBdPwXEWdiqIZU2nRMGq8LD4W3y1Scl</value-name>
+        <value>Fq5bnB0AUqaLc49VRHlZlZWhUmjNqwV5W1hku9MgzX2D13yKKMC5DqfxMycd48iS1r4nARE1GGEHJ5klROrueGT066526gUZHZmaI0boyQX9V9vEXO0bmT4kR9mPp8OZZ39zVcXu2</value>
+      </extension>
+      <termination-state>TERMINATION_STATE_TERMINATED_BIDIRECTIONAL</termination-state>
+      <address>l</address>
+      <is-protection-lock-out>true</is-protection-lock-out>
+    </layer-protocol>
+    <ltp-direction>TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN</ltp-direction>
+    <server-ltp>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</server-ltp>
+    <transfer-capacity-pac>KW6o9GRRB2TBAJIFoGhwTAdDgBvMyOabCgzDOimqlf1VRJsfhJD2cRFsk26TQ8WkgvX4Nku0rnVi6opgZ3ibMYv60BRJJN3ZaTWQ5qQwOMHM2Y2T1d5F3AM34vEFbIxltt3yLUWryv6su0lndi3gTHcP4QufqTBTmEj0qgrYLxq7yMvL4qUP76wbWTrnMU81qs1RIkPlS8tiMYVIoPqnVWqKPJ7uDfv4HwVhQCDAKYSoWG7cvxrjtR3bB2F69</transfer-capacity-pac>
+    <address>qSTKWQzg8dHRjIsLgWTDXl4R6WgWWV5eNRYCHySHDryX9SAhOlVDGRmMGCBCyyQlpHPZfHGS97HaZisGDfbk6yYEaz8A0ZWpyDoNlXxm47wVpQBU5F6455IfwRQwIEOg94Vu1kI5r71IXuv31BZ6yze5q4t0Ah8Jm36ngGlzNeaLAFGCgxIP6WMpSfpkpqWLlU0BAd3grd1USzw8Y6P4VBlFJLS03GLoAD02R3ia</address>
+    <peer-ltp>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</peer-ltp>
+    <ltp-in-other-view>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</ltp-in-other-view>
+  </logical-termination-point>
+  <logical-termination-point>
+    <uuid>59d99753-ab92-2706-76ba-5659eb430e91</uuid>
+    <physical-port-reference>371eda64-3aa3-f78a-2711-ea75d567381f</physical-port-reference>
+    <local-id>ugqYNq38Eh41rz9qNHaTsbt6srnUB3KYb3OZlRZZ9VSAmUS2B2V3eg1GHgsbb41mZPlkGcbH8WauQ2wjXjebr7J1n3cyZdUZ28jAknakjkH9e5sbpGeINXJ2SVAS0mJUu2nPhx1ARIBXO395BfNg5xaXkKHl7qftlCaC1cdKUOIAKJFdYtm3Sw1c9Ip81xBm1MY3Y3NKK</local-id>
+    <lifecycle-state>LIFECYCLE_STATE_PENDING_REMOVAL</lifecycle-state>
+    <external-managed-id>
+      <manager-identifier>rBAU1UljJbdwEc05u9nAHzhiMCdMM4C6y4SzReSAhYYV2ZSw87YPH77tJk7ohKuPOegFs07JQ6wSXhg5ofU5mUqY6ymniI4YWcwhdD0VBpOqG4v4bi2y4soa0KyakC9gPFxUaqPEHv4nsAjDKl3OGrYG3wRn10EIx3CHtjl2PiphSBMuOQiuh83lxUIyMegbiKSD36GKoXT8yGCfwMJFUMSjytRkHZvRJgnFe3hCSbCjR6yfShMEWFY</manager-identifier>
+      <external-managed-uuid>0HHHH4rikOPyJ72tiEM1Kc8uuU9izZMzGt9fysqK87jJedcoSRpC3x7pk8HTZulxPmNnO50OcjxjwJHgsZLwoKVISDuJZPgO3V4J04x5f4oLF5U04Fwlpr39WxSVe0ChWGSWKpTZlhCTfwTb3hwsIAtx7dkeeWnaCgYexS5T1IEg6psaG</external-managed-uuid>
+    </external-managed-id>
+    <label>
+      <value-name>UDZU2gh0dwmZqF355u3AKSNL1RBxB5snIriCzzDMXZDfw</value-name>
+      <value>lBVo4x8Rj1IMycRSzrbJ4KbHo8yToWkJxfZtM7dX8VJyZsrrUCaQflpvuPpKLJlaYkECrRArEbRwwaXiN78</value>
+    </label>
+    <fd-rule-group>4cd72b11-5cfa-9e34-94d1-42b54486ca7d</fd-rule-group>
+    <connected-ltp>5b29f3db-6f13-96c1-f189-f038af15cc4a</connected-ltp>
+    <name>
+      <value-name>85c1ilCztD64Z8IPbGLYrnmEJsE2pSIyXU</value-name>
+      <value>773HsGNoxV7fYF0P6f3CQn9SN1AlYmMYtQFNokcW8bb6Q3NPaQr0eAS1BlesHSi3IXQ79UVh5YgW13L3U430FV1887sQZKLAHtzRom0tkghdk2g67j6E6ZMf6fXXZApz3YirciNwr4JL7ZR6aPK9OooMDdBvN1WQRea4oXsP14s03bY60AfGZvkuIORnHN5qT7ma4PZYTkQOvHUo9140whv65elM2rcNyzXvgPl993PEKC</value>
+    </name>
+    <administrative-control>ADMINISTRATIVE_CONTROL_UNLOCK</administrative-control>
+    <supporting-pc>VMkNI6TCoB7LkOYjEYWq3Ia0EkOXWXhKKBxkzqWPUVB6Cri8p6ykOIkl30aR</supporting-pc>
+    <extension>
+      <value-name>txpPeGrZpM9f6FKpokQ3nzzTKobpvbjQIAxWhYNyKPOQuq7TKPOZpfT9DWy08JRIjoxAnk9Z9PIwfPhRF5Q4kB5PyvPyeGgxXN0c01b9QTxXJ</value-name>
+      <value>GgToc509UqEKYSi6hfUhrUivV0otXZhD732j8UsVc6xaQPg8X2pgWILSI2dy1u39p5kyRNl3LS5CzmCog1FdB</value>
+    </extension>
+    <embedded-clock>
+      <local-id>bjHoqnOkLSycbFZV0SFAhJy4x4JCxo5JHF772OkFGSSJqREqBc0TVrXknyWVWUEvrDDlrX1ZHLJZufi5raQetFzR6nEU9aqsN3O7SP6rsHjWXtTgDCv79WQfbualEsNjntq7apyC6JyVcscI4zHdnxlyTnTpPzIc21jdqJPotgcxIofEPWJcl4K6rwvg56kZ7DcpnUFIaRfK7voWj70F4LLv99E6</local-id>
+      <lifecycle-state>LIFECYCLE_STATE_PLANNED</lifecycle-state>
+      <label>
+        <value-name>2qKWjjj4r5lWhoy5RhpFscTSafroqgHtGrhRCAVVx9ROxiLhz3OTfIDiXXGgdgBMzSDclr7SARzZ9c8AfXlnFYFuVdC1tdN3Yq7bR63jPubYHjqWgLjNCYax4Mqx0dsQwr1fqWzfrK68VwW4a8RM61b2GCAyHUodmhtMdU1EwZEroBvyJfcH8nKORcez6u</value-name>
+        <value>kL76ZT0vhZ2BfD6NedZNefx2YB9xID42p31gXTD6KFH0aGNgTF47Mt2K53aFGeHXhA56tJdegU6jATzmqvl4ZfH4iJBZXaW6L256DikT4q4xcETu16r0m8WERxDGIsElmJrZTMKY4Pn8l8vmeWfA4b7NBClb4ZwiBXhuBUkGBHGOHb2W7ho3lvQW03743DnEAw04ilKTUiHCuKqt1Gpe47a4b98eMnKfMKj4XVYSd</value>
+      </label>
+      <encapsulated-casc>u716LrpnTNT85fxIEelfOqUnbmrj7URtTKzx3YUWEF4BM</encapsulated-casc>
+      <encompassed-clock>AsuvU4rbRSpT9HFIa7buM3wiMnUvF4TfonCij3l3NKWXjCxmJIQvEeGqCsW9wHoN415fWriK3fzfR6BsPrXtGvLaYzjmgz9cs7spyK1tRAIAGj2nDSIjnull3EIc5JoyQQPgtQKkqsVYEPehHWsXiNaejSqouOOkxDB0tlcLFZKbPYso</encompassed-clock>
+      <name>
+        <value-name>Y5euavR4az6UGQ1beQvdQ2htNFCWbI31OhvYEmUPN0BuQCxWsU1bWjECQ9q1Ru2xDyniM9Zs9AOR4lNx8PA40eyIfZJ7tDw63MgIVfaXPYGUbmjj3Tg3ZGLfFme0RCZVgfv4nF14vzQGV1SYU01MGETeSZeCB5pKdUOAzH</value-name>
+        <value>Wgvucwm2je4XVAQ1lH7XadmUq8I0HhwvyTZCieEBsAqf38goPodZBrUTzuT8MhDcbCOtQsWbVmqYmHebX</value>
+      </name>
+      <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE</administrative-control>
+      <extension>
+        <value-name>mz9EV3kkhorssCBtQgQsvudGzaBpUGW886M39ZnqfGKIjm31uTuZgzxPJ0ewG2wG8bJ9aYApFkZQy2R2OdT4MiToiZUR1ixat9jD7LVEYUuwXerLrcHevA</value-name>
+        <value>NrgEsy4u2dOFkrsZpnlOcz7P1jw7OYBupR0Rp4mjh2ZuljlLGGrS8</value>
+      </extension>
+      <phase-aligned-clock>4FWoq782APXUwepFATR6jnGPlBKxGc5DRUTa11c</phase-aligned-clock>
+      <address>8y3B2ks2cJZq38kUCFdPiMoJwwh6x93FH78BrAvvbuN6D707N6X5KlHgRYegZiVyp39IvF6y1TFE1xMGvJDf4coNbC3aUQJbLKU8h0GjLdXEDJc8kIggUEV5gY8bGJmjt8rL004M5TiIvvRPd7Y7DT5TK54iOjC9</address>
+      <encapsulated-fc>
+        <uuid>53660bdb-b77d-4566-99d5-11638c2007b4</uuid>
+        <configuration-and-switch-control>coF0y8P02NuCscJ3zUyMWohyd05k4aHgrmgRm5JgKdK4iu8Rgyw4WFC2FzmJCVR390MwXvEAApESLECTd0X1Fr3cSiOudFpfx3LvyhX1ytTj8n4dn162ka7dsVzxsZM02pntHku7NfrNvv0Sp7NJ9UOtPo0hfF99WwCvQYDw64bBr4tI38kc28FRox1D4aN1Hhw</configuration-and-switch-control>
+        <local-id>wnUnHsLCKc54dxSxv1G7KYBYhaHB71JvgvTYPwssJxwWWoljh2qTS2R14rCbkdGBJrryYT0HqoveMIxVCYOu0Gv4Z07jdFUW7dn56fEoE1CiJaee02I0A6WrYVLbAx0HLfEJua00bCjN</local-id>
+        <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_BUSY</lifecycle-state>
+        <external-managed-id>
+          <manager-identifier>nVnC73AuVCjgYQGwmnhZTpDExaxJO203XgFWbgq6KKnIAVeObnG4MjIjm7V2aN57VL471mdD6slyornzO3vAe5LAcGCmmImhtqomMuZLWcjcDyDjt8LIdwiq5VErD0A6iRkXljI9vTm0sRjV04v5sOnxJ2Qe2rcdawavPKEcDScXKvLCrgHT45rFZ9LTsX6Cl872SEeooil0N6Cefc0b9rJ0suTVkSxx0x</manager-identifier>
+          <external-managed-uuid>LbG9rZusEtWLA0LL94m1wJVr3FZsFwUizBr0sOk69hJJhumjyJk5s</external-managed-uuid>
+        </external-managed-id>
+        <supported-link>e5ZPp3aZ6jjilkP5Ie6ebg1cPaA7iCUwzTlQWwQ2H1c2lT7W05abe3n3dPawj52TQgBFErzllMfGxfCxkEIqHXuNNwb6t5RcdtRRMq474kGCza1LPKcoHy3m4elqccCpxthkLljQFZk6alSZ5WfFuj1qxm</supported-link>
+        <label>
+          <value-name>RgPd6v0o27Y0NUJYG5mn700slwqnlUPd2Eq12ih4pfW41yUHD85K954utnSP9HUbdk4fCmbTt8PvGKcjShV1f0wAnghwPbz2nwaZSlKltAQ1cVc448</value-name>
+          <value>j0uMfC3Lr7clmIvesJYG4qo6CjiHoqFzi1lxDha4gnhCXNQqwP6A7uyKGRr49YDsZRZu8aqgpHSmmJMKqKdx7L9NCAJMqm6h55Ld73twDeTZPxK7aXEhIOWdgFR</value>
+        </label>
+        <layer-protocol-name xmlns:x="urn:onf:yang:pure-ethernet-structure-2-0">x:LAYER_PROTOCOL_NAME_TYPE_PURE_ETHERNET_STRUCTURE_LAYER</layer-protocol-name>
+        <fc-route>NRmr02HXT206jWPIty8Mh4cUSSrFpaj41Fv1zdRs7Jqqx800G1EX5IJYB2vScOW5lsZUxIeEjxXQFPIlQfaWXLMyNhiR6fOjzNe6nsCGZrwwh7J7mTVbEHKjR22P9R8IwmGUHbAyCZ5T6GTkAGv6o7i72kW3b4MIjku0n4q0VnLT4w5wdButAMAC7wGaskKLweDUbWM6jpSfOXDT</fc-route>
+        <name>
+          <value-name>slxfYBQwBp9IWSc6SdanoX1VQyer401peqEc1uAuUJcIuhOmmQBKFDxv3LP7EIwS0bW2xxwjgB1KSIZeyAY65nB80i8ESEoTPlVfSjy0UADEiuKI4AO2Xi</value-name>
+          <value>YAaCtP1ewe9L6kcY7MBL45oE2YtWOLQMd1gGI9U6nVKl8WcfIFSEDgax7DtVobzCcPaMRXT6KvsSrw71b0xO8HlfdG2BSB5Wj8JaXugHZAsi6zbirA6shkzu0CYKdVHw3iySMPADp2NwtQGNqE7zYG4RiUtoH2MDklvYaXt</value>
+        </name>
+        <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE</administrative-control>
+        <supporting-pc>Jrc9YFiijDC9btt9DOTuMPKrb3suAHcc8pd6Wvhf0Lg3eJdSq6ecOYvZ1XluwqGEPLDDgML8x1cDD</supporting-pc>
+        <extension>
+          <value-name>TXQZUu42xqq2Ej2tJEATB62bMYgVv7ugWkfRGkL6Kb8gnaJ6ObRh9LlWBBR6Bdmxxug6GTciXkykv9ibk1ttMGhnh0lKdz</value-name>
+          <value>L3qRJc319frlKAvWMwh8aXpp6qKRDb1gfjZQnUKwa3RMEeAiKRqUGQbF8VoD7hUesLWQGGeIK6ugc5yXOZJnHV2HIikHr6VTSSJqqY82WCa0zJXoAzL9mFI4P2Mg1z1TjLjCBrEpVHpvifLSOoT23B6KvK0wk1hDEA77TMoPlGcDVXnBlgDgJBS6mKDyDU3anbh8XyXae1N1Qau3i</value>
+        </extension>
+        <service-priority>-9223372036854775808</service-priority>
+        <forwarding-direction>FORWARDING_DIRECTION_UNIDIRECTIONAL</forwarding-direction>
+        <fc-port>
+          <local-id>elVJuoQQrJuE8jp6hDs66J0Xl3popJXDWKej049sOEYWPfU6TedZP5O306rpHh3D19W2eYmUucIbsuidJn4qsKtkINKp4FVXOJRUz5G3ao7uLpHmMDM6fgqY32fZH2OoMyidvZ9Ffg10</local-id>
+          <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_AVAILABLE</lifecycle-state>
+          <logical-termination-point>8c0b5632-f6b1-1b90-dc8d-4334c833133c</logical-termination-point>
+          <fc-route-feeds-fc-port-egress>zDufxj3O0wK5SLY2q6CnS87WtB4LSxCk26zAhvga1S7LD5F3bhiVpqRLTNwMl06f7xPg2XqVQyGlDlhPDzCUZuFL94xu4vK32rkXpKS7irsOMJvhb74atBVDxk7CHJxC3RrkubrECLshnXqy5uAq6o3vA37iExUHgd1Kokh1YJidzILw5dW3B0ycVymz589dl2QJn7KdIUq9v3FAguvSm34htiQqqZEL2muht7m31MdwPSY5elXAhTRK3A3tr</fc-route-feeds-fc-port-egress>
+          <label>
+            <value-name>4os1rIe78oNcba9ra4hZFtArG54SnIGr61kpBqoJO3WRe5ig1sfGVH7tM4m9MUsKVM9o4p0SsWJyTUOUm3A9LzDpDRrhLT1zy2XCrXnULYswS9q6cS8PsL7XCyffr8OZb</value-name>
+            <value>uCtRo7HJDsSWy4OGM8jT6Vrd3KlJCwf61JPpIo0dQS9hPYXBY9mWWF1ZpnJTLYRMzy49X4nNXw4EmU7l3t9Z0bRpysbbq2QSBU1yQodFVij94qm7LwYLHH379eisg0kRUdhDCvapFmyJMVQqjGb0o6Zpk9RBabkWpuzTZCawYIfCvX2GD6yTcxjxH20JecFvG7g</value>
+          </label>
+          <selection-priority>-9223372036854775808</selection-priority>
+          <name>
+            <value-name>Iejd1pt9Hj4KqVrtBH710kxRt4YB6R8G5rUYIf7qqbaQ6tjAbiB3D8MY5CAblIJr2vhKKp22s4Try41BnCwSDiQIMiL81urV0IFC7AFsEqTcmUFJobB1lkB8CegvJHiBpY5pqKR42C9poO0M0uGlO9tioBG7aYAAOFReiAjkcsBA8Ce86UmM4P4kjCjtBTVhqMwImHVq1w090fa61wKXdHhwjA0MlV4MAsmO1h</value-name>
+            <value>2O73GmdFoJpdX6vliXlWb9SXBcjpdtw79E3P0gugSUuHSR22OgRZpJOSW091tG1Ck4rccOl4AHDkyGneW66dPM5DMex7UyB6u3byJovj58DvOSBCYHPOmUj01Q8NgJMCEXbflGyiOcNv4o7VYPBcBUcCDciL</value>
+          </name>
+          <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_ACTIVE</administrative-control>
+          <role>8mTMOnLc3WEfGiENVqYJ4W3lGa9wO2WOgHA45m80aN8IXMvKctu</role>
+          <extension>
+            <value-name>Jq3H0ajw7e4DkDwwaHVJKVsQ00dG7t6QT1pTcAhjOmW0Zlp1UkLE85m85zG42EMVGbPSE63sk0ljdKl746E43041sL5upSiXVZPzXLUiDfBQZOPVMl0Qe4RGHO2ZykWubEV9pPj2WMKVBzJnVB51FOHfDJebW2</value-name>
+            <value>7Gt85arZ76BUH3D4Y62ZMQyTl97x59W5IpdFsxFzD8lcbZ815a0J1qumABLFDIClZQ0rfxSKGeWR54T2fLE848mEC8b7IOszwkTDKLniRj1WnMRuqvCuvZ07ZbezRy8fL1SvFfFwqGlOlcaLzN74E7cvai42RchC62ZLhw9I4uopyy27d9cJggejyilhnuLlwC6G87oduEC24F2aO6TXm0gMit4xPHSmkQ2sYixkOaeSHg2nmWcI</value>
+          </extension>
+          <fc-port>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</fc-port>
+          <fc-port-direction>PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN</fc-port-direction>
+          <address>jwD0oRc7Lx5V4hJ6vBNMwb0knJ8IY6nhC091Jm8uT5pXe04JuJn0Mok27kKXq7e30f4JB46m1ncfo8YSReSEC4GBoiyOhEJhTFTvJZJCmVRC3IuNWejqaR1q9z7idQA6wlt7c5Ky0t3W3xJRE2hOLifUJm4OcENAR8I3dkueNxaJ4LAIFKpq2EcESgsWNfxEofIBz4HeBJXF</address>
+          <port-of-internal-fc>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</port-of-internal-fc>
+          <is-protection-lock-out>false</is-protection-lock-out>
+        </fc-port>
+        <fc-switch>
+          <local-id>1Bdk99ipu1uYi72nJFKn4eTcE8DmCU0vndQxe0OI1iyjqBy18ipcxag3b</local-id>
+          <configuration-and-switch-control>Me6Dep86oMKab40j95JQyYH9CHr1yfVclTQzbYxzCaJNeCYfHI5</configuration-and-switch-control>
+          <internal-configuration-and-switch-control>yE9blAcLP7Q2Tyu4o1D0beGhQEwqeuyN8HYma27R1XUUnoYLhtMtIkKqQhQ5LgKLQI70C7RD4Dyk1o5jSJEs3gSMxBRaRtWH3VzF2riZ4IjY7o9R8Nb33VPtwyvo1jX4fxJ9QU8MCrCBILkQqnLmjtHP145VoVRvstEanNWR6zlOcxwvViR6LqVEuTrSOjf8MUa1z6SFxduCLS7y2YENgrkKcLD04S0IEaJd9CTyHfak7hS27oPnQ182FDVBn</internal-configuration-and-switch-control>
+          <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_AVAILABLE</lifecycle-state>
+          <label>
+            <value-name>MQkd6hE4e3eK3DQKZIMpw5Xu3rDP2r0Oac2gmydABrdFX3hWEVd202wWu2DwtvdDIfM4FZwhiJO7F5Vb01dS3CGxEj47P9Dpohl38RcqtSq0Xl3PmgAiS8PwsLwhU1yaiT6qCaIX38XSm0AA92STaIiClOL8PjiZ4gpHr7Em8u</value-name>
+            <value>umO4nIXhTxznKf9S4k3Vpjk6CjCYr65NlTKIuzZn6qKIFLtB6wwvHIBk25alcf1p1L7vkZSipu05gtGeR5JzNcLPhV3l34K4PSz1Rjj8FbdNFM1oRKP</value>
+          </label>
+          <switch-selects-ports>PORT_DIRECTION_OUTPUT</switch-selects-ports>
+          <reversion-mode>REVERSION_MODE_NON-REVERTIVE</reversion-mode>
+          <name>
+            <value-name>hNOib3v1sK1hkUzTdRmDLmV2zkcPgnB</value-name>
+            <value>3hPeld7NX049UwU7f8C0vp24K7L0mnppEfvZsCFhCBqo7dnflZfQpaM1hyTDNiVrxqjZVQ8prrOrEbGZ3VIs5ute2mSHwN145kVS24itnYU11AS4oAwl5RAZ5sHC7IGcUt5WpfhM5cF6Eyb28zo5rYXwiw8p6Gt02qOrx56C9LJO</value>
+          </name>
+          <administrative-control>ADMINISTRATIVE_CONTROL_QUIESCENT</administrative-control>
+          <extension>
+            <value-name>WAm6ohrjl</value-name>
+            <value>n2WO3FZmNExTs4Flto6a2ULg01xkkSwzMknPZe3MSBFcxcy0Aw3viOLbHbvT3TsIdHxcVBQF4oSBAiu3Oxy6db9UmEFixZ0KGpOt0F043Syv22yIrYHEaQqwv5GU4GxC6lXYSXVNItjKnJlOI2kSKKg7HX2Dvz7tM4sx1fkBADeXfzDXtXHdHPlgEfTaO0v</value>
+          </extension>
+          <wait-to-restore-time>-9223372036854775808</wait-to-restore-time>
+          <profile-proxy>XQT4TF3IgLRN2NO0N3JLfqCwOp8F1OKZwwVqbZ8jCZ6EEUwrQ855yHBfYJM0poRO</profile-proxy>
+          <control-parameters>
+            <network-scheme-specification>vhdWwd33odhczR4VS203aoKfV8VugeTDv6z2buXzHfDgYz3QC3LMrvUnDHJLWDojBXdNjbe0iK98j4YN8BsrYmOuVqfJVE3wt8bNbiFt2OBlTr1T2tkTH1nCrCme8hCCpOhB6WW0LqlwRepMHBFgCUTVw79xgM9Fsq8qeXqZnLn60ESzgpQSjBGIIPfYtgvVywlMtLEIp1OhyHIOYqya16SBWZrh7PdFlqjG4XolR4upLc5CDvMwCw8qnzHu</network-scheme-specification>
+            <hold-off-time>-9223372036854775808</hold-off-time>
+            <wait-to-revert-time>-9223372036854775808</wait-to-revert-time>
+            <reversion-mode>REVERSION_MODE_REVERTIVE</reversion-mode>
+            <prot-type>ZxSx7ZAjZR41RsIeaKedpJ007Nc1v80uxTUESuYJd2K4mtbx5hCm1Ce0hr1Nr19YMVvxhlgvfTrBmC0jUCFNeTNokO3LHcCm87Lpk1MzMe20I3juFYhUS4a4KdIkpkypjjHDctcZzeZahjEX9OJ1KL6nYOzf07FjieOuz0l96dbgoP5xvGz8</prot-type>
+          </control-parameters>
+          <hold-off-time>-9223372036854775808</hold-off-time>
+          <selected-fc-port>
+            <local-id>3Ixkdpbv9TwqfgEu6w6ZxAj0Ke5Kf4RaEhvJyyfIrD0GLwbS2hJzK2su9p7gtYr77WJGmYoNtgteMwYOGzgqCAUDZTTtScsZ03xm1V9m3vBP1rwz1MZveM8dxTyh61964GtYuucxZFnT7Ts0xkvLYvYvoxNmqWtmuOcYihwiWT33En3bHqWxVMVkbAGto1ISPUR03fi08d3MAZPapDHdhuxt45WsZwdOj4OmbYmjbiXM9EWyhvLy0aTW8Ih7eu</local-id>
+            <lifecycle-state>LIFECYCLE_STATE_PLANNED</lifecycle-state>
+            <logical-termination-point>2b454936-1b31-1d28-4dda-1d3475708a0e</logical-termination-point>
+            <fc-route-feeds-fc-port-egress>K2FV4w6EJ7lLbw6aEF7zcV1VVgXWITfsNMgJamfTmBwx7DHDaG4mt59om7d4Skpy6F9gTp2f0yMZ3mudUzsowBEKARHt3619D2iwrkErSiiWEN1zetPKXtnxd40g2TqFWI3f2HHU0ZIwEKXSdMv2gSAtOsJQe1n2BihD0YqSQ0guKefY0K08ustiV5016</fc-route-feeds-fc-port-egress>
+            <label>
+              <value-name>SkcDHd7pJ9JJ8A7o9RO5AZHyzAydxdyhqDVZQ2pz38icIqAK9pPJgo9PYH2vVsNd5IcVCtmGBFScXsO6JvIZTRGSzAfm3Uz0uDW77iNAPFMMZsLBXtsRc9BLJI7EDyF7ct6jLTTtqy7iSSTQ</value-name>
+              <value>lzqm23YK3CfB9fNClYgfKJxaQP2BIKGWbYad28Q5D5yMcehycxFO8cYY2TrCv0yHYJUSJCPmAo1MCicGPRvX4lNY67sCZ1jPC5IdIpsiNtWhD9Yk0l9W</value>
+            </label>
+            <selection-priority>-9223372036854775808</selection-priority>
+            <name>
+              <value-name>xquUBkgMoqJ2zfY0wlLWdOQaOyrVMVAcdW6OheAFFbHeqxeOKSKYys0m0r9FeBRryP7PVzmACVH2sNI4xk25N2jNlskz43SuKZbGqx82sPWMvEQ2ZL0ENjj9MEAIztckkn0DM0F6QuSd0AfZlfv1zP2dtCV2XZeae6N07s6XWY2Xq9OMpcFQ1HVmjIghHvrVB6VIyTxnJzc9JSN04sI59DjllAuU5VPG1ChrnOG6gKfZvVRznzxp4QKp</value-name>
+              <value>6jn10WUuddRTMX9w401ZJtfiSwmA8DTeO87O4Ta96T3KI49NX2EGnLRf95IhJtvxBCeyngHmaC6Szfxwa44xHVNRTn8CQw1r07ZoozKq3QaCYI08E5F</value>
+            </name>
+            <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_ACTIVE</administrative-control>
+            <role>wZylQTW7bv2s9REw10NjZM5pFkGZmHOKye5o0Unbhhvr89X22Cl1hiiODYOZxuC6AzmAlCDDT9W2aL44gh5pzfdc5T4vfGtI7PitrW6dXU77F3cNk9cThi6mbaRjIk1P2balZ8yW2FWAI0n</role>
+            <extension>
+              <value-name>WMxVf9U8kCChcPZBh9hC6yf7oz7BIW2xIzkPA7XUJrbV93wq4FVa6</value-name>
+              <value>huChYc50JNr4v13kVMMYzVT5dYD80Jbi5Nr3ZwVBbmxGnA1aeF1NsUKFSnGT6J34ou7fS3Q3hfCFHvHVaIAuD</value>
+            </extension>
+            <fc-port>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</fc-port>
+            <fc-port-direction>PORT_DIRECTION_BIDIRECTIONAL</fc-port-direction>
+            <address>8zqbDOxC4pxMlP2XuBs3xuMZYhcZEFzF6ZQJGgdCxLgSAaHWM9ZbvLatUflrUU60LOBj4OVuz4m164XS5PVBs6WndhO7bU7XAI8Fo41Y0nR6jHRhwMKQKG</address>
+            <port-of-internal-fc>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</port-of-internal-fc>
+            <is-protection-lock-out>true</is-protection-lock-out>
+          </selected-fc-port>
+          <switch-control>SWITCH_CONTROL_FORCED</switch-control>
+          <address>4crEPFt466Tz3AMCiZSWeD6UDufzjexoqY28vw4BuQaqiOUAGFxUivHWZWvj2UHtKBt7ZpIufKMyzG87lx1E3Is2wPdzCM2mgnufM4BUPnkg4snh0gNVZ7PnX3WzHQNXd95SeGE34Yb0iy9aOX5F4V3TQZkpI8nVhsFn0jiW9tOsTYCINIfJvavd2PCKXRx7b5</address>
+          <prot-type>g1axr43vIVM3Rrag5qvF2WJB3kl0SHi0JsxapAGZnk2eL5vIvSgpHZ1KceCWVVWEflHwVfwazqocvLU1waqd2rP6Fj2t6Y7mbOSY3g8uHoGcatdyvwLxXsDvLFYSvX6yEQwH7E4O3KS55YDBug0jIEGlbwdzub782EH9aLP5ozalxFW1VXdvtTJEqW5U0dU2Jt3T7SRnr1IRzFSmu5KXRtBhhH3hMPjvimgp67Mq1nhs2</prot-type>
+        </fc-switch>
+        <lower-level-fc>25fbedaf-00e7-2908-fe09-07fe37aca56a</lower-level-fc>
+        <address>7ONCmrpqBEBKMqiCAoDnhmpLpHCJI5MHTsc8Tt</address>
+        <is-protection-lock-out>false</is-protection-lock-out>
+      </encapsulated-fc>
+      <sync-ltp>5b29f3db-6f13-96c1-f189-f038af15cc4a</sync-ltp>
+    </embedded-clock>
+    <client-ltp>4ace155c-6c04-f585-d9ec-d6a845794520</client-ltp>
+    <layer-protocol>
+      <local-id>VtVHxI7Y4sRCiy5SWJVMskynPLcJvzkqU88rI7qFA9hSIeDEPqjiKRxruBb02niWvioeqGT0</local-id>
+      <configuration-and-switch-control>CymC6dNMO9SQgtGxPRRRJ6ISczg6kLrWkOyqTd4HeWyvh626PLPyRqjVZzTjldfx1FXMK2tYQTl0Rn6H8O7ReiEdSyo5LvCEarqMlLK4x64olaXmYX54fK97ax4V2Gr48JQtutxTrBaME70uW6zcQIb0ggNaWefWX5qjqX5Rrfw5mwzbu0nkJqcRyZ1n58jU6B6wrbgSqMXEaoPFp4R0v4RVVSiT1uF75LvwOLo6xdLAuA7TxYT2UC</configuration-and-switch-control>
+      <configured-client-capacity>AF2RhalElvnwIjmZP5Y6GJqhzYxHDjv5YqW8A9MOw1kfkG6aD48jNzsfp0O2bk79CWh45VSCW4J9CPj7TjqySLN9Du3OO3XiZ7mW27qR390GQbNBu6afJPgmjk2ZfZ96Yw2</configured-client-capacity>
+      <fc-blocks-signal-to-lp>u8tnC8mzMS6ADmH3skDWMKHjAsdv435q3yOxG26kUcNqrmtTGYPsAoM2QRxUUucX2Sm</fc-blocks-signal-to-lp>
+      <lifecycle-state>LIFECYCLE_STATE_INSTALLED</lifecycle-state>
+      <label>
+        <value-name>u5FnjW56lDZQ6W7QRO3JaDYHEt7bixqMuX1FTYM6CDXArWqjKmUUZLBveAHx0ZbmWd2H3GOFjD8KzqVcMQ6LtA9H2Qe2HqpDvjcyZS6aveU5EIhrqf4THdsKVHECZ37mekUd40nA6axLKO42V0VDenf1WTENPL93X49</value-name>
+        <value>WoC3y1GaPCcCC77InmKbggZ5100RW9TLynGYoe95QlHklPVA3FDjVuoOvpFjqq4YFKX3YY0GbA1whWYktCEg6UWtbuNCURAsupvsno9zY2XfQWzbqdjo0fS</value>
+      </label>
+      <layer-protocol-name xmlns:x="urn:onf:yang:air-interface-2-0">x:LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER</layer-protocol-name>
+      <lp-direction>TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN</lp-direction>
+      <name>
+        <value-name>2KxhfcYFvgqeFJBhUBjiLgF4wTucEm1HYzQeDOT0Xb6CVHTHa5ZWlx0RqmVXIWEGnmMS2GSZRZuEGfmRkdFxKFg31b0B0w9nSWgUu0Md</value-name>
+        <value>gSqv69QjOfWtwZmHRXHfY57UdTo5xCXNmnbswTLk8zFEyTehIVwGSvtXhR3Ol0uzfx1DqFXq</value>
+      </name>
+      <air-interface-pac xmlns="urn:onf:yang:air-interface-2-0">
+        <air-interface-configuration>
+          <auto-freq-select-is-on>false</auto-freq-select-is-on>
+          <tx-frequency>693674490</tx-frequency>
+          <cryptographic-key>vc1yXUt0F8al6faEy8V7t7qjVmiOkL7QP0gEUJxsRHNPOPumXpuioMBb0TZlx7bm7rT22qmL79BNQ51NmvXC9yNakNvRMy5TRYNTg1wfa72044FiruUB3IDfn8Y1yVMpMsa2tGaEO4wK843syPVtpyAEyyF6msv8UF2nlcT1hiEhezJEoE0G4AkC10Ink5v6KxtYKfRTpvaD4Uhlqh1v</cryptographic-key>
+          <xlts-threshold-cross-alarm-list>
+            <level-threshold-second-kind>XLEVEL_THRESHOLD_SECOND_KIND_TYPE_TLTS</level-threshold-second-kind>
+            <granularity-period>GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS</granularity-period>
+            <xlts-threshold-cross-alarm-definition-number>38</xlts-threshold-cross-alarm-definition-number>
+            <xlts-level>-56</xlts-level>
+            <amount-of-seconds>30423</amount-of-seconds>
+          </xlts-threshold-cross-alarm-list>
+          <air-interface-name>lXILt5LBOX3yJyDsqhfjWWuLEjVXVfAh5aUqfx14uXudvZyN8N7XBtI8Mv5HCFQHHK7Xa1TEYfSl6i9f584yBMGf9LOLiFl0hkPrlA6bHQxF0GU5GYvhCcoDPch8RC01OHk29idI0Cn0aa5Q0B7vFn8uApujTmkI3FK4XPMYsaYCcWtcpsH4QQqi7VBT9Otdl59aUW0eYRRaNcm4w40eMiwL50wfOZs14BbRpc5n3OxISMEhIEvm</air-interface-name>
+          <atpc-thresh-upper>-1103</atpc-thresh-upper>
+          <atpc-tx-power-min>-90</atpc-tx-power-min>
+          <maintenance-timer>-1281257321</maintenance-timer>
+          <problem-kind-severity-list>
+            <problem-kind-name>itTa7kHvI1JWwW8J4TdD2Xm7AyiFvcUNFFXNZwiIyTwWPwxTpKpjADrabJPGWBlthiggPqQfje31KBMalbtVPU5SwMzkgUNx5WNMmwTyKWrvxdxThSGYFEQ3ihny4259QLN59GDTC4g29NVqGtodZ7gioDIsxGtojgtsOYdrUut39gmHBKUBJaL8Ftsd1Otk4OELMS4yexBnFX58AZJj2mjHQEUJsf4o</problem-kind-name>
+            <problem-kind-severity>SEVERITY_TYPE_WARNING</problem-kind-severity>
+          </problem-kind-severity-list>
+          <problem-kind-severity-list>
+            <problem-kind-name>9Hsd7GCJ49y1i001k2ovC69oPBELSzm19O7gnJR</problem-kind-name>
+            <problem-kind-severity>SEVERITY_TYPE_NOT_YET_DEFINED</problem-kind-severity>
+          </problem-kind-severity-list>
+          <problem-kind-severity-list>
+            <problem-kind-name>L5Q8pVvvy2RoE6fxvLA0HuhUMrNhb1hW674oUrTktKI0IYp5BZ5alfX8GChJvyFuxBSk2DEngffY5FWyE1IS8x0GahpFQW9fxTzrxeHNlWDqBzY8ty0B6Sa81zNJoPZVIyf7EWUZSypmZfmsOmWM66U7xzRVgQJZgQYVMTUwjcKar6Dfkr1qxNqWnhKDZtu7bl2X6Plp1Yzs44AhvtHU97Rwgt17Wof7JhWP696Z7xk4CU</problem-kind-name>
+            <problem-kind-severity>SEVERITY_TYPE_WARNING</problem-kind-severity>
+          </problem-kind-severity-list>
+          <problem-kind-severity-list>
+            <problem-kind-name>xZLoogr2939c0ZAU46oKkkwGCX8iKVe9UZybfZdpVmtNm4</problem-kind-name>
+            <problem-kind-severity>SEVERITY_TYPE_CRITICAL</problem-kind-severity>
+          </problem-kind-severity-list>
+          <problem-kind-severity-list>
+            <problem-kind-name>qkbqc4C7k8Ji970DDLvdZoeGvu37em0EG3WK7zRkzACIACldgIif7wVCTYJ7cBDKEzvE0eQzPsah5vud6FsdboPWer3j2G3z8q58FVImfSDcfZplESyI8gEezAxt8tUgTZpqMZMUJh6YhocN8Cv8S2mjCMNC7HTSzajd1XZKfYIomMbmpzu9tIt5m8ztHsm8uxmvudfJbQZpC3L1C735Qw2cwBGdWUmirAOV</problem-kind-name>
+            <problem-kind-severity>SEVERITY_TYPE_NOT_YET_DEFINED</problem-kind-severity>
+          </problem-kind-severity-list>
+          <problem-kind-severity-list>
+            <problem-kind-name>fUUoUDMa6GaU4pTFyHmxIswIZQEtCRlKL70FCNIAtSmp974HOqeoKLYBtCXYtiA7pAE1netI6P7fW3XCl305GZH2tw0POAW52sYqHr8Fg8V4bKGxFGumx3oTzgInQwkSQiaxBbdJj0NmCtTh2ovrrTk19UgRitC9LMyfPLY8DMv77gh9wMBQGVJHIZz0k316PAdxdbFRP2QXb76HUzxsn8950IXkLZitzv0EzxnosedDlkc7TCz8KJdKjb5X</problem-kind-name>
+            <problem-kind-severity>SEVERITY_TYPE_MINOR</problem-kind-severity>
+          </problem-kind-severity-list>
+          <adaptive-modulation-is-on>false</adaptive-modulation-is-on>
+          <xpic-is-on>true</xpic-is-on>
+          <expected-radio-signal-id>
+            <numeric-radio-signal-id>26594</numeric-radio-signal-id>
+            <alphanumeric-radio-signal-id>00g8FRn8ubadEFcXmKYs31cNtyAfZRqRRGZopfxUqHZXebMBNKVQLZv6y5lpWMgFk74KetwFavupygSl0N3DEyJ4EWtsAB0VBWFPp3uzyYQ66Ij6nmB2Uc6q1sLB3LowzVmYYIpwzguFQFE61f0OkY6liRWeudK386T7PjvorSV9xzfrH7716dmoXaCrnnnwlgv2r0qSSe2iN9JmhInnVBDSM8c9vrxIz2L133LNhN</alphanumeric-radio-signal-id>
+          </expected-radio-signal-id>
+          <atpc-is-on>false</atpc-is-on>
+          <g-826-threshold-cross-alarm-list>
+            <g-826-value-kind>G_826_TYPE_NOT_SPECIFIED</g-826-value-kind>
+            <granularity-period>GRANULARITY_PERIOD_TYPE_UNKNOWN</granularity-period>
+            <alarm-clearing-threshold>-275597051</alarm-clearing-threshold>
+            <alarm-raising-threshold>1231873804</alarm-raising-threshold>
+          </g-826-threshold-cross-alarm-list>
+          <transmitter-is-on>false</transmitter-is-on>
+          <tx-power>105</tx-power>
+          <loop-back-kind-on>LOOP_BACK_TYPE_RF_TO_LOCAL</loop-back-kind-on>
+          <rx-frequency>1132959102</rx-frequency>
+          <modulation-is-on>false</modulation-is-on>
+          <acm-threshold-cross-alarm-list>
+            <acm-threshold-cross-alarm-definition-number>6</acm-threshold-cross-alarm-definition-number>
+            <granularity-period>GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN</granularity-period>
+            <amount-of-seconds>-23408</amount-of-seconds>
+          </acm-threshold-cross-alarm-list>
+          <mimo-is-on>true</mimo-is-on>
+          <power-is-on>true</power-is-on>
+          <atpc-thresh-lower>-19936</atpc-thresh-lower>
+          <remote-air-interface-name>U72Uw9AvBts4EjmIgJDX9dPVR6vnuRcoQ6amfCKI5cEBn0kvKPsL3ayMg3aCMe0uk2Rrwt9txN5UGhpi6K31UBO2wYFa4xEgAnHYQIsnnx93GrlMboO5RC7fsMpok4EMrlKa34xqtHm90HWbYCgP6fXq2mOeisSKFuUIzj02Sm4</remote-air-interface-name>
+          <performance-monitoring-is-on>false</performance-monitoring-is-on>
+          <receiver-is-on>true</receiver-is-on>
+          <alic-is-on>false</alic-is-on>
+          <clearing-threshold-cross-alarms-is-on>true</clearing-threshold-cross-alarms-is-on>
+          <auto-freq-select-range>2</auto-freq-select-range>
+          <transmitted-radio-signal-id>
+            <numeric-radio-signal-id>21094</numeric-radio-signal-id>
+            <alphanumeric-radio-signal-id>03UubBsrySlNGr50jPFFBfeV79Fmdyi5BcrFFT6eLj1jKYbVGQAhXH44QKqVaI0DMjiscgyXzr8bpj651zfYgb2YNlTXVLBA4L282sXBL5N2gL0hkf7Ai1q6mbVaOoKKaESc6PFRMkT26Tbq0iTbkjhGn4QbtsWv6OH4weVazHdFsgXlzQwT2FrpJaA4CozJ58NBnBLWaQtu7qHy9dr3KKsuUUq</alphanumeric-radio-signal-id>
+          </transmitted-radio-signal-id>
+          <encryption-is-on>true</encryption-is-on>
+        </air-interface-configuration>
+      </air-interface-pac>
+      <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_ACTIVE</administrative-control>
+      <extension>
+        <value-name>JxNwooYSFld3JeuzgrOYfo9xtsWtzGFbds</value-name>
+        <value>tIxeoKrjmxNVN6CDe0MLl6zHF7mQkGpOhOUxzdQNKvAptc2H4OlqMM7rUla6TzUaoGHPTpCDM42gh4PlK2DwPCQBP0HJzuLPalE4K8HpdCFmymHjpdH6PpHFpogRS1G3edZZdygiaVEJheUyrtEgTlNiK31uXAxb</value>
+      </extension>
+      <termination-state>TERMINATION_STATE_TERMINATION_STATE_UNKNOWN</termination-state>
+      <address>ib75HInVCVm6sDRNi1pm3UjDjmiIpaFHdENVn2QRP5PhAG5SImeLgpgAMyi3AXKOtpBQrjA9opqYYnJGKXjSfrsTZCWrrG7VYILhUdqaDJ1B6K9IzktOLVHCyv3Z4bM2LqjFDKQgtRJrBK2a4vRHiqbIWfA0im23MdJqXryiiaCLUwVR1Eqb5CUTRmT1IN4n0NFQ658ofC928XT1tbdyNZjw</address>
+      <is-protection-lock-out>true</is-protection-lock-out>
+    </layer-protocol>
+    <ltp-direction>TERMINATION_DIRECTION_SOURCE</ltp-direction>
+    <server-ltp>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</server-ltp>
+    <transfer-capacity-pac>xWn6luIdvABBWOQ31lh3m8iV8ruuW3flZCrdY9qtKTXyzNBt0Swm0Ga07wuVzJgrdHw3JWptIm191uC1m1gfzi7zOCugdDHjcdmV1LgBZ9L0DfUSg2ZQk6p0ALgGgXZt2dg4RpFQyiJ4yDOOFN</transfer-capacity-pac>
+    <address>KewNfWLzmCezySrDmSZYh8ZOltYaxbc9pAWEoz5C4cbC4ufqn7owffcsAau7lGgK85gxEe9Aql4uPkU4jaAqhMSSPeZaUgN2dVrR9</address>
+    <peer-ltp>9b31b388-e9d8-23c7-454e-8f4883a74d94</peer-ltp>
+    <ltp-in-other-view>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</ltp-in-other-view>
+  </logical-termination-point>
+  <logical-termination-point>
+    <uuid>4ace155c-6c04-f585-d9ec-d6a845794520</uuid>
+    <physical-port-reference>371eda64-3aa3-f78a-2711-ea75d567381f</physical-port-reference>
+    <local-id>BBFCB9sdV1M71bIIqdgnC9OFqL29rZD2saw3jY960VdT6NupSKMnLA2blXkEWPygZWbiVkpNguyea2D2FphqR</local-id>
+    <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_BUSY</lifecycle-state>
+    <external-managed-id>
+      <manager-identifier>EjRs71cr8Fc4ZO0EuB0pmdfBFPAwmHj0S2k0Vxj34v03b0zFtz4QMbrj01PnB0flVslQREMV1MYcEpR8YVYD6hWZaMeDElZzNciEJ4zKQpPmOGuFuk</manager-identifier>
+      <external-managed-uuid>sterwSF9x10YG5gdGkMi247pKOLpa6HCrO4XGBZ5uZ43WcgCpUVjY2IJIm0KkInLojB4MA29rYcoasSreFLdAlOaHOV1oiFMtgJfQLg9BspLMi51XQ6xbUITAvMRNrv8z6fhJwrkYQYD03EYTKn4wXPYsCH7V57nbnEVT5fRO5mO80E1CUY0JNR4hy35DbsPy6Cr4JaKPxqXpXR2JPUsuLwEcAJPL3wb10CXKMzzb0wBPfDy4p0rbp5nRG4</external-managed-uuid>
+    </external-managed-id>
+    <label>
+      <value-name>l3aXnktLHOOPIgjhYzCkyMqT0Ysh8GIlBSaYcDBTjpA1FUawtMQUr9Nr77A7Fikg2u660ISjZslx</value-name>
+      <value>nVIaLuB</value>
+    </label>
+    <fd-rule-group>4cd72b11-5cfa-9e34-94d1-42b54486ca7d</fd-rule-group>
+    <connected-ltp>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</connected-ltp>
+    <name>
+      <value-name>dv5oGSJXxRrX5tSJwx0NPSZbW00xXoF2TCrru2o1TIRQbJrz8sfXce1071x4h57aHqCckS55AWVMxnlFPAvTHwTOprKGwJId1chl5fqF3mjBBx8iZDbG14min7YTIzZKL8XQnoorCzUd62v6yyEzCTS0SILAhKcVTaD8q1zUtl7roupW24nwP7oHIa9RMeMxgqGGj7AMtz6JVvxPrMdgUCPuERli50Qlq</value-name>
+      <value>TBnlgIUmrHRYojDBzp5hTJ86256Kqw0j8nEo6qKpZtgnMTQeiWvbxvhrAob0MbbMzH2xZMWY8cdU538fRvqh0AIAQUsCXDhocjVb6S16We0Ua19Twsap2TZKFkeCXv12POdNy7TvlTpnUq9jSjIU4zwJTLeJg7L5VQSuXLZbxgyjGHurTcdXEKzxvN8LUTJPCBbzf2KEabXRKkavwnt27UACHIgtuZa6smxzgad</value>
+    </name>
+    <administrative-control>ADMINISTRATIVE_CONTROL_UNLOCK</administrative-control>
+    <supporting-pc>GMPiBiiaEcVncI2LT0PPfPKDa4eHHoEnbuxMEPPa1Kp6ksJ5kyMAfo5qsj71ADoL7NpECeGvQ6B2yc7KKLc09hqBtpC32SG2F5y9ceF2k8XKl4nXIzPRR7lcwXfrIVlnSTp474Zk4WWhSj7ATWkC4FOAu3TcQesI7RF7</supporting-pc>
+    <extension>
+      <value-name>9ULgvSWF44Iz3OzLySC151ftWPvAb6mk08tnSh3XdDogjP1</value-name>
+      <value>HwTFx00mIvWTBa6tarJ3IMSVp8cIX5swtdbTebfOG3H9dFvo6ejGS3C9bGJ8Dcw7pI0vL7jkaTlfyQDxWOdGRHP2nz2TLz029SyURR6TKs8baEIZsVFkvneSWhDzQvBRf1D6TKZv40y6E85Y4Dar0pbOGPnokQ7ASKGDuy0qyrx4zu2v7dWZu8N2X2qhTxJD9i8EQ0Wgrtc1QewXjlPNtCPqF7zqwjVGBVcjV8rfuD8kRw9</value>
+    </extension>
+    <embedded-clock>
+      <local-id>AsuvU4rbRSpT9HFIa7buM3wiMnUvF4TfonCij3l3NKWXjCxmJIQvEeGqCsW9wHoN415fWriK3fzfR6BsPrXtGvLaYzjmgz9cs7spyK1tRAIAGj2nDSIjnull3EIc5JoyQQPgtQKkqsVYEPehHWsXiNaejSqouOOkxDB0tlcLFZKbPYso</local-id>
+      <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_BUSY</lifecycle-state>
+      <label>
+        <value-name>HyRSO8lE6Jc</value-name>
+        <value>3l90T44oyVCATZq27L8Hj0r00MEYvRjq4kqPhv5PqIhczI6zt78F7zFZljYI298YuqFDVLselJqUjotNvBku2Zmnac5dl53HwJkjmExHgPtzePeBiy6lxsIIEGNRDQz1rLlNqKuGAQfGFmhXUfikHT2dzH54xw6ZhjEH31fDRvbwRtlDIEXixRvYys2YY0PgjtPnu5Sls4Jbp5OZJE98</value>
+      </label>
+      <encapsulated-casc>dzkL343eLUiz6lfUJ7Drf3CFywRKOgn1IzEDDARom1Psn5f64KpjNTQeiHQ6Y60yFEbje2zA4hVreapiUHBzAsFS1wRRCRph</encapsulated-casc>
+      <encompassed-clock>Pcvg6m5goT4u2hBlkAc</encompassed-clock>
+      <name>
+        <value-name>Ul5zwbKgB1KhP5GlyyOTLsqK4CrUWQGJbDizO3Qh4AzLxf65ONQrf93bLv5zdLightQ5oGnk8O5yV4DBRm2</value-name>
+        <value>vY98l</value>
+      </name>
+      <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE</administrative-control>
+      <extension>
+        <value-name>xY4ZS2YTJ64cNjHS4Uc0EnpJ4gkIqkdXa9O23ENMCSZq3ya7kn7YKozOFLwXXCM7LAaP7PtJzk9DSkK5HSVj8n8N8wC68o5UR7BYX4zwpJ99VM6uw2NEpNkpcWnklt64Az2xEt4V45</value-name>
+        <value>ZJ3lf51UmO6L029dfCbj4LdChHycLv0Df3Ym0Z8mGe8yh9DwLPQPA3jRCRVofV1uRRQRJZ6p56PmftT0iBHKw1B9KwpZjila14UKV0106Rflc8duBU67NH8q5xhoH</value>
+      </extension>
+      <phase-aligned-clock>Pcvg6m5goT4u2hBlkAc</phase-aligned-clock>
+      <address>tmdvejetwqBJU4v0cjzkJwK0Ujvd2WyoiLTxW70sxu3jyzbCSCXt8zlUSR8NNybYc4n03ntsJwDa</address>
+      <encapsulated-fc>
+        <uuid>3acbd8b2-7826-e715-3e60-c983e5d31917</uuid>
+        <configuration-and-switch-control>V2Zgh6cfu74BmQI9B1iFW1G1ebVH44K07BgoHsD3rIEGqmH2o0zc17d7i1</configuration-and-switch-control>
+        <local-id>vfPQS93sfgUPYu2vxs6rtiXsTmqPi4YNbOv4Xyo4OaTFEV23f8uAqj2cFlTX</local-id>
+        <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_BUSY</lifecycle-state>
+        <external-managed-id>
+          <manager-identifier>IwAxR9g00XObwOieu0ONUCjoies2F15fxFNhP39HSXSgDbm7bbMXF6dXcG0JHXZ6uEnbzxTruLz8OW7R7UOMSUBWstx1qo7V2v6BURUovuojio3haR3UDwQ5Sf6aE65Gt4anN4Diq2uAixRsgMmUj4R3b</manager-identifier>
+          <external-managed-uuid>dPOboh7ywUu95N3znlY7F6TT04XK71slQgwepDEVx14CG033dT2T0WMS0CC8DWtlcZABC6o17twFlzBylDrlz6dAIIIdE3yJ20cw7Bx6W3E</external-managed-uuid>
+        </external-managed-id>
+        <supported-link>fcTnAAPeD8WhOmwogUgPY9Pbg7cPei7tuTQ5txbZy78elECCqSjo10sa0wZeGYI3Rq0dYbcoacCvRfZ97bq9bSjbgaqX8800q05gb9E</supported-link>
+        <label>
+          <value-name>x75UxnWMqnumX3Frg9zubZtUPASTCIM1PJNm6B0oZuLOpq7GrHaCyEog6g1AYNBFopTv0TLRfwxFOFdgenKET9UZhWz8B3N0s</value-name>
+          <value>nkk84AxB7lgktuz61tfVkoRUwtPcl9LIt5Qxxf9wBhI4Ei2FLhA5ysR4Ny88HLQbJyA8OBxhTfdxpgc2pE0X6RULiUTZGB2h2DhIeOR744wtcAwCfwrdflZxgKpOerX84eIb3zaZvHkI9QcoeDumZlL75a</value>
+        </label>
+        <layer-protocol-name>LAYER_PROTOCOL_NAME_TYPE_PHOTONIC_MEDIA</layer-protocol-name>
+        <fc-route>7CHLE2</fc-route>
+        <name>
+          <value-name>FrmPkTt7NwmVSXdbRhQ4bGeViztqQQXvhbctWFAJ3WwVLKYv1Oz4mFZFekX4aUrjYDMUaew5320OMQbGxLKTiCyxWvtZiVi8qX2BbqGetzV7p6NWJqQ2UgzQEUPOP0W8PQJ0hp7KQ2Jg8p4SPMMB3drz79nP1bXQ1GIaXPUOJwWSV0CCFgdAtw9AFopyzmgAUZLSGxyq3maQeEsTUFtncuXJSfajtqMopp</value-name>
+          <value>6WyoSUyA8c326AnlMKioupyOTYAhgZheNPCxJa8Re3LkD1FiLPGff630Wvhcmqq2f2zQ4zziClu8e1qZRY6Y42Y</value>
+        </name>
+        <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_ACTIVE</administrative-control>
+        <supporting-pc>lhQcwIevTEE4wPgMZGB0GBS6BXnE61ZriIwGqKcboIfMqvqh32hJv1Q7YdLW6DghdMXvo1GEKViajIrmCB68CW7B1Kp7nFosjeXzfDdZzv1S6t6I4cIy0P11Ar1P6hiivfRLLXCcsE4qZ29VfRtfzvh1WaQUr04XgOA1Lc55I1wH3xuigYyPlHQ9RHViH07POHIrUNwCO2cSrG</supporting-pc>
+        <extension>
+          <value-name>bCKbyYTJTsUSYBdyKVK12nvoeQ1l</value-name>
+          <value>c0RGK2eBOYu8Sn6lswXngQhwlFK3zYJLYAjJuxcinGr7VpknWaD40Usesdh130E1sXCXmO7CnyJiQ4GE6bA653kp8Cqbu44XTHM8nTKKkl32hBGnMguJbO9jiruFozu98ghv11gdnbfE</value>
+        </extension>
+        <service-priority>-9223372036854775808</service-priority>
+        <forwarding-direction>FORWARDING_DIRECTION_UNDEFINED_OR_UNKNOWN</forwarding-direction>
+        <fc-port>
+          <local-id>tJpg1K65N9iqF5LvU95d9jtH666xWWehxDqrfwo2xHl4E6zq8wvhPYYW54lTTA2i5sJlQ8fnHAjdzSEzo9Q60GU5CfQnPSGNdh03pfjYICc9nQIDRyJR6DOITw6AhEfuVfpdvAb55nes5W5XmHOskv2510yiENEA34NqwYvBeJ3jx18TIPdUk7Sd8iwM5ae06TqDKN6Yw29V3iGD7TpjThw1zUFx5Mp3FQypvFf2HpPKzwfyhEJaOf</local-id>
+          <lifecycle-state>LIFECYCLE_STATE_PENDING_REMOVAL</lifecycle-state>
+          <logical-termination-point>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</logical-termination-point>
+          <fc-route-feeds-fc-port-egress>GjuIII9xvaLYdhstAPA9bCuBU5yqv7M4igMTQNqlX4b3lDwNlYWwAj7moyNLxzPQ</fc-route-feeds-fc-port-egress>
+          <label>
+            <value-name>9gn0g48kFmNuQv3ZuG9RwZdf3O6CcEQlV5d3alnHz2bqyeh2NqLji</value-name>
+            <value>ydMFPYbxb6D</value>
+          </label>
+          <selection-priority>-9223372036854775808</selection-priority>
+          <name>
+            <value-name>f2JE7n422MBkhgzbXQ1zpxGPGcyR0GU8IvMHSQJNuc7MkGX9pQAOfgwWt4NlCzlkX0THQvmdHtZ22O3rFE7UUDQfAvt4XOhM</value-name>
+            <value>atxFQKfbB95pcw4QwRD1zKB55yUUPGAZ1ZFJBUV430u7pqYV9tWJ5qObYA5NgxEhpb1S5OX0Gr05JQSTjPCo7iz5SwK0Wo9dA25xQ2qplqu5gfQr4kHbC98mxSmtgvyIyEggyGFUY2R6hzxdT6onfoJNg58osH7Sdf9LVOxLIgRZPgcAmsXuQG96DhnYQuQ3JRHwy</value>
+          </name>
+          <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_ACTIVE</administrative-control>
+          <role>a7lBeaVzEzRN2oSBrZRrKBbMJFtmjv6lCjXIlKi0b1NdhxPIxy999cVSRo63LdofodYKX8K89perXV1mtbvCfrn7HtalyqA</role>
+          <extension>
+            <value-name>1FBhmajxsJMKDr2oKkmbp0IeQTM1ShpTW02a3eHvXlfBMaZpmeAM6i0X3EYVNgHJ8JTbXtHNGWgtY7Kllk7kuZhxE7ljnU3wvOHl9o8Qdob3vVoJ7v3tnc01jdcH775DWEYX3YF8eQbJDskKXn5cz65TbisbppGd3wbYuQYIz2jcuEPj1UwtSBeWTy7jXNwSjHRFqPfZRy3dcKx6x3rpEFdy5kR2ZfMaPDPfl464D</value-name>
+            <value>iHMPFbK6AoDOOI0xC0NhaCUSJ7WH4rIe1mVGxFF03aGKTGhny4EByrthqhYmJzACNvil2Pd60TILrZ0SWFtuYOEg</value>
+          </extension>
+          <fc-port>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</fc-port>
+          <fc-port-direction>PORT_DIRECTION_OMNIDIRECTIONAL</fc-port-direction>
+          <address>diJBt4Di9Bi2j3lb4d7ByBrm7HkCc0xibgTEcwWd077j2tuYytr75Kl4kFGwG6OReH</address>
+          <port-of-internal-fc>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</port-of-internal-fc>
+          <is-protection-lock-out>false</is-protection-lock-out>
+        </fc-port>
+        <fc-switch>
+          <local-id>lO9PGs7qxHIKOBbR2aMvel980awc7hCs6D9E69XDQFfw9qg3B2yHfIPgKesRvXbtAd0ymX44CjADKQGlLfU0PJgzXBilylG8yGHUvLY04rDGhk12zNVgx3PmEZzck8dTGMFcpwclXH261V9sJ4I87pm</local-id>
+          <configuration-and-switch-control>8rji7w58d32sYIqKUqWPl07jKzqG4c6cvpmuNkC0fEkdeLY03UQoMXIpo05kcboAsK4f4H7cdspk5fk82axOZ75f72zc5XMxAQMwpMIve8Pjf9rhcYYbX3r56S93QVBqDfW31xq7FfqUgK4sA2wyXXvVHEZxzAPcP</configuration-and-switch-control>
+          <internal-configuration-and-switch-control>7JbxQIE9uVTyntsT1qIwlq2cPBMxGu3N5edVOR4aMXJ2j3NktwJHOLTvfy2V25A7bFUZxZ2bOL57GTk2hVJ5GusN2nIWsbVwQInfzpjn2onJ9zLqumn2QQQLdqHxBv3kdjrMIK1L1gmaP7BjtYebG4WLuwjY1ea6pBK8mDLnU7xB60VrZ1Cx5rjrXuhQArO03q0h3LwPKVrIWe1NfDkkWvD</internal-configuration-and-switch-control>
+          <lifecycle-state>LIFECYCLE_STATE_PLANNED</lifecycle-state>
+          <label>
+            <value-name>kvxX4BkeCJzVtl10llocXvAUSLyhUYofuO</value-name>
+            <value>qpgx1Z6OkkIkxVBKT6kNQXlZRboYx4UQlbne2t3nFDHdyiXjg96Y6jYPneGUaAKvDZJGlE30hCdIV21330U1bKJqQpl0RXvnXe3aT6a2AoCniwrmodnzX60NndF72auRgp19nc4XsGlKcEYARe2GcUlsZ0z1aVLqkMsHQwEa4ZVhvLJmZL24xnwwf5qp0bIcP2TGq</value>
+          </label>
+          <switch-selects-ports>PORT_DIRECTION_BIDIRECTIONAL</switch-selects-ports>
+          <reversion-mode>REVERSION_MODE_REVERTIVE</reversion-mode>
+          <name>
+            <value-name>oWQB43mCH1O6pSsmAuttpuW0qw8pWv3cjMNfH9Rp3yvsqXHSjamBwaBWyClm7hzi3exKgo1jWxDfmk7yml9SvCO4e2idjRve62Yej0x7pamDnmbJHkC5Xi13kjhv3MJ1PAf0sE7JOmm3IyNhKpe</value-name>
+            <value>H7DUjUpmy1ffBufV8fEOB0SbqFk3WzCvG7pZ1PdsIsHbOP6W4CDFunQVU2YQBslaAD1tk7V2zvdokjcoVHVh4DcYF2GhvUj5xkyRrmTTRY9b9dr4VmdRZqIEkoNPa6MHjdqCzbni9wliKMeF0soZK6v4nbMx9q</value>
+          </name>
+          <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_PASSIVE</administrative-control>
+          <extension>
+            <value-name>QuhDDMhn1g03kyjQWyNmQFpqRfsCNS2Dmb90XqfYy7ULF5tuDhIlO8Lyfd2254xk7Gc5YjVxqHiYMLsqUaLBap9pCbrA8ZMfxQcw90VzH5puQRMDUpe4OfmjqNTqExycnKAoCvXcAfGi6kNSB1Xq8bBrYmRvTpH829wEElQ6AogHA4rcXgu6r5xqrgVcGukAvQ</value-name>
+            <value>1bX7MdnlGrMSh3enujMMC2zOIV8aqYhr96yNjO8Z7VJoQXLc8pZKsyy2mGdMwueyAElLkuDshmQZcubkTaXdBvgX4tBsXP0pmmaGIN0R2RQ6d1q64fcxLsuHV59KN211obz6RAPTrFZwyhuCxG1a8vJVtKx8My1aCA8taXetu5Z3euxDazFbWo6h9whV4iYyTY1VO7pa4g5bKDON4uYSKW2TsjHpCxXnnRabQrmVI</value>
+          </extension>
+          <wait-to-restore-time>-9223372036854775808</wait-to-restore-time>
+          <profile-proxy>63lmayx2TTdVSpxlTsK9XycCgwbs1ox7sKtCb1F4MK0w9pRURu4P2gjbEuDGTaNdV9P62m2GYUc8c323pYKsf3DL</profile-proxy>
+          <control-parameters>
+            <network-scheme-specification>7Tz3yZ3B3GE2N8oc5</network-scheme-specification>
+            <hold-off-time>-9223372036854775808</hold-off-time>
+            <wait-to-revert-time>-9223372036854775808</wait-to-revert-time>
+            <reversion-mode>REVERSION_MODE_NON-REVERTIVE</reversion-mode>
+            <prot-type>hshHsyLdWAPSTxO7ytm3Fy0bcL27fulwWDeo3Rt0jiKdH</prot-type>
+          </control-parameters>
+          <hold-off-time>-9223372036854775808</hold-off-time>
+          <selected-fc-port>
+            <local-id>omQs9kng9RRgv505KxzgyN5q4Z8LFlQ3zynITKZ2tIaZOa4yHv</local-id>
+            <lifecycle-state>LIFECYCLE_STATE_INSTALLED</lifecycle-state>
+            <logical-termination-point>79b69572-4586-21fe-efd4-4a81a2b57515</logical-termination-point>
+            <fc-route-feeds-fc-port-egress>CJ7MmSzEFCw1eX0hUIPNd</fc-route-feeds-fc-port-egress>
+            <label>
+              <value-name>Ll8XD1ZWavTgOEYhxtad50GllL7PDLeo6ndKocyqHkznYpEnSPAPPh32U2SxNYVUl0wBc4UMot9fSOCCvdjkmmngo7G45BYjCuUGqGsP9uWTaynFDzZRVe0clGgj96CLAok05EH68D0i4fXzOPrC3rGh7OAgUcUms6exKWETrw3nD1XkIgWDzuUGiuOcyAq1GEqrsWcMkf9Y8YiQ66mFAgdSD2W3um4b0nuljG7EN8CW7ME5S0Lk9Y</value-name>
+              <value>MS0PfmMie9MrskyY7Hs3GeADYsoiBfmfZm56AJoPSa8cuH3CgvxOKZrIsITVPfbOC8VcJbTtm2FIBIcR6KxQBYqVyjRnrU43UR7D2T6gVDZoeb7kNE2pusk3E3i5Xe0J57m00kgNYf3craoeGqvbSI6oLgtBvtkAtzAlTR1RY4Vp7jwNJ</value>
+            </label>
+            <selection-priority>-9223372036854775808</selection-priority>
+            <name>
+              <value-name>8iLyeDHRiUIdu8AcTc3NFMXEs7A0H5GPfjflWW56JNbdNLhHPduvZk1jjuj0rRHz2XURLZXmE1zsER1u4vZVP</value-name>
+              <value>61mp1G8Bfaq1131RqxKZRoISSEgJrXuxYQO0oOtDZTFSWyBe5d6XCGHmdX6EVA4TiKLHz6cqZRaOpEUnR0ctHTQUROqEgmpq73Zy9cY1V0HdEBAouMJbFrXoff2nCkOBnN9wRZpNZ60wAsM4ev7LX4a4j4sNo8oLNxaFozkgycE0Eq4SVbDK7FPiK960huM4UOBafVqN74NLuJviU12TGJciSaj9w56qLHB0DTOCYtokdLuZM</value>
+            </name>
+            <administrative-control>ADMINISTRATIVE_CONTROL_UNLOCK</administrative-control>
+            <role>TQvW3ZEhjRyQtQwRSKkMIlTvA15Rjd4c4r0ZqE8KvysQpYA9AMNa7zGHsDzLRvPNXPEftMZRksHBi9DLVqV2ZtKr7b4QyTvnI9D4</role>
+            <extension>
+              <value-name>QuBWSn5eQAz222Bvgneh6cd2ukd00PTQbnF3KK9scJueLYBTlP2r2gloszgsg1broQu0sEsEfPK0NmM8bOr54N</value-name>
+              <value>pm</value>
+            </extension>
+            <fc-port>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</fc-port>
+            <fc-port-direction>PORT_DIRECTION_INPUT</fc-port-direction>
+            <address>31KpUcVmQa3B3QPPQ0viYA5jZjNINqDIjn75AVsiXvLSeAz4t5mjxjuoCh6pzB7TZ7YrUiBJGnCUPbQig5tNoY3TfaaPLaAC9qV3BxM9Ug3BsLUAQfg7dj0tlaaZkCBt2povW3EIjzjDl</address>
+            <port-of-internal-fc>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</port-of-internal-fc>
+            <is-protection-lock-out>false</is-protection-lock-out>
+          </selected-fc-port>
+          <switch-control>SWITCH_CONTROL_MANUAL</switch-control>
+          <address>7S8XLTMNE66dnAKlP840bUjxH1RFmNklysbjlPY0VWdbpQw6Qs61eirOjilxXFLv8WGlDwdqtrBS9ZYZrX0G7jmqtHYrnBOnpnI2TWsefW6oVXffM7VTr9bUQ1ddCUs1h</address>
+          <prot-type>6bw6aEhd7E3x7nE47S1rxHY5FEOUebdkfJipfrCmXyU5Vq12a2mICkF9Yu34x8oMKycZSGePe0M1iG4tIibcCQmschxKqNo2eA1697Vf7Ahq</prot-type>
+        </fc-switch>
+        <lower-level-fc>25fbedaf-00e7-2908-fe09-07fe37aca56a</lower-level-fc>
+        <address>o1742rnuV2KmwTuEb0x48LjjSYXyS7u88Bc32zpQt9cR2Hn5zVaHytSijHQ3OkbOOoRIPgybpD2kcqp</address>
+        <is-protection-lock-out>true</is-protection-lock-out>
+      </encapsulated-fc>
+      <sync-ltp>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</sync-ltp>
+    </embedded-clock>
+    <client-ltp>79b69572-4586-21fe-efd4-4a81a2b57515</client-ltp>
+    <layer-protocol>
+      <local-id>L65S0Cp1BDM21X9sSayoeya0u31QTL9wR6gRAxLb2p54e6o6gOnnexfIBgqm1rSLx0u7y7aAw7wK5NJmB6JQDQq66Rs0acDI57HD7K</local-id>
+      <configuration-and-switch-control>8V3hRGuPkp7</configuration-and-switch-control>
+      <configured-client-capacity>WFMxmb1I3LCyfHwzU50SoZukAErnZPJNnnlJzmju0V2fCzOowG8UGC689yn8f6Wuuhe3vxpvlrCX0jewZejxRpx0PU051Wrn5Fit5HYi8t71MlpLAIbj0IbPDbMw0eT5L3qIKp0KS8Lwl39VLk6L3htyl74ddPaZSBzu0Ae</configured-client-capacity>
+      <fc-blocks-signal-to-lp>kMTx0AHRkiqOa02MsUUoP47oyWIXVnM71xE17eSrobfz39dw40UL419uPR</fc-blocks-signal-to-lp>
+      <lifecycle-state>LIFECYCLE_STATE_PLANNED</lifecycle-state>
+      <label>
+        <value-name>s9NCyMmM2VM3kh5lbBDPR0hcyM67AmQ2vvEVa0IcOm88EdtHG6pyYyCokIoV46PsBmf</value-name>
+        <value>ePQ2cQ3IVwhBvG1l6DKre0ea63uHpKlEr3yDLBdG8v9v33QaGAtMAHXGCrg23tyvo609IeHIBQdwT3ysw16YA3xdnN7q8FVwLWFl2e3vW81I4A2At8q4cXhzCoZKVN8yBFUvTP0QQTyUlAmPIMLMC2d6i5R5SRDlxxQqfI85ByRP0dEBRhntbBAtGjyqa3LzBt0Ib0FEzwtrJZ</value>
+      </label>
+      <layer-protocol-name xmlns:x="urn:onf:yang:ethernet-container-2-0">x:LAYER_PROTOCOL_NAME_TYPE_ETHERNET_CONTAINER_LAYER</layer-protocol-name>
+      <lp-direction>TERMINATION_DIRECTION_BIDIRECTIONAL</lp-direction>
+      <name>
+        <value-name>DRugXhZbKXMAsCTzACTAMY5m3d4ykGvPpZ5egWp1L3teFeF8QqIvoORj</value-name>
+        <value>VJ5tfUTeS7nGxgkABq8Q5gynQ3MwVXhIHmcW952T4prBxL49b4Z8kxw2tazo7Q6G5aue7pZcOqFe4Jn7FegZLEU6OtuNbtmgvQmD7lPWEu2I6pPLDXDgBpnhSR5Vcj4I1qd9E25ao7Smoz01xv90UwiEgnzsGD2HWf</value>
+      </name>
+      <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE</administrative-control>
+      <extension>
+        <value-name>sgqWrToMrHcRJgujJXbr036Euu0W5RYx0glj9</value-name>
+        <value>6Aiaj2qNd1KgkCji9OM9CRSAhSRCcSmalEkEyDkDEWLZz5hILWJfNBP4uyzyjVIErUaSxmn4j93S6csJ0bYOMNK8ebGx6g3qb5iAsFELGzvMEXvE0tkM9XNf8lE7CHxFEHf6eMJVd6HRV5wVqIIzFnGOIkVkTkRy17wfL8aY6KQ2PeXfWxHuUnaDI5PtpH1iGqxjyI</value>
+      </extension>
+      <termination-state>TERMINATION_STATE_TERMINATED_CLIENT_TO_SERVER_FLOW</termination-state>
+      <ethernet-container-pac xmlns="urn:onf:yang:ethernet-container-2-0">
+        <ethernet-container-configuration>
+          <fec-redundancy-size>FEC_REDUNDANCY_SIZE_TYPE_NOT_YET_DEFINED</fec-redundancy-size>
+          <interface-is-on>true</interface-is-on>
+          <explicit-congestion-notification-is-on>true</explicit-congestion-notification-is-on>
+          <queue-behavior-list>
+            <queue-name>QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE6</queue-name>
+            <scheduler-kind>SCHEDULER_KIND_TYPE_STRICT</scheduler-kind>
+            <weighting>-104</weighting>
+            <queue-depth>214289372</queue-depth>
+            <wred-behavior-list>
+              <affected-drop-precedence>DROP_PRECEDENCE_TYPE_HIGH</affected-drop-precedence>
+              <affected-protocol>PROTOCOL_LAYER_TYPE_TCP</affected-protocol>
+              <wred-profile>b737f45c-5824-79ef-f58d-6a5a991aeab9</wred-profile>
+            </wred-behavior-list>
+            <dropping-behavior-kind>DROPPING_BEHAVIOR_KIND_TYPE_WRED</dropping-behavior-kind>
+          </queue-behavior-list>
+          <maximum-information-rate>-1718364149</maximum-information-rate>
+          <fec-interleaver-depth>FEC_INTERLEAVER_DEPTH_TYPE_4</fec-interleaver-depth>
+          <fec-is-on>true</fec-is-on>
+          <loop-back-kind-on>LOOP_BACK_TYPE_NOT_YET_DEFINED</loop-back-kind-on>
+          <egress-shaping-is-on>false</egress-shaping-is-on>
+          <encryption-is-on>true</encryption-is-on>
+          <bundling-is-on>false</bundling-is-on>
+          <interface-name>hsPOE2SX1p4JWw1ODRopdSGEk1uEBZXSjEyXzjMAIJcwfdkK4A9hkHVEIpbjg84zMCplNbWoU8U1l7LhHNy2umG5LRoURslEXKRCWN0INVC02nhJ2QLx4kCP3SBVdXraHiMvYF6DAIEu5Nd0vRxz31hYTSL6Hc8pnNMdsSQ2Amoy2Byxk57fYgeR8</interface-name>
+          <performance-monitoring-is-on>true</performance-monitoring-is-on>
+          <cryptographic-key>cab99r7p</cryptographic-key>
+          <maximum-burst-size>-20030</maximum-burst-size>
+          <ingress-policing-profile>b737f45c-5824-79ef-f58d-6a5a991aeab9</ingress-policing-profile>
+          <maintenance-timer>-1933132181</maintenance-timer>
+          <problem-kind-severity-list>
+            <problem-kind-name>H8AF7Tj0powEoLfLpKCCUGDW7LdECD2bLDISo1LOihkGUzjcbOO5ujTt477yK9JoEk83lTJv333Pun1FbHCx1w05v7w787vFrEIFprakmeaQt3vEL73Mv3J02782fDHy9pdrIgD4uNUXRhtupwgUzZNt7VveqdMsuSTd8w9CcWrVdMpuixhJo4cnRHBhMgJh8um8TvK5j3SxP9TZG2AW6MkXlN703Ih3d</problem-kind-name>
+            <problem-kind-severity>SEVERITY_TYPE_NOT_YET_DEFINED</problem-kind-severity>
+          </problem-kind-severity-list>
+          <problem-kind-severity-list>
+            <problem-kind-name>60N3kINRxWCouFYiDCCtQiAQdi7hnKklK0o4I3N8RiwdXnwAZ83PqvFEGEN3gZpTZFPIJvIsNeGCBc4tc0aDvQ93mO7DNowFVdfwIXZv3F7FRc03cayzSzDfnCK308IVlXk4UjzXYzuHDmCHxbgpCTw0ngVnovbKsvOeGf3EGqdjMP0bS9BvU7nigixENIo754dLc8hSymcdc4o4dRr0ZOi7YPLDq2Kn</problem-kind-name>
+            <problem-kind-severity>SEVERITY_TYPE_MINOR</problem-kind-severity>
+          </problem-kind-severity-list>
+          <statistics-is-on>false</statistics-is-on>
+          <fec-word-size>19548</fec-word-size>
+          <fec-interleaver-kind>FEC_INTERLEAVER_KIND_TYPE_NOT_YET_DEFINED</fec-interleaver-kind>
+        </ethernet-container-configuration>
+      </ethernet-container-pac>
+      <address>95wgU3XoQdylVvagMJi4pABI0bSEvR5wPBNJwK7eXxzK2K1GtbKLLdlLp5hMXmjEP6nmImAGL2iFMbl7m5KZi6CzbUm08</address>
+      <is-protection-lock-out>true</is-protection-lock-out>
+    </layer-protocol>
+    <ltp-direction>TERMINATION_DIRECTION_SINK</ltp-direction>
+    <server-ltp>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</server-ltp>
+    <transfer-capacity-pac>YQly0KQEWb3bLm6AE43bBDDEuU9ljAd9izHibpWZBRaee8GScKVFnyjRkl4DNiE6RlgUD5TeW3k241UgLPW0g7SAsW686KeXYmRBrCHoy1qCUdKxUGy2GiD06B8ddea3BUw2odiW7BqTObrAJZDph8qnJqAOFDSgpoiNutKt4amSdNkXEXmV5EbO5LvKgnSFD2t7v5Az7XjlCEihBw4Hbfn8T</transfer-capacity-pac>
+    <address>tyC0x4i4ndCQ0O1NWs2i52COzERqusLX0fXpjflykXokLh0AJ2SO5nvETeWnGzlyPaY8ijHC9XPUfPmQJ7x</address>
+    <peer-ltp>79b69572-4586-21fe-efd4-4a81a2b57515</peer-ltp>
+    <ltp-in-other-view>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</ltp-in-other-view>
+  </logical-termination-point>
+  <logical-termination-point>
+    <uuid>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</uuid>
+    <physical-port-reference>371eda64-3aa3-f78a-2711-ea75d567381f</physical-port-reference>
+    <local-id>ljAzc5qCh8J86HTHPqzGgP3PC0uHC2SXlkoxiP9zXLI3ktK2TcA21vRvvd47fPWA9k0r11TZMB2Z4F1QRBSK6B8tO4s3TovVAveCx7BbAvax23nTE7wCAw5gAxjuNGhgcvSBDlMdIPKLSZwxYU1yq7O1wZncGEsK1clEpZS7OuKHmh6k37Tu6znvrCz78TJ954OmVylCU6bgfhBigmEfN1Cev3</local-id>
+    <lifecycle-state>LIFECYCLE_STATE_INSTALLED</lifecycle-state>
+    <external-managed-id>
+      <manager-identifier>YMB1GSD792fw72K8fHYvPFf01Tw2ZYuPCXRaHmaQopnwjZwyGmWo1boU5UW4KiLn7CxOZHFfYULiT</manager-identifier>
+      <external-managed-uuid>IsDEQwI6iF1eBLom0vZqkQ7ZX6LJgwSQYonGM5N5KG</external-managed-uuid>
+    </external-managed-id>
+    <label>
+      <value-name>yz9fNNKmWNfMuOrnyzDsRbNBOEukG7i7ykmd76zWMOA</value-name>
+      <value>vTw3s9ncd2N1zhd7hwePQA3PzuDlb6tGZZBk1RweTbfkstsJZGrH9moIQ2318wzZwbjx2HLNSS0</value>
+    </label>
+    <fd-rule-group>4cd72b11-5cfa-9e34-94d1-42b54486ca7d</fd-rule-group>
+    <connected-ltp>79b69572-4586-21fe-efd4-4a81a2b57515</connected-ltp>
+    <name>
+      <value-name>OTsqNqB4xKxQSTmZygBNLE0hsXWlPpsvaVNXlgTT0qBLbPKK5epJKp0deWyWd1rnO7c1n6Mgwf1A5DcaJBTu0Lz7z73M0m1GteIRkuZIKSiHnuR75DBYg25Q10u2mwAQKazWFyEhiPYFbHM9cf7lh4bj4Fdq3N8NYHJv7gEp5uX83Jh8Rgt0cEj8bozf4z</value-name>
+      <value>2hwpgMVyJhvRk61sX9NYmj9uvyVCCvwwE2NUGIspZX9bW2wTbjJxDT20jPCVk8jY36LJOd1F3aQZ4eKfymNb7HbqoNdJNwzQCkAiqBPlDxcHMWWkaBn9aqzz5EaS2JBEWbOmEvHh3TQPHM1KggTiGlRLZ1v2D</value>
+    </name>
+    <administrative-control>ADMINISTRATIVE_CONTROL_UNLOCK</administrative-control>
+    <supporting-pc>wfn5Ne0k4Qg8PSjmEv95A</supporting-pc>
+    <extension>
+      <value-name>lsWc8fLhtaZc4U54rF3PIneC4RhPJh2XJY9S6V1zXTL1NJ56o0VYn1AkSR1u13rK1su7foz4hc54V23b3Y9iSBuClv6mypYAKtzZR0405140W74ZY59IHEk29jgI</value-name>
+      <value>eaczB4iC0iH1fzXeDO4JY</value>
+    </extension>
+    <embedded-clock>
+      <local-id>Rwgnn9e01Gcmg34XbvR3vQFcvJqNm2k5ytsOCyOwf0SvVXk7k3aPUPUprc5NfhKFK4lfD9LK1D7Xss4Fv6mpOg</local-id>
+      <lifecycle-state>LIFECYCLE_STATE_INSTALLED</lifecycle-state>
+      <label>
+        <value-name>021lP83mfwwkRG83p2Zy2Ey3KnZP6gL7iMk0Voe2UKmDqmyHhp7j3GeF35m2m01wElorJDtDfHhG4Pfd7nw23DIYIW0WWTtBfJ2YmouCXDaTkh6rEvuz84qI0iFXc0qrJkh6IDAygCrtTyUyVoZ3kpDlIiaUisdUMmSn0sV84mBPMofHMfC7E8keqm8BOdvAAnXsHKADZ4sLsIl6PP5tXhIgDIRrWe2otRQauiFteZ6</value-name>
+        <value>zjFo1KKY2k6</value>
+      </label>
+      <encapsulated-casc>fuNTinJ00jx0juTcNHs91SlgXPHSA6fHs3sCqbCivaaGwVTjCdtE5OUVwtFYrUFUX8ofb1pGbsnHn8TSleojUaeqETgXFWJv48C792Ocm3TJbEtoSRHN2V5yGmnea7J67ld8f1kBW5dZKGouq59kT7Kzt7Nv6oBdKOlRIFtwDGwneUJERTQK0AclIRQGgrUS77JHF4eiCK</encapsulated-casc>
+      <encompassed-clock>Pcvg6m5goT4u2hBlkAc</encompassed-clock>
+      <name>
+        <value-name>ftMUA3E7OIt3dCOXwjXtEppjUvFcbOTi9xcJAIQgjbboGZecbbFHAW0mjxqvlbNuIS5jAOrLZDaFuoRFzoe1cefwEG1ZROmsyrL1f4M7</value-name>
+        <value>WMccwJDMYwZ4MvIkoI34WvDn8EvdqCUfg6jEIXjGtaK7FtjV3nZZKCeT8BYr5SGmRRSrOb7alR9SctN7QF6s9dliObJU4h8N806P4dRh</value>
+      </name>
+      <administrative-control>ADMINISTRATIVE_CONTROL_QUIESCENT</administrative-control>
+      <extension>
+        <value-name>2XZQ3T6wCOG67drddyMMJr3K3NJX7Pv1FmSIfYfRFNQE19R6HDKjWN30AEPHmkJ1GtBNjIxYwfCpomn6Z7hWVkOnZD5lQGeo9P4kyBjWQNde9Ac1ztXmODKF8P0Qn6foVjIlM19CPeIQOVRggGCWjmBk3taqzhOnspAeqCQ7Qr</value-name>
+        <value>xmHNuoprzE2THo40PdG4G5FUo9DnZ4dwiVjMjB5S70EOoAG5NfalcHgAQLYPH3mZYxD90JU7JyO70u4NBe1OVhoLUetBaPs8e5a</value>
+      </extension>
+      <phase-aligned-clock>Pcvg6m5goT4u2hBlkAc</phase-aligned-clock>
+      <address>u2oupt90HaOvj5gdbJGlq8uxewEUAScWVAik3jkDu18F6gLhSrDaAZHGvlsXeET1f3lamxNIyNow49OWsj62aGAF13u7Hf8WilZELMnbsDIwEok6Hi1RYBo0ESZm70ahl1V6Oaa8NSEjgYqP8ry72OZHGYVFYXWcZJaFUkNz4jTc9b1hCr</address>
+      <encapsulated-fc>
+        <uuid>d367f062-7148-3fbf-05f2-f549796fa8e4</uuid>
+        <configuration-and-switch-control>mOolz74CNnT6tphoo9KC0jZL6qhbHc13SpgsocWbzPh26qquAa6</configuration-and-switch-control>
+        <local-id>ZyqCJWLn6ahLzhQhmZH49i0mhMb3RBkQ1KkKz5ZxggaHp0ZLRyITRAf8ni3eTnWU0hwzen6mw94V9VzTthMkR1k6bok5LhRLqgcEvb11kXPlSoedx0qgTKn58H2UQLxgTCNhNGiZDZknfrAMj035Lq2TZWFQz5YtzLKejUdWUpj1QUO2MR7p99b85QQENPZmsBAMo</local-id>
+        <lifecycle-state>LIFECYCLE_STATE_PENDING_REMOVAL</lifecycle-state>
+        <external-managed-id>
+          <manager-identifier>Or1w40jr409zKVYECVgEXA6cwTZAbjBRCunHuH0yz90b4YPzL5dIybMW4Mx7X0Zzue8RV8hm9hp67eFKcSsCV7yZTXYIXX9k4ibRisesCDyBK5mOXGqKNYBGWzgLpq5tI8kStqc5WKGyP2mEBMooCZXqrd4QD1bdan6</manager-identifier>
+          <external-managed-uuid>OiACVgaCbwhMax2MpZ5Qd9yIaJWk6UPM4p</external-managed-uuid>
+        </external-managed-id>
+        <supported-link>jovuXzvSsV0MbcIfLpwNwP5Sp7ZRsWXLcl79UC1ep10BdAQQSevg3A8kH</supported-link>
+        <label>
+          <value-name>NNrFj9Sr2h50TJxk</value-name>
+          <value>GgH0Vogietz4RgRwAoQBg9Dp7EbQ3vUKEtKrRSJ5laadrTJTiruqt0QsE1aHo4j2x3lgW4d9fney9YrjhNJCNr4rke1JakDzgZPc33daisAriTKzHm4uN8O8fPJp1mZhlGlhJzj21UljNYKmkORZPx74eIlf5cpiTKzCbTwcFKnkI8HUOqTDPTz3BVay7zR0cqv</value>
+        </label>
+        <layer-protocol-name xmlns:x="urn:onf:yang:ip-interface-1-0">x:LAYER_PROTOCOL_NAME_TYPE_IP_LAYER</layer-protocol-name>
+        <fc-route>E1ZuZBUwfz6BEEXNZOYqtN08zOjGH12l2UIUnuiu4g5AU2nLJd4404crKv7ro2FjWf5bJnFFvKfiFu3gH7kI4o1OU98a3NtZ2y2DVzjjbqBQVw6uEi4AH6gt7oDa3715F3BtCUENcfwZLuuhFqRmw</fc-route>
+        <name>
+          <value-name>PkIWKJXVS2DAzjhqFCU8giFQsKCvqavfv547P12zWF1nYjFwVzwbRb1bOwH6G4l31haQbch7KjmAC1YpBmAkytoeRXkyTxtUPED0IUZs5lVzeTYH8q2GMiMD7630vxUc3pcLc36hg1RvMHcU06sMgehnclnAKaMNzZyLUE3bxMGklK6lRzZ7FhvSuKkeU6TuXrfSYa3vWBHalOv4nn42EzM0b6e657A2qHUgSPMGqlQE9eIwBMr7d57p4d</value-name>
+          <value>9cXbCE6LoNp56KNKU1kiu7JBcHItLVYU7N5Ck3fIRENPoBziuLtZK4sXL3qwQhqQWokgrzZadEZB7qMCcftWjNL5Q4tzdUp9aJqBahEnVDQ3Wux0B0OVNASwwd5JZmK9X2L7jhmfU4aIzHIazxXeZHKnVH6U3QW0TzZ4QlbCqllR2V1BkRQjysGl2E85n4Y8DPct3o5tBicEed7y4PKvaiQcPQ9cU7cpXgK0EIl80xM6CLxzt9WDrEPgvYkhYw</value>
+        </name>
+        <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_ACTIVE</administrative-control>
+        <supporting-pc>41O1M0eT21o3fNX8g2AYTs5oA0RJdqIhsoa6pp0rqgmx3jFce827s7n30eMdFmm7Lwd2N5l5lHDhTal7ineLnBGfIksnGOmjcrd0xyXKgA11De8NCeqRP66pqqMZ60aaso2ZW0J4sD55RdTlrb49i2yIkdHqdStF8vw4v81QL6VucGIvSMw2PXK9aksf4VV4ij</supporting-pc>
+        <extension>
+          <value-name>bTAIvX3dXC7MUThJMREfEOODgFwsX1P1MhJi7EnW8nIU8SvUJ91fQHS6eoqch75WhG6odtclIV8QFDCgFEvvlntAETEVSJJ9hPpujCQ1pQK4tmk00Pne4QGIBcwuN7v4XVz8xh1W7L0s8ct01Q6XzMy2Q4wD32I0P98mqaaxVaR3</value-name>
+          <value>kWf32cCHKExG33KXLCMUL0cVaBIcsEqFAFIuJc3mIBUDwwA99e3U67HgIpka3KPvpp01t3ncwhP2O</value>
+        </extension>
+        <service-priority>-9223372036854775808</service-priority>
+        <forwarding-direction>FORWARDING_DIRECTION_UNDEFINED_OR_UNKNOWN</forwarding-direction>
+        <fc-port>
+          <local-id>R</local-id>
+          <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_AVAILABLE</lifecycle-state>
+          <logical-termination-point>79b69572-4586-21fe-efd4-4a81a2b57515</logical-termination-point>
+          <fc-route-feeds-fc-port-egress>ogZOeAPy4SFRAa4ML36K6W8ZAUN12fzinzYB1N15xHW0JSMuWK62zfT11z33OCdbbbE5YF2oeZoXJ2kFFqA6Fl7HUaCANQLYThVKXY83Po1yqle5LGbr1j0Wtuwgca76j2Q8SQcHedgwymCb2FC3Y</fc-route-feeds-fc-port-egress>
+          <label>
+            <value-name>ebfGSawTfuSPKI9WGqGWxtDPs</value-name>
+            <value>AwQbOWf3u7e1TlvDa7ljWTCuP1YkQijjG1mmXBisBwtuJQ7UPk5Ldz8VB67jgquOrRapssJVQ4pAUomBAjfOTnBmlIxt12hsTjJdEs1uwqWiHaMhm1X7oqtB9S4aUluFw</value>
+          </label>
+          <selection-priority>-9223372036854775808</selection-priority>
+          <name>
+            <value-name>Zgsbiz9BuZKeHWWN94kzqOKktffkJZEAf6MpyV0UNK8my4az0m8qaTCD0SXJJtcYAYf0LfUqS2NqZP0Zb0idLUQLEGnn1zdtpstaAnB</value-name>
+            <value>igK95C88vqlgd3UJJh7DIc67xA97PCr7S38PyhX3zijMm5oXmnAWzH3Y95XYHgYsk6hSf7NPp6tL4RJ</value>
+          </name>
+          <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE</administrative-control>
+          <role>HDocFsjGpRB0c5MQTZXhQIDcSiDBw9BdF0qkkBTJkuKwAwelnbCeM7qEq37W5J2CBsWV3HEgcgMMN1Z24tgQAzm0CmXz5Zbyj0teHZuLg9p32o56RePsN3khp9Rm0UUjUfqufUfv3FqXVn4NtL7gGrq6B9kB3fVQudcJ7j63Yo0MM</role>
+          <extension>
+            <value-name>LaGMx54tfLw1VSUSZajkLkcPmZ2QEz4hJD3gA0CPL0JGSDrROC3rWfha6j0LKXUusYC2Y6JB6kaYYtH</value-name>
+            <value>5K5TSe3YqVBaSwwcm1ec7YFeaP40aMEfoC08I3Z8RAbBYHOcI2gQSWW3D03OEAVV4W3MZ</value>
+          </extension>
+          <fc-port>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</fc-port>
+          <fc-port-direction>PORT_DIRECTION_BIDIRECTIONAL</fc-port-direction>
+          <address>klx8q82GQVuMQ0ELObdJ6hx1WpWB7jrrwYrW6uvOhZA7Z7KFiYho7Oh3d5Edo5ENW6BUs6JJYbIPisnsiwQqk0tq50DmX99T7KGzJpizs0gDlv5v1OVeOhETh9f6ig0qTGZuXa3h2bUfz0LAOGOuPkn6lv5wL5WwDN0sPVJS7EZyw</address>
+          <port-of-internal-fc>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</port-of-internal-fc>
+          <is-protection-lock-out>true</is-protection-lock-out>
+        </fc-port>
+        <fc-switch>
+          <local-id>IOyOtQzlnG6nW8tjRahP1EJzlcfmoSH6yfM25enkUlHQtb1cdb2ePDG2PVhdFYbd5X72bvmXQ3Gc6HokKqqr36uSTLXyJ8EOYLQ9847R7F36ejqZKQqFPMqIpn90oNOmqwnzsmis1lygEQ7gypWnce6BtfCRUi5kHlT9H3BBo1JVRQ3qfRNj5LVzSpiMHo7gJSqiWTTcVuZMk</local-id>
+          <configuration-and-switch-control>Tq2f8hw1JvM6H4SV5qk0g50aohoEbWs4mucuMInn61mN6eI3E33V0V5pdm3gaodwSp0wZfM5g8SmethLwdy</configuration-and-switch-control>
+          <internal-configuration-and-switch-control>8vNdRJu17HpRYhgPw2VN2F180jTowrVwXACGj6AiFZaDhqkNk7seNumFNg4bzRzwrb5D9FVOw5jNnEtzLVNqh264aa7J1H8kSdX2STIoQ246GpFjclKufIqpSy8LfgXZtNTdyCCoEymcX2n1f7vuPWTzuTcB22snPmBnY5D</internal-configuration-and-switch-control>
+          <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_BUSY</lifecycle-state>
+          <label>
+            <value-name>H</value-name>
+            <value>9acMv3jy3GdhMh8G6EqxGZZNcPDsXcwYnBDSEWrHuwZhNZXTDfrceiZi7uKWG9U3KxOom7XQvO7iNW4rbnvhFmzEQcAolmk5U8l87iYC7YMMU</value>
+          </label>
+          <switch-selects-ports>PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN</switch-selects-ports>
+          <reversion-mode>REVERSION_MODE_NON-REVERTIVE</reversion-mode>
+          <name>
+            <value-name>4sUSLSvGroXBaxZ9NAU5LQZwUM1UydPDFJnrtSZU8Xojufk9QeftW6ZRSSDi6sVL3acxV4j31HenXzwFNL0CRZlJKY2QiPBdSGCNKOQDn50cwwRbiJN1B8LlYF</value-name>
+            <value>8mEeecQ1WEKr2HredYYo</value>
+          </name>
+          <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE</administrative-control>
+          <extension>
+            <value-name>5Y5AfKWPoM1QbmdvjZv</value-name>
+            <value>7CWX6VVSIIBNGGoVrcCHZvy2JDp2CUGJovymque04POKw4xPg2o7xO19rqb3cSEsndOFz3GDKmf8iEXqyey62z7u0ip42Wxp1lXAgD51Rc19QZzh5Zf7rmtjELnHHUYI8Vaoqfhhrji9aKqfJFe21IlylJf2v5KD1U2r1bBkuLlEvML7j09dAvDV6SPBXrfQd9aek</value>
+          </extension>
+          <wait-to-restore-time>-9223372036854775808</wait-to-restore-time>
+          <profile-proxy>lxYBKrAWGIpn13sMFiakyrWJBZH4xZJKwzd80N5ynmOopg34qdgRwdA74i3t9E5FdjF5YCweYkCfsxbTKkCgxcntmjWvX123cI8bcwp3ITibrmW3Gyk5CzyZSmmQfpTs7TvbiMe0Fx3YLZ2jpeo2F</profile-proxy>
+          <control-parameters>
+            <network-scheme-specification>qCNr1t6Q1LbpT1YHVkkhcJYlYkS4VCKm6xN8TMYUpacbb2S6e5gqO6EEqoIeTsAZRf7K1Yxr8JCbDm9Rrh97oNLO4tUXNmOFCOhvMOOMpiX2FYTYg36EIRkEdftSBip56HBKnpwNIlPfjB5zw356NqL0xeK8oa6mJH66YuTyPBF1c</network-scheme-specification>
+            <hold-off-time>-9223372036854775808</hold-off-time>
+            <wait-to-revert-time>-9223372036854775808</wait-to-revert-time>
+            <reversion-mode>REVERSION_MODE_REVERTIVE</reversion-mode>
+            <prot-type>Vt9VZDCNo499gKbaczZqaeo7SKKSi4E6xN1oiDbyHkHQ4T09s0zu6QBYsdILhmJO1KdjfgRXBrFxkFyEx00EQBuiOdVXrELtgQEw7olAPS71pGFXGFto8PyW2uLm0oP9flxeJ</prot-type>
+          </control-parameters>
+          <hold-off-time>-9223372036854775808</hold-off-time>
+          <selected-fc-port>
+            <local-id>dm7nxb7RgmE4q6N5eYqdfa0f1</local-id>
+            <lifecycle-state>LIFECYCLE_STATE_PENDING_REMOVAL</lifecycle-state>
+            <logical-termination-point>79b69572-4586-21fe-efd4-4a81a2b57515</logical-termination-point>
+            <fc-route-feeds-fc-port-egress>1jP4957l8mxZ6YD7v43hT3IArWqV9r3aKK6LH5YPrwGxmjwRfA19vJJWF2KOtNQ5pXR72PWudDTzOij4KkdfVO3sQN8bsYhSV0RYPNkV</fc-route-feeds-fc-port-egress>
+            <label>
+              <value-name>P2vLmBF6JRExhQYqCYQLTLa4mn3XN1DD40oqC3olM3SVTIlnG39rPbv3yq0msvRwv7O72dsOgcB1MWpk0qMHBhK2ICo277yueeCgrW4H1xBNt08lqUU13w3D0jF7q5CEk6UL2QlVfWJJOJWeDJ7y73c8eRfxXJ39HQUCy7xOV8pJRlP</value-name>
+              <value>WXV4S7cYQjvF3zOKhBePIMDwU2fMg58cU3gE2kCTE0yHrfjIQyxqcbW654Kl1LqVGGrJ13u</value>
+            </label>
+            <selection-priority>-9223372036854775808</selection-priority>
+            <name>
+              <value-name>XGaKZo6YLE1Lnh72dp00nfZNk6PkmIjbotVfJ1dnxe8Nv7HJpHBMOAr8HgtVYE6eZ1uJUzYkOY7b5GMufo84Qz4pHpkx3qM3j8Eezuyfsxrp55UclU8cudB3COByefByf7EOB443tnkys6KG1TSnYlqA110g8BGnAc43g86Jnj9PpTnqE7NCte5u75C8zan9m</value-name>
+              <value>dCrbdOumwUgTcM10pm6mQ5rldSvB2K27mmaAaxWGj4AvRBn8XtmFrNSEyg7s02zeoBGy8v7jzHPia4iZyEwZkpvSxDkxxLLVeklnPsGg9nzbsJaSgzJAY6knJwU8hx3vRpKGRjXTyo40Z7KfGtPwA1TbxFkG4f4WEOuoZjhyzdqzcbOSEwg6p1aXGuDLJHzgo3EnfNVO0ef5pWXVk62J7cGOycz9T0p933xaIkZBy6</value>
+            </name>
+            <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_ACTIVE</administrative-control>
+            <role>WmoN8u3k8Gvm3h7NbmwVMRpNhd72LOrA2Pf3cbnkRKyM1xr4UXZyHoe</role>
+            <extension>
+              <value-name>3U6m9p4RPCi1F60KaCYbnoY4WpFPl9mg3sD5KHWzb6tQdltfXrjdPhhDzWtUXP20aFXUfUlq0O951CdR3w4KFlfe9I06q3YAIWuXIPgAwpyx1LgW9kyOxNVGoVEOQvorjSg1zwt5V1vOEL</value-name>
+              <value>N62uDQpcecQ2Vdimw2CxB1THOU4vrP76NaAjSRv64d0RradXcHnNAgmp2qUlgTs332mVUJTQXLHgNM5ZlsNWA1dvs7QI0iDWdSJ</value>
+            </extension>
+            <fc-port>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</fc-port>
+            <fc-port-direction>PORT_DIRECTION_BIDIRECTIONAL</fc-port-direction>
+            <address>8oyW2ENnYsjzuwWWvMEoX9ca1V9viYVjmufo02DYnXpRllNJ0j7Xsb7mYgRh6MAk8HI0BdZY2oPoCuZCNYr89yu7GlgMZI60hG0TTZJWgrcSV3mB1NJad59Lqiph0nhi3i3O9MCp5G91JnuK2dMfiO0A6pR6M9gHjjosYSK3rL429qNbDrjNfjfdB7kf8sPrM5LKXvFghCji2Ytyp</address>
+            <port-of-internal-fc>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</port-of-internal-fc>
+            <is-protection-lock-out>false</is-protection-lock-out>
+          </selected-fc-port>
+          <switch-control>SWITCH_CONTROL_FORCED</switch-control>
+          <address>dUxZTJR2Ojprevb370meRznTNzwdgU</address>
+          <prot-type>kjPO8137nqcT49HAEmB64wPOvlN3Rq43JLJJMFI15UM9VlCzAdxEBfsZA7UkxQn8BZSgEA9JnWLa9nKJshfVwzUZHHj6xyf1x7h3zqFWeq7gFJRZS7UhyHgformVZBWpA5k9oZYCh5KWGCVyBIP9pXhNoDAg6pxyuRHSRFn8C7XaBKJcsqmJoDoE8ZU6gjEKbdvUTKUnRRqlu1xWrTy</prot-type>
+        </fc-switch>
+        <lower-level-fc>25fbedaf-00e7-2908-fe09-07fe37aca56a</lower-level-fc>
+        <address>Jv5iDNHYQDIx00X01qWgukpcn5uqUSp</address>
+        <is-protection-lock-out>true</is-protection-lock-out>
+      </encapsulated-fc>
+      <sync-ltp>79b69572-4586-21fe-efd4-4a81a2b57515</sync-ltp>
+    </embedded-clock>
+    <client-ltp>79b69572-4586-21fe-efd4-4a81a2b57515</client-ltp>
+    <layer-protocol>
+      <local-id>ktdBG</local-id>
+      <configuration-and-switch-control>7Uk5KBzbpC86amSSjj2NMj09PKcnMwpTiJR2di6CV6AXskPMDSrh3rjK4n7QToBc0k65D4Hqb9nDt</configuration-and-switch-control>
+      <configured-client-capacity>l79ewWEVwZqTCWFVgPLEMDnBMbtCZnEkuNrSCXG8X6TrVrf3g0AUvXvi9YU0lycIeDAQtgQifJJ2aY5iQFdmvIEEzqwMZIu5e5NHdDZkeAmhzszp7MDCnh8OIwAzfXwlUj27OTsUtObU8Lc8pPKEZLszh30oSwJMHDLvo5hKUtEU6I2nyF2xqu6zp6QhurVb5HylMP5yaCtgcvEK2G</configured-client-capacity>
+      <fc-blocks-signal-to-lp>ZPJgS2ru6OBOIZqMRKKWfPvF0E3v00FZPg7ziz3pnw5XnvJf8mbfbHVbdQydQdcxtk6MT13gx86UwP9w3dLeUGh7oQle3pLxJJbCK6LheRcKyd8CqUQcA0kZQx5TWJiykl25rNeGwqi5wrzWlh9NhlE7SCTGd3exphCQWRwt9HqF0Rul0D0iYxhI9agmenTDwols7SNgr5OrWiEXVE7LbolcrtyxQk2mInHP7uXysLZo3DdQ</fc-blocks-signal-to-lp>
+      <lifecycle-state>LIFECYCLE_STATE_PENDING_REMOVAL</lifecycle-state>
+      <label>
+        <value-name>Uz2ruJSNbaSC005Sptcfo9mrlWb1keR</value-name>
+        <value>OMpanhQzjI3jI837tgeShAjDomEABoGha5rxf9YyR1Kz2NynVEfd7qInFeY8CEpMCIkRSahJ41b6PBtK8BPfTpCyEAGg753JGfAypR9tLcrAGNcOoU39jFIX8o6fm9Q</value>
+      </label>
+      <pure-ethernet-structure-pac xmlns="urn:onf:yang:pure-ethernet-structure-2-0">
+        <pure-ethernet-structure-configuration>
+          <problem-kind-severity-list>
+            <problem-kind-name>t6d6j5bbsE5oxvSG0S6nd2vlnvEt8wABCFzOCK</problem-kind-name>
+            <problem-kind-severity>SEVERITY_TYPE_MAJOR</problem-kind-severity>
+          </problem-kind-severity-list>
+          <performance-monitoring-is-on>true</performance-monitoring-is-on>
+          <g-826-threshold-cross-alarm-list>
+            <g-826-value-kind>G_826_TYPE_UAS</g-826-value-kind>
+            <granularity-period>GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN</granularity-period>
+            <alarm-raising-threshold>1368712488</alarm-raising-threshold>
+            <alarm-clearing-threshold>-1518771471</alarm-clearing-threshold>
+          </g-826-threshold-cross-alarm-list>
+          <clearing-threshold-cross-alarms-is-on>true</clearing-threshold-cross-alarms-is-on>
+        </pure-ethernet-structure-configuration>
+      </pure-ethernet-structure-pac>
+      <layer-protocol-name xmlns:x="urn:onf:yang:pure-ethernet-structure-2-0">x:LAYER_PROTOCOL_NAME_TYPE_PURE_ETHERNET_STRUCTURE_LAYER</layer-protocol-name>
+      <lp-direction>TERMINATION_DIRECTION_SINK</lp-direction>
+      <name>
+        <value-name>22QzS2B7KYO</value-name>
+        <value>6ahwC2oTY1YG3b2hMAzGCp7nsIu4yaowcFVHzjApcqYgBSpnsY3XfakzKOwb</value>
+      </name>
+      <administrative-control>ADMINISTRATIVE_CONTROL_QUIESCENT</administrative-control>
+      <extension>
+        <value-name>gikF1t1Mysee7r2vdXFwufmCvsJRtzDJRXgTj9FRCU5JdZ7iWEOiT2Vgmw0P6DqPBHAUQ8Lk2IW7zVpnz5Fk0sAmZAcX6CMHbnBUveepO2ofXFCoC9ACC3ZtD3qJx4iJjLvOZJ5FElUB0o0Dqs7Uv6n11FKzJVa3GFJygH5U20oVggqyIxsewPfxmRY6M01lxKTGrYsmQQhZYHxHe0NCH</value-name>
+        <value>24D02iT3DqNo67mzt5hK4gjtPplu2Vo4R14TbPOOgtceArFVwXxs5QNMg1gaWweNpayB0eh8HumaVU5jJvDOdistjADf6JUnUkYUy8U8C8ip2fALC5rQnTbHtPWrqJPk3F6uN0Ch9My318PwdgmB2xine6PFPwZL3YfJQRSZDr3wzK2FSg8UOqa2oZz6nrRip6T7PM7kd2QEELbwTjjHJtC0k36zuXRL3LTKpS4</value>
+      </extension>
+      <termination-state>TERMINATION_STATE_TERMINATED_CLIENT_TO_SERVER_FLOW</termination-state>
+      <address>pkOjD7Sfsm7MqdlUa5y5IrP7bLBXxBfXN3gj30yvnFaNKvzUs7RaqyhBjKqImxF1tNkwOSTbp3Y1rpVTpEWP45jfQBY49D5Cjq07aTasP0t8phTOVPw0VP7Di5HrBM3U43TfP3Hw3awkrh1fZx7MeepwkYYVCTHHPAWwvvUyxqKRzL6yi5kwjBVvzTicEZTtrHRW4LmB37kDSqb3norHZm4z7fDM6o7yXZm1CJuGI</address>
+      <is-protection-lock-out>true</is-protection-lock-out>
+    </layer-protocol>
+    <ltp-direction>TERMINATION_DIRECTION_SINK</ltp-direction>
+    <server-ltp>79b69572-4586-21fe-efd4-4a81a2b57515</server-ltp>
+    <transfer-capacity-pac>fvA8HwU6S35PxHowxG6WBZw8BDU4NvGU1g3IFPHpSMehluFSaEGMv4M6IGan4Qh5ZcFw2mVM01WlvB5F7LjDQYJqEMNIu4FlhlRbzMXANLVaf</transfer-capacity-pac>
+    <address>DaslCGvP87TqBTJaUQJK4fq1YgF8KwsoGUJjs70A6T1zMCJykkagzBhpJPxulRS2Dtd6sdyq6rZKVAifVlo</address>
+    <peer-ltp>79b69572-4586-21fe-efd4-4a81a2b57515</peer-ltp>
+    <ltp-in-other-view>79b69572-4586-21fe-efd4-4a81a2b57515</ltp-in-other-view>
+  </logical-termination-point>
+  <logical-termination-point>
+    <uuid>f3bae3ed-07e6-ac64-df4e-53c37798cd70</uuid>
+    <physical-port-reference>371eda64-3aa3-f78a-2711-ea75d567381f</physical-port-reference>
+    <local-id>Fsk4</local-id>
+    <lifecycle-state>LIFECYCLE_STATE_PENDING_REMOVAL</lifecycle-state>
+    <external-managed-id>
+      <manager-identifier>UVHOBVfwsAFslmmS7aGQMMR3KrHBhD53qMR1A7p2HXm2jJMiTs8y6ZBJiacAN9D5Vn6nmnh3kEYDfCW05Wy3O1M6bQyYZ</manager-identifier>
+      <external-managed-uuid>3Nr1aNpkIBYy7db3d8RM3FNIERy4Hy8DlzEnmVHXxxvEKyzQyiuCQ9ku0SyIiHlv8RT</external-managed-uuid>
+    </external-managed-id>
+    <label>
+      <value-name>At9B0uo0iNehIvPnrkqExP9cv8K62Dmu7v6ZSmS296jRC07VlxzKmIWKIyQC4c73Ad2krUmATGknGriTQJE5jsP1TxwXCD04I2o9PKBAiVXZe7KXQo21RJUC8qzK3zOLtcMaXoK7bz6iyJfg7hhQScs0CTLysrbOEYYteBAp2zHBiWRh510XdkYHeB7y2jmy9d1nGuMIVmb5iV</value-name>
+      <value>gWm59H3INwQlr9IZaNTxtfb3ax7fQ2tYYQ3ZpZH4vxpOyZOIMz77Oj3QQa5</value>
+    </label>
+    <fd-rule-group>4cd72b11-5cfa-9e34-94d1-42b54486ca7d</fd-rule-group>
+    <connected-ltp>79b69572-4586-21fe-efd4-4a81a2b57515</connected-ltp>
+    <name>
+      <value-name>Wq96Cv6n4GFD13DLO0qgku824Li55YoUhy0T3YgZxOuqR8bx0tNlXOfTrxYwnfiENayI1GAym4Y542C5viil6x6x45VjceYZowzp49Pr6OwaI975rpipWpWSmJcyPap6yYnC8d3eTsgBBoGUNZjKg7CCIO2yQrEop1Tx6ODZgU</value-name>
+      <value>Ji1v50OH8NkKw0M4J5A7utSUsHxrPjUrBVWzNDgVqsxWlbS4gk3CGWw8v4rcflDR8siN5yAv17kea4iiplV59j5EfwJvKmmSOEyL48hX8tbaxttWHgTQzQnPn6kZkyJ14hM8qVYyo9IWv3K4jwULm9AB7MAskkloB7oTVmjjoU7LXSP9gJUCLmeS8Okk0FIuFYnAdzLBtLeiv3rLEdnpztizauTa2tEHsU9FtM8Oxm62hyNVD3ldwvMGZyJ11</value>
+    </name>
+    <administrative-control>ADMINISTRATIVE_CONTROL_QUIESCENT</administrative-control>
+    <supporting-pc>iZAZ3IyDabmrLI5XcQaKiBARsr2OICy0u8RxIq3Sthje0o447eOpPg89HaPhNn99w1yejBZMTaTLzXHy3wPTEXUe7KvM7xVvyuCJXBnILglc53K9rzU5oOjwyHiye63Esxnp8K0UTlYQoJZHaTNzAYX0FfyTduxF1M52p5OaiM0Hn0gqL3Rd2OezVEl90SOUxLWWQC61o6IEYY4</supporting-pc>
+    <extension>
+      <value-name>4qw28ATxzABW0TLqSr1xS8EyrHoiJlQNLnHUPAjg3N43GPlq8mXSvuqW3GeNTXAxcaj1KChNhlIP34g</value-name>
+      <value>i5WNzeCDVQqOFSdR2wSF11sif30aZgdhd1XNgzq3hIJXsXOntz2usmNHpNRgV5y8YnNeW595NTU8QBvjaxGCTlcb03rV0ZVZeJ52Of8u02CQv71FEHap2eA2h2PaTL18mY225aw558VA7X8Dwa3zoDtxxjHr4AriztkEwRKtRx3Zu3C15xst3VTA6sT23ckuGF84oKxfis6EwBxt8ZX3</value>
+    </extension>
+    <embedded-clock>
+      <local-id>Q2cxG0rmlEM4f5Zeq7NX42oobmUDVekL8oaHht3C8HGfFxuXx9MBc2RnpMTcSdP0tZzKlvft4VIJl4zKeldqoXFFByJtDyl7pVRKi65mUG67KxJYKWg0LOFmmoHSO3Z6QIQ0HWmtukseRb5CZdCL1aZgqH8fCZlkH3kgRGBl13AS6xm6KRJE1AUrh2yTTT5sXpJG6k2Zg</local-id>
+      <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_AVAILABLE</lifecycle-state>
+      <label>
+        <value-name>q4hSJvZVCKlr6cAFNcTsBm2O1PkCJJb1NlUpQLcknxMlJe0oqMR18LH1s2DbDPdjaZISKUc7kYsVclku73vfO5ggZUjCBwNLvnv7aHeu</value-name>
+        <value>zhCUB71Eu8szoAyaU3LiIoO6TNgt2C1tTDnnKg17omGEW7HI2s1KJHQCuY5os</value>
+      </label>
+      <encapsulated-casc>6mstVBel5sFUsOXzmE4PN5wxSeQRgUfn8HI3iPgfhW2JCZiYvmFak3Hc9qVqkaFsJnn2cE9lsb4W2eMxtjIFmhRwHEO1OtlpQBjV7t8zw5nzj9YEsGj</encapsulated-casc>
+      <encompassed-clock>AsuvU4rbRSpT9HFIa7buM3wiMnUvF4TfonCij3l3NKWXjCxmJIQvEeGqCsW9wHoN415fWriK3fzfR6BsPrXtGvLaYzjmgz9cs7spyK1tRAIAGj2nDSIjnull3EIc5JoyQQPgtQKkqsVYEPehHWsXiNaejSqouOOkxDB0tlcLFZKbPYso</encompassed-clock>
+      <name>
+        <value-name>Jm16kDPVhQw39F5IrQtwjiW2ZUe1LmnuJosVT9RbZfe1UcJl2cSdvG7usen5AKrj0U7T3YWV53WZ7xd1J5f6DmsXAP2brlmr7td3j1Yo4MobjBdUys13GtShbMkC7yWf21id28C7USi5lvZTP0OwmyFxkZ1jpXyrYIF1Q90C1iHmGH7nzNTNlqcFheYH3p0U7FNQGNsHXaVvJ2TaPEY</value-name>
+        <value>52zm8q3cP4YOBDEii7Rf9NDKHwUpaKr7F1uNrxZ8tPW5stfKs6StTvdtTZS3Cj3hcx4DWWLqDAn63CInAAQmX3PQUHMw0PF5eCIaymA3OP9JrK62cWgaR5SDME2ElHJzjkKJGcNm2O5lybfLZvNIsFdecfLxXmZ8GBKeFpAzdFVEI2p</value>
+      </name>
+      <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE</administrative-control>
+      <extension>
+        <value-name>ReC6BeeClCYU9N1QvVaoFT5ooAelYHkIVOGw2V0gpR2ywVg1QrincnLAX0WOz8omW4KQZKYht0PZV</value-name>
+        <value>TDpb1tyMWoEK45SkrOo3wgOvxhne9jc2WtdPXDuT10vX6nhp3ytzO9WdqkjzvwtjRG9OkDzdD4bBjk1eSuOyDCLVWXnjlQDcpETBhkOMhRoAchP4LvDg7g3W5i7q9KDqg</value>
+      </extension>
+      <phase-aligned-clock>4FWoq782APXUwepFATR6jnGPlBKxGc5DRUTa11c</phase-aligned-clock>
+      <address>c7zAALRhHuMcCLlxzqQHRZjuhA</address>
+      <encapsulated-fc>
+        <uuid>5b0b9490-d76c-5fc1-11d1-dbf368bb4280</uuid>
+        <configuration-and-switch-control>HqFsBBvkd6Es9jwEyT0cyA5ulrphypyfQeIrH5DM3hecAKI0EId4jaqwuPN27l9XrJg9OTVJ22WCMEvifIeyKF4emR8t4iqw1GxIrsrtuf69</configuration-and-switch-control>
+        <local-id>xdxjhK6OV2b2PRRBcn7jgA5iw6a8Ez93MzmW</local-id>
+        <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_AVAILABLE</lifecycle-state>
+        <external-managed-id>
+          <manager-identifier>0t61vWDb9U3U3TtRmmRU4nppkvawDz3DU1FhXatY5oT09eRwAIqE5PVic5OPwRkiTRAI2VzZjkZtyJZ0rhwpYrz2onJU7340NEIHr9GDtx61gXTA6pRWIqY6FzSMuXMhtnYVwwq0WoT</manager-identifier>
+          <external-managed-uuid>dNEj4n7NNXTlwE70tUaW90Jxp</external-managed-uuid>
+        </external-managed-id>
+        <supported-link>3yzNdvUze23iclG62dGly7PUfN31gnUjVlY0QSz4NueZQNXK0D5qDMlSzgLHDxSqSRiABSwomCg4pdOiRUImG368kRHPgA80jqAUa6bxIrB0Eiinc0JK4PKgys5OU5O5woZGm25XtzX8R7vV7fF34ibvC9jwe0tKokjDngAQPpYGwmtvt1zpjKUVTe</supported-link>
+        <label>
+          <value-name>wyVpeWi4KtqEsNEmou2PRuFXLUsOu</value-name>
+          <value>9T64ak0lpCOHg8uUuSgwz006XD1iknYt84xjgpEx2keasAXWkdk</value>
+        </label>
+        <layer-protocol-name xmlns:x="urn:onf:yang:vlan-interface-1-0">x:LAYER_PROTOCOL_NAME_TYPE_VLAN_LAYER</layer-protocol-name>
+        <fc-route>NWuqYTJIfDr2lUgmoKJ06MyELFhSf6rUUVkSG4ANzUHVGQ9WASXGwnc92m29kl3fgg7OcACDmbq21zQCsFaY2n0XJ2Y3fUav2abeKFJ6R20SBImVopMiEMf</fc-route>
+        <name>
+          <value-name>TxQ8E2geZqD6BLC2UFHl2DxenEtaxyHi5pjCrzQj0tht6TvTycesHLz4h27PsOZq5i2xKSICeZ5kSs5ixkLe5kbfea4HQV7V61kQL2kZ1hcTBh4</value-name>
+          <value>tPfz1qOfAKOixNdDOylsAxjuOnfqFjq08Fz15f9xRXPhLVUrt8LVF5pmsFMZY40ZKr0Hz97q7OHKJu34CP09Mpv6W96Ve6UQpMxYWwhVlQxWks1O9TYVal27v02BYOrnsQegnv3Al</value>
+        </name>
+        <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_ACTIVE</administrative-control>
+        <supporting-pc>0eMKu6V7tczk1QaAew3KZ4jhfVbaHhlHv7jS6fRzjjLc9WMokI0cEjtM6wWNOaubhO3nVVPe6Aq7o5vBFvFbG0XNwMskWXwdDztymiEkK4s99XCOlh0ThPyNB18xQwDl56Lkgp</supporting-pc>
+        <extension>
+          <value-name>dkSbYLti0jL9fakvrQVl21wmClaWyuIMOsPEdiOdtreIBq5Vg08i2EEEZOsqa24ZuTvH3kNwLTefkjaAciLePhKGY46872ZBVvbYPQusJIH3UJw629cJiOhg</value-name>
+          <value>ghRigleLwcsezVX9CT3eh18i5RAT0REg0vzgQF2eRmkihasM3v0cp8mmRW8RFM8F9zWSeQYX4jgmtI0o5Ssm0OJJKRAiDAXE1LwfBn5GGlU9VMp0ERnwF6fhPHzkaxYbinrMKwkqJ6rESQwwHLUeJ1vyI5SSu</value>
+        </extension>
+        <service-priority>-9223372036854775808</service-priority>
+        <forwarding-direction>FORWARDING_DIRECTION_UNDEFINED_OR_UNKNOWN</forwarding-direction>
+        <fc-port>
+          <local-id>f6dpjFzfXQmyE9Qh4XCoXqg1lfFdYXq54vufbWu0EQqaZhr3eVj4ms5zHCEFz5LvAfKD3eEI44S4dkZk7bolDtUkXrZwwCUYKEuNL0vPWoLaADuHOS3jdPDaguyEZsvJZZwKZ2rVi5XSAjrgbmzgc4ikqRZpbu82lxMcr67J</local-id>
+          <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_BUSY</lifecycle-state>
+          <logical-termination-point>8c0b5632-f6b1-1b90-dc8d-4334c833133c</logical-termination-point>
+          <fc-route-feeds-fc-port-egress>eBhFbjeMpqtV5IhkbIYcN16dcvCJbkcqVl56FbKWueSrW1L0JCcpDbuHG6jKqv2dIZjfa4cEaW56XJ6ylbPQmky2iREJeGWWF84I4geecck1Vjr8uhQQtoKL7pmd5b2Db6dfmrtqDFrqYSqk1h2uxN8F4mS1xUEI0RXebiEOYX7OIx1BG36eI6LMsvOSikAa4qh7AVVqLU7lk8W03U6M0Jq</fc-route-feeds-fc-port-egress>
+          <label>
+            <value-name>6Z0zV6tR00VPFD3CTmMXcyjqGcBu3uN2lFt8LW0MXVBuqw6bLK8XjjgRwRlrd1tqGWykLq6Idz4D6bGJVHy60OYoFbQK4baL0B5L13l7CpKAsjjg0Se0Gcpeg7Yki15iu2Vv58CAyfaSqu0qefiUrz0zGRUZ</value-name>
+            <value>R9eMXBJ56jvlmoLQo3WDlIXVJwtsikcamqWj1Fo7RUkdaXVy0R4ez11apmCIHOK36Gm0dC7Wok9y9WZ2N3gfW9hdvUV4Ax7z5lzjYy7mKhNU5MWTH40Dd9IA3wF</value>
+          </label>
+          <selection-priority>-9223372036854775808</selection-priority>
+          <name>
+            <value-name>XtLgM1k9sAdwTxWCoeNKmQ5LuhcAhND68gmV9yWB91ZUyOwP2bzgTx2gGeIPUmV2uaPEIL7JMZDdN12P5t5YS76zePg03c2xmS3Wv3Ga2bnP</value-name>
+            <value>hwiCt8vt7WzWczZgBoulsrRn71pig6nxux1XGoqNkZBpqsF2Q2fat6xsZWKfU0EoxGe54EKhwlyWN5Qw76GA4e242FbPFId4gracYUlm8TaVZT</value>
+          </name>
+          <administrative-control>ADMINISTRATIVE_CONTROL_QUIESCENT</administrative-control>
+          <role>GeaV0li2vtg79R5ST5CvFZi3g4eUIt9ozjbzEtB1XJ8YBdQuakRQbaLr6ZlPlm5UGhmcKX6zHepas7ECsokDyY5wXidaFj5dAjhcgnMPC3ZWbEqD2L8sB5Qqo4BVny0PRh17xFP1JOXMkfhe0pytvpUTtvGI3GxMPyLm6AfPhctBsKQk9oOEFAp85XQ0DfElGpzMSPt91WKlGsyHJeeoODpLt7D6nhj3GTPqIazB6cPEEflntzM953Uyax</role>
+          <extension>
+            <value-name>3MX90wkYWrcHIZBODpzktrPGAygw4VU7AR8Afsq3UCKuuda7CJk529DvHM1DzNL9ETBLe1O8wrCSENZ9ob6rlKW2wPy5Cb784ILaCzi00VSxAJGYVMhgo5aUUISoTZoQz903Bb3t6N0yxywklOAJLCwydgWY7dGGezCPKxjIlbgSK</value-name>
+            <value>4XkEy684EdkscrxS0Mjut31MDmQL6AqaxCG5IP2e2eH6y6RqSaUm6V0BaQngiFjHhZFSGH6BNFHlMqLwtxSztL2DBhLMW4t648YCHWdvuNI8dmEGTx7ea2RLjvpgzTev148B0lYm0Gu6U9MGyMUIOEl79LfIEt6xpe0irYEsx9yrac7IYUiEyDEzoT9UffkEtkWVbtfIuN1EZ1e</value>
+          </extension>
+          <fc-port>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</fc-port>
+          <fc-port-direction>PORT_DIRECTION_BIDIRECTIONAL</fc-port-direction>
+          <address>90MqMVcTbwpwJejUHyublvHdoV3brhoAaaSW65H9B6FckZ6TpsWLQDYeyTqZ2OscRc0XhHYLOvX0mWUMoIp6mflM0DE2j6faafZsXXdDl2DHYplf0KlmZG8ZbM2vK9xVoxfdmsQHumhlDCAD</address>
+          <port-of-internal-fc>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</port-of-internal-fc>
+          <is-protection-lock-out>true</is-protection-lock-out>
+        </fc-port>
+        <fc-switch>
+          <local-id>ZxvZEtd4g5U0Pdgro1l3uUdzPCKaPRFGo2FUvSRMPDEFQUYeNba96nIN0kXHbuorxVd2G4GvHk2q61ET4G224CQWWFvZaLiHHwBnsiK2uNsBGYmKFhNBLvpIaUzcyST7onuQF6S9TcCzbZcQ8RjTmI</local-id>
+          <configuration-and-switch-control>ejnvTp5okSCd1bRG7inN7laKSFdZCoYQIdltCrJObl1c</configuration-and-switch-control>
+          <internal-configuration-and-switch-control>KKv38aalcUdRZ4tn2bX7xqKQ1y1ms6C4Q87Ya9jnVp6UtAioL7vay70zy2O08q4Yq4PBd0Q9pWVLo59adwcLEdcc7S4</internal-configuration-and-switch-control>
+          <lifecycle-state>LIFECYCLE_STATE_INSTALLED</lifecycle-state>
+          <label>
+            <value-name>f0C0xo3IhWsvQiH1B2frRqI6cEy5Dk0SkvSRTNraJLFs3flwhAY1Ty</value-name>
+            <value>5cx2IR3A3qlMj0dlKYS4T7pqhRgaKO9ITGKBxF3s5oegprB1hu52tmsC5IMIpVqiBaL0QOsN5G4mZxn81kbnGDZDeElvzLF3</value>
+          </label>
+          <switch-selects-ports>PORT_DIRECTION_INPUT</switch-selects-ports>
+          <reversion-mode>REVERSION_MODE_NON-REVERTIVE</reversion-mode>
+          <name>
+            <value-name>ou3B2Nm13JvTgCEqnI2PTT1B1SUN6uguRbXLYcN1VaNcMju21oRNiKobubYAx7WoiUah6XaT7XXM8rGaQxX0hdbLg2dO914rV6AT3LF3AuHJWfTEMIwVNzy4BLKKMO4AVElQhSLSnktbzeHdWd8JMGFgjp0Y6Wq1BDRKwvCLP5Whbvu7ADJebgunGndMjDFM8oxET1hBZ5SaAmaaZTp31LqH</value-name>
+            <value>Dlk806gpvNax4Lo2DyC0IFRtWMvH44QHq2Hi8YHEDS3zvrB9Ze1ALSVHxioBf6bF8SP9IpNl9IVE9oN0COsfzgW6ydzNbKkkDaldz0zIImeRK2JfIcu9sj7SwHGHrSTWUealeB3WPaFrcpGMt3WVeVNKuljW6dK0jUmynhmcr2EvjciM76zlTe5oshcymWyFJM564sbnmHTxT3b11KeUYcaqtmQPbhmU3sSZM</value>
+          </name>
+          <administrative-control>ADMINISTRATIVE_CONTROL_QUIESCENT</administrative-control>
+          <extension>
+            <value-name>q3EeojbWnxWVUWO673MD3</value-name>
+            <value>JzDe8hT35b7BpnUBji075V4L13PGGKYpjtvjKonPzmqRJlk2vkas76d192HQEx7X0D9LTwslSTcB6ovtIFVID8JN3qvHPCxPfGs1cVm4GyxMO2foA26daPSd7nNW0kE706841u0zUxlIrs71u57xVZK2fpR7JveJBfNvJN4wcieECdx7jww6o88DyZKhmQTQ5ydHe9dqrjWWxmVIKrO8zWD7Ofh26aS3I5KOfX7y93uGhpo2I</value>
+          </extension>
+          <wait-to-restore-time>-9223372036854775808</wait-to-restore-time>
+          <profile-proxy>IgQzsQSh0wpHaIDUNe18HEN4zPFOXvLFDt65j</profile-proxy>
+          <control-parameters>
+            <network-scheme-specification>71Fa1CD6hIgWmzS5FA5Ri6gFsqqTxvjwwYGyBjwSTMGglydS8aKrh0YJjpvQMOebNUBg570RTG766cY7nAyEBofUFKCkrQv6C6mH5eqQMpWSCMZRnpvQGCClneFOW2Uy0875eyV0XJKroCiL1FBHi5Vxjsd</network-scheme-specification>
+            <hold-off-time>-9223372036854775808</hold-off-time>
+            <wait-to-revert-time>-9223372036854775808</wait-to-revert-time>
+            <reversion-mode>REVERSION_MODE_NON-REVERTIVE</reversion-mode>
+            <prot-type>M4iFMj4JeH7kQ9xnmaTre</prot-type>
+          </control-parameters>
+          <hold-off-time>-9223372036854775808</hold-off-time>
+          <selected-fc-port>
+            <local-id>2nPlnsbKjtjCWbX7QDzGi1KG7QLYSEXM1E7g6aThvcUsfJz5e0LoTn405HQXdFB7jAnhDgz0klsz4TwaL9yEwuwCbfroUVvenTv01W1ehlNd7cnSlVpSpVmAaNR5Imb67yY1vRfE5USc674k3t4khqVj5EgG0jE0SC1fm8Tr2DD1LzlGVp0cHNnMrEskX6kHBlWPtIgndLoYkBwf0xjzkHeMdG6aFiS8vGXYg5duQCk25Ra</local-id>
+            <lifecycle-state>LIFECYCLE_STATE_PLANNED</lifecycle-state>
+            <logical-termination-point>2b454936-1b31-1d28-4dda-1d3475708a0e</logical-termination-point>
+            <fc-route-feeds-fc-port-egress>t70lSXizwhYV1ulkLuPboJtjR7chNBL8ADtksETYVKMO6Z8RtX3Jyo2pv6zjzcr1PNl9j78eJM2PL3G70BQr0LQnRpGrB0siFGsYNs4oe6dZ1T</fc-route-feeds-fc-port-egress>
+            <label>
+              <value-name>YgmXVpl1hKqM9162RJQz9icPExYvLTRJ16zWnMPEw7ix0pzS0hjazvRe3PBOAlqBrRqOD7s17Lz720ZUai4JONPJCrp4MHy5yYT3XdX4Qw4Ko3FyeBaUpZDTiUYWCw12mMYb0V8IjctH788lBi70hKMsxKo18q3m4Tp4GxNZB8zJ8HWJR4K0Gos50R6892mdVLa</value-name>
+              <value>bXtMXUn5tcOkgqlOONUOE0OF2aT</value>
+            </label>
+            <selection-priority>-9223372036854775808</selection-priority>
+            <name>
+              <value-name>otxA2LefkcqRuaZZQOP7L3ttxNvCwFAU10n3LBj5OBOaLF2tlRs6MNzbB5G7C8UD89HMKSJqtyt6dvrzeMxTz7W24C2yDOcDXLpzD1SYzl4EIn5W9DHJCELy8F6LtapqNGSqHKg85kNFISBJnbsZP6pXLoB7qSpeyhw81NgYZ3DzO7jbiD3ZJkWnIpm1hLfI3LQWq6VqaqZYpa1zO</value-name>
+              <value>yphnMZM00WM7EPLuLbsytCRts8DmIji8JzvnraorYarCZcYCnq3RVMcfUHBu1MDKl07M2n60xxuoJkTYLWHyALFml9RmV</value>
+            </name>
+            <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_PASSIVE</administrative-control>
+            <role>6H29x0yuPlOLcKe5fSdOE2RSZ50Ta3L8DFhaFQwm3c7fXdd4XiKBktlbzd4J9HREe8OMQc8Tp81md6ibo3EIw0T55PG6ppKDqqpgDq2UqV8D</role>
+            <extension>
+              <value-name>W3k7SFLPA9U3lAot1B9Ho3wVWkAQnlGboSa8yVX0WJ39cjCdUMUbHi6DvyuSU23iN5rl0glPSgY4At9m73xOeDkJcGt6AogntzAlIV2A41EEmN0lIq1O3lp71S5u8eRtNsPnfJXjCtPYgIjR8lF3y53sP8WYmNr278pfSfymIglRQwIYJfTicWC25ySjdbddkvs4K0qk8DbY2TOL1AVdwxftX7FbbSovfQrZIJcJf</value-name>
+              <value>zh9o2aYQnmfvIdungF7E2nmleW5qxkG7BPnvZddeztBhG6wWDEsyTGTZuYi2aY9DNw1EJeKaHekfcQ3Pmvn7397y7pAafJNU7OqI3aSCocSA3VihjxpmGw</value>
+            </extension>
+            <fc-port>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</fc-port>
+            <fc-port-direction>PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN</fc-port-direction>
+            <address>25DO4seMngFZFJR7EFhWYPlknJf3oBTiHx6LRkyeA5d7OX7tCohA5uMtd1wtDiLcHRPy3fEvkRv1GCmaSDKQ7pjcqHFVZqZy9P644KrhuWi2qEdbhP1gecsxT7sLpkjq9im5UNmgKEj2iwdrdeHsq1Zc0jXhD8HMi3SdJ6ttLEvV2JngP</address>
+            <port-of-internal-fc>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</port-of-internal-fc>
+            <is-protection-lock-out>false</is-protection-lock-out>
+          </selected-fc-port>
+          <switch-control>SWITCH_CONTROL_FORCED</switch-control>
+          <address>hGNyBLItPjrr7Ghe6qaBYrSelBioLaW2RJBknbN4uevuMEAT4KmU4e8</address>
+          <prot-type>Zeu0exEg2hpA4FZjTdDBVZX4ktyM6VAY2WQgtmooDNYzkPS52nHPfwTzZkeY7OO9KEp50Ntwsj5N8QS35rSkYEUPY0N5OBfq7wn0kRwMatrbjcepDYJBuvjsv6qbAxtz3RzfA52KrlNKxT13SLwm8PHwWZzow3XrMpHmmBYNWMymxrpp4VEdDdJrcaPAdE1R3Idqj4d8IDuf5Lx9ybebgPCs0j25Y3XTE2bX6pXOUj4R4B1vE7yUX3eXm82c</prot-type>
+        </fc-switch>
+        <lower-level-fc>25fbedaf-00e7-2908-fe09-07fe37aca56a</lower-level-fc>
+        <address>qQLC8mIr0AhoYQaS4TTrkuwce0VaF1pXJ2ARgaa8LrxB9Hm5s7xMtVRIOMKlG2ap4K9dVjlyDS1ErnKUn9yQWpqK4bXKd819K2mFeI5Rs7nUm7GJ86s5oSHs3F48FXap0oX6Y2Xr1cdgkTRkRjpf47H7ED8bBaAtypzxkoQdA3tMOl7FwwNAvmA10I4tKFWiWvHgLpulsX88a7GHDth1PRUHrZa3</address>
+        <is-protection-lock-out>true</is-protection-lock-out>
+      </encapsulated-fc>
+      <sync-ltp>5b29f3db-6f13-96c1-f189-f038af15cc4a</sync-ltp>
+    </embedded-clock>
+    <client-ltp>4ace155c-6c04-f585-d9ec-d6a845794520</client-ltp>
+    <layer-protocol>
+      <local-id>JmDGNo3VJFPOnguyfvjO5mNVBJrsal9MIFsn3naFURlh0QHfl03jfJeIky3vLc9lRBINQKsKCNTCvBRJtN2Ao8jIym5kyeFiHg5p0p9u4VYAwIbRn5sL5LlEZrYpxvH7DEww3G00tZAZzD</local-id>
+      <configuration-and-switch-control>WEcMwWCnCkcyBmp5ghyD7PLLHyDJonckUp6ilBFPVKnw6NBe42S4JvHqVl1jAevuDCMY5kF043o2IZ8ET0IDnqVbDXu5b0sOu6EzqjzueXoWOxBApb5Nt0Y6Xk40cwGGCk73wypKnOz4d2ECdJhHB7Fr</configuration-and-switch-control>
+      <configured-client-capacity>Dz2qcvHX5i6M3qIuEhO2p0X0Z85ZXvzsWtT0QsYWKWIOeiaSrYUJYRJQZGPP3h9ZC20tvQh7MZN0a</configured-client-capacity>
+      <fc-blocks-signal-to-lp>rw785KkcFQDWB0C24P4AkhbBQNBoeVZFr7FwJ0BgIecb6Pd3whDQzPkhCVFQQxn9wVG7N9nvfrzl8MoF42nvJHMdCk3sRiCn5auSbJgqaPDbt2QxWdUxVzKpTFKCXeRVodNrWVRYCu96oRvc5qJSZt9K8TeY75TnayO6mxWY264iPAvMS6wJAGlAzzqzwbWyCDwYasW4qTnglK25QrOi79LyAb7YfWwRz2</fc-blocks-signal-to-lp>
+      <lifecycle-state>LIFECYCLE_STATE_PENDING_REMOVAL</lifecycle-state>
+      <label>
+        <value-name>rz1MoAgRHah5QKKY51R5gS6JJob666VxFObWosF6CW3kGFaLG1QPLWqncBtiIgPn41bklQiPMe9sTj6scW9YLzlXbO8T4X80Qkk3avSXJ1hucf</value-name>
+        <value>hc57PxsEI8MB4CBWkV8o6DgVma4RekFvoDC52WJKWod00OOcKXAIARvXTrG7Ddv1I76KWImS6zLYoza0oLA</value>
+      </label>
+      <wire-interface-pac xmlns="urn:onf:yang:wire-interface-2-0">
+        <wire-interface-configuration>
+          <transceiver-is-on-list>false</transceiver-is-on-list>
+          <auto-signal-ordering-is-on>true</auto-signal-ordering-is-on>
+          <number-of-bip-errors-per-ses>16013</number-of-bip-errors-per-ses>
+          <isolation-is-on>false</isolation-is-on>
+          <maintenance-timer>482426258</maintenance-timer>
+          <fixed-signal-ordering-kind>SIGNAL_ORDERING_KIND_TYPE_MDI_X</fixed-signal-ordering-kind>
+          <short-reach-mode-is-on>false</short-reach-mode-is-on>
+          <interface-name>d8BV6sPfaN</interface-name>
+          <wavelength-list>-508111585</wavelength-list>
+          <loop-back-kind-on>LOOP_BACK_TYPE_NOT_YET_DEFINED</loop-back-kind-on>
+          <problem-kind-severity-list>
+            <problem-kind-name>rkJKWzK5PPX1y6nL0ZYybFaOy92Sk9mEt5ohw1nlQkfoiu1ilZQwwTcWUeHfo3LR019p2wCTIR90dbaz20XrLanGg4NEZyoSzp9uNLfvvonIrx9mp7Nb9aJp7oWYOcIf</problem-kind-name>
+            <problem-kind-severity>SEVERITY_TYPE_MAJOR</problem-kind-severity>
+          </problem-kind-severity-list>
+          <auto-pmd-negotiation-is-on>false</auto-pmd-negotiation-is-on>
+          <unidirectional-operation-is-on>true</unidirectional-operation-is-on>
+          <remote-wire-interface-name>5tj6pY3ywElnlhduTlx7m12slJzwoBTt54rmUmVq18OepTIb78at94NuGmS4PEqUIJhD64VZcB5unNxuNHXWLCjrQboFPGsqpJ3nFQeJsjdPZKbMj0B5CUos5E7NkrdC28ZHY6ripw7o9a3saEpMyG6vk6axxf9An0he6Aww7wMgGPARt0v1yCpKIzhfPiP4j7ipzHNG5AOLppuTh0MHC3rkvJrc1hgcgrCP0ho5RcQ9td</remote-wire-interface-name>
+          <rx-sync-preference>RX_SYNC_PREFERENCE_TYPE_AUTO_SINGLE_PORT_DEVICE</rx-sync-preference>
+          <interface-is-on>false</interface-is-on>
+          <performance-monitoring-is-on>true</performance-monitoring-is-on>
+          <restart-pmd-negotiation-is-on>false</restart-pmd-negotiation-is-on>
+          <eee-is-on>true</eee-is-on>
+        </wire-interface-configuration>
+      </wire-interface-pac>
+      <layer-protocol-name xmlns:x="urn:onf:yang:wire-interface-2-0">x:LAYER_PROTOCOL_NAME_TYPE_WIRE_LAYER</layer-protocol-name>
+      <lp-direction>TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN</lp-direction>
+      <name>
+        <value-name>WI2HNN2rElh4TFL0iiwOd4HdxyNo7iZ301COHw7lShpDW3D6l1NyYuMn2rE1KDWCEyil4izOzYrnTWl6Y8FOCjbwCPpeklRZL1cQjLwSCY7vUtCKB9q6kCuOjU3w7MnTNzBZd7JHXR4ScyuFHVLTp8IAUD61htM4VfV0fFHcoLWAcrfTeTFv1f5NS4G9xl5kA1kPy12WFYwRhDCnw9SpoY4g2Lhr6nMGg6oO0iKx88gqLKFaUyzaoEj</value-name>
+        <value>hABnPnV5mbLetnDCvL29nzj97KkngDFxd9M3wA0KLEQf1lRp6LyukJDklXHCsf1yoGtMgtpT7f81BRqzuQ3</value>
+      </name>
+      <administrative-control>ADMINISTRATIVE_CONTROL_UNLOCK</administrative-control>
+      <extension>
+        <value-name>uXOfgmmUrJNaJMMFu9psI2qYCAQ0diRzfFOwT3ilM5nvR92dasxTuXJYqsRvKI50gTo9WGmJLJ6vT9A3B8O5Xq4fSNLCvQuDJSFyq194Lfzwo1zZ1gXZGTeqGZ23HpHj9mRAf0E0f5wE6Yv86sZMl54TXYXEnwXxSG77yL0GQocOmHOs2N6nTa9I16moCcNmKUljxdZfC3WYKKjMqp2bsbTth7JLjx7Wjk7Jy6Ya</value-name>
+        <value>M0LxjyXBs8VD1oM07xkww8QIfzgdpie4bZBupqXRqSuj88j8FDE3LmM0NU55dj9ojKKI2AsssOLtX4BCA7yd</value>
+      </extension>
+      <termination-state>TERMINATION_STATE_TERMINATED_CLIENT_TO_SERVER_FLOW</termination-state>
+      <address>b6jvfzORcoTMIl6xYzu32Yv2wIoIOpX0w8nLI3DUjoy2KEzAeVDgT0iiJy0pYPhuYEfyHKk19S3LoulCpRLaRVsAul0sa9W0O3qnGCoPmjsLFNfWw07oWrQiMIKPSyHGt039CkQZviC36RZuS6SGqBY4jAL38tJttFD5RtWeEyhCih6afZIxsGCLgnPgIqJ3Xe1GA</address>
+      <is-protection-lock-out>false</is-protection-lock-out>
+    </layer-protocol>
+    <ltp-direction>TERMINATION_DIRECTION_BIDIRECTIONAL</ltp-direction>
+    <server-ltp>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</server-ltp>
+    <transfer-capacity-pac>Ai7unL5c7Ac8nyKcw1m7ZbSGoIs2mCtWNtra6ofdYjddRXpgYLnPP7v5HQZ3kl07OjiMHpRFI4SzTaHJN4qC3VAKLzO6UG5AZfeGE5dm1XOM7vnNsNhvBR8ejWcduiGtxU1cS6qL3ey3KNI4tZr4RziannfRFVc4Id8sbzd7ND2prKtUJNQsm0CCnKl2xy77D7</transfer-capacity-pac>
+    <address>pWdC8</address>
+    <peer-ltp>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</peer-ltp>
+    <ltp-in-other-view>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</ltp-in-other-view>
+  </logical-termination-point>
+  <logical-termination-point>
+    <uuid>5b29f3db-6f13-96c1-f189-f038af15cc4a</uuid>
+    <physical-port-reference>371eda64-3aa3-f78a-2711-ea75d567381f</physical-port-reference>
+    <local-id>SQfaKLUMEXYPM2AXFsvBaaC8VLuwLW1EM9OoMA2ixS8bNA9k2wW5Gq5t3AZPwTlb21rOBm7867cTHdeBJ2yhkEKoeC5Cvi</local-id>
+    <lifecycle-state>LIFECYCLE_STATE_INSTALLED</lifecycle-state>
+    <external-managed-id>
+      <manager-identifier>G3EnsHCXohNYB536ExvoO15DTUygZKCxF9U7QoW7GB5hy0fcyDsmwpRhjhxa12IybuFTTt0r55ID6QQwlaKRAt1LKyWDswbDSIxLbp48nNM</manager-identifier>
+      <external-managed-uuid>vuRQEtz6WASG1ObtceZ4WoIZNM8arMvOgewMH6TDyLbrreNDsMzg298PWgSf2n4auAWbyPHZsSiT75orJQILZQtNYl3SAZ24rQ8SyPJ0z1MGZ20ISImSyHxoUsgurarL0zDygerPf5oe7oP063SwKhUwK203cjOcKjD0x4IN16T8uA8s</external-managed-uuid>
+    </external-managed-id>
+    <label>
+      <value-name>faPS7TkisZm6v5GHZVuYK0Hj43rOBwdQG2BGOVQgNdniaVZ1ImZkmHDiC57etcW16xHUly38DiiNd9PVvOfSnLaSI96bl2cssMeFkhFPzXCE6jzC0Hufkw72G55109lkVAZ7JEWjBrXzKpbCY</value-name>
+      <value>Si4ZcCXhDXqRhmr8t2MqlfRbOtsS6ipQAlHMXE3tBlkKHDS3FwlTL44sxokvGBl8X3UUzPf32zNC4yFK40DQWzalPuRn54vUZhHzYWu0ohCsP94M1zuX0EjP02cX6zSYQrpOnTHD2jYSl2wmu0kuEvcExotvYltGMSn2L4xOfvyAq4XUW9oAEA63RzyHNUnrMKlqGT6W</value>
+    </label>
+    <fd-rule-group>4cd72b11-5cfa-9e34-94d1-42b54486ca7d</fd-rule-group>
+    <connected-ltp>8c0b5632-f6b1-1b90-dc8d-4334c833133c</connected-ltp>
+    <name>
+      <value-name>rj6lSjzu2BUbVyWbEy8h3qWsJVxDgKyIVw3OQuaKX4WKvSO9iWqdffxY2</value-name>
+      <value>ujGUTCqOq8isT7wPR1zF3Rut4JAtzDxVWeHHI0v08Fs1MYIvS93V0xgW8RpzmPnaV4RD4mD515YFVHaNQdAJKRxKAPkWEH6zDX4AbHFcEDRzcTfV7PwJG3ugSG4</value>
+    </name>
+    <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_ACTIVE</administrative-control>
+    <supporting-pc>bKls2dO1y6EykSEAEapo33U65qt8evgp7BJaOxbfDPNPzkiduHuxKowPPZX3n5k</supporting-pc>
+    <extension>
+      <value-name>wwOstAouZQ8rO3ifCR2w7</value-name>
+      <value>aRHsqsqmJWSpge0wIZeJi2MtigkcMrqPb09BsAXboHBxVt3wki7CcT5uaqzOJZvURFvk7knv2Q2</value>
+    </extension>
+    <embedded-clock>
+      <local-id>vZeL9L3FZ0Urijcq2AeLxYDGaVGGjuYPl4AmPv2HoW8y8cY2EcN3biJlepTxMJmZNOmvco4Acc8kg7mUbaXmsGzyXl6B4kBK9P7l5bNhfVuvUQpYSmcdUMLJ7Jl34OFdvEqAPdJW0drNWILG4XTQBxsAgNwkt3pYIPqpU9mVnFAbodRkaD3EaveiaKDDGUtoCTFw2TjhzLkPYc91P4FRzT9J</local-id>
+      <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_AVAILABLE</lifecycle-state>
+      <label>
+        <value-name>1VpLMECLnraa0CMZJhGwjLArCHCBXWeQJDBoa59xwjzoNmnxv3VOGw7a5JD2xRS9vmxxry4QSEexSC4nxS36o28tLMobDgc0CJxW9uMT8SrSmn7MfaSv40RPMfSin4a0FIOPcsIck14zhblwd5Uh5LYKSRUfN47tMVaQfKUs</value-name>
+        <value>Y131mr6rdnoQe0IXUQKZX5DL7m0Sgkw7lr0HK70YmpOAppxcfab4fOPn2I7j2Dqg4qPGxQEU7lmoKUARWLV3sDqudpF725nYodFNVbz2wWi8ITZEwNHQq0dDpSCkQ0ae5P10TBUhp4q7XhDm4c4mchRuauO0mY6rGZjzs5IR90QZitdeGhBKzseBO2taTzBzqM0TRIKTJBKTWX7u6AfF3t8JoBU</value>
+      </label>
+      <encapsulated-casc>nrtn6mdNNvxlFCzcJnwdiCKEBI9M7JtmaOChaP4Pct3R6uWHRsU25EyyeHldjGstu4KxLHmYahP8MLPD6Jx3f5BuFOzYu1rR54oRDCHNUwOGavb87JbmGEIltijXjDGhHW0kzHZl5FT7bWfixiEeXfzqxLfIoWR5KRhbq8wwO</encapsulated-casc>
+      <encompassed-clock>AsuvU4rbRSpT9HFIa7buM3wiMnUvF4TfonCij3l3NKWXjCxmJIQvEeGqCsW9wHoN415fWriK3fzfR6BsPrXtGvLaYzjmgz9cs7spyK1tRAIAGj2nDSIjnull3EIc5JoyQQPgtQKkqsVYEPehHWsXiNaejSqouOOkxDB0tlcLFZKbPYso</encompassed-clock>
+      <name>
+        <value-name>Eeczzs3s7znTLwswR9n</value-name>
+        <value>ioKn3tOWCykhEoIeQLyQcNBXk3m34JYm7AB23qYxQbOmzwAi910mOBj0wx3A8TOftihoA8WqbCMC1fUagMw4fI5Df05oUUvf4FEENsWQ4AsXPf8X1E29eZMuZKKLwf1AUxezR2pNCKLsZThSpb1EaG02iKFORGoM5udWwvK8fns68KYpVS3YqV0Ixxwp6M3bgg0MDCMSZfY7RPwMHsK7fCHN25c8R7j7nj</value>
+      </name>
+      <administrative-control>ADMINISTRATIVE_CONTROL_QUIESCENT</administrative-control>
+      <extension>
+        <value-name>2nItaImTiY</value-name>
+        <value>1roModUSku7Rpt01RBV0EiIZk</value>
+      </extension>
+      <phase-aligned-clock>Rwgnn9e01Gcmg34XbvR3vQFcvJqNm2k5ytsOCyOwf0SvVXk7k3aPUPUprc5NfhKFK4lfD9LK1D7Xss4Fv6mpOg</phase-aligned-clock>
+      <address>KuD1g162LqpLiG6aHXLCPhNpg7Ht59FQDiJMbPOW85zqMFAtudYjnLIDKhZQrwy4O9IRYpF6ufo8MQCh4Asjd3WPkNxLj5IZ6iQ5Ho34vkchaOy6gTplWeb8TIUdGu4MENJmbFiGZuX1bo0j9hF5nQdhqZmYlqD0deegTwWK0ME32EnbN2</address>
+      <encapsulated-fc>
+        <uuid>930cb914-c155-150c-16f5-4bfd1722c63f</uuid>
+        <configuration-and-switch-control>mnxPMxQMwqBiEHNXhBX3LkuLClZgXHzbX60JvIn19YcNyRCPsrS5LeQozPEpp5Ae3tXqbkscawRAnlpHN9NqnDGXldeCiOQehNElZ6p1uhCJCTrh36IiBo7WBlqM2g0bVEw</configuration-and-switch-control>
+        <local-id>kkog9om43UBh9sTHL3zEQMCSImhUz2qLmGTv58r822h3m3CZ64EXI8Pqu6dW0DHmbBRgJahD4yyrB3iI7WxP5e7r</local-id>
+        <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_BUSY</lifecycle-state>
+        <external-managed-id>
+          <manager-identifier>h9aPmDhrLJMiavjV9W7SRActOZJzicVAeXhsAzTeaywlVH85D7Xnz2Qn1sOcECMKzVd2mYgxoMKklKhZR6eq84F2wue3YSFxNSraJHz7ljjH3AyMzMczIJB75Ha3zPtnAUpjCYiX9Cwc44YDI25rLGyRoAMPhf4Rat2ErltAP0ETWupFou622wLi6x8nNc7PG9tZmWsbWYXLteqJAoLCUwN04VfJZmyxwTxSPRW</manager-identifier>
+          <external-managed-uuid>PLpaZHUr5xVR4IR0v6Bvl12RUrBBipf0aw215Wkaug1qYKiuJTR4UTNGdghvGpnIVqC1eW3IcX03zipa3g6P1Lve2FKA4ZiRpUKERGeVv7Y4pn7lvdaxZyLT5nt9nDSMyvihbp4Gw3CViJ8OPbdGJYzOmUPJxHnX4y6fXbNt6qgg1pWQA9ob8XZuJG59fk6kSdzPgfimFruGQrpiANtADk4e01n7murezTWP863FxxdnYCxri01VcY14RpcdT</external-managed-uuid>
+        </external-managed-id>
+        <supported-link>75qJHj2Re8zxJPwyjSY5U7X52tuP6iD6nVPW6RNlReKsWgSf0JcMQ1KSuezto4zLZgz6Z</supported-link>
+        <label>
+          <value-name>e1bSWmZduC4dwlI6UAL1NH6UNPwWzjBNlMyh0xmu1qzxLavxK8zpQxbveIjN1Vtez1nsqJOr2oQFyl5atEzbbLyqlS5eFyl6zIyZknieL8TblYlHuMSGxjYKb3ZQCcW3UvVeKdsneeyz4L8zxT7Xc5Hn0y5uK1qxolL8y6nEcV6gGeP67O3j</value-name>
+          <value>CyMbD8NFykVTY4kWjY8f4gNb6TiMOuyr2cuykh5Lu0wsWIggzonvE2GCWRpClP3f1pFdzKY3Lnnz5DPE14ax7Q2VzjxU8t29SHejkdmXAJwxeec7ieFh4zcwSKi05k1PUf96kn3U7zkdFwlQKS7GrkcjWvb1HcItrRzM7Cy64S</value>
+        </label>
+        <layer-protocol-name xmlns:x="urn:onf:yang:air-interface-2-0">x:LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER</layer-protocol-name>
+        <fc-route>0mdlFvfC2MlvqxKBfn4FdVGzpYKstbnlyAH55OHZA2m0s6uHmqmzl30DTK5eWkAmU9jRX0RpUdpmcL3y3iZpdZU6BZkpbML5V4WSWF9RLz5Xc9ngjm</fc-route>
+        <name>
+          <value-name>h99rqEvR4Ws77263rV0F3sRnP3dMB6cSfdjGRPxODRVKM2GdPGTK8K0QGduhjH2yUl6E2vkGffi19Y6ZxZBFCBniOSrZrtqdPoRJU3h9jA2kq8bX8NvCoSM5CdW3HmhoL07x4hGfRIz9QL7QqCkOm6LZkI2TWb9zc86gpEv8eWiXHpN7T0O76z6i91b64</value-name>
+          <value>FglEoCiLLxI3mhk1h51Xc8obqy4uE0GbhTPxw0j9pT4L2gMjlOgpWFsm5wQBxpMGiu5GuoPT9TEc9ivm6EM2behgDZR2ovAzZFfl4565QChSV</value>
+        </name>
+        <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE</administrative-control>
+        <supporting-pc>rIt3apj3wcMAYuBIe6OOzcS0XS8pQZM9H7cRxnMVzqwyU7g155Pw9zoZjwo9v2i49mOyKAujT0RFZ0GXXnt6PS58glaEnkIpHwXrZjKSbupbm60jlthadfbuAd8QxIfefcx6waQHEfK0dKbr6sBjzEFaRN0po7vDb3BH5rhBGTtMwEdCYGVyltA48slwzR1KMCkR3tkCmNoSrt</supporting-pc>
+        <extension>
+          <value-name>JgErSozzPTD0H03AAfi3z2Dd97Df3oqNE56xlFY3qt37u7z4eSZNMuSNCwUFUkkqhrXDYNGp9BoDAYzHIqmmVf9pL3Wxf9XxsN2qsIPBb66E4FdEYz0TO9ar46Qj7OQztS0VsHxwND2Jbfn9OfUvo4Ok2FE2lmBO7tJr38PQMRsX6HYNXSadOYyIv4KQieEhHgJKoyt2iNZguX3jHdxn4X6z1IqbOWto4c0tClvU8n3vc6OUcd9ga7</value-name>
+          <value>3Iffw4IU8MNBo8ZbhmeEqcscoymEItuMbBTAFBmOn9hDi8GrmM5NZpZnXlUyHocSR5kxyHdVImq0v7jRLgwKGw0vRU3qa7b1cvqK4vxNSQFfPZYA7vdNTdbCZ631ee2iJlVOQkBAa8HR7ysf3xUOKXqB4tCaHwkjRfZAAsaCAKuIiOPdlB1XzrqvN2FmyZFi7wSzY23zEx9WdY9qr2f0mFn9HUv8M3qTzikqcnZRV8F0YPrh</value>
+        </extension>
+        <service-priority>-9223372036854775808</service-priority>
+        <forwarding-direction>FORWARDING_DIRECTION_UNDEFINED_OR_UNKNOWN</forwarding-direction>
+        <fc-port>
+          <local-id>Uruh7KcwKEPYu1Y5pOXgrtGVz8T16XrShN2gyeFaSm0fgYkFFiV6LBTcKEdItwBCkDTKJyMuUMJ2C3IhdDfY70bJwgrSNUuZpfB1NnvA16CD1cNfQUdXVgGjxZbcUybbNMct1H32FxxHKkWsf9h2qXdPOh1APcMCQY5Ry0L5qiM2DIuKKLE2ARRg8SRXWvsMlxvTqgZQyDS3meF6Rj8r3</local-id>
+          <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_AVAILABLE</lifecycle-state>
+          <logical-termination-point>8c0b5632-f6b1-1b90-dc8d-4334c833133c</logical-termination-point>
+          <fc-route-feeds-fc-port-egress>h3x6vvNH0cJZEHNU9X7WhLBDcFRkL3H2660tCN2u0Llwk9qtYqif3LK7qtrbw85uf5XJK0dCDy8YzrrxRJEUmp1MSkPhsULzRBiCtne6Wf4vGoVxZzjmYc0JwQSYKDqu6A6rYc</fc-route-feeds-fc-port-egress>
+          <label>
+            <value-name>rGq4HCrJzHEL75fkB6jNtFxy6plViXQJv8FdK7WjGtXGy401bcHERe5QEqDOfupLC4Qf3EyC7nixsarDm8h6emWSEzyUVXxyUfNPLdrTBBi3MJy0JP6Y42IAu9mp6TPS0uAMI1xbDH6hjEh2loShitSMCe4A0Tl0gVEYO31jL7A4DS6Y8Rgqc85Ge98eUt7agL</value-name>
+            <value>5P1gA0REDBCuBlK1xKY5YZe5UHcWYXXVMQbeJUKenfIYAkS0WQ5VQj0CT4yJ1nwG6HUPux3RMEQeQI6Nq4A8nsC8w3Rxqn5wXSdjp9a3FShvsgiTkKTHcwIIzz8ZP5oEXtXmC7h9SzFkPP51AZIMvin4SnVzsb5qx2E11WbTnQ64Fb57aFUFY9BIop9Qse8ZgF19tc3QU9MzkRHnot2muw4</value>
+          </label>
+          <selection-priority>-9223372036854775808</selection-priority>
+          <name>
+            <value-name>H3JqTFVljhKO2aWT</value-name>
+            <value>mxCqLQXRz9R0cIAfjS0YOl9X6XZ8TLT7ivx3enMNwvGI58Po0QeG3nD1kva5g3cqqClwZZkvuS5r0UPSC</value>
+          </name>
+          <administrative-control>ADMINISTRATIVE_CONTROL_UNLOCK</administrative-control>
+          <role>wdruOiGettRygOm1KUatFJzuOAJ4TXBha2LYcjcFM453Kj4ud6QKQp6wZPAKE31OXEN9XRGCNLxx4tUazKMh1TNSAfC7iDVf9Ag6kWA7zZxwsjGUVk3W5ROy6iFhNAoW3FUntnu3mTzHc7B7rEVxnB5mTCDycTufyhC2EZX0KwHXDaWWPKl4diqZUVxZP26fbJ9PA6Pkup9ZzYWgA9lNsDMmzc</role>
+          <extension>
+            <value-name>N5A7jB7z80JB4ErYF5pZWYekj9zNFvxkB0rUtqmBi5ceBvcgAu7osmIEv9j2FRm8JF24YoF8lRnWezcOVccgyMU3Wd5tWjBFQvJOUgX7Zc4dL8Tzk5PSKJNyWKTTVuqMZ2sLahTatPn7X9Gi6v2Q6Qg2s9Nov62</value-name>
+            <value>0u0aETk7IA6yJEIP1Ky7sO2VQHblNdIFzJQ5u255ubD5QdVRXlZi9T5ZAgdglNVMoDSTyXQ28l8QyVAngrFhkK9USm251YSqtKb1H1WHeWyMR09ZrHgLrpxcDAhFy9XTT0Vs1J27FAToAUn1BvEVVb7qLgXbqU5bUSwNtyM80xossLlVgZI32HmOYjRg6WjSGPy9fk9fSxHca2Zj1Im4hAK7</value>
+          </extension>
+          <fc-port>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</fc-port>
+          <fc-port-direction>PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN</fc-port-direction>
+          <address>HCYo20En9T7ztbJv22pKhlURX1DqpnIY0He2HShIEg9ZrTmuNL64Y0ONUjebHW9zvft40LNE1WvlHRHnvFjty79sjnD0bErHTULTFqpzf</address>
+          <port-of-internal-fc>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</port-of-internal-fc>
+          <is-protection-lock-out>false</is-protection-lock-out>
+        </fc-port>
+        <fc-switch>
+          <local-id>qukKL06Ocj2dXShnxzI5D4xP1lkM6mkpJE1uw7iAidN75Wvvv5A097Pal9Pjo9I7FCt3JDD2Qi9W7wjuBTvDScN5eupCvZB2BW5d</local-id>
+          <configuration-and-switch-control>C8t9EML6bjCPcruI9woQMrKCm1sWRO6lOruse7ypq27CttcC0tsMU5h8YJ4Ip23emqGAx7RY9QsDkF7c0AQMx7VvRRdgM9u8z3A62j4bapGmWOyWgoINwviffovTxS16NtcPM90OyHamnIiDZSqnoICv6ZovJhB</configuration-and-switch-control>
+          <internal-configuration-and-switch-control>COlgPe5fN7BaQTNHDd41NyoMxMh9VLFxr1Og7LvUSY4AJJhmWdgBLEfbjpk6aZEBSkRR5eLX4HyNqH9eVpIyWXJ7mVdwNRZx3Ip8W2Y0KoF25PhS6Zr2O213YfzD6raa9raYu8Q6ww8udhmj8NeXIf0yurbtSdv2FFS1OI7ce7Grp3DxIRmiYeQlGTOq7jkEYcxENwJ1Dhl2c</internal-configuration-and-switch-control>
+          <lifecycle-state>LIFECYCLE_STATE_PENDING_REMOVAL</lifecycle-state>
+          <label>
+            <value-name>ODGhJGsDLz9DmTS6kxmeJwanbsNbaMnYh470Krvn0E1eqLdKarQTY191lWcvAzlKvkK8LgvDMoRc9WPjox5eye7T2jgCKtegNZgy7L3TaVYbJFnZcs5DGcoIvFc88roWqEmphqard0vWFSOSkTn06</value-name>
+            <value>IBqUJrlZfDvt2NT56Y5BNLlBvFuSFADf4W2FffxuT2XNHJSGHQ9mBvXY2kIIUdPQ9Rog7VKSPAxpbiXK867Bt4zwgh63uVTwF9ME4pwMR332l0El6LWsIvYYE411RNpoWb2TsyFjuIdHAK3ynZ05nQWTMPUEuj2jnXcPnJ1Rj6rTQurelkbIaZuXHot3AnmPkqwI1xrkwS5eepsAJwaTnEI4</value>
+          </label>
+          <switch-selects-ports>PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN</switch-selects-ports>
+          <reversion-mode>REVERSION_MODE_REVERTIVE</reversion-mode>
+          <name>
+            <value-name>I7iT860FpugaRT24z0iVhMr8ftKbrPK1W2U40MBp9Sz0DuW4u6SLSbT7</value-name>
+            <value>vi5cV70PT5QGGfPqPHWbESFKKiDV3CsrNpDIoEpaB7Q9fxs4eo7S8MvTW0GZC0ipqWZGshQ3oy4D5wzcUG4VkrGgrm8WfqdFeddGm4BKCGgAcPMZoIUIaARtOZp3hDAwIOc4KOGeuWOyEsx2brCdTlGIcYDuBe0bUcfESVKeKzNo1ki4EMhp0Q7</value>
+          </name>
+          <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_PASSIVE</administrative-control>
+          <extension>
+            <value-name>30nrmcDFIdG8x1Ep6Swnd66B8SYNsVAwVXP99sOJyvR5onmmgSKlQIWZAUE3Heru3gE4AkN8HF552skak4v3Ej2f6GaNMBiPROTj8ysQdxN8Z7ac3GfAR9PXHRDtkVa3BVmBtOjze7z56J92hoC9pj662JrmwBpZoLBKsUbGTKL0tVULboUBzSHBu1XSCeSTZtDrfOZ9qL1T</value-name>
+            <value>NEBbqcCbMdFN2</value>
+          </extension>
+          <wait-to-restore-time>-9223372036854775808</wait-to-restore-time>
+          <profile-proxy>gRrAQyRpO9QrIT5YXDOc0KRa4TkjrCezlF9bdTA12jtC4ysU3h641Q65Jrg33vCoaMrgx19rcC393w3YN9UGR1DBsTEng8LrU4zj5IKadOjgke6Zn1x722IuVeRcmuv9y4svM5xZTI75We4c7tj9vTvi7eulARm0NHvsMVjFDrCsxyEE1XFwIaOHob2YUhYIYl</profile-proxy>
+          <control-parameters>
+            <network-scheme-specification>QeAiAfwxOUPDK5HCgvF16vzSriKNlYnb4XtF5Z4LUToEQX87sG8rbHbCRWhcUFnYuQvrHrctls73h8aKOi3ZRetI2CMW99NwRaXrC2UXmU0E23gQdjH5x2FAEsoOt3cde9EQ3yFqsx4mAk4ODLL</network-scheme-specification>
+            <hold-off-time>-9223372036854775808</hold-off-time>
+            <wait-to-revert-time>-9223372036854775808</wait-to-revert-time>
+            <reversion-mode>REVERSION_MODE_NON-REVERTIVE</reversion-mode>
+            <prot-type>xVWStHyLGR6cIaJeXfXRL74FjU76tGcSt0DWHbHg3FsDI4JFjzo4GkCZeB6zhikKiXyR8873NAynEi3PRjMxEowKZuc9MwLWtkOBsNx7f5vLnqB6BfD7v2Smw4vbA973tNwNtVMI19ugzXn34SazM2VbYjmysltN1SAmNe4GoqPXf4SjW3KBXyMWR0mb</prot-type>
+          </control-parameters>
+          <hold-off-time>-9223372036854775808</hold-off-time>
+          <selected-fc-port>
+            <local-id>nhhJMZsz7lWVpSXgMwA7D</local-id>
+            <lifecycle-state>LIFECYCLE_STATE_INSTALLED</lifecycle-state>
+            <logical-termination-point>2b454936-1b31-1d28-4dda-1d3475708a0e</logical-termination-point>
+            <fc-route-feeds-fc-port-egress>wDhRa80Xwqx9AObyeVZwBGGsopcmn54TIlCLlvIRV7SvW43aRUykt7MRwY5TVaE</fc-route-feeds-fc-port-egress>
+            <label>
+              <value-name>tVyOUkrqOQz4iCtIoOwQ2715YfuDWpkhcS575opTfRXpti7JYvz0vsXlHrZDIbVV4SU99bUo2JFo1E7R2zJx1GSJ8JeQV1DZUp03tMjnvYLoCL7EcQ35wWOwFVfAWKrI2jDv5WSsMwQh9XNlNRqcN7Is2PVQAerCy4</value-name>
+              <value>D1R6FfOWoEKJjt2vg16A3VvLnKcZa9YF2QDH5swmY8XhBZFR0DjVqPzOrDFtME8OmMwj62F4avdLuSunvNaWuJCNnhg1VpQ93ml9g05iniVSbp7y4hurT6e8gn93MZdHdyQtqVDOdyygPxPUGblzarHqOJtsIy9WYRhhMVXSln0bUPXA1a23BBtq</value>
+            </label>
+            <selection-priority>-9223372036854775808</selection-priority>
+            <name>
+              <value-name>Y154U06qwtHN4lNxUMSRz9BwhfUJnpXlq2hc3fDzBcnFy24kGO3fXEL6UyPhXNuoPMAKT5kuiz2Qt6a9VegKSTRErGVptqFb47VXd7kvymd1sf2nti0ecRSvxGUT6z42HRRMRbhpxmr0Blf5EfbI6Vdwt0prrlt04lMVo3dWhEOTZ3Qvb159OjFijWJK95Leip1GleCCKivCml7pedyVoe5zaObkLWq3erCzG6bipHULU2297A4nO</value-name>
+              <value>WRP73tWtoaM0Jk7UDwtx9orbpqLlNsmJj3RmwNHV</value>
+            </name>
+            <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_PASSIVE</administrative-control>
+            <role>HQ</role>
+            <extension>
+              <value-name>OK3fURdL0uqNja1GacA093Tj5WMGh415PWkJFqmxMEd6GeMRqfJriuCnioVztOwiCRT997HVEM1k0G3iVMJd8dsqBnZW4w6GfZQoZpbD35X3L1lGFWTO1deCs6rwCx5JpVZgcaTffIa0Bny9jjXkw3OZ17vDFAeWndcrg5yvFIo95</value-name>
+              <value>igg7sM29D4g1zVtORR1Va9SJFyj3zhRRx7QSMS1hWhiw5McWv5KxfC8U2sPBJyk8ya0c3TtRbEfgqr4NxOkEjtqlN7XoFhwdkphnaL6lpmtHFym4eGIx18TOfIcVRB0bSiq2VxocTRTqhfvwNdVPmOvBoIogbhr3zS5uhlG25rsmyXKlbG2pmySD8hTjycmZWjl</value>
+            </extension>
+            <fc-port>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</fc-port>
+            <fc-port-direction>PORT_DIRECTION_OMNIDIRECTIONAL</fc-port-direction>
+            <address>kAYKxB5A90ZvqK0y1TRrY5iUoD03w7FIHEs77pzghrLHbMf4xYnv3Fikaanyh</address>
+            <port-of-internal-fc>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</port-of-internal-fc>
+            <is-protection-lock-out>false</is-protection-lock-out>
+          </selected-fc-port>
+          <switch-control>SWITCH_CONTROL_FORCED</switch-control>
+          <address>7KFrSlq1L3UxtH35Ku9mFVrcAtJKB1MADkTnFcojfaIBRLGB7PXEDgQ5JsPclCFQWyetKuESFmtw0107IPMd6ujHW0Uhur0iZeMCI</address>
+          <prot-type>OMlbh0vCquLSN0nFc16LN1oGyP6ZWSLCwYONZbihFValWp00r7L609MyQKyMvbh1a5H18ZiNUk8IK1I38t98DNGly603ahWkmDduun9hIaZkbIfj3ojybRUBYUw8btkpYpLtMUKm4JG7jVifbBNftzQjtfjwADVy2G1GtD3pfBxqpPFAjlHMUq5oFgU7TIFNgztJ4o9j0yKpfpRyKzkxZhVwxHDiha5yJrhOP</prot-type>
+        </fc-switch>
+        <lower-level-fc>25fbedaf-00e7-2908-fe09-07fe37aca56a</lower-level-fc>
+        <address>xeVsC3exlZYDjoI</address>
+        <is-protection-lock-out>true</is-protection-lock-out>
+      </encapsulated-fc>
+      <sync-ltp>79b69572-4586-21fe-efd4-4a81a2b57515</sync-ltp>
+    </embedded-clock>
+    <client-ltp>4ace155c-6c04-f585-d9ec-d6a845794520</client-ltp>
+    <layer-protocol>
+      <local-id>WertpzjOo8x3U37otKh5mV0Pnpbr1Nd</local-id>
+      <configuration-and-switch-control>asQSw3JGKsFnXBOZonYd1b5Wh9tVyc5IFOt3R4JtohRlSxd9U3mNerKvs5j1hgBW44RN0thoK0KuxPDrSR76jRuLWNE53gU0cLNde4BQ4dlt2</configuration-and-switch-control>
+      <configured-client-capacity>z4sXDPoQ5kR2EZ0PqUgSKUByiNi2CD73Hr0c8gV6AM87D0W3U5NwRh494f4ySbtzClLKByQ3cQaPR7LD4q2VH6WDl0353wE</configured-client-capacity>
+      <fc-blocks-signal-to-lp>MI2TTLfwzUbEPryPvcDIqzk9wpuZscM6MGZFr64S0fxQyXx312MsCYB0nXRH1wOOcFlwMpoEENu4D28E4UYyKrq7oaHiGv6K2j8OJxlfcPkPJkmG6k6QMpP2zwk7TiRWC0CdpXktFwbgQxOWRNMvcuqD0KKM3tAxl4CK</fc-blocks-signal-to-lp>
+      <lifecycle-state>LIFECYCLE_STATE_INSTALLED</lifecycle-state>
+      <label>
+        <value-name>Foj0RsfzhoFgP1ZGNOSq5PUDCulpIsWfQ7</value-name>
+        <value>zse1JCyZrzY0eEKEKzyf4UAtuUhBCpIcJW5srDjS4aKjOuXq</value>
+      </label>
+      <wire-interface-pac xmlns="urn:onf:yang:wire-interface-2-0">
+        <wire-interface-configuration>
+          <transceiver-is-on-list>true</transceiver-is-on-list>
+          <auto-signal-ordering-is-on>false</auto-signal-ordering-is-on>
+          <number-of-bip-errors-per-ses>10278</number-of-bip-errors-per-ses>
+          <isolation-is-on>false</isolation-is-on>
+          <maintenance-timer>284340656</maintenance-timer>
+          <fixed-signal-ordering-kind>SIGNAL_ORDERING_KIND_TYPE_MDI</fixed-signal-ordering-kind>
+          <short-reach-mode-is-on>true</short-reach-mode-is-on>
+          <interface-name>CIZdvNke</interface-name>
+          <wavelength-list>424471352</wavelength-list>
+          <loop-back-kind-on>LOOP_BACK_TYPE_NONE</loop-back-kind-on>
+          <problem-kind-severity-list>
+            <problem-kind-name>49nbhlhxUghmLveBQPrUdY1eH3bjpyAtHXwYaNnWVFjG2p9T6AFkrGq0BCk0aUlRJSHLx5HtCS1E9bpgD4A4CS5duh5w3rfEbPpIMYboR5U08c8L8AILtFQPWWmRftvqiM8WCcclh7epjm2rXK4qpV7dJtWYPjg75oWIA83Jf90qw3StNOL5JSake7a3qq2oPY6hZ11631xz4hUK5FP</problem-kind-name>
+            <problem-kind-severity>SEVERITY_TYPE_NOT_YET_DEFINED</problem-kind-severity>
+          </problem-kind-severity-list>
+          <auto-pmd-negotiation-is-on>true</auto-pmd-negotiation-is-on>
+          <unidirectional-operation-is-on>true</unidirectional-operation-is-on>
+          <remote-wire-interface-name>vE1qf9fc7uS123Txh2K6xnOwAccNiWrOtkeIumMBQwuSAfiJh2QOpwdSApFTdYzGjNgN92gSzKK1Z2K9XsPeR26rjDcxCL5VrmAAgIkPs5QjZtkOV23MW96gNiFhWK4n6wPfea4y7NRY84N36QI2RGawYPNMsR9qfZFt1K18pL6xPTsNB2HlIKRzzxl1gvkwmZZnB1v0EtplfS0QUH3DrV4TspMIM6e866nzZKADeRY</remote-wire-interface-name>
+          <rx-sync-preference>RX_SYNC_PREFERENCE_TYPE_AUTO_SINGLE_PORT_DEVICE</rx-sync-preference>
+          <interface-is-on>false</interface-is-on>
+          <performance-monitoring-is-on>true</performance-monitoring-is-on>
+          <restart-pmd-negotiation-is-on>true</restart-pmd-negotiation-is-on>
+          <eee-is-on>true</eee-is-on>
+        </wire-interface-configuration>
+      </wire-interface-pac>
+      <layer-protocol-name xmlns:x="urn:onf:yang:wire-interface-2-0">x:LAYER_PROTOCOL_NAME_TYPE_WIRE_LAYER</layer-protocol-name>
+      <lp-direction>TERMINATION_DIRECTION_SINK</lp-direction>
+      <name>
+        <value-name>1Ejieu6uCwxxzENUgWRCRSr6huybiL9bikmwOk0rQpQhVDbbs3NbN6iWBQ7Tt84Lsq9hL1ItqqLd3WonRbzwiRlTzsEUBAyV1HcEJM71cKf8zDniHWPRFaC6ug1XQrTJ8XfJKfLOZSOqncJ40yNGApE4xxUgYNR7K7Imet35dRwBV7FWFlu7K03ayXqwChvfg6tmzwkNgQg3XVZu8ltTmw3UmliYCG5LMz7d5rSd98h</value-name>
+        <value>W8k4uNXQcSCqdMgIsmt6VskSUcYVlfU9f6dJU3rYVVo1IEB2049NwtyiFweSD01S67CSaVQXReYrLrtLvCrU5Z4Dvan0apS9wm1yiSv1YmsJNVnbyO5vF182cw2mNUvbhpJrhes7sURgH6rfMoLrhLlt9nIWh57quIRLXjLh5uxNAQUe6</value>
+      </name>
+      <administrative-control>ADMINISTRATIVE_CONTROL_QUIESCENT</administrative-control>
+      <extension>
+        <value-name>oF0i8tF2KgF1RJKFO46jgZnqBG66wx2U424cvJf70U1RDDojAvCQmZ8XGe34DXYIZ2UmE9mEVnnq0LJs8diudqkLxfP2dNKcHFrlGNRua6U2KwvSJFfWYzzvOox13a6DHxYnkIRmGEgqaDbTjqIhZhEFy3zBdFeU45agFTClpSEzoPlH73Q6cmDKpcevJshNpj34dxiCiW4GDpnKk5Iwrl9Qqnd9HvX7OS3Tqdo</value-name>
+        <value>1soEJDoVI6j1ksRKPXTxsIw8Br21FiBGCZlluB8cIrd2UWMBTx0dgweRY8Kvql32cgfGSnKAOPuAL8cxFcCNJQwzQ8WgtZaxgh50EPAlEWVi4</value>
+      </extension>
+      <termination-state>TERMINATION_STATE_TERMINATED_BIDIRECTIONAL</termination-state>
+      <address>hV2NmKWa1h13PhlUhRCJc8x0qt775jbe651kPPuIZwMGFZsPQ4q3dY3vr2voeGCcLwxAdTjchXSPWlEMh4Hu2C0mxnKD3fPOLeoQ0z3hwN6k0C7izGEtbwPATsdWH2Ck91a9s5qZTpbT1a3sRIWU6Lm0dzOMtr6Ck9DMe4D7lPTeZOHIoDuvgQnmhb8Lu7fOgTtuPYu2Ff8x3P7k</address>
+      <is-protection-lock-out>false</is-protection-lock-out>
+    </layer-protocol>
+    <ltp-direction>TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN</ltp-direction>
+    <server-ltp>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</server-ltp>
+    <transfer-capacity-pac>9uuhba</transfer-capacity-pac>
+    <address>gk8s6dPgvg4f7s1Z7xbe</address>
+    <peer-ltp>2b454936-1b31-1d28-4dda-1d3475708a0e</peer-ltp>
+    <ltp-in-other-view>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</ltp-in-other-view>
+  </logical-termination-point>
+  <logical-termination-point>
+    <uuid>d7870bc9-2ef6-07f0-1e55-0e11c3703d8c</uuid>
+    <physical-port-reference>371eda64-3aa3-f78a-2711-ea75d567381f</physical-port-reference>
+    <local-id>lFl7Ggq4SAOp7zxJSo4aPCV5v7lQDE1R</local-id>
+    <lifecycle-state>LIFECYCLE_STATE_PENDING_REMOVAL</lifecycle-state>
+    <external-managed-id>
+      <manager-identifier>I52AB9q69gVxG5dseQoxAGWb8eNEGOxoMzQfA8mJphhXempt5OSFm</manager-identifier>
+      <external-managed-uuid>QuVw1BcyRQ7H6AQsj7Bs4PPlaU93rnK9SFxT8KjZsiyySgScntEj</external-managed-uuid>
+    </external-managed-id>
+    <label>
+      <value-name>BB7LvVvayPR2tyd1SHfaER1z1gjtf7QQAXu5SZ</value-name>
+      <value>jHZlaxy3h7a</value>
+    </label>
+    <fd-rule-group>4cd72b11-5cfa-9e34-94d1-42b54486ca7d</fd-rule-group>
+    <connected-ltp>8c0b5632-f6b1-1b90-dc8d-4334c833133c</connected-ltp>
+    <name>
+      <value-name>CFQb5sVtw5a0SgvRBen77ebm4VClJS4dpVgufbQD80D189SJnf</value-name>
+      <value>ulUJqHlDq5IvuvLRCWHf4zSXITQj8X2DbOeBnr6NwOaSbVBNRa2OKNLsGtDPjykueqXCR3hfKs7V</value>
+    </name>
+    <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_ACTIVE</administrative-control>
+    <supporting-pc>h2ADAu2Ot5cquZ26B9GxE6dv9apKO2J5WkIoGL42Qgsc8miJwZ8aXmx7wWJdQsaFEL3do0f6gHigWsZkr8uhuUgSQZXzj8eQT93h9iniRxyFZqZjqmAUgIE6HCxSCLInNDEWVT6FixkhXcAny29OKFMj9k4LXM8KiEz5pFKH4XZ19rgHmpnY59aeleSjS03axugW20E6Pv8YWoxaGU9LWjRhxJApCws9</supporting-pc>
+    <extension>
+      <value-name>LUkcVswoHveq54U2OLi7s9</value-name>
+      <value>uySpPRA8uukHpMdFmITMFPyHEb0Lw160AQihISi4eCLDpYaLy3p5LPNp0F2oG0hgRzqrrIvFkhaJ7kmyfLD0Aqht5kREk8M3Hcu0USFf1HQ01dy9Y41rmjUkvDYPMKTlXfmJZTQ0tH1mMrvCvx3SIPcdl</value>
+    </extension>
+    <embedded-clock>
+      <local-id>J1PcZ2t4mlL005yARpX3ZFunIC1VdklWl</local-id>
+      <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_BUSY</lifecycle-state>
+      <label>
+        <value-name>znY5C5rQja1PNcF5UdODXznlZg3AxE7Z154wavetx7ackHi6V6JSxZ5o70QEFXDy2A455aqviBHuaRA5PbPn2UD9VuOAjj0eT5jR7JehcVLnFdkupaJrWntJJhb2scgm9r5gbjyn6bCLpXgO7Z7VeAFXJQSc20qbsvkDOSSU3vGkkW8jN8e2ILRkCBwwCWA4</value-name>
+        <value>Uz7Ej1zGHU0vUjb2y5DbOXNqlc29MYsypr4IsDp2pppcBAe1xJcmy0ML4GUIwe8VFcD0HU27cjjNMpOj10xzSblWR7wneEaLQOLyIFxUZIzD7nW8ouAgFV5pUBE8gPUYvxw55V04DrzDPvL5Rdlp8iG3Uk321P0wnpCscuoQVXtKk6P4k3tkl1f7lj1n0UTnbvHnZ5dNUyx7FfbRawbvxjvSCo7Ci1</value>
+      </label>
+      <encapsulated-casc>nfvr5QtZEWBs0FJll02wXV4DUIR2xMfU2KdZtGZ7Dszv7aRk2LRZzVClvlnU8vH27U1AtSHYd8tcicxdYocpbHKz27t2u24CXYciIMgVMJ05OxaMVm363NFYU10h3XTSNXavJqjo2jlQQvuDRxBNk9D6aDn5s8Yf68DHrO5t7qbPVFkF4Vkg4Xe6sCcVCa2IiFiJtn4sGf9BMt8IhsYlpdsSHEFjGHUYncAIzwb7EcJq</encapsulated-casc>
+      <encompassed-clock>AsuvU4rbRSpT9HFIa7buM3wiMnUvF4TfonCij3l3NKWXjCxmJIQvEeGqCsW9wHoN415fWriK3fzfR6BsPrXtGvLaYzjmgz9cs7spyK1tRAIAGj2nDSIjnull3EIc5JoyQQPgtQKkqsVYEPehHWsXiNaejSqouOOkxDB0tlcLFZKbPYso</encompassed-clock>
+      <name>
+        <value-name>0kcupzP2rIZ0aQh7T8EgvfSx25JnT4xUgBox25AmFzePivO3Dtj8A3xC0gZUcoOtR40U1s8H2mwkRdnmGzu8CUKD2BxfZdAQ9ACa3KRX6g9Ptob1Xy9AkTdmuCBlP33YEy0ziSoh8pYtN2uLADdUoi8</value-name>
+        <value>UC5BF0rbyrKJb00jpQM5S8QkLV61dfLZRIsoJTAhcc0odSzuBezlmhG0cE1hTNgCnI16ttgGF8WSTvnuJWP66n6i2ZANEIi2jb0EEgcjp84iEjEf7lldJjwLbYqPyIJRTKwp0IJhJ</value>
+      </name>
+      <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE</administrative-control>
+      <extension>
+        <value-name>tozJgxW3rnsyU</value-name>
+        <value>BLJ7O7E7CpB0w6bpYwGpfWW4RgrbGdDiYmpEtWMXlfQRlT9bpPBxDpBmFUxe72wXpNBKJfA4vqOQ</value>
+      </extension>
+      <phase-aligned-clock>4FWoq782APXUwepFATR6jnGPlBKxGc5DRUTa11c</phase-aligned-clock>
+      <address>D</address>
+      <encapsulated-fc>
+        <uuid>16fe6bc2-497a-74a9-5961-043200165dd0</uuid>
+        <configuration-and-switch-control>HC3kODbq7F9a5AqF493zTnu2FMGA3i6KN2WBx0TFF3PKv7ishl12Bo482CI6NHIABF38FXFkSnWnuePDsJF37Bb16M7LlQdWvgW25CeXZadlh2RJDoEK0HMYtLBOBOCY4z023eZUhcfy769KnNnfu1dQMOwgu9eqA7sDdspuwE2DD3g0QD7dEkVi0rymANM2Ufx7zWu5toB6sRYam5f0hai9CRv4w97iowhPtLNW2gUu7KwtHMlQOvZiemnKv</configuration-and-switch-control>
+        <local-id>9TmPBfGRhZosGJa8mTEgfFfroH7HOtRQf5xQcdAu4YWLzYLNJi3YXahdKpMySwgZBOIO1aa</local-id>
+        <lifecycle-state>LIFECYCLE_STATE_PENDING_REMOVAL</lifecycle-state>
+        <external-managed-id>
+          <manager-identifier>6WUvqIHdYtwFB8OdtvY</manager-identifier>
+          <external-managed-uuid>bogLvflnVIL1EGp5gYi6sGEVOk99P7kTosETHR8uzUwesNbILlOd2s1INaSu94nxxTj6LrBcl7qNMtvxPcDRwEzbOjGPoVfNHyTsZuEltX0fqwF7AiY6WqaCJQjZDyMk6GE62bjw0jDiHiqhAogoOqSq84pLC4YJCuHEF02xbGQTYg2rEiHlIsLQw2u8YkJAOi7m</external-managed-uuid>
+        </external-managed-id>
+        <supported-link>4BdPg9JwV5DFCYegb44H3nVhCyNYkzIo2O6jXPPLVlqxbFNnBJWx6JOI9tyu2</supported-link>
+        <label>
+          <value-name>n6T06YGfL2J1Rv9GoXeFWiYoN2Iz5h5tfQtlG2tj44kVAmBYbHw7ZmnNoYetfbOu1aHzcaTgf54PrxFCfbCexRTNPZh4aXq378Dbawspto6VVExaP</value-name>
+          <value>hfTa2IabFc1Xg8XTk8hEpK2oxX2X0JYhYRrTstWZGXOOYMziUIObkQzSFBPFlFWbpgWRBLI9AwXyaoIW6w8reHjUb0roFgr4woNZ1n9BMYaWnSTthTUvs5pDXR1D7lzvJfmCCvdoufdJ06chRZMjW4XUNQpM3Q9M5vgATuYfJ3YB12SS1xcQt1K8J1UNRVrPqIpb4fqFjohkr15ky9a1aM1LNVqxQSm9sLkwSLbb1kosmtNUCX</value>
+        </label>
+        <layer-protocol-name xmlns:x="urn:onf:yang:ip-interface-1-0">x:LAYER_PROTOCOL_NAME_TYPE_IP_LAYER</layer-protocol-name>
+        <fc-route>MePy7wpywmeSaTI7i4r72Bi9RfFBAXlnbaNby5J4rYWBJxJ2Ba9vDjEuycX99jodlboUgZQHXFbzcMtNWCirNOVm0</fc-route>
+        <name>
+          <value-name>EhotkGH45luPRLHlzh9srbqz910Xoen2vEoHk5Dhq8YaLFvcWwwnHXOIQOx62V1qzpZLuDUMDSWoqjAmP6CwVi6EZEKTzLb0abDwOxbrh7HHj9487yxVQDzHhbBIXMA7XdwDCHWUGDBZMx0MXpHG28ncjYMgDngAsM65l2R1ysT</value-name>
+          <value>STYPaFvcNLg7J3feivPK9NHmPyonT9ALUqs46Q8LBpKcs0rKn8mpV4LCC10nas84St8QjhuUye60epCuxQTkUEXpGPMQ9NN1gVKz4elCkjuzJY38POtBsqS07FRgkE9ArT1oZeSkxfL85G9UuCoOUgP1NGh7cqzvcsL3G</value>
+        </name>
+        <administrative-control>ADMINISTRATIVE_CONTROL_QUIESCENT</administrative-control>
+        <supporting-pc>SXXY8MGXxBaQ0mnFBYoxvngc5qFwUAxExuvF83uyEFgwTD3utj1RG93ErI2dazSz3f63iBBO8Rk1mfnQygzfhCTJcVWnmOWhV3kdwO1wxdpUsMC1U38bFTUJGR62xVjtQDyejsKRF9D0N71Ha1SHUFqAopCVcNgUiP8C9KlOLYOyXH77AROu</supporting-pc>
+        <extension>
+          <value-name>ECPhpDIOlAamUNHqGktJdOZGaklWWaCsMsK4XsSiUVFOIe6gqrSD7Rbhcw60HIll25p</value-name>
+          <value>piab5PRNVPWlgGYox2xByDu7ePtgMSg32q677XN2MJfUh5iO7IiGlMNztgI71Ya3ggbf5Y9RzoDQtWwBwG9RkOjN51MYRW1Z4461UfSlDo36cszI8ArtpK8mDVkmJddGaj</value>
+        </extension>
+        <service-priority>-9223372036854775808</service-priority>
+        <forwarding-direction>FORWARDING_DIRECTION_BIDIRECTIONAL</forwarding-direction>
+        <fc-port>
+          <local-id>B6vqEJV2LScqvmu2DTYhtpoEkRlHy769dtsKcfMP7QgCcKwHvuYYUfu6YQNwPLy2e0Ejfr8e9gImSe3oAUmm1RsZz8ooTWi0WXj3gjhpAZLk5HIFt52uOulfCJDoxVolKzo0Sxiko3FtCf15c3r0pN7UoKiWyyha7ybR5t4moBPTQQQ</local-id>
+          <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_BUSY</lifecycle-state>
+          <logical-termination-point>8c0b5632-f6b1-1b90-dc8d-4334c833133c</logical-termination-point>
+          <fc-route-feeds-fc-port-egress>N6NsLMO8oU7upvaKBBtlMBt41Nl6PymCw159NLi3xhxWEHzfbUtPnOT</fc-route-feeds-fc-port-egress>
+          <label>
+            <value-name>GRDytUdTew9d2hrMX4w5gPrPNstQ18kzSX0lJd6PCfUExdqmiWryDKnjdR96RtxJixXUD3BfjwTIJb410vsD7PWkyYiirQTCnQwSU775vSN7WR0WesrlaoyIeQSFGM9WuxOgxOl2y01uJ2qXuSbE8Bfmr7T0L3W8sCoZqC2ZC3lm5Ebsoe6w</value-name>
+            <value>lK9tv96qXeTzDSS7MJJI4XFI17676uXr66MC7TU47NvCynJcYlU3asD3rCbxY8ZX6Lr5wl1E1w8zMKLKXyF70bbrFmZDmQskBTp0fqEgWEPAosld00l03okICbeY1GauAzuHR0XFFEgV6t9ZlmRpK37eed4fUeCmF63w703EwjzuMAl0WdpygoMvCICwWeStdVZcNVQb6hxTSTTG6a7eyTBaueyqkqUxdL</value>
+          </label>
+          <selection-priority>-9223372036854775808</selection-priority>
+          <name>
+            <value-name>La</value-name>
+            <value>bX35dFf15NbgUJrDGMH22iSV1AE4mORpDMmQsBKxoVNaE6FkKnfNx7Ayz6uNUecp0y8k1SKhNprjo7D8mSNLRgcjmy69MbyF</value>
+          </name>
+          <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_PASSIVE</administrative-control>
+          <role>n23LfpWDbdu1MkGPTSBmxpQPQDwDRooeqjZFIWaL1FNFZlvK666DoOlerRSb78pyr</role>
+          <extension>
+            <value-name>SyrVFJtqtmb9klgyT2aWwguOsNA00eBLMVGrE1RZn20zfh81baXzirfKeQC7W6KI1i2xkLwzGw9VF9WQjLhBdxdjnQibW2TXdNuxr067o7U4gJMrm4UzB8LQY31UYMJbA5AT5ySlGEpOf48C823J2Oz0KsMIenLGslzpTrLr62gl6oXei1PlHglrI01XnMDQ75fTwSkuVAI1Qx89qXu8eHrWHtLXfpFfuU8SFknAV5tDuBMVr83FQutp</value-name>
+            <value>fe5wTcSGcKlwZNjWgXrKBmbChQkDbJtqQqOJuGhGjCcipo7ylyiOMtq3bKyem1FcjlNN25llzyvZWCp9aHPO2gJ5Sij6bQincYa63wrCWWtKzKLBjAqlI1iBjCHnkSKwQUCLiVf6KBIbltMFW4SE6b7hFHEZroo9bSUlG1sqCaBQwfvskfYii6zXFeP6C5fNP11v2tVFvon1ESlYZkgi</value>
+          </extension>
+          <fc-port>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</fc-port>
+          <fc-port-direction>PORT_DIRECTION_BIDIRECTIONAL</fc-port-direction>
+          <address>W3yTadJbeedz2K5q7Y4RkURw29OKgDF5G5YQbz1pO6RIRW0YM5QYRzuUAaEQNbNlhE3sdWJT3ABUoCKbzs1q1wctGQcm2ZHbDLDRzmCCXeodI1ghtiznOMQmu2IwUiHpVc8uzLZoZntzgKIK2hZQ3H4qCFWoXwNKAW61H5pylT7BvPdxYcfUMjkgQ8EFwrp7nw84BquWbtqGaD</address>
+          <port-of-internal-fc>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</port-of-internal-fc>
+          <is-protection-lock-out>true</is-protection-lock-out>
+        </fc-port>
+        <fc-switch>
+          <local-id>SiClkGrAaNHU5VGFRw4m1cLc1Ycs2AdNKH85fzFqefck2LZTh3ga8Tn1JrlD2rqM0zRg0pyfwKzyvqjElzHlk4f3nAHpT74UyNar4IyAkZ0QhkmCT3Q6Z59nxIErIId8wnzAXZ39Y3ZfneK9hAf9xgwWZ2fHLsH9P9JE8MO7QFedTYm3qt4PKAMJC1ifuZob80I9Mwgu3mAPlWKDiOt2g7LS8V</local-id>
+          <configuration-and-switch-control>vpjuMPJ2p9ALa6yUDNWvrqub8kUSXDrl2CHHjqBJzbmCaVwFIsaaKwdKJ7uGKV1NpAmI1Xjs1G4bBsIbMKdwgqgZxKyaxrPO2bxV8Qf9wccZEUbrEoPNPYEeAco0E5Oygltp4AqsMDsjpvKWLrJspnH0sX0Y3Owb2RAYrTq6wKpN71JTsklSIUK2KC0FioQcfjaycBEAd3nl47exrrh1eT</configuration-and-switch-control>
+          <internal-configuration-and-switch-control>YvVDNjl0qE2ZQvDqJHO4LNaa6tj0HcVxHR2n2oft29sTF5boERkiEukDXEDxQy4qh7FkvUFx37iA4uYBdaTSE5nuJ0TAqX0AWxMrjrReq1PunNXBYIluOIQxAJ7SzZsvoePHxyWXzLkXqhyg0TDOttd35dVw4gTtmIaU86RIRbxalXqlI31bpe6mrTSw1LZom9im814R5t1qikL0nE3ES90kVKIWoHkCIuYQwVItoBTH</internal-configuration-and-switch-control>
+          <lifecycle-state>LIFECYCLE_STATE_PENDING_REMOVAL</lifecycle-state>
+          <label>
+            <value-name>YHM6ao22ud6vbQLmZRZ6B6F9pDqvHScxAYECeGwILu6WlJakB1qc8YdxBDUan6AXX6s3MYMylKmGtpS4qb8y9lYCQKF6Rf3GlnJZen</value-name>
+            <value>z7MftbZptay2bLSOuCtAlAvTVTvU7ScGSYNl1MKuPao0O8OiD9SYJfKw0fj7ZvFRlk4mZPIOR7GF7nPKwzB8PlEPsXPrkubFHf1GWCmOJ2lQpbtWK4WrpAhRq6aCsli9BbHxN3do6z7vCAjeE7GVIXE0VO</value>
+          </label>
+          <switch-selects-ports>PORT_DIRECTION_OUTPUT</switch-selects-ports>
+          <reversion-mode>REVERSION_MODE_NON-REVERTIVE</reversion-mode>
+          <name>
+            <value-name>uMoGVoo43McxHy7wLWghe4K8cRT5RGXmsl2fCibFWf4DG42r0aI67kej3ZgVFdhZrb73liA9yEM6IOxAZ8G6kMhoLybiLsacvh7IzHRZmD54kvxbvd9P0q5DYgOCIYO5fWNOvEG</value-name>
+            <value>aLOm8lpDqqtiQyOHPCbpARnPF2vbH32JHIXPVmteMOwuek3VOedo6A5DCtObwJM5jJVf5gtJ4R6a496Sgb9eLeRfzyjYh53A</value>
+          </name>
+          <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE</administrative-control>
+          <extension>
+            <value-name>f2MpDY62D28U8z1vbtHpZO5UoUqgP6T58xmDnky1eGNmfOKi9rH87FUwrcM9ix6j5sWkE</value-name>
+            <value>dT2079GRjPa1PayJGZVk86SepPyd15AfYu7XwOHPvJIlT84z0SM8YwffdFkeKUtAhByFh7mMQ57K54b5OXeEtlTG05NL08d9JDGSK2FB7Ed5Agaoeo2zBN8CTVfL3sMF6sxIm4bmJorbFBAL0uctak5V7cy3x</value>
+          </extension>
+          <wait-to-restore-time>-9223372036854775808</wait-to-restore-time>
+          <profile-proxy>xFu1wVREn20MuZJIQJKLR</profile-proxy>
+          <control-parameters>
+            <network-scheme-specification>tc4z0dOLL42Tgh7gJj6HmWxgBBBwtBuONynGD3ro7lhfChveAuVOqkWTWqph1TXHjknWnGcm2mBED7K5txLTSIEG0VP1HMI0Y5PdMTzGf2cK1XHuutfm3TU3PJ4wvFolK5yoZ746a9Rb6yGATVPWHJRwlWUQta45gCu7KqdMz4Xxvv8ojPd0y4</network-scheme-specification>
+            <hold-off-time>-9223372036854775808</hold-off-time>
+            <wait-to-revert-time>-9223372036854775808</wait-to-revert-time>
+            <reversion-mode>REVERSION_MODE_NON-REVERTIVE</reversion-mode>
+            <prot-type>P2EIezsWwIvIk6djWBew4u0P3VlD6n8OhMwweQkCzIkLOp4CSa9Wx9DAWY53l5JDS71YXdAoVM2B46eW9fLGgo8cfe7sjQ53XY1N4t3R</prot-type>
+          </control-parameters>
+          <hold-off-time>-9223372036854775808</hold-off-time>
+          <selected-fc-port>
+            <local-id>n8ZVmsGeYsQTDXrL46GU1kIW2lU0SWtfWt3iVJxL4fwH</local-id>
+            <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_AVAILABLE</lifecycle-state>
+            <logical-termination-point>2b454936-1b31-1d28-4dda-1d3475708a0e</logical-termination-point>
+            <fc-route-feeds-fc-port-egress>nAsLGvNQmke6cQOjtCNTNz07N0kXHWF4wZI4vnMJz0PLRD4c7K5UbYUYQ6Wp2tmqk4mPj8yS9fwSSs4Zc2Mn0yeIE27yntQHpcpAkXll5R5XbaPg4tDW1JExLDX07NIoR7Z3Wcp13uR6wymATSwMB2jfG8fFVP3MOUPL66E1</fc-route-feeds-fc-port-egress>
+            <label>
+              <value-name>H1SNOixS60en271SCzwO5nmZNvwcfrkWldB1n9Tl90Ib7B3B3sp8HD7m9EyoXTcaYNcdOXyXX91WKWxNgONXsNbtjCRgnVjlAvqpkYei77eK4Epkk5aESd7bPQjcLCpeZPvkOJuNRIpNeHZzM15wfdH43ShHvGVmwiGcT2RCL9pRIpimqoSFBrCwj</value-name>
+              <value>dGr03PiB14ELGhM60unjQFHIda1PGkAUT1MWRXpK1VnHc9FdD2olA5VN7WCN94z25mQOb7zc3OT7YzkttIP3FCIMzcsIg1CmfsaqzBCuqoCgPWBixie4VWJu9b4pcyDk0GKrhfWzDqHsejCLBQIwFrSGCOXGmB0ehDyqSmSvMzP0SrEmamSHFDn9rkPONI2WlsndO7AAGpBrIfNStFz8aOhC1YiOGcLTF06t7y4FXx6yETq7rS7ByodzmvgVI1</value>
+            </label>
+            <selection-priority>-9223372036854775808</selection-priority>
+            <name>
+              <value-name>Xt831UXevT8QF8ABCIpXLIKm7nieU0iJliFmdCAInIq2J1wlBVaevUAu9TI3LSN63kkgWVQjvgd69JrKxtY2nrpxcZsPS7VVrf3f2Tyq1Ew3nQFMjwH</value-name>
+              <value>X6Y15qQPqDCRKx7Fqx5k3tnrj25vyM4nS2gQkYxCtameHlT0SQcWjzfvtk0U7W9RQqz2g7FK91YQmJI6zUUKl17PeZJdVS4DawyrDdbM61ukK5ibZdNd6V2kUDxInudq0LRvQUhWVD8xIrAIwfVCaPXXkmxHIC7AoQ56CeVpS3Wsuo20EXvGEkvYy2yhFxJV</value>
+            </name>
+            <administrative-control>ADMINISTRATIVE_CONTROL_UNLOCK</administrative-control>
+            <role>cgGmQHXBgedr0bihoQYt8gV90ChXeY2q7ANXaCyqQDJQO104JQxR6lSYX1Wb0Qu7jh4tTuTBZujGvjKe2iX8vHZsINvIvZHO8Dh1Z2uZwOFTZh71zW24D1oeGUWbTw0219V1ciSAYpuPGtR8iL4NEt1kfQn0mfUfpIgt003QppF6To631aQFvSRKIfDWuxbT7keZ</role>
+            <extension>
+              <value-name>fTNISdEx3bEBPp1OQLVkkjxLyV1lvU9KNOkx2Z55aBGSSzGJdC3pNsadfcyC6AmMoHbiy8nIJVsuv15AD0Zis9wAdWc</value-name>
+              <value>wrYV095yit8ToBnLCsl7schNmNnzCrL8SJVSL1i3mrOKU4owwBvROME2sTB4kf45Y0PB18wfrlZlpfJNReExSazk32gghld8l2Je2gtttkGKspxbv4IoehAajRiBcvJxxkDAs6VViCxKT5Vp1vF7MfhY6zri42HumcWPaRCtla5f71w0ob73qh1pIkzFmh9AtXhEGMZ2W49VXFVmI</value>
+            </extension>
+            <fc-port>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</fc-port>
+            <fc-port-direction>PORT_DIRECTION_INPUT</fc-port-direction>
+            <address>pUCZrQ8AitpAZ5eY72V8XKFK6nwng</address>
+            <port-of-internal-fc>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</port-of-internal-fc>
+            <is-protection-lock-out>false</is-protection-lock-out>
+          </selected-fc-port>
+          <switch-control>SWITCH_CONTROL_FORCED</switch-control>
+          <address>d04peFFFQchqP9N2CXeAKmMihjuZO0YUS2b7zQMqVVIK4vMHkT947Veo7AfVsdPd80kHJYZEUIgQ5VpqOymVutjB3yooD6BDYNdzLc5xUmg0hFi56ESAZ33VBjj6pUKgzXPc9VKWhSWqx6nDCf5Ci0xLkIRBuBR3yzfAuRwDJk39qiE2pK</address>
+          <prot-type>Qk3uDfKmfo1MPrT5PT1ijw7mZx22a7bSr6mXdYjsmke4DZ1sT2D4qKrihlkjtncUtqJGp28DffzSeAdZvQWVAf5JAh2VE6I7prFGuGjJVLt1lG1IoPwY4BzwTusxsaxRt4xXKJyFuUHHAAqZhWPdphJaD3A5d7PHbewWXXtjR2TjubaL7SYo1AzED1JR8qqbFOZCDlOmnHySSIvRsm7tWyZzzBiH1ALGhKbU5ZhlyP5ips9KO85K</prot-type>
+        </fc-switch>
+        <lower-level-fc>25fbedaf-00e7-2908-fe09-07fe37aca56a</lower-level-fc>
+        <address>3Ql22NBKW43htOhHj4TyG6DmgXV</address>
+        <is-protection-lock-out>false</is-protection-lock-out>
+      </encapsulated-fc>
+      <sync-ltp>5b29f3db-6f13-96c1-f189-f038af15cc4a</sync-ltp>
+    </embedded-clock>
+    <client-ltp>4ace155c-6c04-f585-d9ec-d6a845794520</client-ltp>
+    <layer-protocol>
+      <local-id>KN7ZOTAnslkh6KbSi2sBYyU5j8PQVQDxEDokwYzYbTf9Di2NlmpjUbh5b6W6Prvl4TxAJ6qVZG4vQYib</local-id>
+      <configuration-and-switch-control>Slew3MUmwQMxVU7uhIxEaczOuI8dyotjJHHMlt0JjN87z8tIQ0f05OOzwOMWd77WHPBUiBEugMBHMWqCOFuTlbsRZ7F46NTFuuAEX686SBFxx51eCw7XzsGqzevxTodfKNTzTUFDvd2Va4</configuration-and-switch-control>
+      <configured-client-capacity>kZJKDqRRkG7p9PzBo8DRRJNcu6FAP5w247EIxvrK4q157AGvIbnAN2Eh9jR</configured-client-capacity>
+      <fc-blocks-signal-to-lp>A8C9Abz1hWzacMpWraoc4VHs8KfjOoYgwsh7DQ0MFzWRddGwg4IkRiM0U1jIh9QGB7F7PFTu7IekVUR3QrozJ2zvWK55TVLv2iCSQveX5sh1e04Wskw3fXzbIEgtAUYu4smUQtRVV1O21LYt5mxkkYnUCwn4qezmGNhwg0s41863T4oZjNbDLrpgXMkf0TBHHS5PTpTMyZHrW6ifTmKxN9</fc-blocks-signal-to-lp>
+      <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_BUSY</lifecycle-state>
+      <label>
+        <value-name>hXZ1wthbTpBuwwHMau6pa10LBvReFE0OuZH0kQb68EAEaaqlEpCOiusL0bZxP0ebRVbcEeiMTSqV2I8zZKfafzVfKNEsFSDwOHAkVS6GDoCx6K6Yve8KN3RqQvKngfU4WugKfmqKK2hIFgyamGM9CvzkSbI8ru4nQk75GqPisZT77j9t0Nuui4G37obyKgWBAVy9lgjGf4FeoHHgu3KF7iI7HTFj1BUuptDKJOiQT</value-name>
+        <value>49FDp1G1GGjgNS2sc3W6xdr2X2R8SC6OLDraw035ymllfnFrrtpQGRTwTCEEeCsZ7M1DM4AciWxxb4Quy8l6ZeCKQ8gWKJNJnGf1KPd2DCsPGaj6iEd9KHUsQ2gsD340Jj1l86gMIAtpKMn</value>
+      </label>
+      <layer-protocol-name xmlns:x="urn:onf:yang:ethernet-container-2-0">x:LAYER_PROTOCOL_NAME_TYPE_ETHERNET_CONTAINER_LAYER</layer-protocol-name>
+      <lp-direction>TERMINATION_DIRECTION_BIDIRECTIONAL</lp-direction>
+      <name>
+        <value-name>zn6CEcNC0TjrgEw9b6T9pG95KENBOZNoeU0SYOuYzOpQkVRoUKxbqG83cVw1Ujh059SVXfTpVb7fYYvKB3VTB3OOZkHLwYMt7EpXLaeGldOk3j4wm0qQVewUrdyX3kq2QHRCSXad2Yp6iuCwmUm91S4sXChSOHVEhE89ujmwhMCr87Ym1cv</value-name>
+        <value>5ruUVLNJlAgC6gDAzZ7JDBaDI0RKdnEaG1WCEJdZbttiK6KbYRUttXZ3XQF25k4Ml1gZCtRGXcYzbAK1sxmNudQj4oe1IaNVb3MGpvmmAcNLMxE6WSLi6uC2SI3ASJnWE9C3xQh724KGuoNq8qJeUdgMVkeF3BBHD5DaV</value>
+      </name>
+      <administrative-control>ADMINISTRATIVE_CONTROL_UNLOCK</administrative-control>
+      <extension>
+        <value-name>jscVaYgS1wkEAoxbzyxIFFmffHEZlU2Em7sw5Ig6eBDG</value-name>
+        <value>aS</value>
+      </extension>
+      <termination-state>TERMINATION_STATE_LP_PERMENANTLY_TERMINATED</termination-state>
+      <ethernet-container-pac xmlns="urn:onf:yang:ethernet-container-2-0">
+        <ethernet-container-configuration>
+          <fec-redundancy-size>FEC_REDUNDANCY_SIZE_TYPE_2</fec-redundancy-size>
+          <interface-is-on>true</interface-is-on>
+          <explicit-congestion-notification-is-on>false</explicit-congestion-notification-is-on>
+          <queue-behavior-list>
+            <queue-name>QUEUE_NAME_TYPE_EXPEDITED_FORWARDING_QUEUE</queue-name>
+            <scheduler-kind>SCHEDULER_KIND_TYPE_WFQ</scheduler-kind>
+            <weighting>123</weighting>
+            <queue-depth>1294410906</queue-depth>
+            <wred-behavior-list>
+              <affected-drop-precedence>DROP_PRECEDENCE_TYPE_LOW</affected-drop-precedence>
+              <affected-protocol>PROTOCOL_LAYER_TYPE_NONE</affected-protocol>
+              <wred-profile>b737f45c-5824-79ef-f58d-6a5a991aeab9</wred-profile>
+            </wred-behavior-list>
+            <dropping-behavior-kind>DROPPING_BEHAVIOR_KIND_TYPE_DROP_TAIL</dropping-behavior-kind>
+          </queue-behavior-list>
+          <maximum-information-rate>205890280</maximum-information-rate>
+          <fec-interleaver-depth>FEC_INTERLEAVER_DEPTH_TYPE_NOT_YET_DEFINED</fec-interleaver-depth>
+          <fec-is-on>false</fec-is-on>
+          <loop-back-kind-on>LOOP_BACK_TYPE_NONE</loop-back-kind-on>
+          <egress-shaping-is-on>false</egress-shaping-is-on>
+          <encryption-is-on>true</encryption-is-on>
+          <bundling-is-on>false</bundling-is-on>
+          <interface-name>CJKNOIXvtdYY4mmRtuim6EOVlFJ61HGviiaZ07mmclkhHG0a2ix0WdO9Sx8L7O9hYjgZrDdDQpMxXMAZ47ZTcNU4d2HcQQtH2Cyl7LYX2DuZh4Ye3P77vT3IWLUEtflvRTQYwHVycixtenHadGhAAlao642rbgP39xTy6P6iZwM5</interface-name>
+          <performance-monitoring-is-on>false</performance-monitoring-is-on>
+          <cryptographic-key>oEKulIFceji0ExYy4x2O7UwMHyuJofNMLp970Oje7BeL1dcXCeEJ12vAAZbZ6ZDSgMRgs2nzwBdxGpuiv8Uwbh6D9aCf18ZhUQqfTNOhgTOXia7Oj1cmjbZsluzeCzvohND2AkjRd7GoiN4tP8P0jGkw2TKws8VKVqMoC</cryptographic-key>
+          <maximum-burst-size>-627</maximum-burst-size>
+          <ingress-policing-profile>b737f45c-5824-79ef-f58d-6a5a991aeab9</ingress-policing-profile>
+          <maintenance-timer>-144066669</maintenance-timer>
+          <problem-kind-severity-list>
+            <problem-kind-name>7vvctsY5Es5zoPGYlA1pVawR6pBcYOlXkR1FjZLQkIpAx5qKyr9tBxcHONMEu7tOYutal60FOh7dfxXNZY</problem-kind-name>
+            <problem-kind-severity>SEVERITY_TYPE_CRITICAL</problem-kind-severity>
+          </problem-kind-severity-list>
+          <problem-kind-severity-list>
+            <problem-kind-name>V6nA2Ihaphu6BS0nDxPLkryK6Wfc3X9QVxrX7I7xStDlmDIR2qumR27XRe1UbbL6A4VHEUewoJKCfklhKPEuJDrARlvUw8SYcNFQzMfXvRrKbMUWtyqd3JNU4aGsayimdY5MKcC73VK6IE234kg7W41S6z</problem-kind-name>
+            <problem-kind-severity>SEVERITY_TYPE_MAJOR</problem-kind-severity>
+          </problem-kind-severity-list>
+          <statistics-is-on>false</statistics-is-on>
+          <fec-word-size>-29169</fec-word-size>
+          <fec-interleaver-kind>FEC_INTERLEAVER_KIND_TYPE_CONVOLUTION</fec-interleaver-kind>
+        </ethernet-container-configuration>
+      </ethernet-container-pac>
+      <address>Wfn3WT2hNXO2W8y1QP04ivD1xvk7Md7AsuDgfxq3me5amvc4c40mzDg60A5MO4e8yJpG9PBnVyy93Kd8Gdm7RC5Rd2wT7C1Fmqdn7OK2mibiUoiAuEHdhE4mHsfOX8lbzzyGniJKBM2vbcYFQxSZcOlT9sH6B292tHIRZjts6nY9zOGplqpp6Ca7XR5yMes7V2YVmrfkO5lnTTF7jW</address>
+      <is-protection-lock-out>true</is-protection-lock-out>
+    </layer-protocol>
+    <ltp-direction>TERMINATION_DIRECTION_SOURCE</ltp-direction>
+    <server-ltp>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</server-ltp>
+    <transfer-capacity-pac>npe1wupMfrWXMTHRz84OuWFY5xtjWYabfg4EK</transfer-capacity-pac>
+    <address>kBVydMk3NNKG9o7F1D44nEMzR7BL6fjiR6R4SbZFYCdZ0lw1YAYd6C</address>
+    <peer-ltp>2b454936-1b31-1d28-4dda-1d3475708a0e</peer-ltp>
+    <ltp-in-other-view>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</ltp-in-other-view>
+  </logical-termination-point>
+  <logical-termination-point>
+    <uuid>16702fd3-0ea0-ff4d-63bf-6776ddec6b9e</uuid>
+    <physical-port-reference>371eda64-3aa3-f78a-2711-ea75d567381f</physical-port-reference>
+    <local-id>R9kkCTCvHAQ36PWACODmIT1Dq7UNc1hWaB8NmKaVc0YjQMLkAgya1zOryA6DtozwZHbejl9vm0O4Mrgfz</local-id>
+    <lifecycle-state>LIFECYCLE_STATE_PLANNED</lifecycle-state>
+    <external-managed-id>
+      <manager-identifier>C2ryUJbKB9QVpHAJjQ3N3B4KJ</manager-identifier>
+      <external-managed-uuid>KMXyDzAWZuFb78cP4BwwcHm8vhJrUkGEZE4u5Fq516806kP2Nmy0VU0i4JKYWquN4zh2eH77Ff8MrXO6bn6796p5I93wAybwZsy51xczMkl5i1ctgaAi90nJ1r7tRi0QKqVDY7cCspACrM5HOyZXqfyrGFVpXNfH52dV1pylP0X8M3PABHq1WYkuE7TtM03S2gFVF5hu5e</external-managed-uuid>
+    </external-managed-id>
+    <label>
+      <value-name>aWnyOJQvT8BMfLlLI8BCRKEVD2p4GKqIzN9foZL98mVfZ80A8ucSeQFJL4NjH51gT2v92gj2v6hufi4fM97SRNtCR8VqePG7Rc8TkrNPy5cFf8UT92L1H6vqejRs8xrZBALO1qvrvHYKITvRN8Kme8MtrvVz3fqwP3kQuQaRp8</value-name>
+      <value>ZTZJy8lUmtzHU4vtZKMozPAhbir3IsxzdoiMwEyT7ZsUWXfVH1b</value>
+    </label>
+    <fd-rule-group>4cd72b11-5cfa-9e34-94d1-42b54486ca7d</fd-rule-group>
+    <connected-ltp>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</connected-ltp>
+    <name>
+      <value-name>j1oKpgjAmCWv7anOeafmhPayhpE3544gXk0nAjXWVTk33HR9JYv0FxzPP5SU1W3Yh3dJn3yaWSdSrWTbNh3kOu9vr2isQlj7owJLzhWo118sQ1vDazXRVZmn1EPRZ8Rgxs16JPuCJu4ros4y1ThOKEbLaTv21eiqybx91TLCoP3M9Zc2KuRv028aVvcPBu79GEizq33OL6sUXEXz0O40I</value-name>
+      <value>bwsnd4Sk5qRoZhj25W0pRX3Go4ml4Wq7sKvxOfSMxB2wSlqPiie179zv5VQ2J814TwBzDl</value>
+    </name>
+    <administrative-control>ADMINISTRATIVE_CONTROL_UNLOCK</administrative-control>
+    <supporting-pc>BgsClypH7i83IV</supporting-pc>
+    <extension>
+      <value-name>JMqU4RPEbeepDo31UtUUlfOhc34UXg2G2ssYcaDfoJETZzVUVHGgW</value-name>
+      <value>x9pBVmJXUDifCmp7BFI8zHHmtC39K0vh1VLO9mDW0VbuhAtTfb1GKA2e56fPYLZRyCFzYavY6Gkf8N0gYTWJmZPrX48NP7wfJ3PAdkybTTr1yjhxd68zXPSMT0rB0XQBSxb5KC9DnAwVLGkYMkpJ99v32Ww2LeDDMHAojJ1ybptX5ONR05saeP5gDBaoHGTlnmJy5C6</value>
+    </extension>
+    <embedded-clock>
+      <local-id>m9hFB8XtoUPdATATySjF354UavBUuUjI3AnwIdZ77OcHzMt8EENzJJmL7XytJRcMjraUEaTMQ5lqJGyfkdPWP3zW07pKQto2VzWrBH5rEjJnZ9ucnj8cmH0fHpRxL7zyGnZh4XBIgkX7usjJDjVSTN7A4Q7PXznwWfN1cgBsBrrXLLGo4t8Pg7pkXp2NYpjUEYNQfhaII</local-id>
+      <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_AVAILABLE</lifecycle-state>
+      <label>
+        <value-name>M2WPjUB2TLoDEEKYjC7fjjb4jOiewU0aOWZ0I</value-name>
+        <value>2Bei6KXII8lPfw8rsr7LxDxyNdmMd5f7ylqx6n7Ons</value>
+      </label>
+      <encapsulated-casc>j1mGGIOt7Outi5LNI5dPOKcOF60qPYD0ZZGFzn1Gbn1lsM82KeRqYV6DU6VBWqBNhhlQEmpHBq3353XHhG7gB5Lv3z60ZzFhR07new5PP8KUbHttfsBRxmeAVdANM84v83TnsQ4hYP31owmEYXnncBXZGqMlyIQGMBVer0nhHqb5OxBEnY1rsYi0g5lOFcvjNix7aMoR4zPSZi</encapsulated-casc>
+      <encompassed-clock>AsuvU4rbRSpT9HFIa7buM3wiMnUvF4TfonCij3l3NKWXjCxmJIQvEeGqCsW9wHoN415fWriK3fzfR6BsPrXtGvLaYzjmgz9cs7spyK1tRAIAGj2nDSIjnull3EIc5JoyQQPgtQKkqsVYEPehHWsXiNaejSqouOOkxDB0tlcLFZKbPYso</encompassed-clock>
+      <name>
+        <value-name>FtfdJbyS1OZi0PH2CFkNsYL7H0oRA6l7rAkbMSVFyMXrBFl5cFSwEwEdo24Z1i6sSjDw3y3ud1NOy8MCOw9k2NxjHtaIL8bwrG2n76JkZw0xEM1kbaw5PVoxhy72Hiq0Zlf6jYiiuiH15Id8TKdAxCZO27JBh9C8uR6NQo5cHE5EnjM8VZAstA9wHS7Q1BZwl5b3m9f3NlH2wt2</value-name>
+        <value>kDTOd2cMMbCOFtc0rn3NoaQcnp6TK9k4M6KR0WvN0ZtFtxFUUAHbCpn0OlTqu6u84fRW3mB3m4AHB7toH2zkrOc79Xxw3TEZ0oW4KxZYuAFXH0dh2EBtsFsuCZ0yTwxTUlPxLPn7h34Y3if6WIrhnUD0LvqwTPiGb7dOOAV5vZ4r9bpYUI79uK1g7rM09WGk4L0KeVQJ</value>
+      </name>
+      <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_PASSIVE</administrative-control>
+      <extension>
+        <value-name>CQw3jQ2WnFtVsGi7Ufm1FIjcGGkm3ESyvhtO7wCub5iEDsLpHZjezCrfbDC6hmEEv0kCwWZHT9dpBYOaYZopuPFxk9vCn2gT2BnypmfjvtI6jo89gxzKe69zfE3CGbn</value-name>
+        <value>MLg47wnvR5talCcB1Ll7RuG61JAHVQqzBGDA4SXVXrYbVaMON0VEuCCvd450Uvsn3XY8QNVF6LQ1VDPADDeZ7InkNsdzXxX0uN0csWSzzAAn5iXAV4s2MPer9j1YQQQdvRpXF9oeKZBH9riWvKQhrWJAgCqYkgbH7BwEKVLmMeWNF6BaQrk9f3Bnx1mJhxih0ONDByZfFN2kTDnBW</value>
+      </extension>
+      <phase-aligned-clock>4FWoq782APXUwepFATR6jnGPlBKxGc5DRUTa11c</phase-aligned-clock>
+      <address>r1eNKod2xdIkQcLIrqvmCpRZ0GGDKiQbjXZVlcPShq48CPQV7d9Ku1JnHi0rAIuMFtHSxxCPXHProxmwKwg7pRu69mpC4ToCf5mEuZljGaK4HZsknArMsVKth15dMtH1r4yVVTft4RpDQSXdsoZM</address>
+      <encapsulated-fc>
+        <uuid>45013fec-f778-eb91-0ebc-88429b04a2ba</uuid>
+        <configuration-and-switch-control>9PMrsC87e8Eiv6HvhaKHI696Cat8qSwAza1TN10T2E3xDL2MVElDKvBfFXnYHLqgWj1Bd1ufxxE2iyO6c2BPpd442jUJ5cR1wSCBT6QivmlOU1M63nNssRpubbdgo49MOLnHJ506rdMdeybaWZCoQTLT5Y</configuration-and-switch-control>
+        <local-id>zAsnDOX7grTvFvaZtbeOQqI8gSMo26cByFRctGbBZ56Es8DOkSu2ac2qXPHZVTtmyky1SBuSyBw1B2HVMbPWfSecHN4uHxQ7Jg1BKvliYSbAMSnqVde35kfE8j0PIJOrZPVBlgUb0XLEI14D6iG3DOHDZHkIi81aYWLb5Fm5v0Cd1GI7Rham5JZ4ijEBrGLhuwkr4HpzH1MAzuHqLJMIsDFKWjlgR6pevKFzj400XMsx81PMKuu47</local-id>
+        <lifecycle-state>LIFECYCLE_STATE_INSTALLED</lifecycle-state>
+        <external-managed-id>
+          <manager-identifier>XT28rnfJpAh7k2GSt5gluvJgmZ7qsO9qA3yTiFCH7TOrNnb9ksmPP55bW4CoTDOlyfeQUIy2tel8BxhWRDDGAAKwFeVqRBLhIR7vzxp2MC2n1kbSXOzqpjWWxJmgdZxNQwih4zbQcd5dxh6n5</manager-identifier>
+          <external-managed-uuid>NmIJa7lwnqvMddioumXF41TafqrdNoKsDs4NzpkOPHA2VSih7gXbhIlo0MBO3d8GFct6BFMifmd27vj6L8hVQvjR9Vxc0FSGSeEtTrE0FR2EmmK0uUNlp6cqTJDUgns8tYufh8fXZitdEe580SlhRpHK0kwhAQp3PTi61yVSQp6mv3uvWIMN7tp8GOpgEOblAusBUnmCEkY9nkEb2iQaM8ik</external-managed-uuid>
+        </external-managed-id>
+        <supported-link>7BNmbor3vKghXuI0EEZ9UI2FBZwvkjFrUlN5J606QgoFD6G9CxiofdWJckexvLQh6wfQufWdwcS9aqiEYt35GROSb2hGG0XMo4uSkr5QvYZGg9ceC7kaY031VczB4pnstSlNbqDygu6pwjD0qPbhQ6iDiKef9tHCd2iglNPtaVSGeoGx5RONXYq8IEnR04mdZwucjjxt6q9lGIS</supported-link>
+        <label>
+          <value-name>amj4IMuIssvoHNa4DvQEFb88Y0s1ZD7aZiez4A9w2xMBcOxPkglRrtRplcidPhnGzt8v3h1XGFqSmYHGeUpxf9WBl7Oao3QYoQtj0ngGUGzgw8OC369if6LA5rKtmsjKjN3j2bZOKq5gzLTuR2M60qG5RireLKYWpU7j5Y8Pp5YQQJk</value-name>
+          <value>D6OwontgFUmqFceW6lg4koLBtJrjsLT6JIu05XgCSC3pO9lNvtRHRCaceBoyehwPR0POY5rIzm7gvk3SOUrxoBKCc83ihz89APXyNo8mCfu8rxS7jkFAVh40p7iGHiHh8FHVVP9yWEyn3qvnK2Xyj1yI1IgI1YZ1vyWinXQjBgyxH</value>
+        </label>
+        <layer-protocol-name xmlns:x="urn:onf:yang:wire-interface-2-0">x:LAYER_PROTOCOL_NAME_TYPE_WIRE_LAYER</layer-protocol-name>
+        <fc-route>A5RIGAYRWcEapbPjtdwo5FG0AV15GU7gZYZyzPpv1Vyi7nBsAZQFFpx7cy4Slc1ca0KJH17AXFT42moum61Tvy0IY5sbhtojt03222DRHoNBKbXYhYJNoKneHPqQjO9EO4HI6czFAm8cp53HVMmboJiXqINBoP84TPN0TexltGpSDszr7NCvoUlPu8iSXqPJ7uB0I8l3GLWk5nLcbfAz2VgwVzhLZ6u7sXZ25d6EYUQ</fc-route>
+        <name>
+          <value-name>in5YWoUWgKAI9JJYnlsJpAL6o60sa0NlgTbch51yHBgQcSPrd9bvJWBZUtr4l7hB0sOhqHP7aYYfIFGVORiqNLpzeJwAQNbQgRZGyHNBxDQfaw2Rolh36yDd91NZOYH4IzK8gqJNVzUY6W</value-name>
+          <value>m9YhgwMtyN8pCY7yGybPGBqlo0fmYb3cl1ltq8OYNWnpUmYtU1asCANSs27i</value>
+        </name>
+        <administrative-control>ADMINISTRATIVE_CONTROL_QUIESCENT</administrative-control>
+        <supporting-pc>zyzpwRxfoUYoQcBH</supporting-pc>
+        <extension>
+          <value-name>Uj5JRgChYD07dTXcUkKQCZFla9BJGiEsuC3dSFvJbnIogxt2R5St5pO7yiQeAnGWRJaJhxkkU2I2r34i1OE6dk5MCOS5bz12a3DrAQLmKmgcpkmq00o6lmKPaCUd3W7eZKFssrOdF5h4hDna</value-name>
+          <value>DgRZ0G1CteGhlU86rAqKhvpeMmvqBFWeVF6Nd7iGmQXHCYF3y6OHt5Vgrry2Ym9M1fzeeJNAzCabAH7</value>
+        </extension>
+        <service-priority>-9223372036854775808</service-priority>
+        <forwarding-direction>FORWARDING_DIRECTION_OMNIDIRECTIONAL</forwarding-direction>
+        <fc-port>
+          <local-id>s0jjvoMfQTXWrecGxaIYBgikao38vzJXAU8XbMd1F2P6h1EO3fEEnOYxd1yAB9x33F0ej5fZ85XpYu52BBGYpFouyW49XBc08d7siejqbgH</local-id>
+          <lifecycle-state>LIFECYCLE_STATE_PENDING_REMOVAL</lifecycle-state>
+          <logical-termination-point>8c0b5632-f6b1-1b90-dc8d-4334c833133c</logical-termination-point>
+          <fc-route-feeds-fc-port-egress>n98F5lVeFDtZfxvYfKsN2eO4dpOXDFC0ODxLYsSEXdD5K03ZKvEECsIPJoMnVpfC2NfS77w5k1a4U5Vwsz34TLTD2ySXXZrRMHBMO8R91T5VQ1sisvfe88R2GBSvAjef0Q1PQKQRvNFlG7v9uKnuL6xjzpP1IV8BD1ilL058NKluJRv5tSzeQ6yhnfiY2rzGsR16RYew</fc-route-feeds-fc-port-egress>
+          <label>
+            <value-name>Irc04Ye1z36aFEjezVtmqHIiRfDTpc9ZvlZsc5tD1zNG5YUxTgTbPttyJ6r0atZGGQ0SVtnWU2uZ0hoTxaWeDiMmgdmrydZfVZZJknxepU5qbubAE8OhqAwGFKZeYQlLHkm1HUf7GlpRHsjdAZuSrSr6Dict9x6QStKrfZqVcHETaX6COtvfdOdQ6qj7PqQzLA10rjVE1rpbgoN4JajWQwFXOYWEgMd1e6TGqGcj7tmfJ1jkcuh</value-name>
+            <value>TWRHMGdVkjOzpA7Hgb0gwmvgoPAsbJm4x6EcMR7YaNpsnw9wz2M6g9eEYOY2qd6XjK9Xu8VEOl63J8zbadhqnvXdbNfB0ezjQA8kB4R</value>
+          </label>
+          <selection-priority>-9223372036854775808</selection-priority>
+          <name>
+            <value-name>CM4dnKcNhs9QgeRdH45Q9cajrlCCBjM66Qjltn0CPas5oci5goNhAPATacwEoaKuT3HerIQ8Sbe8nw5DMTMfAm8LrwhPH1bsWSGfswokHCk40qzNjl2</value-name>
+            <value>A2w1zNI8GLADDgS6MgimSDqL3SyedsZFmoyV3gVK1vnxD7vioFE8aWT5OjbUD3z0r8NugJea6tzKB42ZByZEuTJj4V5IYEAhMfLVQS5XlEzWAtN31NHvyjGC6Lc4qEd4UYZKIWz4s002tG6utF01Yyv4kA0C6dy04qDMm4IP5BJyhH3CfVvdl0aFsa9z</value>
+          </name>
+          <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE</administrative-control>
+          <role>ht0kIAMKn29atiVlghkIejKcwIQmCyiM1a6J</role>
+          <extension>
+            <value-name>hPkSXU3Z7cimH7ATUHmVVN6MofYRbP8kxs4mm8mmkwAUDaFpS1kFPjj5qiWB74NwwRTLZ7ZcDz68CLxmES1l3lqtveWuaJ1HsUkk1bwEKuMe7bAL3u7YPprcEnGOYHnrBzLuK90vDEJKQcnLGmKnM3zirf6hXmIqVlNGuN3ZsEBiQZ3odFLZJc92s8jhuUzh7mPC2Ktup5E7Wzo1f91Qm2SGa3XwXoO5LvzNg29xZNwNeUPl4Ibi</value-name>
+            <value>3QV7FjW3Z1GvslDvuam9GagBZBxHNHjIx6P4qE7pFOM01pvorJx8TNBKh0j4zDM6Ju2189jFP5FRn2fOMEOxkpiBhtxQ6jOIFQBF0UlHSSqfVF3zcK6o1gZjKw9IHQifGUUyO78y0yNN6JeitcGutxF5VPFCxYRdKEEqLMZLkMqqnEAIRg5cFKhArO5YMO4osIPemORGsiZQWzqNIvZn88YzX3yBJu0ccPiyv96Xr5Fgx63ft</value>
+          </extension>
+          <fc-port>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</fc-port>
+          <fc-port-direction>PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN</fc-port-direction>
+          <address>3SnBm75eb93tzqCxf4DVc2Tfhe2TQYeTQBm4AjiLkdeLDRiTNNGZPr66F9Sn7</address>
+          <port-of-internal-fc>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</port-of-internal-fc>
+          <is-protection-lock-out>false</is-protection-lock-out>
+        </fc-port>
+        <fc-switch>
+          <local-id>Z6jr6hoowtSm8Vd56zY9JQ2Qb8T8FcuxaOYgXfFtApPJcUGimEk5mmOxuHx2T2z3QpcNwJ878PQkJwv52P3g3RNxqlrbfS65iiKO1SN1zDei1Jg3ybjBUZ0kcknrctomM83FSQzruNBnoJr</local-id>
+          <configuration-and-switch-control>sde4B5l8hNkVcC0ZCRDao8hQ89nd9zkt</configuration-and-switch-control>
+          <internal-configuration-and-switch-control>yxnDSnVyHICcAtOs6ZIe8zeiOrjnMM9cboI4MvCl56xFzmZFdIMd90vXkGc6slaEJSAnf4Jkag0JuRgzr2NAVapfRtdbOfPq0hNflos</internal-configuration-and-switch-control>
+          <lifecycle-state>LIFECYCLE_STATE_PENDING_REMOVAL</lifecycle-state>
+          <label>
+            <value-name>PHrMCyAd5Sm6qSRo5oRGJGjPiqjK4nHL51yzz8MET0LjTCzY0jwBZIj90uT4RtQOugn3g2z92ckNOULG5aaWSl</value-name>
+            <value>KPQOGjwvNMSI3Ma4PmpC3bgJ8iL4261MVRsu3ZZQDJrGoBDdX2H05PCd7fh1eiN11gv47mVKYejmHWrEY8xVQ18XghZuzEwAU1F1gsEeyXAfT1LJ1iERbEHsVyOu4kWRetKmVoAtl2A6VmPOwlyIZ7aUFYgBbdshGdDuB5PP7qVUMLIa6gSYn2SUT1</value>
+          </label>
+          <switch-selects-ports>PORT_DIRECTION_BIDIRECTIONAL</switch-selects-ports>
+          <reversion-mode>REVERSION_MODE_NON-REVERTIVE</reversion-mode>
+          <name>
+            <value-name>UChOt90Ftn6GRu2vu52eWBxig</value-name>
+            <value>FwKYkFtBlWLeC6tAMc</value>
+          </name>
+          <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE</administrative-control>
+          <extension>
+            <value-name>WeY5M3I8xFYmMg9yUMg4LpXJMRtzCu5qIVvnR5voKlCoBLWny5sbupUg8nPLSMbsAzHrE5HpqjFUWChmHJxb0rj1H1MzFPTfoBy3GfkYyZSnt2J2Dh5EIpFhijQX0Cdp5LkLTwJjnuGRwqL1HRFhgczynhnoTANYeZB7vdiKzZt5pf6Y6EfeIGE6Y1mJu1AI03Hn8Z7HQBEfID5O9l2RTyPJz3l34VD4QcjZ4jGUMl2uY</value-name>
+            <value>a7k4QeCyXbBi7G5KCWXON17lNTGPfwXpv9ten5MlgfvnVB0qpXe4Qdpv6Yddm2CSb5YzaCMiRhyFKyX1n355gvAelNrHP3r18psa1esLv0i8qf9Ni7SyClEX05wQ0YJ8nbahpCUMvcUVjWJB3t1xOFmPCSxCQ8C6jMfAo9eLd1</value>
+          </extension>
+          <wait-to-restore-time>-9223372036854775808</wait-to-restore-time>
+          <profile-proxy>r440ml00d4tA7b5jCAJvb6qN6uFs1IasNes9zk2EonfnqcHVMiqPgQCedaGeSJGxX0zpkB3BQaYhnx41PuRXdlcqnKEgtcFj4eIoHDZyOYH3vL4dfN2s1eKoRgwkscDwqdN8RMyxCfA0Sw57k</profile-proxy>
+          <control-parameters>
+            <network-scheme-specification>att6sJ93WNKpbw5mxeEhC2WvopAbGJfQ4AWwc6r8L4xWsvj0JXheR6B7v3b3MiUQTIe5Gx5rBugWZrWBg5HZba6yd9CZsoHdYNiFkfYOJ6KBxy4NvLEHVD78MBZeRGrQlBnxQdlskX3Jn7pTK3sFGzFt3EzUcTCxmZ455ixp7s8vrxg3tII99fucT4ZXPBmbtigysFXA7XXqndtQN3ZWim13i007teaWx</network-scheme-specification>
+            <hold-off-time>-9223372036854775808</hold-off-time>
+            <wait-to-revert-time>-9223372036854775808</wait-to-revert-time>
+            <reversion-mode>REVERSION_MODE_REVERTIVE</reversion-mode>
+            <prot-type>nBDho54ynbpQoBxwiXwACLN15byphzBwaeOqbSZy4gpkRWQ2LeufSh8XsGnC8Y8a4OBfzAOvQ5PA1yCME6Twf2uAARcIHcLD1mSAOy5wDM6EcAiRy4fG6JgGskh1w2EpgpZ4XWsBBr7NTiwkmM0kn80Qs9JQ3o8bN77CWA5p1d4MnB6Jf63C6VkyX4hSkp47o3BcDHBwUGj99hKooF0usdVp</prot-type>
+          </control-parameters>
+          <hold-off-time>-9223372036854775808</hold-off-time>
+          <selected-fc-port>
+            <local-id>c0K1LYxewDpC6N2pr31Fl26lLtK</local-id>
+            <lifecycle-state>LIFECYCLE_STATE_INSTALLED</lifecycle-state>
+            <logical-termination-point>2b454936-1b31-1d28-4dda-1d3475708a0e</logical-termination-point>
+            <fc-route-feeds-fc-port-egress>LeedfZkd92PpN5oVfi93xLzmwG9aGE1sK7xZ7J58LUxq0Wm76n3D1CRpaSzRotb9AI8zrdI40fu0bIZhY2MZxDoHnQyMjJVTjVtK13G1i3TuLSDJVqAkVR1jHs5S3SDnN6ZO1GPkJAGmtjYgBqAphtIQNFIRpe64cXTevAy6betwpjM1Jeq1z0Jnxk6W</fc-route-feeds-fc-port-egress>
+            <label>
+              <value-name>KI1xp3vqx9ktZXRYgSu2FjbO5ZEvtC65c7CB2Z1A8d30aMYqwskbEoRJnv6IZ4Nb4hE6hxyhKthUf7cLsxO6VFHa3OS2Sx6WGCVPat7UXgHcoLQQaEOXcn7f3R9Wg7KXKFEU1LGYUf2aTSS3xG1JV0QZKZV0ZxPJ5uv6734Tb634RV7gt0ZpTHgDy3vxAl8FHDLGzPAKOvGFrFVMGM3rlj4T</value-name>
+              <value>zjXMrulXg2wXu8DZOait551J8sWkoQGY1vCs0Yhg0F5mNJltTEPRJQsJbp3r7Ch87Us7SKfKhl654jqPXfGyY1a1q5spHKpPERWot40LpYIlh827oBxeCHfUNHjurIb5r0lV4dylb8GlgAs</value>
+            </label>
+            <selection-priority>-9223372036854775808</selection-priority>
+            <name>
+              <value-name>rGvDygFce4qDHPfOuh5Vc6sx0yKEUuBl27RtnoFts569MmPgvVbITD7M3SqXe1jh0aKfyhJ0mH183RorEr1p48b70BX7vggni0DI9eAvVBDRkTiYcjo8jz7c34jqczNuri4AwE5k8AbsllrxwHFP8M1b</value-name>
+              <value>kt3L9qcruMQ9J2hbdJwq23WJADSnFV6Rp1DqrHRWmzX5B69GHF6KBUl3y5q51oWiqrIJ9rxvTususB3a91MKWZNm56rYufgMHQwQ93d2qFpS9sUity2pyHLvF4t2kBO1rcJAgODyl2ium5MPDG73gKyVP1X1CM2VYDw6r1wMVP99UVYxuX</value>
+            </name>
+            <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_PASSIVE</administrative-control>
+            <role>KYrwCtP6ovvEYgCa9FGGD3fhUsIbaP3UGuiiQ7geCDStTmD32jJxmRO9jxktefnUCF4sFlG9YrCKNfNHqofFfVOrk0UzgatSHyceTSoJjStZ08GqxNXEJL53MSCUUYEtwQIhIYSUQeTImr1L7YiQKfLo7gaTeOfCEXTe</role>
+            <extension>
+              <value-name>bZKNzZHmHSI0sU6UUjHYx7jAfRVvrf2v7EiGESUdCCd5obZiny8UFjuU2ipuxjZEQ9cmT6zwBEBRQs2d0aZFulrwDQS32JzSLM6EKF2djv51X76P95mvjN2WwMZqora9dgFPV</value-name>
+              <value>36500VZ6C84ZEnEyb2c3sAuCBHS9oFJjEObEBaCebG5H3J77Mja6MEJfdtoB17VxO63h9FvkeA19c8gQjqW54Flh1BT2JGrpEuGN947nw0xI0Nykenha2usV6dPHTg6xKEdMIc97dyP5eghsDzCx3Wl19aI2jGs3dFPNRRUWhC2vSjXnKsUGg7HqiikBQMw3reJb5D7e71KZlze511La8</value>
+            </extension>
+            <fc-port>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</fc-port>
+            <fc-port-direction>PORT_DIRECTION_OMNIDIRECTIONAL</fc-port-direction>
+            <address>TlHqh0E03BvbPDcrup1JvUK84SlEb</address>
+            <port-of-internal-fc>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</port-of-internal-fc>
+            <is-protection-lock-out>true</is-protection-lock-out>
+          </selected-fc-port>
+          <switch-control>SWITCH_CONTROL_MANUAL</switch-control>
+          <address>0DSpkpL11vyvmG7kRTzr9AFVNGubvM2npUMJbpK4Vaz9IGtzz20Auyv96ZcCDeZV0Mwb39fYjO72mAtNumnYUTZ0Kbugpubh8HkbQz22f94tKxg6TEXFpWy102hposzo2TsSluUADQ4fgce1QbH7Z79Z1ihiLQGNJ0x4usx0itfyFtAow9nwgw</address>
+          <prot-type>PzmMaF4VRi2CNTVyyAepqFvwdwgAveJdO5ZYD3LmdNZTyMr6mGvEdT3qpj1NyC0mzZc4UPr0vqT34c2iKpXYi0gAj9nJLf5d69h0RISm0Dp4QjfsJcq14ztnIQ7m54zb6Q4XrObrkso2MDuvPVoTmS84I7qG4RJ2AFR1u2kOuIQ8dkD272NtUOquNI2JAML2ru3NwftTYj1bwx6vzLRlrhP</prot-type>
+        </fc-switch>
+        <lower-level-fc>25fbedaf-00e7-2908-fe09-07fe37aca56a</lower-level-fc>
+        <address>0EpkXPmNbvzcC1iRK5jcAln23u3IhERaa8u7XQU0em4IfnrZkLbUYrX1VSC5wlfGmJFbrscFOgo3DPUQsYCjprkckO9Iaohw7WHzoT642mZx4MnoK0H1j25vIfeSDvgDjY4IJ2EDpwbtiyRUqzNCtS73ZlWvI40224CE689vEkQOLAI31nFu8Nx70luJquDkyfQxn022kLI5</address>
+        <is-protection-lock-out>true</is-protection-lock-out>
+      </encapsulated-fc>
+      <sync-ltp>5b29f3db-6f13-96c1-f189-f038af15cc4a</sync-ltp>
+    </embedded-clock>
+    <client-ltp>4ace155c-6c04-f585-d9ec-d6a845794520</client-ltp>
+    <layer-protocol>
+      <local-id>Q63cvkxt7knPqVEMItDtB1MG33tVPjXxh0JEkg7stn9LaNxT82mJV1hY4KMTVJicJ2QWaQgvdphn4G8cJvVEocvsOheK0wOBqxptnFYs4fH8WQkxd73Bjy38P9KHyybY5srk8iM4xmdlcpKpxO0QmVQ45ADv1Gt69Nrh55lujqIv</local-id>
+      <configuration-and-switch-control>Lic23zWd7yJ4JC1tkQwSeSuxbH7Up1Y2ca4fB0sAr3w2FpvZ7UJdE6KPNRKcLA7XCb4d4pFns3p8sV7zHJMlPo2ugEG1eNQQRMVNbAaEDrMXeLoVm283rbxHP6A4LiMCWAh82jEGLivZVUViW3df6LOWRgSCyw7n6gv9A1HljckeY7oN3C29fR567XAymzVsQiBqjiLunXAl5Z88t3hIUfGT4gjqI6TyomQzxt3UqE7nvgnYbFy5</configuration-and-switch-control>
+      <configured-client-capacity>s696kig1456e68B0k0T9H6mCGncz4dVobWuveDojImxGv0yP0kYzqc36AgxElk2w8pTn29yCw5j15JIX3yotKrrczR</configured-client-capacity>
+      <fc-blocks-signal-to-lp>QQm2h482uxok6VN2H6yPtVXRL8oj5apV0LX</fc-blocks-signal-to-lp>
+      <lifecycle-state>LIFECYCLE_STATE_PLANNED</lifecycle-state>
+      <tdm-container-pac xmlns="urn:onf:yang:tdm-container-2-0">
+        <tdm-container-configuration>
+          <interface-is-on>true</interface-is-on>
+          <segment-number>156</segment-number>
+          <loop-back-kind-on>LOOP_BACK_TYPE_BACK_TO_LOCAL</loop-back-kind-on>
+          <maintenance-timer>1764130188</maintenance-timer>
+          <problem-kind-severity-list>
+            <problem-kind-name>gjx0wyjzsa3tFfSxQCpeB9bmWLHdpRrF2YxzoI0IS3bqiVX1qnf1orfl4WquGR1IHz9599F24RknEho4wDYVWd812yvAhwaYXkV7ts1yblNQu3U1ySWnYWo0uLsD9CB7Wo6iQ7I2knSOqEHQpvdnrtfNeHqgjTf8hli0k0UwfEcxiUnHpB4R4bEbSXrcQyc0T</problem-kind-name>
+            <problem-kind-severity>SEVERITY_TYPE_MINOR</problem-kind-severity>
+          </problem-kind-severity-list>
+          <problem-kind-severity-list>
+            <problem-kind-name>jAdG768m9xutJmxZEoimfBVVHsCr9Galgn1ol1Cur6Q2sn1ZLclSN8NvAhOCXYX6dQmyKYVb4Ldo06fLiAv6Bjt3AhFq8CodlCM5Az8wkdMcj2XCukA5D316cGocbMqwg4tQDBePOS17MQB9ab6O67MjOavZOVn4ZQMujSj7Kk6p2IydLETSEFbsHGjnuyrlg5QzX1GzeMQgmot8Vm0zT3TAB4X5CgjSd1j22Zu8DkpSBK0w7SXSNIloM</problem-kind-name>
+            <problem-kind-severity>SEVERITY_TYPE_NON_ALARMED</problem-kind-severity>
+          </problem-kind-severity-list>
+          <interface-name>UTk6WJJbVW58l5k3Fl57eBkr1wT8ocHiY1gUKZ5xN2x08KWN51Mbv6CwunFTze3pgkjSbgiZjPRrzN6E</interface-name>
+          <performance-monitoring-is-on>false</performance-monitoring-is-on>
+        </tdm-container-configuration>
+      </tdm-container-pac>
+      <label>
+        <value-name>B1Ptrj8CchnITy4agcdvilRc7cQ2fGRQHyb0KbCOtRx</value-name>
+        <value>htxpFCUPYD15QJZ5pINYhZYT2sHvj6StrhS6LNOJqHG8ry5IgTHpKxiM00ab62EqbxoWccyuM6DdEINVtmk5UvSMv2XtWuTZTaN5mdr0k4dYF1L8fYe9tYVQSLbOf5F07s5tGwuStzQ0su8IseJV4FDWiOCpLhpSCueaSI2d9</value>
+      </label>
+      <layer-protocol-name xmlns:x="urn:onf:yang:tdm-container-2-0">x:LAYER_PROTOCOL_NAME_TYPE_TDM_CONTAINER_LAYER</layer-protocol-name>
+      <lp-direction>TERMINATION_DIRECTION_SOURCE</lp-direction>
+      <name>
+        <value-name>sMngE5vsWzpo4UpLfwU2P3ZMgm6H4tpo8MxMR26Ftv4xplaxJ4ryZrdgFjPJEeZM0wzJyFhT3drkyBRay</value-name>
+        <value>IxCNFh6uSDIRpAoQcOolIry1LYuD8UWJkqwZHvmz04ipxGgBnEWX5mQIckdd71Wrrkq8HMzHJS78qfBNLpCILsqPFE2MFQd73D7CiHkTzj1ZqCFb1hTEKblhPg3n6gm1LtE32Q</value>
+      </name>
+      <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE</administrative-control>
+      <extension>
+        <value-name>dueecysVlxsYtCN61yfqjRMxTF7VKgyYKMcOdwCy3WppzcnACu1VeFs7cz3XItVk7Z9kvLTrzaQ8m5BQzuEN96VmyQj8j6sq5BDAeo1OyJOUOpCgTg33fQhFyANRy7aDJN5P3ZvBAcnhBZxn8</value-name>
+        <value>injz2R1HBzOD4pi97</value>
+      </extension>
+      <termination-state>TERMINATION_STATE_TERMINATION_STATE_UNKNOWN</termination-state>
+      <address>OjSiapFiRPF2ozMh8nQXSMeaVlvOQjpwC9GMyd5h</address>
+      <is-protection-lock-out>false</is-protection-lock-out>
+    </layer-protocol>
+    <ltp-direction>TERMINATION_DIRECTION_SOURCE</ltp-direction>
+    <server-ltp>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</server-ltp>
+    <transfer-capacity-pac>VyvTpybwOepb0nFKPRKH2afpzWN65jW0RjL8KWxy2WB2b8MS0ozUzOj0C76HiUz25l2P9zfcnJeyRTjJ9SDIzXAbWyL6kk8qx37zCfL0YRqHCJrMCWu3L5eHvZGQcO8JRfammVmcFMUhol309qVVn1u</transfer-capacity-pac>
+    <address>7LR8IjiP9n5MQ83xOOL3auB87H910788KZgtbyacV7YDfT23AN6KazKh8Ti9SihDaxYl58xSfnvn9pqJdplnY6w7RGgCYx7845t15STcggzpFS8Kht77rv6bbeN2LUaHRwAWol0wtAV1sVLBhLIIgHLkVymzkw8bUJ7j40Py</address>
+    <peer-ltp>4ace155c-6c04-f585-d9ec-d6a845794520</peer-ltp>
+    <ltp-in-other-view>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</ltp-in-other-view>
+  </logical-termination-point>
+  <logical-termination-point>
+    <uuid>2b454936-1b31-1d28-4dda-1d3475708a0e</uuid>
+    <physical-port-reference>371eda64-3aa3-f78a-2711-ea75d567381f</physical-port-reference>
+    <local-id>jbQVMRVq0z4Z5RhCdZN5i0XHwwDhjenCh5p3OdmHMqGSiYmnP1s71hHpOkHZqWBITTLI6ZhKiXuAVQXDRhCLzjafwJeWxHErsi1y9ibr7F13wQyf0a0rm3ySMMGkllDOvEeEOp6V5ZQtIoIArB1NEzxidduqq76VDlsrCyfHp527mLHFeAkS1R26WxxfED2aQuttUI2kG5j2ITHWt1GnKIty</local-id>
+    <lifecycle-state>LIFECYCLE_STATE_INSTALLED</lifecycle-state>
+    <external-managed-id>
+      <manager-identifier>laiHle5km5p48LMYyM8ekxrHEQrB97Yu9g4un9PBe6xfSk5iY5wiDY09GjCPqAcrI8WXhDzoJ6DtiIMgOarj0jkGCWoUosl6A9WJEv7otCJEdnUTyd4yoo70kvMAP0yp1u0GR04lCFZP3LIBRM1f288evMOkMnBORC</manager-identifier>
+      <external-managed-uuid>JCqW6XNW0qwt9bnp5vpkTb85YvHEfb0QFiMLfrz8JYBT1Yi6mHq7KzcAWLebO61toF7wYyEIo7BpYLockOj4fvF49L7XS1j8GiExQa77iIwglMsxtLBI88E9MM7wNqElIbSqlZxDzWLUI</external-managed-uuid>
+    </external-managed-id>
+    <label>
+      <value-name>oVWEipmhc7AT3qRyHgiuWNYnhJCArtyHgmlqLzHQHiJKAAa9JtDFgtUyco0vJqd0Mqqy08gziZjKsmTbPoIXRCnW1nrCNECsXVSX38od7HXr3ICK6kAPPXLId5kSBPkyKcnFcLSklHLghg1fst4hqIRDNcog1IPDNciZQ2bbBPrS5k7pN3H6LqBqCZHvAo0nsaeicqtFfNxcZwBFAaLdBew5e5tOtt3VEhe</value-name>
+      <value>Hzo</value>
+    </label>
+    <fd-rule-group>4cd72b11-5cfa-9e34-94d1-42b54486ca7d</fd-rule-group>
+    <connected-ltp>79b69572-4586-21fe-efd4-4a81a2b57515</connected-ltp>
+    <name>
+      <value-name>hHf0KryHKApD9dZ2TeEtHctA07YQVc24M9WwAu5dWuI5HHZsVvNvIgXAfNiaZk7Dm31Wy61uAKs9jjt7P9CpprZFe9H5tOJPSKEiRFEjpYtJiWQZ5konLfUZotWJaFr2i5c9CQsUHNvZCdQzx6WalI1B4XkevD8NAkWd2gZJ4uAGHi76o48BE9cIYpW</value-name>
+      <value>248DgWIjdHU93nHCFOI4KIFhRKZH9O33KbG18gcdX6e0tVu1J45mMCDvmudvigz3j7Wjo8wd6K6sxAt9Fyvra8XpC2UNalItlENJMbOKWUctvFC25Ztg7iFCkrhuFZQ0DDBhOh1Cc6YzLsBRsWZr7wVrPcOu3EmG9PPP7JsbPqKsSdbc9aEgyzAoEgKHM7gVO5KNG4YnmAI7NTjPWPXuhxSVFDCrCKeiIZ</value>
+    </name>
+    <administrative-control>ADMINISTRATIVE_CONTROL_UNLOCK</administrative-control>
+    <supporting-pc>2Ld3shTdhzJKCJ82yJUXR7Bnt44H39v6MI1eRUr9m2TQLUTbvF1nFuC8zGHCHdAtNuzxgSyCVjtydeKBLDYq7sqy003I5D3SZDhgnPKi95JejlPXYFfX7Gw0yzAD4Dv48NcwuWGD2pSdKH2AniymQ4movW1rsons3rYyoxbiWVnzDq9SIH6yDlW09PkBdH491UHprKzgGWPbmQ34q1u3miWw787dP3mQQV7hFyplveoJ5jG</supporting-pc>
+    <extension>
+      <value-name>eV0ekuLUEo7fCDdIIGo39rZNB5oawMZLzRRTlCN00N7CikdT0BW23NHES5OhRF2jxTcSnSKnxKRP44AXGxZBcG7XENevtgOS1TCoLnDa7uZ3rAS7ZRA3qH04uerPm8HnTkDwzgGyDFt47m3Y5D2nk2jG9LwvLdLEpo2YxIoafSenehd</value-name>
+      <value>UfH6a0MjDaGgorMFIOE7w2hMMn10wecimLooD2H9dfptz48hSEohzx3lUWeq2qIo3YMG0lP5t7y2bHbVlzcUY78SVmaYMKePATnA6dGzc6BfNMa1dfVbe3VapX83HeK978KediNpopE43O5hV0kaWgkddk9N</value>
+    </extension>
+    <embedded-clock>
+      <local-id>wMdh0yc2REV4fTqClSwScaAjcimP2VPrAUIskUmcq9gF2GanqG7CIHVV0aCU5jlxdVZxPeBgnRVip5xPEFsmef96pLTn46U92MHJ0aZf2NxrK59gCBvIIEH8qAvuyhEA3dkVnb3hQABtxKB1d6CVLj33LqpjIVMD0Yzo1</local-id>
+      <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_AVAILABLE</lifecycle-state>
+      <label>
+        <value-name>ju4ferJJLmizJOL3ZWhA9bEakta253cgx8wEsffdtxNceqgdexGfIkqUNAWLw01V9</value-name>
+        <value>zBxOG0mldALtFZSlfsyxmd7aYvaSrbhSMOHtPVOUnsfUj78yzGXNTXXSsZCLbTEXAdih0ZbnjihCpp3QX0vRXsBijd3uYHkyUuHUtS9M2jhrAk9ykEhiYSAiXvMVdYmZt3MOONtQ6KaH4b7oQoyGg0Y5wDSBt6AW2eLQ2ey0YAHUMOiu4J2kJThfoaQRgjOipr0jxrkn1ThFAr1Ea4ZUX81diK4zVSRkbKEIbY54JmKjODYQHPKwXE</value>
+      </label>
+      <encapsulated-casc>HkPHf94Y7gpEc7lE5CTNzr31qb1QHY8oiXXxY1o59FCeMXSJrMx05s1vvUddSdt32rs0kIYmnAA2xsLQ6aQbCKz</encapsulated-casc>
+      <encompassed-clock>AsuvU4rbRSpT9HFIa7buM3wiMnUvF4TfonCij3l3NKWXjCxmJIQvEeGqCsW9wHoN415fWriK3fzfR6BsPrXtGvLaYzjmgz9cs7spyK1tRAIAGj2nDSIjnull3EIc5JoyQQPgtQKkqsVYEPehHWsXiNaejSqouOOkxDB0tlcLFZKbPYso</encompassed-clock>
+      <name>
+        <value-name>xS48d</value-name>
+        <value>SOn5VZTyaOtV7S7POLsOJT4KnCusCHWvwbsjbdJl2499W8QCT</value>
+      </name>
+      <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE</administrative-control>
+      <extension>
+        <value-name>goGHbqqvCa1klRiqBw2UcFK3fzFDpjfFzVeKlE8XH9a21kkCQeo3U961ALEZXLwwGK9UhhJYqTSr55VWjcZ5d56NIDNFgb4XWdR5us3UeNejS1f4de9qb86MDLjTWnIKsrPWUKJ8yPriIHmWNweRwcD9XW2UcDww4mlYY46w</value-name>
+        <value>qPt73hMzoD5A</value>
+      </extension>
+      <phase-aligned-clock>AsuvU4rbRSpT9HFIa7buM3wiMnUvF4TfonCij3l3NKWXjCxmJIQvEeGqCsW9wHoN415fWriK3fzfR6BsPrXtGvLaYzjmgz9cs7spyK1tRAIAGj2nDSIjnull3EIc5JoyQQPgtQKkqsVYEPehHWsXiNaejSqouOOkxDB0tlcLFZKbPYso</phase-aligned-clock>
+      <address>k9EQFI40z3WFrz58V4c4RDsmJVvHlsIFtmn0Xk1wnP3Gh1P4XT8Gwt37oyPJSpglMvlBPe74</address>
+      <encapsulated-fc>
+        <uuid>516d40b1-d09f-512f-cd82-8e2a895d6e96</uuid>
+        <configuration-and-switch-control>QV1TRjjgAKgs7bk35TMravXD8DDdXuoNqqGhJSpbCFwBQQFOBj7MO4hXzM2whrczRKIsC7v6E1InJfbdyiZne8cFUe33xfuoScImbetQ73dJigWQyN5EN9bzgevNmZ4ecMAnS35SYiBgypZY4WuJ6FieUN1gN5uRKW6uScmQuPZV6Y</configuration-and-switch-control>
+        <local-id>BNPu4PJDRPWcQadOvX2e37tMu9dbTkcm71J4RsHI9DUZFZF3WHhROKwbMJmx3yT3Au7jXGTYbFYRwDUkd3c1FIcrjyQe7C9z68KVGDUSaKBGfn0sq4uXMGhX774eJ5FQ6pLMUxE4h7KxuKZMPlKt21j98nfKkUAqbdd5DR1UZLjlnb8cwSyy</local-id>
+        <lifecycle-state>LIFECYCLE_STATE_PENDING_REMOVAL</lifecycle-state>
+        <external-managed-id>
+          <manager-identifier>v16nli9i3Mh3LFk6KCvzBvRt6HcHPUccNas1tBjwntr18LZSfvjR02cZJoGqaLvYVXZgyaEND5OLIOvYbOH3QL2r1BKbe79148iujW9WUYAuEXkPE1SmEVGFoqRCp0Dl1NPkCY8wOISsydhc62qLX6qdo9HNak8b0PnCGv0u6SPE</manager-identifier>
+          <external-managed-uuid>6I408PXf72DhJjjWruWhRyXeyjkq8Qo7ys7z9XO8ZjhBCApWWldFL2Ujl6BmXRtnbsWkpClhWCKq59e1mrz7ltizrTVoLgMWII90dm91YTr3UGXgZwndRFMiqHz3XdSxV1p0fy1djt9d1YtSmI55nRnGqOJf</external-managed-uuid>
+        </external-managed-id>
+        <supported-link>TK34YPJS5oPrfrgmW8yiYU8XPeNBhsZ2cU63CIVz6CTm49A0h0a7UaXKpCly4cA9Yzcs9Z2ftVtx43pd3AkYK9A1MNzQZ2ZPt3iCUcRo7dN3gd8cFkapuCjgpKYgMQ57TfBGjl4iyJdOWl0BG2T2E4i3O8btY9AKgcqAxmS556LUrEnZG81dcb81kkual4UB8kbxy4uwa8qtMNlkWep0iy1CKvM5szGsTS0kOmQQu8j8VwlJL</supported-link>
+        <label>
+          <value-name>RV3QuL2X8myARIEgRlPIqvzp72KFr93bW71rKVgLhGd</value-name>
+          <value>pRh85YQnlhMtjo0Lq4Wm3PFNKVqTCDUTv31s1JPf1tIkSIXiELwHAcnc7N6Bj0mO3n8W7X30qLkamasSVZsw3PI2uGwNGStBgtqfqtfJ7zTlBedx5FV0mv2JcyoKrKe</value>
+        </label>
+        <layer-protocol-name xmlns:x="urn:onf:yang:mac-fc-1-0">x:LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER</layer-protocol-name>
+        <fc-route>jERoDzRQ0bJcrgRGq3nw9qTi6wfUfi6yOPXjgG1hSKtbTkJjf6IppBHn7Ohm6fMVWB6di8u2SX5D9HXgFxF48er73Al1H7OEJVRT3dNNaSrbzgr7N7bVdvU8XfaFmYjXL2QOfvuhoVsPbTWQS0DYnx6kMgZ07aYK4Grj4VAsQU9TGYJqYmolLvxxDxpCzfnEOOXSJqcrclcSjVb99zmUWUjsjI4SQjoE7ewIEI1IVdB70Mg9dDV2peuIPys</fc-route>
+        <name>
+          <value-name>XRD34AGNBAEmMSKX0OtKeUn5t832EuuBd8E9AcOcNlqrd2o5RRP5L437c69QsDkxDQGe3niIII9NLpSugzrUDmTPlUyFpKd3sL9v0r5</value-name>
+          <value>16vEvf0EOkyjGj9TdzzCjExLhG9iZ60TdoxIDyekSMDqXEkadLFopc2GL3YC9Rve7VXCl3W5QsvF6HQcsnsJruicx8HzRcNY7CBkGpp</value>
+        </name>
+        <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_PASSIVE</administrative-control>
+        <supporting-pc>K3iDxU9bZtKyVwiNQ62yWoG7xtES5hCPkNkJHtUzOF7K3hpTfrj3QZafsGZxXte9gzSQUFhJcglfxK0M4jPMiRTCqSaflopuP9cKGttSJG78iZUmaB0skT5KD70ZnhldqxX70iRBYRJ8Q</supporting-pc>
+        <extension>
+          <value-name>dwOwZ37Yu0b66hD3Wq3bV6MZw2KXMYw0mcodfvcKnfQmwlplLlwyrayXcaNZ0bRmo7zDCDfZT5lpiDKVY8mhiU6nWTmWX5adcBQOfYF0VTpew21manDl9JI5vWTk1Vx5xfLMdiM9b3fz5gV8wqlF23Dp</value-name>
+          <value>wJKkgPRnsvBK9CWcRnaZjavBv3DyG2h4L1oTQfhaCKULmQQ560Wpak0Fnw53ymZcfoX5v678Q1T4KB1QBY7Da7axv7sWlr0AHXxd4EdMGYRqAKg3InHSmJhKRBGc3GNCDcHzRUexT5PlH5oikX2yHkiqVQuQw9l2m2tdXHKIEr3morEIhG8Y0jgO9KwyURAgU3tJL5</value>
+        </extension>
+        <service-priority>-9223372036854775808</service-priority>
+        <forwarding-direction>FORWARDING_DIRECTION_OMNIDIRECTIONAL</forwarding-direction>
+        <fc-port>
+          <local-id>o</local-id>
+          <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_BUSY</lifecycle-state>
+          <logical-termination-point>8c0b5632-f6b1-1b90-dc8d-4334c833133c</logical-termination-point>
+          <fc-route-feeds-fc-port-egress>8zXzWTzqxW86rN6EeoiWST0h6E6zcHcc89M42dns1vylawZoUhkN2lW1Z3s3KEgKNUHI7420rAlB6d0TukypxuippKs1pAM4utEtpGuQ8Pj72j0pwqG3MYkcIFdZfZWKkA5BhzrhhLobWgssG</fc-route-feeds-fc-port-egress>
+          <label>
+            <value-name>8xLeKLDUuj03Wi3Oy7NoyISzmXe7oWComnC61fSvyLqm3uaBtPR2qCtMrATQwoeKDJIEYB2pekDhOOLavCcV6FAy7loEBugfdZL4sFlG0YXGEAQa52XbApJHL7dmCutHlfLNU6tM5itJTjLYeB9O0TnLSt0mXl4aAPXnOi1LAumlO8jUJlABeXfYqflfAh</value-name>
+            <value>36eiMojxZOUkuUwgvRQ6XNlV6s8dVpvYoB8a0jAR7u3tgzJLqrJf75bdpjikJNa7hi9hCJ0B53XlDyYV0Ib7Fmc4xup8azfjKhAe0AH6Dwj85i4X0fWxt8B0u01wsgP4xhaqJRofoHnlZriRy6gTeSMAKN743O8t6iLP294qQkDILVrc1I57sRzcwGhsnhVtsyauH7Mprp74cr</value>
+          </label>
+          <selection-priority>-9223372036854775808</selection-priority>
+          <name>
+            <value-name>6AxHfCynuuZGX4i6EBnVeMYb2rvBzLWyml7tPxQjUP0RMaXqLkd063b1uyuWkimGvt1kSSEMzwDdGsDrNIjLMuE8304fiqNNLO8EyEq02WdIgJ13rlH5HdeCeiRwBwcmlc0TQjLS7ZsnIlj1yS</value-name>
+            <value>85dKbnuAY0MldYdZGoKqvJSTj54dEWcM1po5MKFDLrQQh3PXsAnPb7In4MAIAMmu3DzPnek0xaRO6yDq00fcZQr3u1E5NSzQ</value>
+          </name>
+          <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_PASSIVE</administrative-control>
+          <role>SRbR5HsBhtjcHMjHqsJEXEGmL2WAAo7k7accREN0ZZ4GLgg4IZAFv8TgaPIK5P5dZ9pIF5AE4FdHVlDvcdaHl3YvKG8Po52fekQLpqhlXmUKHyfTLhBZcruW7CMnHGDN0lyhDICB4plM</role>
+          <extension>
+            <value-name>51e4tXDFucOWz6J2qh4UYbyfCXnH1GX6H32a1FPvRwjiu2cUbhG1s6g</value-name>
+            <value>3vEWbtUSxW2qtKNd86vC0IobR4cbak85QET18NUxBOX4qC9yIFaIfyL6uP9w9itZWm1W1NlCtazUMIkmnn4uVHsi</value>
+          </extension>
+          <fc-port>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</fc-port>
+          <fc-port-direction>PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN</fc-port-direction>
+          <address>axAwqpy5KazVJlzkxWHUS4IAw0Y0GwMQ4ffuENsoP1breLLLHkyzog1V80NOwAxsPMPlzhJgaVHgys17NrGbHAYPsMwYe3jVP8ggpRwrE6HcyAjl2SpJkfrMTXC70VUH32PkUdLqjkvSVO5XymySCZEvW9vO4hv0kcc6qQoJaTt5Ar28NtTpspN</address>
+          <port-of-internal-fc>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</port-of-internal-fc>
+          <is-protection-lock-out>true</is-protection-lock-out>
+        </fc-port>
+        <fc-switch>
+          <local-id>JZuuNTjOXb3Y1VknhnhYPozAnJWLNWvpORLBC4hsgki98uxpROnz4W1ryYcdMACAjf3WkloAxyBF304UGjlL8ncydhLRRgkavnYPIeh8NLNQLKCs3Yd3dhBiyf9pvtsSRqArFRzkufagZMAUCNYH4zZvO1Ubme45xEx4nYoS5y04cAZHfPgbg8G59t8vz4B6A0aYQqIWYA032RChGSk</local-id>
+          <configuration-and-switch-control>U4ECd3Nm3mX9Lc6kzbH1LCGgGMLWiEVcIzHNvu1yJZzu3FOCQnDtRcKxQnt91hlBQ2glphL88kCcZiGHFc3xoNW6aif3ztwpnMDMVgU4BogsyW2e05DoSrvUJCXi5lAt75fUl2YWi6hRVbXVgsc0TzUDbJNhWfKVkRPGLGu4</configuration-and-switch-control>
+          <internal-configuration-and-switch-control>DNzOCv44HWX8IsjjgAfvcaQW0oHyKDkoiUcUh9YQ5OYOgh7oKfUOpCKhSkPCP200O5U5eLNbrLZHUZ6weSlvmXNe9uQRwJRcOD9UgW5HzXhmWfS2Z5xlVcr4H9V5SEiyirkqgq8Hnh3bwOd</internal-configuration-and-switch-control>
+          <lifecycle-state>LIFECYCLE_STATE_PLANNED</lifecycle-state>
+          <label>
+            <value-name>WBOT285A3BWq1bFhFqd5b1OFddi08sA43pQYpNytomLpxiy5IMaLNYjS3BKb3d8ZCYP1Dfm2B7j1iS60wgMb75VayGeuTmtncagPpvJ0u31MN7Fbojevg9FOHTis7DPjNY9ctSdXN6KsehvCAJ7QTEEAqP3psKJ8ISk3Cp1iwDKKU8euRdkKJQd1F8r0Sa8tUswoKxGg2jSWr6iijCV2l840gnS0x0tjl0H5xodAH5o0b</value-name>
+            <value>imb5gwdcplzhmYaPhvPZsffFHWK5ONM69Q4hmhuDDVNZUXO3kw2MLhrs5bpTY4SZUW885CMIqzzcogfIMiuprVJxY8iO42FYYN74iLEIc6UAe9a0jEhLr0ah0s55vCVlp2hzFWhRU3j85t0o791q1bH1EEY9</value>
+          </label>
+          <switch-selects-ports>PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN</switch-selects-ports>
+          <reversion-mode>REVERSION_MODE_NON-REVERTIVE</reversion-mode>
+          <name>
+            <value-name>01U1mUpVZS2zK4pAvZolrhgt8SKHD5wvYipk4O73y1vi6MKtE9G5qPzqzb7cgvA6NZiSFqN5ranpX7KB8jyy87ZHjYMrumy9dQTS8zXAJcRybC1kVA</value-name>
+            <value>3HJCSIok4CKdPA7zJyobhA2QEwRYjrIe1sRTa75eKPjzii1TQp40SYQwvzuOT43UwMFyTLMDsY5Kg6D7vz7nyPLVg7B9cw3IaBh4eVzGTEr2KW18w0nWP9J5gk7sJ2bTDkXRfpy13R3GN4ObWb7DkQAt3HVEKYxfin7qMxrHgmn3ib7ef6RrXjUS1QwDOVSZaRpWgIEwWTse5zkcF3DumyefgCSWyLVIucxLM39</value>
+          </name>
+          <administrative-control>ADMINISTRATIVE_CONTROL_UNLOCK</administrative-control>
+          <extension>
+            <value-name>UuqOMZmA9dmcpuhSmySvzawLSppooqpaMPYqOcSXqe2PAjzWJrjjCP4mflCvD1FpQvIxIAu0PwHhIg6rApC4fyimLURoOwGw1o3BYqBFOiPorVQ1kk5zTfVE9EVPaBm4RhxHH9foj4MKZuDbPALAPy6R51GfuUb</value-name>
+            <value>cJVLKa936OG5ib8ZETztkGcpzTwWFA9Rj4vV6EQcko9DAiCe34zfCMw3x3Z4v9WO5rBcXrgiQiNishwvlXDPB9T04S5z11fZkQ39ajj0B6i3gGrBvWj75c7244tY5BXhj0jtbClFBvARbTkHPDGNPFHMKaCHDrZXjaiuME1f9C6dvjMdWs0E7HqRJ2rnticM</value>
+          </extension>
+          <wait-to-restore-time>-9223372036854775808</wait-to-restore-time>
+          <profile-proxy>mcKN4cceT49dPUYcKsg99KuIBfsr74Du8nh4AlitqrGfewrYZzZ0ctINAa7I6Kc67lazGsUYMs50ZoQQYPQabqPLAWtzGxxGSI7r22hOunGlLwbBeTDpjtaMpwlY3SwOsD7nFob2DSnpgzSuswLEZWqgsD6nnCbQ8adNzgPc0dt9EmDYKhCJd2RxFYU3sYLA8Qgz65EZa78OlDF5UhGZcqwJojEI9pj97zJ6wn5Hm5nAI2FvceuoET</profile-proxy>
+          <control-parameters>
+            <network-scheme-specification>ONleN2t4YwsMJPxdpe2qZyBp2EuF7JKVpX14Sm1QStutb1Hs7JT6auo4</network-scheme-specification>
+            <hold-off-time>-9223372036854775808</hold-off-time>
+            <wait-to-revert-time>-9223372036854775808</wait-to-revert-time>
+            <reversion-mode>REVERSION_MODE_REVERTIVE</reversion-mode>
+            <prot-type>9LwiyB35Lt</prot-type>
+          </control-parameters>
+          <hold-off-time>-9223372036854775808</hold-off-time>
+          <selected-fc-port>
+            <local-id>VuhCJMfnVqvuCikTTA41vdeGlJyCuTVpf4UYQ1dMrI83S</local-id>
+            <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_BUSY</lifecycle-state>
+            <logical-termination-point>79b69572-4586-21fe-efd4-4a81a2b57515</logical-termination-point>
+            <fc-route-feeds-fc-port-egress>gsTa96HnvLL9i8zcVQpJna839db7CSpLk</fc-route-feeds-fc-port-egress>
+            <label>
+              <value-name>h8F2Hi14vNFQZgY4ym97kV7baukuYLs8MZat9bxFQ4vPllTTH30UQ751tpns2IAOHK9ROzoEDLuY7fJGaBA1BxU4OhoRZQxztzih8GVLrhCqxd7HPzAi7ueVEDE</value-name>
+              <value>l4WODe5LMTo6a0wz6D9V5J5c6jZCOE7aAWY5a4QXP63ZZrr5XsS23Xe9g5D5JD7bz5gB1YqQ5lIWN11KtTMwISyYXbVzO2Kn0TZ1RhKODsKqlD2OoGk6yS5nWSOKVr0VkROb8y0LSC3dg51ELeLbYIrUsfxfGp20gR4ghW2ay5fG39dGfYSdyj0Sqp87OaZ4T3cbRedicsY7tbNI1xWrQOk9</value>
+            </label>
+            <selection-priority>-9223372036854775808</selection-priority>
+            <name>
+              <value-name>PLVTFi6TYjuwWYhJgoN2fv3s9n3iiVD7zq06IZZyam46keHACmCRSyk1VfbdaOlB6dHG4zefVbd7pNIT9cL1CXVxc6DeNYQL3ps8YyfTBs107BMhFxaim5Hy4kERauu6UWeKnlwYNpRVSD4x26Hg4hO8BkREPlKBaYdpbJnY06LSBHivOZLSgr0KMJot</value-name>
+              <value>846Y9v9TLZTRDElcWQ0VCS43KGPl4ai46oUgM31xUMgpqtCmkCaOn6RZMzdIJvMQLGYxBZWnL5N4yhqSLsy0yi0kRd2sAGale0THZH5DMKHdT75EAwF0OxdxK7ZcO2xU2iCU0zxEbeR4dPAFlfG9MTGo0xAGr0Bmi5gaENPHTGL6ndMItkJ7dhw5HYM0YnmhsCr</value>
+            </name>
+            <administrative-control>ADMINISTRATIVE_CONTROL_UNLOCK</administrative-control>
+            <role>rBvLFHJ5x8HA12FttACh3nynMlMdvSQXldA0UkYkkxUdzrH3TbcWyKcc6YptI7qVk1O7dEjxb5CCobximJ6MmiZk9gNJg6FA7lzkZKJ2Pdwep4oLFuq1NhdWxTxNZ4</role>
+            <extension>
+              <value-name>kgTufPgb</value-name>
+              <value>j28wkcQbjkm62gEQHmwTvBdDuALbQWd9Qdx3pneIzsGCIckizRbWkpsHZdSH</value>
+            </extension>
+            <fc-port>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</fc-port>
+            <fc-port-direction>PORT_DIRECTION_BIDIRECTIONAL</fc-port-direction>
+            <address>fUzC0hctYG32SlBBpqWOSDF5ne6lWPvbC5NCeR54p17imATLSHrKkYHI4FV0nqbZnRBuAzq0spaO03sSLLvXC4xGCsHZLKQ0B</address>
+            <port-of-internal-fc>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</port-of-internal-fc>
+            <is-protection-lock-out>false</is-protection-lock-out>
+          </selected-fc-port>
+          <switch-control>SWITCH_CONTROL_MANUAL</switch-control>
+          <address>amaMkn9D9mAte6AVwkxqLUL36pnAxtBzHLd28nF9B7CQd4LBga114MW23bvBF6aeJogRDOSeNu41yIuPSoIP2xR6AeH7cJmVZCECiwJ60NZrnt88RIXU7G0IVzP7ibVaGzMY6v4Yb3hqphy80n2Z4UzRlpQEsDO0dsZ</address>
+          <prot-type>i</prot-type>
+        </fc-switch>
+        <lower-level-fc>25fbedaf-00e7-2908-fe09-07fe37aca56a</lower-level-fc>
+        <address>UFhuWQuUIN2wXNVnHMXXySihvnANLWqxuA1qqvd0bfx02knJ6cyx4QOA5hfI5xfz780pE5</address>
+        <is-protection-lock-out>false</is-protection-lock-out>
+      </encapsulated-fc>
+      <sync-ltp>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</sync-ltp>
+    </embedded-clock>
+    <client-ltp>4ace155c-6c04-f585-d9ec-d6a845794520</client-ltp>
+    <layer-protocol>
+      <local-id>sRhcIjXQfX6H2DKb5JAmEaDhYL7kOHT8y2lgda6s7422AMdFnG1TQwaGhi0XZL6xOjF1tDmsAgua2AHpgAa66lMoDFduij1YCyS5b6yLmUNoumFKWPI3anjF2w9cI2bk</local-id>
+      <configuration-and-switch-control>H0C3B8fxn8GDBeW6Vb7dMMJA3IvtAyVhypc9prGEzehas58g88lUU5nXFSi7q5hRmt0LVzqmFzx8xxoFFJAsGPhezAdZxuIUQBFD2XZHxoP4W5JBHb3fSdlrNzjk316LCMoEJom8E34A1G4IRZXCcj3RKm4FgarSWPpy5DyKGDcHjgh287EkqA42W8H</configuration-and-switch-control>
+      <configured-client-capacity>D4k20CrFf3A6R3EMgAyJa4sCO6bb7j1KneNgQeNX9n31iINzadik9COXJR1QaUsy8fGRmtOnISo1s3sC8CPafv7Qn0yxV0XV8DMuYtRHd8Ax3214EQeLelBBe9092QWalBwk4f19ntGjvHn1qBNwOo72q</configured-client-capacity>
+      <fc-blocks-signal-to-lp>8PfQeFVJdxhQKZ1S840fAdxahzZph3HpKO7Yt3z</fc-blocks-signal-to-lp>
+      <lifecycle-state>LIFECYCLE_STATE_PENDING_REMOVAL</lifecycle-state>
+      <tdm-container-pac xmlns="urn:onf:yang:tdm-container-2-0">
+        <tdm-container-configuration>
+          <interface-is-on>true</interface-is-on>
+          <segment-number>-11304</segment-number>
+          <loop-back-kind-on>LOOP_BACK_TYPE_NOT_YET_DEFINED</loop-back-kind-on>
+          <maintenance-timer>1017629536</maintenance-timer>
+          <problem-kind-severity-list>
+            <problem-kind-name>hbdlqBP7ePEJqo3ZVbSGsErafrX8J90Scd5CPUB3J7E2wzTjKDR5aifpB4qkdq4hv9</problem-kind-name>
+            <problem-kind-severity>SEVERITY_TYPE_WARNING</problem-kind-severity>
+          </problem-kind-severity-list>
+          <problem-kind-severity-list>
+            <problem-kind-name>0U1i</problem-kind-name>
+            <problem-kind-severity>SEVERITY_TYPE_MINOR</problem-kind-severity>
+          </problem-kind-severity-list>
+          <interface-name>1scI1LHqykUG7j0a0Mjvl57mwLsk5MoYeBGgefyMAkkHDdSvZ30l18HxL1RINgyUJ62XmABWVODq1nW0jOlkOURrNB9tJHnsOhhaRK6EyBXrRLs2rFmgs5HfGJIhqXJ6eS8Yv6uVAjnr4PtwmHEOMl4l4ECnuelAYuqtAVh2eEtblOHHndo2yknvYRKkX5VWrdhU8yWf4iqp6ZZmcnoCHLZxuBSkzF80S</interface-name>
+          <performance-monitoring-is-on>false</performance-monitoring-is-on>
+        </tdm-container-configuration>
+      </tdm-container-pac>
+      <label>
+        <value-name>peeWsD7baTJedmtAfROptO3Tw3iYf0zweFkGajRldtriPUS4Lyl7fgSLcbBrbaXpQi50BXdGiwZ7iJ34ip3xFVaR6La9O8ywiwoTlusD0rKj2Nfc4aJC5Ll4pw55wEBO2Rznl10ekKpfpEruG3YDOjzdHFidbLTdDtAQmA4zctOBZfXFiVjZ7S4Opn2A0NND8fmvPqWTMCv</value-name>
+        <value>Rkj28u1fe53EkX6dLUQT14gJv4ChGZUqkdksHdHWaCsvsyI5kqQmv75S3z1KzV2T1mdAzMoJgQ6IhONB7E</value>
+      </label>
+      <layer-protocol-name xmlns:x="urn:onf:yang:tdm-container-2-0">x:LAYER_PROTOCOL_NAME_TYPE_TDM_CONTAINER_LAYER</layer-protocol-name>
+      <lp-direction>TERMINATION_DIRECTION_SINK</lp-direction>
+      <name>
+        <value-name>3iE9QhvKXL7jqRg7sbaPmPJKZVsTYFmTX02N9pp62oik8ysABChPr0ziNU4EzqxwisbjJsqMRI6Z8yzB2QqmIREnLA1k0zIaTTuCeMo5mnWuNnXQ5nc</value-name>
+        <value>6I2Sj44bvNmoyQ0MuhJQwFcj2997odMuWPm7Lrig6wwweobIFUy3sKnmTomhC0MqP0xsjP</value>
+      </name>
+      <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE</administrative-control>
+      <extension>
+        <value-name>uDUeyufiV2kG3GTE7xURNLXw2EbvLHl7c7lLBA3oCg4yOX4WmYNaBCGvgJ1Tre0DldoXFkdasiI87M4uCJEemcJuVCoeQgScu819sejUo13wFZ0iBwoPIZjvCHKkYuokCht5wFRUyMieEaof</value-name>
+        <value>M4gDfM7XosNSQ7u0srw</value>
+      </extension>
+      <termination-state>TERMINATION_STATE_LP_CAN_NEVER_TERMINATE</termination-state>
+      <address>tMtD2AkOwAjMerBuTgeBnJBH2ZPdan3D9ogbZsRv3ah9BKwm0KQflrXojMtt1o62NedMHWhCYrDsb9O4UEjfYgv9UZCVnAX2G2OnYYRXpvhsw5wiCQ</address>
+      <is-protection-lock-out>false</is-protection-lock-out>
+    </layer-protocol>
+    <ltp-direction>TERMINATION_DIRECTION_BIDIRECTIONAL</ltp-direction>
+    <server-ltp>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</server-ltp>
+    <transfer-capacity-pac>wXwnmh9KCigeK7OKOEB6KxAW1mo2KgP8elwAuFd6Ptdzs1bgxFeicP6e3u8NDXO</transfer-capacity-pac>
+    <address>yUeIzDZQ93UQ83L0nVOD72Jr3o0WkyYLk4tTAkCJnwznzdgW84s8Ybz1zrYLROobSSXs</address>
+    <peer-ltp>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</peer-ltp>
+    <ltp-in-other-view>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</ltp-in-other-view>
+  </logical-termination-point>
+  <logical-termination-point>
+    <uuid>f88f1f15-cb75-9f1a-d6f2-355db54cb8bf</uuid>
+    <physical-port-reference>371eda64-3aa3-f78a-2711-ea75d567381f</physical-port-reference>
+    <local-id>PoXAXDEs1vwJokBkaAZCpQ0nD6qsQruyPs0M5F76aDIyXbKZDJu3zmi4sJoa2LAR5Bw28D0igIIdTs4x3ysuUCymdPpfAZ7FsDHAgHSoisBbUFAP6Uj0xKfKzE01vZGYufyKOj06DBaq8Kfexz74jmGK0yLvp</local-id>
+    <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_BUSY</lifecycle-state>
+    <external-managed-id>
+      <manager-identifier>Sd8FpJ3LK1BC</manager-identifier>
+      <external-managed-uuid>1WSKOunCjvUYBJAgcY8q6GHHBkrCV4kOSdyyHWaSj5RMGj2K9b2gJJXk3hWQd9EXm5wVTyNcvwYbITOR4Q7FsXZn6NebWK0</external-managed-uuid>
+    </external-managed-id>
+    <label>
+      <value-name>Gl8GkGAPLCiY4PXJ1oqaH2I0GWdcCQwj4wZo4r5P3oG75vI6T09t2RlAGzEip2tlzkJDLPlGd1FionginpLh96KPxoZXjtaSNUn</value-name>
+      <value>JA7OtNYS2e2iwFrFDbubsl0LOavu4KNFlUlGzjyuqAEW75tL9PWBaWeZ6Bl3l8AyUWfm7FIp8mdfrG0svW3GK9xJKKEYKewE2DSajAzrWNGglHIRvEpgFORiqvgaJMGEizOB1f2Q</value>
+    </label>
+    <fd-rule-group>4cd72b11-5cfa-9e34-94d1-42b54486ca7d</fd-rule-group>
+    <connected-ltp>2b454936-1b31-1d28-4dda-1d3475708a0e</connected-ltp>
+    <name>
+      <value-name>lIYv077gdEPkA0G9Cyzn4ZyhSY3gc8LpJKUJJUZOyG11yzaa8Jp4IXltNpBSpmh0Y4KzYBgoahpAIzDQb2MTS0exhPpG4HzUDbmtMCROLhhtIUcTWYFGQLe7tvGx4fjHqFa4h2L2b2oLWAFKqcj9XpgqUOPZV9GdOJiYDVSOX8rL</value-name>
+      <value>6n1iGa85iy07oZ2pxg5gq3TlOzaW1VxZayaRIiW0QOZ6F2v5aBdsw7FkyP9rCGjMelvOD</value>
+    </name>
+    <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_ACTIVE</administrative-control>
+    <supporting-pc>uzNzTWeCu5ZEXOFT6SLNbAnm96Y0OqkaRZJDWP7iN6WCMt</supporting-pc>
+    <extension>
+      <value-name>A</value-name>
+      <value>8hGZFcgVKWE2m9iwKW4oeD4PFcJn6kl6t1586dVQ1zKnA2LlQQB5lGMSKofIAAP3uM4s0RaTjU9TWU6ECIJYgoQ0MYIeyph2cdm45wX</value>
+    </extension>
+    <embedded-clock>
+      <local-id>YBodfT1LXdKiAHRzHvU52WaohdjtVnCTY0Y5LZRA5BSFaC7K71P1XRp75IsSX4DNWB</local-id>
+      <lifecycle-state>LIFECYCLE_STATE_PLANNED</lifecycle-state>
+      <label>
+        <value-name>Geb4OnefHE7inVeQPk7xeTaQl6KAJ6dikoe8Dsfl6fDu2JcR4boiWr0ixCS9IXr2dF2Q0i36pzsriFieIzxx0pHp2rqKoRNBpHjpZnngWQH6nSl5rSuj9bIbC1W0SBt9iNqa2OiYE041SpYb9tujw4u95i1QLnR4aa</value-name>
+        <value>cYo2ug6n0od3xyxI5u5ern791u15wb3I1jCvsJKsZXwowV7thcHJrGSsbTpHWkiXEUk</value>
+      </label>
+      <encapsulated-casc>Y5U1td6GHTce55t2vJQa9M6Vp8YRYbVW8HYtVW2uPeBNj4HOFxRHbXCt5AkVD7KEPA7Cw96eozTHvAobZfK24mv1OQXkXzYM95gx7fLvOw4k6snXH70DlvF1dul33jH4</encapsulated-casc>
+      <encompassed-clock>AsuvU4rbRSpT9HFIa7buM3wiMnUvF4TfonCij3l3NKWXjCxmJIQvEeGqCsW9wHoN415fWriK3fzfR6BsPrXtGvLaYzjmgz9cs7spyK1tRAIAGj2nDSIjnull3EIc5JoyQQPgtQKkqsVYEPehHWsXiNaejSqouOOkxDB0tlcLFZKbPYso</encompassed-clock>
+      <name>
+        <value-name>HsC9x5U5fwcZv5GwVyN2vnmfkqS7elSVNmWdrQaHeeyJj77exU82huhtM1t0mdN1ACe1koAzC1aO8a2F43zepQHcJ245gK6QmdRGBk76liUtsO0oRzC9hcl06h5m13cngWWK83QtlCWFiW42nybECoEJFB5zEaWVYKF6Onz1RnH1bD3y36</value-name>
+        <value>GuIp2jmBXopKmahsYwTRngyhj3kR7jVNND4POiiMHIo3KGoAchrsqSJJVVt2egHUULBA4UeDu</value>
+      </name>
+      <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_PASSIVE</administrative-control>
+      <extension>
+        <value-name>v4quUOTiKSL1WkCn0vI3g7L5kV2QHfOdbez53kfF4Sy0cbg5yY8OXLThyO7g3Nl62U4X7jubc2cg5sdDimkfZ5pyToOOc1V6VZV2ih6mbivhCIMU461Wcqm5P2MT3HZYGMTQ3Z5e9AvDiaxfgybkZxiGz4zCLqsjcd974el5O</value-name>
+        <value>IZTfe9GhuxGM57IEJtW3E0hN7dUsjAb1z49F6PWsmC6rJOXk9LgNLpsSCecVPgXgc6OiVKC9fIsQoh3p2jcNIxxcLJ8sZ5B43pmQ1RZ8rjZQ</value>
+      </extension>
+      <phase-aligned-clock>4FWoq782APXUwepFATR6jnGPlBKxGc5DRUTa11c</phase-aligned-clock>
+      <address>k9FRGRuhZP9WqdZHrPIiGRKRIs</address>
+      <encapsulated-fc>
+        <uuid>2efd256b-7e16-6204-e526-0eaea9012157</uuid>
+        <configuration-and-switch-control>1b1g6XveMBsQCTAkFuY15XqoNSRvyJWrVQH1F4gkyAaalCm16cUcacAP4jcvU0WPQwJwAZQ8r0bM</configuration-and-switch-control>
+        <local-id>M5PZGT58OnRzDiARAmGnFYWmvYU2eOs0UaZs3XsJccbPuLy40ejF571s5NmbBGbnQ2PMZav3myKQcjMcp</local-id>
+        <lifecycle-state>LIFECYCLE_STATE_PLANNED</lifecycle-state>
+        <external-managed-id>
+          <manager-identifier>yGhE6ZPcTBkpggrwYIEbsX3wNs5Qe8CMPLiVC0ZvBbMRr5fpOTt8JwEoYJf5KJRrm2eY2dlDo0mI5B7LnsUYYymPatUUcLlqNzgHECkUuyCr2Cdp47n3xBSz5Et9hGA5fQELkZGOpigrUlQRk5URHEjMaMVr</manager-identifier>
+          <external-managed-uuid>noAe3myUUnj4vLZQtIazuT80cMaRzBcX0Mb30JXUY8ZlTQbnydO27W2bI42hFe6F1hITTxGJGF5rngONuCHtqBE0FHikVo0OyAAr0g2yN7Z2gOPKiw5BZJBEiTQ6aIMAbm1bu3Jh3Ijjo0Vzw0anBL1UxS0zsM9D12OvXpF00YbgZ6Pn6RLAvEuUomtR0uu1obpdA46AUhRToy9miMWNqiHPE2yxo2</external-managed-uuid>
+        </external-managed-id>
+        <supported-link>CzNMLftQqFdlF92oFLU8KK83CjQ7JvJd5o</supported-link>
+        <label>
+          <value-name>2LbjuqdvxTqnMAu1vsk951HkjW471Dm4gyfKQk8gdyDS0ZLvr5EpYeBiaFh3awZqWe3My32Etyotp9YJ6u0XIB7S</value-name>
+          <value>oOqUNIIULnk</value>
+        </label>
+        <layer-protocol-name xmlns:x="urn:onf:yang:ip-interface-1-0">x:LAYER_PROTOCOL_NAME_TYPE_IP_LAYER</layer-protocol-name>
+        <fc-route>TdWkwVKylJM73kdRVF78eB8I4dARMKPxYLRmyuUUdGT8160WDZ4RB4zxi2hWE6uuKdQaHL4NrXNkVF8</fc-route>
+        <name>
+          <value-name>c0JngrhXd97Bct9Xbl8XpxU0UYCAZ1D3UeqaFI7TR7u3svSER0t8yg9k6LUYFx1zLkBj2AcLHyG23ryMr1VR9Wb8HYYenZN1bgk5RwQq4ps7Q0M9UH1Vv4342TjqL6rWnL269Kw51R4RRQTDpUrUQmZLgi31guXv7RB8u0dvRhfA08epUFcC1bn9lqaBM07TJITdI6BrgQ2gQ8x</value-name>
+          <value>NJeGUCI7USJHKQsmqmz1k2sAKmIAu849RjQENqLHaugVcJhvXIohLIKn5kYzsUJk5rYSRBs1YIO2j5xgGVqjwaGBuwaXrL9wcZh3ABXqbLtvJ0DhO3Ak58NsxXhYBqmNhvJJ6yaijDFUvibjeDvjEiDb8U1JcfotLZdRxf1JSGDnRHz5c4gQfU1fO2QTi6mV6rEDGGmqeSO5z</value>
+        </name>
+        <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE</administrative-control>
+        <supporting-pc>IEkq4RDpoNsMk5GkQitTNEBUf7vs4UjMqDdumQMLv6xIb62TgvF3agQpfdSjZ3YpH3U3</supporting-pc>
+        <extension>
+          <value-name>hQ9PeC7fAQmXQbFjiqzG6ZtTHbFlyS1QI3xXFw48ei5WtCfL2Os0FNUfQrshjl7UowJ4VN49616zDdly2FyzkkOaEgrXCqJ0PsWKgSTeTRNp50XZxnyRAf2evl3ZMNSBfGdnz6BkQhJN9yMHOcqorkCPGFOskGVsn8PO6j8WsKBBafaYstmLNQAtohVIXIacQS0Xb1LvDf6Nu9MOC0AhR2LfjyX9h0l7S</value-name>
+          <value>WV7AqKPoxjpb01cAb3CWiOu7XD7iDZorMv1c7QBF20Q2U2u55YTfMfnJTmUoeiP0GR5NzGktybnk5Rh3Q2auixe3M0r0ag0QZ5EzDYU41igZ9q2RscmCCsFos6gCf8le6ZFBPAFJSOITeCDyGZbajQyLPGf4PAaVrQw9i4S2KsNYWqoChzNAidlZU</value>
+        </extension>
+        <service-priority>-9223372036854775808</service-priority>
+        <forwarding-direction>FORWARDING_DIRECTION_UNIDIRECTIONAL</forwarding-direction>
+        <fc-port>
+          <local-id>JSN6jDTOHI51WSZsRshkBYI0kuuFz6ijQ6h9BaQaTVbHF22pvjBY9jYuGl9fjsy2qPb1STbDHeceheDEp6uzqk36FcdRwMTWtWXdQ0Qpf3Do99Uzfo0FI3Dg7J7EnSsQGi4oiMNpPrFRAziPXinydSOkBNQYxbH5tDuDp937sIY2a8K7qZxvJlPd0y3xJKD4f7HF8KEBluvnC7mU6UpIf6VgwYFfBijIh1</local-id>
+          <lifecycle-state>LIFECYCLE_STATE_INSTALLED</lifecycle-state>
+          <logical-termination-point>8c0b5632-f6b1-1b90-dc8d-4334c833133c</logical-termination-point>
+          <fc-route-feeds-fc-port-egress>KLsDTt5Rtj8Kbwh7bzsSjCCHUO8AYaYAVq6PTbyeuHZyd8Fgz78TBLsorAYpKWSyeYnZ1V5wu44I5BYEJ7pcKRA3kylWmdusbRrcFxA9twJq8A5Rzu3beweyWzujMRLPA5UfuuhX10o1slS1HNcVbrl80IjFzWm91ghvLylEqBFTWpMv4ZjgiEgamzPVvcXpkeM5E7BWA8HoxuUuldC</fc-route-feeds-fc-port-egress>
+          <label>
+            <value-name>fMd5ceDwi4cshTesc0mhbpIJ4JXoQiJXWXU03pxllJGCuU4zUiI5Hi</value-name>
+            <value>E1w2JGLyvAsvvRUR5vxHSjEr5O93wrJ2l74WGHvbaXyFHloMQNlI6R1cG2f4uQ6HY2DwJ0zLY7rxsHbbvoTBgNNWPUSbLYSB0o7BoGneFGL0nObS5WmlJ19rW1CHRvaRT9shPHwmn9eLQpvVeR8PThgHaTg1gqK1z4igMGu9IJMy0ile1t4MKctMXJNd1xesBpIf5dpFWb5Wlq3nTZ9v3v916</value>
+          </label>
+          <selection-priority>-9223372036854775808</selection-priority>
+          <name>
+            <value-name>qDTTQnodRwALum24B1ZJxQpNjzY1RR99n225iib9GLN37H7AIZcgHtVS2TLLDUMSXGX7Z8gxLVAKDAdlzpt8Ko0MaLqNG4xvLuCCvK9gGC1bc6oDnSL7gLLqwb54gCzTZ3vuOwCm8v</value-name>
+            <value>cBVPYNA5WdReKUkG2O8VFbi9ZPMdP9K2LGJJlkHhxqw9cIIfoQ241l5T2J6RTJLEhvfCHOM6ea8jKQy8Gs4zFakHTjrMU4ibryF8ej7t</value>
+          </name>
+          <administrative-control>ADMINISTRATIVE_CONTROL_QUIESCENT</administrative-control>
+          <role>F5h89JxjLGgpFCUhPCrpnw4HlR19paz4fR4gsBAdaIuPkg61Txi83ePh6JinLRj0An82QI70iuPuKNwvlGEgVlpT4HgPzrH1OIWwi3pBx65aUtF7abnXxNQtuYbVpKP5sLtLGSe6ZjgLNNSPZfMoUuJhkU4JxTGZE9Cl2QrT2zEHmwwdDatqw5HQZLroF7gbgSoaBP3DgzcvXIIBK4189AY0lppSwx4EhsPSaKnik</role>
+          <extension>
+            <value-name>e8llAPKb4Hglf4xkSKLV7wM9UQE3RCSXK5idUUgZCwcRAJ3kmGgt52uZK0UBDMzfSJkEEAv86IRyjUTFB11GVvxGwj916AgQkBmQ3SY2sHALtlr4ekC2P1AdlJejcn1wY</value-name>
+            <value>e1743zLwdeJEbQYFSFzsLU3Z5fe6D4lRYlVTUyh7F1DQRtnB1W3MIYDNeSLRW7BMkwGeXXeCQJkzdHa6w5S64vUafx14wuQQ1o5QmbscUMMZlO5JUXQQlC0s9TwGgfw9DtZRwr4r5Iiioo2adK0qmS</value>
+          </extension>
+          <fc-port>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</fc-port>
+          <fc-port-direction>PORT_DIRECTION_BIDIRECTIONAL</fc-port-direction>
+          <address>UoA32VULsdHLih3sGjmQp6JPktAIZKLL0dG29AGtNneXF9qllE3KLErX8UFZErLEwjzFU70zu6x9</address>
+          <port-of-internal-fc>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</port-of-internal-fc>
+          <is-protection-lock-out>true</is-protection-lock-out>
+        </fc-port>
+        <fc-switch>
+          <local-id>69HTQqLgopTz428InPNbcbP3AmYSvPitQZmGiZWGpH7lJg37XQaaT</local-id>
+          <configuration-and-switch-control>n4ApfmgTc2lyqov2c2h9DMNob3fjCoyZl9hAnxtArG0S5vU9x4i3Q5j10ycDOLC9MTB9iWBKDBuA6oBwkLr2</configuration-and-switch-control>
+          <internal-configuration-and-switch-control>K4Ja8mYTQ0FCtHUqiwVU0nShYgBJzErbA2lAocuf41RxIDXT2SN27xb5GFGfb0rD2MdrQzGUtpk32hW42BZ9927PzNWKNnfQ2thSUPFn6Zr08nX2ZO40QbHiYDUETauVvDFpkcNq36qctnek3icUlT4kpYYi0k5vXKV9XAz0yZ41fbeilq4Hc01BZRTZ3YvSAi1</internal-configuration-and-switch-control>
+          <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_AVAILABLE</lifecycle-state>
+          <label>
+            <value-name>cxW6zkzsBTZVdr0c9zGMw2glSTTbjC5n1TlA5UVGFMtTdlXmVE1jGhxq3qB</value-name>
+            <value>2yJ4j4woQr4v6xg</value>
+          </label>
+          <switch-selects-ports>PORT_DIRECTION_INPUT</switch-selects-ports>
+          <reversion-mode>REVERSION_MODE_REVERTIVE</reversion-mode>
+          <name>
+            <value-name>5lmVdRCodsfr9xrX6QF53gl6fbWqdHqi2EdgnPEA9T2ajl8h3Fm6VIc3L0tYHLgJplRE2nfb99msumJx15DOFPRiHcgoXoZeJRTD60Pf13zvhaUi8pYN6I6NUebKD2QeTBS0tz7uCHRTRL3Z2TF8BDVoR60u1IJUktMF2UawBThsxkkz5</value-name>
+            <value>IHCDXtCXQDFrpR</value>
+          </name>
+          <administrative-control>ADMINISTRATIVE_CONTROL_UNLOCK</administrative-control>
+          <extension>
+            <value-name>SeyFKrRiIoILObZIJIEUEbimueSAD0Mnec3QDM8daQZQ1YqC</value-name>
+            <value>5w58GsCUc5pcJNjVI9quiDw0Cm2tMwUJ3RRBjmonjNA2sTP22fwcSUdn87IVDuwylg2xCqUV5uPyfwAiLZmvTzS2ysP4WdCitwP5WBS26zsl5UvITSeFjYzSroWfBqp5X62LINFOm71k2p2N98ks7Tkq98FLz5IobC9ThPzEOtQISSw11Ql0CyqLGXo726v6BFRSujoaEeTo</value>
+          </extension>
+          <wait-to-restore-time>-9223372036854775808</wait-to-restore-time>
+          <profile-proxy>JTP7kFPoH092DmB11NtB7Pn1SGxTDCrevglHN2Yu27pFtSymF1XFJcGtK5nnHOt44ODJQBeKIDh3nHh3J6IkigN3laiUQMQMstwb5KNFf5BCMSxnZ7z9</profile-proxy>
+          <control-parameters>
+            <network-scheme-specification>4w5C27gkPeGfRINboA0aPD6N1l6lTPtYdzs7yAjgO0vFIaR6CR9juf6wB5JmUdc0Ex7c7rsOrYt10c0DW9WigVOJ0q6MDaEhHMtH5OvoEQpE3p9</network-scheme-specification>
+            <hold-off-time>-9223372036854775808</hold-off-time>
+            <wait-to-revert-time>-9223372036854775808</wait-to-revert-time>
+            <reversion-mode>REVERSION_MODE_REVERTIVE</reversion-mode>
+            <prot-type>mbyxhJTIFsUGlnF4gw761ZGbS6NkoXDK1caiNVSsnE8I1FMhcLn5C49u2WGqUj2Vn45aZYDeCDOEjsNv53AHZJ31yJjk3lfqqktha6oNJ4jUx6pC9Sc0tf11ZkdUyscYFF7PDnufsN9RUrlVbxWEFXywaLqI6uyD2xsFVXUfCW6wnjky</prot-type>
+          </control-parameters>
+          <hold-off-time>-9223372036854775808</hold-off-time>
+          <selected-fc-port>
+            <local-id>wK6iJv0z1LQlCEdQmnXqQP8l3URngvAE7HWI4Oi5r0j4EwU0TJjJzrWumFRu3r820WL5CV23Vd7rJTjuvC6W42qiAhMDAMFtIqqcdkf8yfz98TEvnKrrERBe0fRt1pWBHmNVy336avgigUODw752ZyhRO0kHp8b7</local-id>
+            <lifecycle-state>LIFECYCLE_STATE_PENDING_REMOVAL</lifecycle-state>
+            <logical-termination-point>2b454936-1b31-1d28-4dda-1d3475708a0e</logical-termination-point>
+            <fc-route-feeds-fc-port-egress>Ef0XJR4CWQsuwTntA0rocp7VTch0uzG8GGXhpTTmJdI765Ay61WiiVd30u3uVCutarKAcDOVIwUHBnfHg4RzZWuZjqte2XIcgkMkQs7yY2fspn1xrT6qPti8TLfVBPZJ9E4Z6bq55Fpm2qUljSM1l416Hg1a5TM7xQYvTgsZWRdQi74t0QudMwklM</fc-route-feeds-fc-port-egress>
+            <label>
+              <value-name>Fm75iMrJ5uN3n19oiLV7qtpZa6r3S6Ypk5nCKOdHiSKyLTW4</value-name>
+              <value>J3W4sOer7hb57Aq4PUOD0nOS8eET2AyLDmPXaVoh4znb2F7RrOnrb3kbhY5jqvWVRDSUy93CIiFCXMmhsJIEM2PVSMeaha51NQVdZQHz9ec60yfl9YZNSGIDlONCYLvDBiIA9p1iD5gvDwQEmHreg1JBPx5</value>
+            </label>
+            <selection-priority>-9223372036854775808</selection-priority>
+            <name>
+              <value-name>YU3TX13k9eA3Uer1buSJDCpDW7V5aUr8OmUDgPYp3qlPEMRH8BjLdIh2HcZR6qSMFEhVt7kpyFe4kXMszX6Exny7zxYxQIbvmsiIAC70al4ujIOKxUg5hPcQm2f4LqzZLRHdmGdw29SdKGPhB5eSUqB9tId61FXMoxZKd48750kHH9Za75UTwn2Z68X7FUL3rCOxyWEDXZlw0cG7hs1FQVwWVtV</value-name>
+              <value>gGwzak6I8LdXCylCC1CMmvrciY06jVGzt49Do7dpSqmuZIZtBB7X6z1gp1mIWVahZbUgi7FbyTxptwK57SU5jOeIPAiEvsVnDQDWPi7fbwwF3hC21o0k4e2UGky4Ftrib46Te50pCxWFGqzHHz1LF</value>
+            </name>
+            <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_ACTIVE</administrative-control>
+            <role>YM9ZeD5LFds1ONb1M8yI46j03ezExsGv6Hukks5RFpLm5WnR4Vz9US1XYBtv31T1IfmUHjMnJxJOlYFqM6ryQsnPVQcQJ5SjdedUxR98gKWCJt2nzlViNa7JSbrB9jUmxZ85Ri5722JDnDSPYF7EP6fH9Gai04wpWFmNPsMJuwnJ17y0NFECLTcVrm5rjuRf1dUQFGz14OL6WbYJRud</role>
+            <extension>
+              <value-name>aBaLTSdU9e4Ekd2PJKuXkN3AHNbwc84mJ67vZkh0qmxKzzsabO7vBa5aX8H9hDvSJunAGFt7T0JsrbCCZB0tL5DB6cCnH07ruv1b2maVmTfNXJiOki9XfFqlR3Ar3ISp5Ls78CUmo12lKk1WubLJQcXz7x027KjcoMbwgXKEYMRAYTos4a4Me1ddq6fyQyKecW</value-name>
+              <value>tTn7K1Zc0KBsGDosRpx4QDbouB0AO</value>
+            </extension>
+            <fc-port>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</fc-port>
+            <fc-port-direction>PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN</fc-port-direction>
+            <address>oktfwtZZOFCcZlCxhk2kAwWA7Kpc1ZEhb7pHBgzhW3tNhXcyhfLJDHkKjBOcAslLsKk31LcPPFu6DHwMOhwrQI49jSlLdHoFjAAkmM13rw9W5</address>
+            <port-of-internal-fc>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</port-of-internal-fc>
+            <is-protection-lock-out>true</is-protection-lock-out>
+          </selected-fc-port>
+          <switch-control>SWITCH_CONTROL_FORCED</switch-control>
+          <address>CSBaanR7LY2Km0d1R5n2mxGsq4rHljHY3i0dxJljAn3Wn8X6dc9rJHU2MlJZxiPAtQG0</address>
+          <prot-type>mBtid6WE44yBW4UHBr</prot-type>
+        </fc-switch>
+        <lower-level-fc>25fbedaf-00e7-2908-fe09-07fe37aca56a</lower-level-fc>
+        <address>ovNUwXQgZAIFqw5H0n8FXqTbhFEc8zaw4PisF1IwBibUOhBPwJul2fwbM2oUCqiy7B1MCJj52uRIDkx14UnY1T9GWpsqHLYPeRBQBMNv9FdMZDOVp3LqWV6Kcr2Uc1BqS48lRVI0AOEsrknIn10cW7W0qZMCSnUCs2QjXybqeHKF27fh0gtWfiPF9BhTZ3vj5duUEFcSmWqgWFyWVTLa3APc</address>
+        <is-protection-lock-out>true</is-protection-lock-out>
+      </encapsulated-fc>
+      <sync-ltp>5b29f3db-6f13-96c1-f189-f038af15cc4a</sync-ltp>
+    </embedded-clock>
+    <client-ltp>4ace155c-6c04-f585-d9ec-d6a845794520</client-ltp>
+    <layer-protocol>
+      <local-id>0g3UChWDwhbN2DX8ll4XqTxAwrh0cCucTp7vyV0553S7HH7U24JlX8Vtz5lMHHYs6XPFLPCQTmPs4Xe61YjQ6fbycwcTd2eb03IDLclEzaYvZct02NI1UTr6pDRuF5yx1gaMtviUygpxkSqfx88r2zpj4hGJee9fuj1PHbJfj0MEL4Tid1C7s1qwi67pcgEzAyohJ0o30azLf</local-id>
+      <configuration-and-switch-control>d9pXiShKGxF48fE1Yy5Z70SvaD4dDh3JqtGJdPlUmSYu7uo6Ut52tQxDttJYLMHb7fMl477jSXNZr3XdoVfKLFf68Y4TDEXCTBPYBWhtLWk4Sii85xSQc8OdYK6toVYixN88ChBndVsX5K6a9YSeYGrPjpiHl8ZSWZSqglFm87jeJpgLg9ZeHi30HeI2mzMarEAHZ8387neREuuUDl1dDWdk2Nnhf1rGGUnF2jF9yTScomZ</configuration-and-switch-control>
+      <configured-client-capacity>kzOoVvAHATR2b1H3Tw9Sy3</configured-client-capacity>
+      <fc-blocks-signal-to-lp>06cOkxRZM8eNrUtla1flGpTs95Qw4B5WIiLUHuTt</fc-blocks-signal-to-lp>
+      <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_AVAILABLE</lifecycle-state>
+      <label>
+        <value-name>o0M0Sh7mqTyd6g8pYN90t9BmcsbBq8iO04OLdW7DHxQNFQ4EwdwRf7djrgUSg4yh9fUm3T0KrIq6zmC5s9OH820saMcrQKARZue2n6FGOXNnbhkDi1kr3cT5Q5wzH6qHswBQC8wrXbG9lTMDUZ4P3PUUMjlupD3SawAEFY5u2EDnxi0r9XgcM2YzljVD</value-name>
+        <value>YnZuXv1NBwP71cEb55k2dxG7v7tH26w0tnniSo5lMVsGZYR4V4Y0BF8YMBxPH3H2i4k3lhgZ4BF4zp0vtRvWoDUa6sRFnrHynTtAbJA7c73Mo49RNwNb2Ad8U5</value>
+      </label>
+      <pure-ethernet-structure-pac xmlns="urn:onf:yang:pure-ethernet-structure-2-0">
+        <pure-ethernet-structure-configuration>
+          <problem-kind-severity-list>
+            <problem-kind-name>6OYcphGfm9BPpP28mPd7H9vOEix3bxP9dGlDXTSc3l1kb3kpTxwAz2g5kN9ndYxqwKVuEOGz9HLcC5Bnv0Y4269eUauZ11hxDd19TzAU8l7LjA0GAYKu5LBRW5IXYRmB4gLPPdKQzJtKbtqMk28</problem-kind-name>
+            <problem-kind-severity>SEVERITY_TYPE_NOT_YET_DEFINED</problem-kind-severity>
+          </problem-kind-severity-list>
+          <performance-monitoring-is-on>false</performance-monitoring-is-on>
+          <g-826-threshold-cross-alarm-list>
+            <g-826-value-kind>G_826_TYPE_NOT_SPECIFIED</g-826-value-kind>
+            <granularity-period>GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN</granularity-period>
+            <alarm-raising-threshold>755083090</alarm-raising-threshold>
+            <alarm-clearing-threshold>688151040</alarm-clearing-threshold>
+          </g-826-threshold-cross-alarm-list>
+          <clearing-threshold-cross-alarms-is-on>false</clearing-threshold-cross-alarms-is-on>
+        </pure-ethernet-structure-configuration>
+      </pure-ethernet-structure-pac>
+      <layer-protocol-name xmlns:x="urn:onf:yang:pure-ethernet-structure-2-0">x:LAYER_PROTOCOL_NAME_TYPE_PURE_ETHERNET_STRUCTURE_LAYER</layer-protocol-name>
+      <lp-direction>TERMINATION_DIRECTION_BIDIRECTIONAL</lp-direction>
+      <name>
+        <value-name>WkdyrFzJ3KIa9UrFt1dKaPKyKCAboHvc1AKk7b4aVEk4yDCUwPwGwg68Szj8gGkagWuf8qp34C0vfChMjNkIV</value-name>
+        <value>QFS2O0I02RXx6X</value>
+      </name>
+      <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_PASSIVE</administrative-control>
+      <extension>
+        <value-name>9</value-name>
+        <value>nHL92mkEOrQVvucrv362JhWbm45jK6H0Ol9IHlmnEda1zms5iq71HV44R9fufXuVivERQSeu5gwxDQCVhBOQwSMn12R8ZdW9Is0qk6VimjPR9jMiUA9ikNFdPpmGuaH5CzvOFq6UBNLL6qV0S4adKQqz7E8tO</value>
+      </extension>
+      <termination-state>TERMINATION_STATE_TERMINATED_CLIENT_TO_SERVER_FLOW</termination-state>
+      <address>7Wm5IYTmBRMwKwtUJdC2EJGM5nuDFLHEz4Ki2vEDmi16Gu1izvke7SSc7ePNZxj</address>
+      <is-protection-lock-out>true</is-protection-lock-out>
+    </layer-protocol>
+    <ltp-direction>TERMINATION_DIRECTION_SINK</ltp-direction>
+    <server-ltp>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</server-ltp>
+    <transfer-capacity-pac>dYwcSTYJCrWVMaxKcSTqq4RlRmMxMg2Zey3YjTIVcwJZGgBS0varz1MifqHTGJLU9OTsItfUZYLx7nh7KryblktAL2mrL7eMV7evstijk3Qrq7y2q7dLjGeWAAgdHuZutd0V</transfer-capacity-pac>
+    <address>TgTvYul6S4Yw2yKsYUna7Je4g3kGauV3KGqAaMGVIwjK4Wc2Iz4HbiMre67oAUjcsBMvfkqXQBzVxMP7dUPo4BHizHy2tReWlTrA5Jq</address>
+    <peer-ltp>5b29f3db-6f13-96c1-f189-f038af15cc4a</peer-ltp>
+    <ltp-in-other-view>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</ltp-in-other-view>
+  </logical-termination-point>
+  <logical-termination-point>
+    <uuid>40607f48-e0e3-b1db-76bd-a47ffb26d223</uuid>
+    <physical-port-reference>371eda64-3aa3-f78a-2711-ea75d567381f</physical-port-reference>
+    <local-id>PoiF5f3nMkfFIVS0UPcyEYyur6LuzUApiSWfZZCDbJjTE3LyKYYhOoLfuoBWa3dsV9HN0bqbVB5rFI0hGQym7bCtr5pB9C34LCJLGaPBLM2iuUs3D0pK41dv7v7g72cLxWodYdGBZAUmvmp0eOKaQPGPkFXkz156PlbNzJpqkbMHpbHv0jGI0eplTmxkfCj5XmSo69Pqct7BFG7xZF7ZTwcEKJYZd943wPrCQ823u1w1Hvy</local-id>
+    <lifecycle-state>LIFECYCLE_STATE_INSTALLED</lifecycle-state>
+    <external-managed-id>
+      <manager-identifier>0pp7kq9UqSE8EkiWZdd2NwHltA1dc1U4ic3CC4p3W33tflh6yu9dSQzlisrmtdqLplf2pEXeASHP5YWDkXIcF9pYBQcW4vztQPnglkmV43D91rMdonh3oGT0p6OtBoOj54rqoNmtQRCJihWGw5BUMvMbtBwWRcfWgHmFuA0druOJDDh9</manager-identifier>
+      <external-managed-uuid>TWugIxJb3F2gMQwl53QFVV7qJIVmS55DTrTBZuFU1zaNqz9vCR2qM1QnCDCuAz7t0SXRmCMn3OatfbQS2TaGM0WovyS67RzZJwJX0nk43npjy83t1d1F5X4AvOGuy8m9wX7xcrtfGSyf0BATGBzLzvmWjUjR2F1zu0YGrrV0bmfcPP5wiwhR1vOdi74kEXL0XBGh2th</external-managed-uuid>
+    </external-managed-id>
+    <label>
+      <value-name>tJJub3yXPYeD96qQAZa4rzKBbUZUuMrXnbjy6KvVAKqJIQsaHC79bRCnEC98gAXDD83JSqEs244KMwNu0UDcD7r9JshR26myfphZQWkSSgvxMi1M4wQzDhJfJ06EZt</value-name>
+      <value>6Kl5A9h</value>
+    </label>
+    <fd-rule-group>4cd72b11-5cfa-9e34-94d1-42b54486ca7d</fd-rule-group>
+    <connected-ltp>79b69572-4586-21fe-efd4-4a81a2b57515</connected-ltp>
+    <name>
+      <value-name>lyEzHBu5qVH8WB3quAr35RBgo1brDL6YbCpKdTQvHxEv1HNvh6zfXand3yEGbCxmeOZkAPP9etEf3jDkpcreeOrin5YqznNFcEZMtPVzarHdKkq9wRnCGOUVLLlc80RkEJ6ZyTzAkgO4se5Y5ssD8nyL8UX8UHtrqrqQdRqx7eurkzhiUKV27uG7gDf2kAtC2MsfDTEDZ84k</value-name>
+      <value>mCu6po5T441Aj4MUxpObRVPCzsuAoOaKiwIHM</value>
+    </name>
+    <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_ACTIVE</administrative-control>
+    <supporting-pc>DZMq3EZHiPi3AnRL7EF2BdMdZERs5ghI731aA0JSHUNihF3pbArNG5SFKK8</supporting-pc>
+    <extension>
+      <value-name>UxQrb0kY4IGDdQesr7r56M1cwn9ZwrkqYaJa2306DyBRoQbQXuNVgP7Fc8EArYTq0Cs2yk03SBUhjYZ8sM3Jt2gF3U8uK1UKveE3yE7j7TsrRrrc5vVzp36sXeXHfJjLYXGoBFHAz11isluyQh7fkdI9sxQzg1c6YLvrq42R6V2ygwYYG560bOavdS4tU9ASU5cc1e47</value-name>
+      <value>6yiuo8aue3x2d27X6BR7bC18Oe1Ua1Vgr5KPeNbsQI</value>
+    </extension>
+    <embedded-clock>
+      <local-id>b1LIC7tCWQKBwEPh6qhC3c1CerhwtNZwOC6qJzUGh</local-id>
+      <lifecycle-state>LIFECYCLE_STATE_PLANNED</lifecycle-state>
+      <label>
+        <value-name>PYWJR3l8jdUCvpaB6WhJwrU0JagbTyBAppbgtwgMBag6rrAxfR9Ei3ET5VXYtyqSQt0jZh5ArezLx9iM0riamX3kS0adrB6h46sWfpoHDXka6CPYW78a4cuO4F2n80EcYY06opNTe74lBLbpKkAHo4nsB</value-name>
+        <value>QJ9mW0lO6BdTusSqFl3QLO2dnqhKTT2BubXiba7hDc28EMqb8uULaWYxn7h8SjJnnyFyBMQeZSevxFzF1tibpgIMfRU83vvq42YFPGLGr03YFCvG5NRnVr1aiWiljFLfICUxiy5Jy8H5L4LQRu5MN7X537jeNWuvqgUJOZkmZUrKY4tQqyud</value>
+      </label>
+      <encapsulated-casc>W15615hJYi9vbxBtT0XvgEGUmTAJ7wK3xH1qFi1D</encapsulated-casc>
+      <encompassed-clock>AsuvU4rbRSpT9HFIa7buM3wiMnUvF4TfonCij3l3NKWXjCxmJIQvEeGqCsW9wHoN415fWriK3fzfR6BsPrXtGvLaYzjmgz9cs7spyK1tRAIAGj2nDSIjnull3EIc5JoyQQPgtQKkqsVYEPehHWsXiNaejSqouOOkxDB0tlcLFZKbPYso</encompassed-clock>
+      <name>
+        <value-name>9NaQWgg5LbiMOw652zK15yEbYfCKVToWyyMmHVss6KeMgkKiLucI3ITTXnELgUzGlm329vu7fAUvNEFy8Jh3r2Phil2yft7APaCQFYYMz</value-name>
+        <value>9ewOMwyVsRQh88C2yRwFkdPO4mNU8eMhsa66yw20fKhgSTiqDG6PMNDIaiCiogAIq</value>
+      </name>
+      <administrative-control>ADMINISTRATIVE_CONTROL_QUIESCENT</administrative-control>
+      <extension>
+        <value-name>jbArmP6ibtJrfk86Eu5qOQpKb7bBBohVzJeVqc6BFHVUT30pp5</value-name>
+        <value>dNfYQm1sXpBKRkQEL2CeHb9t44tuurkH6rxXNqpCQ0fzc55P8I4HT5bYawkEXEd45D1K3ieLatcmricz088LdjBfQVTFrZJoCC0xUfj4Avj1FvsxvBjIMMQuABaTALa4gaC2hNZSaiLQFen</value>
+      </extension>
+      <phase-aligned-clock>4FWoq782APXUwepFATR6jnGPlBKxGc5DRUTa11c</phase-aligned-clock>
+      <address>dAYNc0GEDQJTTdWaSNU25GKCU0Mtqo</address>
+      <encapsulated-fc>
+        <uuid>ba785b4c-c260-be6a-3488-8008452c0696</uuid>
+        <configuration-and-switch-control>Q2LcP0af6NWrtOdZTJjuXDLW0d1Gaut0w64d7fs5Ugxg4KfQlqka3X632ZCct5dR3942oo8jExzB9Gru7Dw2AC6CtIPOFUFA3JDk7LD</configuration-and-switch-control>
+        <local-id>HwgY8Tta1171UQN6JvcCv5noLbggc1ELpNKyy5AA6ItTy8R9v3M009hLlpTpqq2IdE8LJIdIqGBYGk0cfE4gNdT0CNhV5kDiYLVAt9iMHLCg5CskgoAWCmOe1616iEg8hbIDc0pML12Qwu3MSvAmRhtSnuQx96FiaoVmok02e2KKoNo9jZv2gYVvtD2uKHMUXI8eU9g830SsGhBR86Tg5GLqkFU</local-id>
+        <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_BUSY</lifecycle-state>
+        <external-managed-id>
+          <manager-identifier>eCZjZuo7UgfPBD8WowAoWXXQhaxKoDeCfeV7AbeustjV6kSmIkKwhzmyKTi0wpCEDyL5BZA3kLZiXJwF39cdIqLkkWkIlXeQn</manager-identifier>
+          <external-managed-uuid>VYQnU21TkYuRExSIKA8oVkk73x49nj9aaZq42rPepjXVIPvtiEJ5Y3cTs93Hk4RuVhyPAf40yTN9BjCTPdYF82rAbmhwq0Sdaj3KyZCZKq8lBCeiP4XX7oxaCGy2Gr8QK3Ba2d9Mvh0YT6gIbexau4k7KL1jc19O4CY6I8LdhL43RkLUqb4VfhUS2N36PcUTHK0pKDu2gy5ZTIUjTQ61Z0T1OWZv0L</external-managed-uuid>
+        </external-managed-id>
+        <supported-link>jCxNJ2bMCNK78kOWZIBrDc4XbHsGRwNa1cPKf0oJF8QNswBje4LSgHHjpa08yFjzR0kY1AIGJqm3XXn320NaHvmYFe75TqFCqZBjrbSaBe6q3tuXl982EuTbI0htiW5ANGU6RMhlSnLVI7L39TXNfIRPI0a</supported-link>
+        <label>
+          <value-name>nl2QgBqI1d99Rt6m7zxj4osJrQD58aJvvMdEfDm8RwhARoXQPmaUCuD4c89kbSPyw2cExrMgX4RGkGp92zVE3rA7zJrKugbSanwHObYD7HcrnBAh2oNXP</value-name>
+          <value>4oZv1lDc6NrCm8FcLMTXd8qGps45p</value>
+        </label>
+        <layer-protocol-name xmlns:x="urn:onf:yang:ethernet-container-2-0">x:LAYER_PROTOCOL_NAME_TYPE_ETHERNET_CONTAINER_LAYER</layer-protocol-name>
+        <fc-route>aGZCEWoDREc6wE3btEfi6jUbmtXttR5DyW74KwHCaMIHqDKL9037bPixbf0E7XaxM9</fc-route>
+        <name>
+          <value-name>RybVq4f6dQPlWJBThebtTXpZwZbEItHr1LesHtqUjg78RA10G5ur2Lqq</value-name>
+          <value>u5tXEMZh1jYuJKGRJOIjHJZM5iHQJ7Bd4W2JJ10CcRYOBEFdkgw2RoGWGfEhn8uj4x2FqV9vE8j7EQkZYJTH7rvFHaPWibfeIaM1XVoBVHAApVrgEkXDLtakDZ8NboTLqx</value>
+        </name>
+        <administrative-control>ADMINISTRATIVE_CONTROL_QUIESCENT</administrative-control>
+        <supporting-pc>OfttOnzx1IST5wGFvrAEcqkj830J3aBJq4c6jLDkmo5jMMZ95rOaR0tS3mtYw4HO1TUkwqFSOK4so3BumpE6hZYklriKnRyoCtJ1ToTz0X1pSCTfUplbgbouuyeRqM827R3S7Pj7EcwpPhEByREHU2boBh7T3fV36RN5G7dcjBB0L7tjY80S238vkgogncbu3YzBXEN9gp11wvcnv57x0g3lojtLvE7quz1sdPtl6</supporting-pc>
+        <extension>
+          <value-name>tl9kQ2Gt6M8ygvGWzjIl9OtzuL2qQjjbFkvnnbRtPR16ez2OTC92quBM7vcXHn0eIwBXzkqp4kniLh6ET7ycC2YBx3r6qrc0XOXp0gO4s3ndklKdtihXk8yKbZQtj3m8JjxBrdyTgVZA8JGB1Xqe5ZY8QOu9JQik1HWtVuebhdEhWkTQhb4f22fTIJUkz4EBMs4zOiK5ogfkA0</value-name>
+          <value>Kb6Ze0eZBYLVpQr0uUW3I7FGvWVHwVK86I7cJe3k4P7tFym1sa43hBBMxwuWj64hO4mpipJeeIzLhVMB6IEfk72RDoFOuK6aGkAYJb4YUDJ3roEx6bMqiGaOWPCirAt7U3XE6Tu0x53YtInAL103A2RwKmP3Wi3JdSfjMJcbOf9aPoKApCwZFnohBdkqnn9s8gLURX5x56HUurnL4TDB81KK64alkbNsryeiojP</value>
+        </extension>
+        <service-priority>-9223372036854775808</service-priority>
+        <forwarding-direction>FORWARDING_DIRECTION_OMNIDIRECTIONAL</forwarding-direction>
+        <fc-port>
+          <local-id>TUDh98GeBq2BJArdMz7u5ZQlWigGEC0ppDyyDeM6EHIn91tV</local-id>
+          <lifecycle-state>LIFECYCLE_STATE_PENDING_REMOVAL</lifecycle-state>
+          <logical-termination-point>8c0b5632-f6b1-1b90-dc8d-4334c833133c</logical-termination-point>
+          <fc-route-feeds-fc-port-egress>vLewMjOUu8aTdlvmoEZvyY449n0psH1XkfmYraSVa2Gnf3CEHt97k6cttcKNMLD6SZXb9P6kKEzZIbDpFFxRLJc6NWUrzxqjwnvx4tRO8jGQub71QEStf4A3Smu</fc-route-feeds-fc-port-egress>
+          <label>
+            <value-name>znAdshos8bfk5rTanmgmIhawSLAGHX6gdztFQJZYU6a</value-name>
+            <value>yV2Vhi9ZzbwrPY0wVYE8x7GfIF5DM7vk2x7jP8bgjzI8xAwkyalY915SybnciKwl9vwQDz6P8GPxgmSHw5FG6Kq</value>
+          </label>
+          <selection-priority>-9223372036854775808</selection-priority>
+          <name>
+            <value-name>AiGr8Tfq9W4LWl2rTB47f2EWK16MmTeWbUgbFvBGjxkfKmyDXCDdFh1ha73xTilW4B8C7Bii1CyLZ6hWBU1833hd2lKNv6KrzS3ylmRmQh0PfhEQbxQeA8rvl4iI2U9BE5a0r1e9ieZxvvgG2YMvY60jaa1c53FB8PB</value-name>
+            <value>IQAS4riAWy8ZoVmn1ey3gs7dvMPvCqWc8o55QnxMNFDbsZql5ZomjvzOiobMH7YPnVMdij0XZv1jnrFsi3GBrghJwsndrlVP9H2r1UhSii3FJIZ2EGD5OVGkf3qHglwpUqRNd0xviB21bT3PrzUfmssBvSiMdGb7ZUNcUkzcVB67u1OWAB3W3v</value>
+          </name>
+          <administrative-control>ADMINISTRATIVE_CONTROL_QUIESCENT</administrative-control>
+          <role>wFj0IXIhnd10eT3l4SEB3LuAKjKh5TTur4u915igijgpdjK93gD7U7HEij</role>
+          <extension>
+            <value-name>NFJ6p7jyDHg8hmPh3FPb1</value-name>
+            <value>SpEpXC2n0P2JNjRYJmGZmPmc6hRVsKml10CZuEevm969sX04by3ynhClyl915ve6oQ5SncfJlmKNbKRniNNx4pTvK2oHxCNVkLGzXNia13XdFHAYufvqEgVoij</value>
+          </extension>
+          <fc-port>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</fc-port>
+          <fc-port-direction>PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN</fc-port-direction>
+          <address>0nbzcRSmSNc5sTxifMGFqWBGfMDXAgsAvw9AnTWfG0d1LKj0xZyPW1o3N10f9kPFQZ7dK3lrWykHiDAHv0pj1NmGGeWIqDfhummfhHyd7SNqvfZSfob83pGCvukW8zdCVrRc9pig95yFkqprOBrK07moCGkC7pe2QY6Zfo8pty4FYlYFWppPpDdTbpvi</address>
+          <port-of-internal-fc>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</port-of-internal-fc>
+          <is-protection-lock-out>false</is-protection-lock-out>
+        </fc-port>
+        <fc-switch>
+          <local-id>dZ5PPxiiaySug6WBzisfzmOGWyjzoYHBPNiFcAXe0HI9NFKeX4toih46HfF65fzUUKzYcocdXVmKsYYh2jFcsBjaQQ8NXzHRj9PwpUJnPXZ9VQiP9X1CqcE8VEVSduCpDjVVdwiUt93gZd592YDs3hsYVnI0KcpfwcaJIkw3urbtFguH7722gu03SA4uNlJbyUU8ei4IKf4hoyYvG0xWvpSfRWJE9sPHeCItMM3w17NhGEMeE</local-id>
+          <configuration-and-switch-control>1PaZ5Zy</configuration-and-switch-control>
+          <internal-configuration-and-switch-control>oHONsbzuDrBbX6bUtKJ2vPwpwygCxP7NwNBQY2cttOEi</internal-configuration-and-switch-control>
+          <lifecycle-state>LIFECYCLE_STATE_INSTALLED</lifecycle-state>
+          <label>
+            <value-name>63hHxH5dX24hBhSNRXBI849cPoaxRcaXfsEM1C0YEW88d0VXPwxXsG19WcHOoRDvba95M13iX3q3Vd0KBxHV5J51VEHbnlGrvPw9RrjOnCRiPJ3jgCeldbf0HW35hJoErMFa5ZYsBILijGBAaQNoT2gBZky83WNmAkwFbn0M5LXgjqQt8ER2y8Dxs3GnZlKr</value-name>
+            <value>g6JD6nAJkR2LzwT5fVEfq3ztBXkWzLmHK5dIsNkNweqYCb</value>
+          </label>
+          <switch-selects-ports>PORT_DIRECTION_OUTPUT</switch-selects-ports>
+          <reversion-mode>REVERSION_MODE_NON-REVERTIVE</reversion-mode>
+          <name>
+            <value-name>21AU8kIRYScGrqa1LWNHlHO0YmwDA3OD4hpdB8WrS8Zbr1d4Q0L3zs3qOA3hDJUz0bMtbBV3JMf2Os7EkKHUcCk14fizY49R7Nkjo7m0UtUAV168EF2Q9eJet1Nj</value-name>
+            <value>Oa5unoKuCKg6xITqO14l3Vv9EJuyoOn5QkzdAjIdWQbtz4Tf6QB1</value>
+          </name>
+          <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE</administrative-control>
+          <extension>
+            <value-name>SZz7pDzL6w53XJhElmRVOx7tVmLTYXPIWgIdLhYSFWNC</value-name>
+            <value>48Kq0x6xFAkTdeRaVsYbacXj2HYQusfyARQApWZWokPCqyMd0Do2PdlJUbsgDHO6rwyQtyMRKtl2</value>
+          </extension>
+          <wait-to-restore-time>-9223372036854775808</wait-to-restore-time>
+          <profile-proxy>3zkKIuKALTGX2L87cbpyvdZtU9Rk3L0YckIVGtnke3h8GhgStxiYKiswrbQmWIc9UV4BgrVmn4uVmCOP9YNL87isi0O7J1gDOc6WvTiSYEGkhm9qkO4tWmV6eBdXultapr6VlgFjVlDcHEuUsyfgM2n1DsQ0Gb25D10Yhy9cTMgtiDnK3CTQE8J9Az1gL4eg5eemMnry1z1jcgVgKO6oWHpp8rxLnL1sSfGwu74vzXGL5</profile-proxy>
+          <control-parameters>
+            <network-scheme-specification>vItkow44ei3E2U4Eo71nCWhL1aK4gc8DNBY37U7dd3S7XODmNwBhtSUmUxq2JyGo2ws9qrnvu7CsNfGsM9K71EtV3LYNbw3d2vnsXCYrBsLgIjImskttZOh2z7HKDLY</network-scheme-specification>
+            <hold-off-time>-9223372036854775808</hold-off-time>
+            <wait-to-revert-time>-9223372036854775808</wait-to-revert-time>
+            <reversion-mode>REVERSION_MODE_NON-REVERTIVE</reversion-mode>
+            <prot-type>1Pvpe1YmvvbujzhMqfOuA9afrWWoWg4X5zfbsdxYIJsTaCFARl5ku7zW4ncSDgHIHWT11jZK2kvcW3FFoCZTJqHFGTpj17UIVFJXYBzSNWXJZCgg681HyIn6tEqmDc4zJFoI8PsVLpwDTFTZNUzduWkXsCj6OfxxMV7NKsInR70DMTurF3E9RYYkA9qgoXG3KFQm7qJZpCubnYC3294T735</prot-type>
+          </control-parameters>
+          <hold-off-time>-9223372036854775808</hold-off-time>
+          <selected-fc-port>
+            <local-id>PdCEdbAC5NJ66Xp38IxxeQ6tjqW2pXk6aWKnZcZ4ZAa5pr1q1qPggNBrdxtuuFAwucLloCig4sdtM6LNwAVNnw6t3AXp7qNtCyPT2716resdldTROOw3dDwg5mycMlGgMn1Ou2VNhn1CAMlgsSkFnIWs4mwIH4ZlrSaNV5B4kuGMgT3ILfg0X4sUqZu</local-id>
+            <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_BUSY</lifecycle-state>
+            <logical-termination-point>2b454936-1b31-1d28-4dda-1d3475708a0e</logical-termination-point>
+            <fc-route-feeds-fc-port-egress>SbycML6WefpBhI75fiNW8EdlQaIhTmgEyHQckX8y4p2l71imjXbrBoEjzeAsBJ61</fc-route-feeds-fc-port-egress>
+            <label>
+              <value-name>1O1ABSBl04kWnP9cn6jI5QMV8CcuQwhRcijF2U1UYdQeVZqaYJS3swQA024QrmzDwTbzN4tEhcS43ifT2ZOmwwWorSfS6OnDzy4nCx1MBLQx3XiXX7jlv7JW0QO6x4J6uNl7deLGZBd3rwSo</value-name>
+              <value>4J0bkX3bDaIzLO4r23wgOcghibIG363ZH33US65o8FXUlTdnWJECNUUX5CD0BGSaCV4mT1K2yAOUl1hiCNUhHGfEbKxEjhOV4LhXEUZduF</value>
+            </label>
+            <selection-priority>-9223372036854775808</selection-priority>
+            <name>
+              <value-name>3llveva9sLdMfLynEtYiAeiqiDkICOzx2U2gh5hJQunY7WlDhbNSp6izBu9daJKcDFsVKJws5Uq4IEIZPvJ7tTG4fI9qrMuWjXJVygnw2GAKkaB1yd0T6HQmhZEID8wOXgJooZUqFm2RpDKXILQPky3Bqzj3HPSxXtVlkHDZVFIkbt9T6SAqqv1Q4cME1wbRZ64kFIbAfMVq7WcdOEDfaEX6QJKJfVs7Txjy7u9m8WFfSRszvXGxBD</value-name>
+              <value>jnoVucnB5UUE1hFgptVxdMRM9Pszi6dCltpHFMjLz5hAeWQEpD3ChUhrJJ0UH5oUyNCezNR8S8B74jDlXyXes6x4QpYpmmk</value>
+            </name>
+            <administrative-control>ADMINISTRATIVE_CONTROL_UNLOCK</administrative-control>
+            <role>CEmwAiVhe3LYOezQvtkhxxFfsO8A5TlHxHe8Z1p6534LhwtMRNVpdBEFpN7mGs469a69bnf8qbMAzfer3aQ8DmN29NhIflGhnMqy9xzsAl2as8BnajvNFbIHYZpdc5</role>
+            <extension>
+              <value-name>Py8Z2WMkvkr2vbz9uIQhMtzJ7lBcPg3wPcoR823DmuFSy6T2OJcA4Dc4YNgF3k3SwrCwtF9IaPAI</value-name>
+              <value>lCC5G49jgdh3mW7y0RWjlsF1Bn3iPD6a7A7OEh7NmhQA5P85z4hUoWN0jIa8l8atAi97z8UNpCovsosTtJFRFlJY3MYpM9KnrTmS1gxjSVOckg5F0DoxY0o1EeiqnUFGF1qz9YS2Ly65O4CGHT6xTuyxIJPYDvwjoXSyVCsyaywQC8pb1vIMR9bzS1pnoWyETicGUE645C</value>
+            </extension>
+            <fc-port>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</fc-port>
+            <fc-port-direction>PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN</fc-port-direction>
+            <address>EztjqCmRmfhKD5iaQBmonTukY77FKbqgKMz2oWTDb2nH7xRP05doYIAWPHuzKMPmyhoP59s84HP36yT7E6nuGXrnwNWgzEu0NSPST90PQITWgEVMCihj7AGDnvLO1fGGZnyLwqAe0l3hZYVC9cN8ElM1IpIBFohwMHha8Sh8dkh5adzbhmkWz6PinpT2</address>
+            <port-of-internal-fc>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</port-of-internal-fc>
+            <is-protection-lock-out>true</is-protection-lock-out>
+          </selected-fc-port>
+          <switch-control>SWITCH_CONTROL_NORMAL</switch-control>
+          <address>vWkJa3vdnEJXkPoRn6kNS3pdhr6hG0UcP6NR1a4pONm9uK0SQcxA7XFooLFXMr1txOkzQoYF4cGyOyiwCQYJND03ox02Z1voHPPy6F52RLAxbT3NB1ogwgjVOkXFdlVV2Lt8qqaa3DHeoLTZE9fbqyY6KNLY8yLbj6bCwmMzZtNf6yeDHlGZTE5wjImsh7vs5G4B</address>
+          <prot-type>cEziwPHwe24aA3vyAkQR9fue8FDvPr61XGbtvKZJNWTfRgNrAviBKEPKbkf0DmTB244pPW8uSTBB1g2CMcdwQV9Tfo</prot-type>
+        </fc-switch>
+        <lower-level-fc>25fbedaf-00e7-2908-fe09-07fe37aca56a</lower-level-fc>
+        <address>QCwMn1fw2Z80Wil8t8AMzOWPZDag2p1TUpxhrFFlENes5zAqA241Q0QPE05GpYrboRlHw022O8vLIX4a00bQ11yx1v5imxuCgPjMHdGnm3</address>
+        <is-protection-lock-out>false</is-protection-lock-out>
+      </encapsulated-fc>
+      <sync-ltp>5b29f3db-6f13-96c1-f189-f038af15cc4a</sync-ltp>
+    </embedded-clock>
+    <client-ltp>4ace155c-6c04-f585-d9ec-d6a845794520</client-ltp>
+    <layer-protocol>
+      <local-id>CFbsKvYO6NUYE9cNJAcq0WxCYAdlR7FtNINpdDebr0951dSKN42NTziJ1vXSvueac1zhFFsYFt3HGNrlJu9uVj6PO3HbpNlBHVSeAkc8N7PlM8GnuHSi0Q7PLG0aueDb1vpBHtBmAqHmrfJVXtdXbcEWTxYnLBqMYHfFaRTK</local-id>
+      <configuration-and-switch-control>8XHsIKJa9q1nzVNILFONaTmunp72BPbJMTbmvVwEdp1MdGmYl3Ln</configuration-and-switch-control>
+      <configured-client-capacity>jeIVC7zWWcVlcPRBmTFigdfkejYAvZ3G5LBHK2DzezUqoMTKxyUFL9ZZkPrHPunU8YCS07rfGexW0rypZl5DmWuHMWotiEfqCJjvRCCpQ9eIAM8s755m1r3Ffj0yXgYsZ9PIMr8usmd30dn0ikmbLhR1AJrqZpSRzzzd0zHsVMnWZCO9WalAr4tTNUjFb3wCCXPuxpPkb483HWcv6xXpBijh4uWgykS2hAxORm9UqhXZ6avczsu3LN</configured-client-capacity>
+      <fc-blocks-signal-to-lp>SbhRdSGoul9FzEs6iFnbjASyq5B3tp3dAk4N4D3yQd6pRyn26Ldhl5PMbqPwPKJhWF41i0r05xqWYFY4q4dE13ictZIbKjsGZpz9h1amqsig79cq5q46tmjOdTZX5kw4JXd0QfehHwxHxK7C2bJvpU</fc-blocks-signal-to-lp>
+      <lifecycle-state>LIFECYCLE_STATE_PENDING_REMOVAL</lifecycle-state>
+      <label>
+        <value-name>L2FFx4ypbJGjqUUrdhmgSdUjimZOZhbKbJhJNP0YyHaYt4hGdEO6RJh1XgPWxTyJCPshEs741hVvec3rQSxztGAqXqfmbN5NvpW1K36DdT0r54KOOaf9QQzN8G2jmZYRhUS1PQEUJFdHBYnp8CyYsZEsyGLU</value-name>
+        <value>JDWvnPdem7PTloujLLrgbhI2V3AtOu1q7PVnF8BTgi</value>
+      </label>
+      <layer-protocol-name xmlns:x="urn:onf:yang:mac-interface-1-0">x:LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER</layer-protocol-name>
+      <lp-direction>TERMINATION_DIRECTION_BIDIRECTIONAL</lp-direction>
+      <name>
+        <value-name>AYAQzoF3tC6G93zGTOjn65dNcTX3Ez57pxXYVuTh60XfVoNOc63i3hXg2MbGdgNCGCAt6mK5mzchX0X161baa8i4UtK7CqJi2cL1ywYM5a3V2SW9L8bV8tZ3WC2q2MIWQuPgSN2PQXCSPz1Bz4oHpgCeSFEMjnA9Jqht5biV8VOPmHiNEHm3XZhHEWlXbVYUlfnj</value-name>
+        <value>xeqkUfyCyl87Ib4HtDdhYasT0m7fBqx8wXtrc1VKf3RPeNoziBQ8DiUDw1S7jpgHeB8quV3BYMq5sOEKp</value>
+      </name>
+      <administrative-control>ADMINISTRATIVE_CONTROL_UNLOCK</administrative-control>
+      <extension>
+        <value-name>tH8MkL5AWmbQaerD2NwkNmgaTgDMwVqZuqDHbA9ZXkPZq8ulW1FBnVL8cgUA3csqCX7Fygwntdm</value-name>
+        <value>mIeaJULYHo6TwSmz4GZyD6dbfJqIXMBbnIl6CYXje35KWjbSZbrC9wGgg6Y5Lsg8at6Ej3PxZU9N5kF4nYzxv7</value>
+      </extension>
+      <mac-interface-pac xmlns="urn:onf:yang:mac-interface-1-0">
+        <mac-interface-configuration>
+          <link-loss-forwarding-delay>35</link-loss-forwarding-delay>
+          <maximum-frame-size>-2472</maximum-frame-size>
+          <interface-is-on>false</interface-is-on>
+          <maintenance-timer>-1881386789</maintenance-timer>
+          <transmitted-frame-format>FRAME_FORMAT_TYPE_ETHERNET_2</transmitted-frame-format>
+          <loop-detection-is-on>false</loop-detection-is-on>
+          <maximum-share-of-broadcast-frames>19</maximum-share-of-broadcast-frames>
+          <fragmentation-allowed>FRAGMENTATION_TYPE_DISABLE</fragmentation-allowed>
+          <loop-port-shut-down-is-on>true</loop-port-shut-down-is-on>
+          <statistics-is-on>true</statistics-is-on>
+          <configured-mac-address>mkFRLqnc03VZmSMWlr5sbLbyEXT69RvvbaePBCTBxOsLyeATxFmAqp8XeUVnDqKOBYv4soxZ5ZLD6dxvSL6b268g03DDufkXdPTy6qx3haGnn5T8IRjKXr0YuvtQKNFQvyotYNw8Q4v5agdS7wD5XvVk1o2D4Itr8JU7xi7fmCkwTyhS4MP2hKea1gOXY9o7La6akdpGHJ5shmlm0ag9NukOK0DJ11IM3OWnTlVA503</configured-mac-address>
+          <problem-kind-severity-list>
+            <problem-kind-name>oyBh8gcWcrHqn9nncBukcIDUYI7ymW0KmCUuK6iWyZeV8BaddExhfa3dL2E7YEJc8DGSKYHaPVXQxZ3CwsTLvWQgZufP9Y2hCI2ezJggEd63c1FIuqlZf476ymVzkXJWyL2Zuif0nm4AnBaJ2oI9sPf0baso0bcqWfhipwiNKmf0YpJSFkT7980dasB2vNsjUJBk8T7SgmS6DuQ</problem-kind-name>
+            <problem-kind-severity>SEVERITY_TYPE_WARNING</problem-kind-severity>
+          </problem-kind-severity-list>
+          <problem-kind-severity-list>
+            <problem-kind-name>JiPJi2TCvW7bgq501p0NoS3KD1gZJzNkRC32xOE2CE5TWbLQALDZvyB0rRZaiEu29p4G5IAIeGBbJe1bZw2m4EnvnexGT1IUiMsnm25tAyEbMxnD3p073fujt1ZeUz04dsrrnpUXXy1CXof0N7ZRml2Ie1W8sX4Fhw6EN1uCrvepTmhGt9pQuryJkmJMbOrtcq7ZrttKYI1RWjypkP7OhxpBU9oXPHi17</problem-kind-name>
+            <problem-kind-severity>SEVERITY_TYPE_MAJOR</problem-kind-severity>
+          </problem-kind-severity-list>
+          <mac-address-configuration-is-on>true</mac-address-configuration-is-on>
+          <loop-back-kind-on>LOOP_BACK_TYPE_NONE</loop-back-kind-on>
+          <interface-name>9jBwMbfuQWRFxgGaM1N2YL0XsSyHNiFWB8kfjAJ2oAHNJgXvhCp8gpXIhwh4OWTh45wgF7iWHZJi7zNp3cpjBm2LKjHq8AHcy5k5cC1MuD4B4K07OhriEl3owKPEdoJLm3QyGSc2n9DrTwqHNRZj4UABFh7SFQv1Mls</interface-name>
+          <flow-control-mode>FLOW_CONTROL_MODE_TYPE_AUTO_NEGOTIATION</flow-control-mode>
+          <performance-monitoring-is-on>false</performance-monitoring-is-on>
+          <link-loss-forwarding-is-on>false</link-loss-forwarding-is-on>
+          <broadcast-frame-suppression-is-on>false</broadcast-frame-suppression-is-on>
+        </mac-interface-configuration>
+      </mac-interface-pac>
+      <termination-state>TERMINATION_STATE_TERMINATED_CLIENT_TO_SERVER_FLOW</termination-state>
+      <address>Q6QQ8bXEuStTJg2wle4iC2R1pQO2VkCMikuivjWR4qKNGEkTLgbfaUgAKWuyhZczbGSz0Gq463REz3qkbBzmoHO0EayV9Kmdj6MjNcfL7YiHUIT5blrz2fsGq0trDIEWGq7lve7Cchb6Z542ivCkDWTVOemrOTfvbeQGsPbFYeDXbH0t5uGIirD6FRquKFROUzmmhxTfEx5P6</address>
+      <is-protection-lock-out>false</is-protection-lock-out>
+    </layer-protocol>
+    <ltp-direction>TERMINATION_DIRECTION_BIDIRECTIONAL</ltp-direction>
+    <server-ltp>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</server-ltp>
+    <transfer-capacity-pac>iggD7b0Bx1xqXNLrKiCjZyukiXaA315lhlYgoRROSh6H4R1G1DZ0bmdlbnNfoKAx5rOmixaaOgJKZKr1niTqE6DQur5KbFa96YngnxicF2WEMfx2yrs4x6UTpRwspGtnEQE1nW52YUzD16FzpZwXXqImaeHzUaWq1AkgppbnbK0dIxE8xaXutFJDUqcGs87tBjK0INfMp8Z7FD74O4z9CaMosY4U63gzm0zXFPJ4XA3C5bHT7</transfer-capacity-pac>
+    <address>JXKQ0eK8UQ2G03t8uzKjFxvZndeiQBbzyNhzT1zNRBtJEWR8nCkU1PUpU0zKBCbaptBamaX6MiPq7zrm3Lh4s3le3VRxp2zPnaZCkPI6Zpp6QIlTlCQFx3TsQCZgxqXUAOoVDYTvgaB6KWS5qAKPDwau81KFszs2nQPTHBoXDR3oGNt6n6O1CYnCZZaryCmVkbO1M</address>
+    <peer-ltp>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</peer-ltp>
+    <ltp-in-other-view>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</ltp-in-other-view>
+  </logical-termination-point>
+  <logical-termination-point>
+    <uuid>79b69572-4586-21fe-efd4-4a81a2b57515</uuid>
+    <physical-port-reference>371eda64-3aa3-f78a-2711-ea75d567381f</physical-port-reference>
+    <local-id>AIUdam0j98DXVPwlYl8hQyipbzbHEVwfDrkGFdROlmD8b1u9mCicaBBd2EUHAjO5C8Lhlu5HQAP1Bb2XNl9XWCaYgXxQ8dOKmr1zWY8MyQO11IYP3ZERBHIJEfsMtgoHHp8DfhiNZYG0GEHKvmtY3bHzj1dMhBlRStm7CEMBCsubY3Vtpgjks0LL2QpbjK2b5paA3W3ygxJeBwzSMS56LIRFzgQSST</local-id>
+    <lifecycle-state>LIFECYCLE_STATE_INSTALLED</lifecycle-state>
+    <external-managed-id>
+      <manager-identifier>Ds</manager-identifier>
+      <external-managed-uuid>NgNgkOMkHy9XUrvq1zDhMwdS</external-managed-uuid>
+    </external-managed-id>
+    <label>
+      <value-name>fLVuGL1rPTYohWW3feDJlt61EwFGNFz2iupY7ihWbfdk49obf1VBmTC0hhH5O8Z6CoXKy6GJmT4iUsl2l8Dz27zbg884g</value-name>
+      <value>2ToZvX63ykXCuJWPL9YoISna3DicHrcKcABHpzKYLzs7jpX4qVl1FIbAmlMVMQxYr1xQsaGeJ9l2qaZQXcRCU2d8oRW2It11uqJXAq3krgeRr5HghrT4tY4JH0MhmFiIXUxycAKDJQu2W3i5u31Q16zJYd0kKb3I5s893SMEA8GwbYu</value>
+    </label>
+    <fd-rule-group>4cd72b11-5cfa-9e34-94d1-42b54486ca7d</fd-rule-group>
+    <connected-ltp>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</connected-ltp>
+    <name>
+      <value-name>3TeimCJ6hu3nfMfUlnC58nTYxSgvFB0Im70AJCH06Kodwv7JSJH07AYwk61ZI2I41AxK4eLaQ1nfwmYgYxhX07tkencOhUKimh2rnFBeyRl4dbd3Ju0JtmVHJ7nS18agh4HFCaL21677hca0G3B9pxJ8w60q62GgYfVspyvjEu</value-name>
+      <value>NGkGmnhnMGYUdXMD3Gbbxq6ZPEu0aYiYEDES0N8Fm6rr364ZM7ajx9beFF7QEpGaUc3NZ3sd9TEdZA4EHeP6f0lVGsLcJjewv9bmcDAmo6rgHvMgBBnRuAM2Up6DIk15ucjGHTU6SlezISHkl43PwPRq6XWGaXLEa4cRQ7PAkV1VNI71NaQbRACXxyvHn8dx4ihUhYmBMnor6vsLFjWwTyliYQSmYXL3f2PwTc0xzoYFUrizCfYnNjxE2h0</value>
+    </name>
+    <administrative-control>ADMINISTRATIVE_CONTROL_QUIESCENT</administrative-control>
+    <supporting-pc>2R5erUokWKz4s0L4EN53eq9L7fIYL00OS52bRjvN3WSvXDstipxwHy9GOSFzSFfCCaOltb1w0TUXomiGDH4lgdT45qvY</supporting-pc>
+    <extension>
+      <value-name>2voVtXws3xEFAzfx2nGX7ktIs96vZs3TYrHjhdLkCiRcJ7JLmhAmB34V42rWvuPlWoEdCipesgjbf2PCcpYFlUBhOUdbgVwcj3hVdy2FPlQWfFyrXoZaasrZmF2CAzHTuYHHpJm6W42bKtvzRuJ2WaTaPVMhml3QcKpBlLH9QJkscP1WbKQZMB9CwOLL9Otdq</value-name>
+      <value>ODwvMe77ybOz7SbPRYq1sPH5AIU3WkOKYd8Cr7J0iqriiv71lyUFnBKPkEK8RrSHESjXZVPid9An</value>
+    </extension>
+    <embedded-clock>
+      <local-id>Pcvg6m5goT4u2hBlkAc</local-id>
+      <lifecycle-state>LIFECYCLE_STATE_PLANNED</lifecycle-state>
+      <label>
+        <value-name>lxKtG633wpWUyApP6fLWlTS9YSNp4Wjhl3LU1GXq6LcwltlsJ6gWS95ITL8Pzr7NnKHgiwGohTUCm8WX6dM</value-name>
+        <value>eJH7uHXW0WJnyiEQGk7X51rk1o98tVYHFxO1eDXfryuZI8IolPdqIFCKVMKgHAXm8Dge9dlAEQsmY2D</value>
+      </label>
+      <encapsulated-casc>RTH3lfrYH1Y2LVoEI5aOa94HQC9nMpvDi4Gvk7tT1rVMfcjPhtDrCH0kj9H5ycBIh9dt9zea01W7d7PmBsN52NidOZbm4MWdVaG4JU6BV3B12qnvK3BEITSxK3LGHITuKrzldFO1Ap2vHh0kktYVeQsZL5FkNrPpSgK6VzZoQ1TqaLKnfAitjCk4H0pnj6M3mp19Q0xGTiY44IrbbJEudZyURPh2VW5hl7r37QJ11A5Xao8lZ</encapsulated-casc>
+      <encompassed-clock>Rwgnn9e01Gcmg34XbvR3vQFcvJqNm2k5ytsOCyOwf0SvVXk7k3aPUPUprc5NfhKFK4lfD9LK1D7Xss4Fv6mpOg</encompassed-clock>
+      <name>
+        <value-name>B5vy2GO21NGRR47Qq46HX230jwdD6pyAm48oKXiLCRuuVBcdyaUvcPnvlB0kSyUfC2veROSmxmIsQUFo4sLgh1DDuDXebJtGDRMnxEJ4TjwBd3Z9vCpNvUiZx7eAQz8tqVQPzrTkKhVPlMYIhfvM9FMGMS9urhQKcyzE0lYCCMsPyiyPyVCHtgg78pCrGkbLSDpKYffs1HasZA9pvL7YTn6TEAlcUoXE1epRmEcndmH4WRujutaoQ8hmIuyuTo</value-name>
+        <value>MCpEY3Qe84V50Ezb9</value>
+      </name>
+      <administrative-control>ADMINISTRATIVE_CONTROL_QUIESCENT</administrative-control>
+      <extension>
+        <value-name>RQCrn63aSNqAonOoT4C2aYuOOO2EQFQzok1Dq4OjSeL8uzonw0hG</value-name>
+        <value>LmwAo3iWTSc5TPvXDGHKjH6T5lhYCXOfbdPrg0n1Sr6DhtsMa2otJueHPnxrcdHnqoPGg4H8wNDN96rj8QEJkLi28Pll32Itjp2zuBA0hdFqbYJbOfV10531VoeYjWjuedVIPnA6B7wE57QMeLF7QI8DYmt9aFvoSrYHOqFhp3WnaM1ppGw7gwDeS6gULLbw495TsL2ROY6ZC7g</value>
+      </extension>
+      <phase-aligned-clock>AsuvU4rbRSpT9HFIa7buM3wiMnUvF4TfonCij3l3NKWXjCxmJIQvEeGqCsW9wHoN415fWriK3fzfR6BsPrXtGvLaYzjmgz9cs7spyK1tRAIAGj2nDSIjnull3EIc5JoyQQPgtQKkqsVYEPehHWsXiNaejSqouOOkxDB0tlcLFZKbPYso</phase-aligned-clock>
+      <address>awa2uqOgbZMg1R1tu3cjUjaoqiaeW3h6rr0VRO3VGH3Hr4aVZm6LF826qccm7tkyNctwTprz6mgxiitaErVcAXa09mfgPzGCE21xrs6xHe5Zwq</address>
+      <encapsulated-fc>
+        <uuid>75f65109-42ef-51b2-6800-ef2a5963d91d</uuid>
+        <configuration-and-switch-control>A37tAcsysISqEqPIu2G5ux0BZ0ZoAwA2rHn1LPz5qkv4KlE6nkbJRblJ4cZwIzr18O3UwuZWOnSqIowXIzyrDL2HX15xAwzBlunJQexxBpXbNm0nVzGykJ7aKdHdJgOWK3Fthc0TtXW8jXv7o4FANFKxSsKBIqqlt5O</configuration-and-switch-control>
+        <local-id>QoP9t20r990s4Dt8JlZmjuSjQ70DT9gBxXKSZDj1MjtQPOYq9XNlkxEawFOpOWSeUC6LfiMTt8JaWABYpgjJNXMbCssjokpiWn44xIX1Qz3F9EDyUWazLWCgo4zMoYXddT9LtYEcxHRymmZ8a9AVXcbl9CZxsOCGzLj3KXf9EYASkz1mAthxxlKGXB6iqIYZu9U661fKZPDbgwxQRHfo2ZXRt31TLZK70Fd6GlRy2mJjKh1t</local-id>
+        <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_AVAILABLE</lifecycle-state>
+        <external-managed-id>
+          <manager-identifier>2PX4ujSv1lzW9ekmoNmVpJWrSx1zC60FVQBh9tE3O5RQkbcIYzwgakzU</manager-identifier>
+          <external-managed-uuid>stuzm1mcvEdYagFg7nAaza10Gh31QXTbrfKNh6ZMC4CNl93koDvYFwQmFTfnR8yafiXwhOaTSFG5GJq5eNVUbL8QxndgnMqC4f1dVb7FINLpp3mDQhp1UxJjMWz9IZMFeNS1QRHzFsQWncr5lRY7gHr3D04e0QL6Dv8mnPVU9</external-managed-uuid>
+        </external-managed-id>
+        <supported-link>DDkMP99Wxdt800SqSc2mV</supported-link>
+        <label>
+          <value-name>WTji8IKuEpyrymOcB674xD02DC8N86h4ZAn0jZuPo28XgW9JU8NsMNupqC4yImvAOKA7JWOZQXO6LYHG6u0Kau9s6e0Gsn8g7AgIwWAeTocxeT5dg5XqzZSx5Kdx0eNZOVAdSarDqw2Fp7KxcHXLyHi</value-name>
+          <value>koakCQjqLTDvVX1mt31KbDinc79LPjo9HztbhECUq7ql4jHxmAaxdsVqzW3o7rpPSK09pu4PCm2yFK61c8riAeI92Lq94PYXsR6Rd2yPgAoVcmPpu8HWeh5gUnpY5gVxZUgcOO25giStwzSSzzONIL3C1lA6BovsaLEQryNHIyaeZ2YztMe3qiFrv8p6oUqyx4gYD4xd</value>
+        </label>
+        <layer-protocol-name>LAYER_PROTOCOL_NAME_TYPE_ETHERNET</layer-protocol-name>
+        <fc-route>YRTglpApHIZIgWbao2uQYI58v00pmfelY7tjo3JXEAyMoJWMDiut1ACosuNPB1az0DLgyme4WMRknNY06tmZ3Ynnk3cWWmnXR85iujmq5dCk1BlZWHQRx5eJ8rx5FVUx3ZPyb3Q8hltaOO1KnRBMWPnX8VUOQGdTxUjIX2R6ncg30hNf0gTP5gM6byMT6RFDLYeASXH79Xa17X87d1Wb9A9d0V66MLCpCIRmxquGgEznuzmzsbKBDL</fc-route>
+        <name>
+          <value-name>DmvuZCvEIBc3kK5ymoaDiDtrndr3OVNj9aO8EbEmMRpZtnxPLIkVlFmISOEzBrKKtyL7Jpmo8Dnu0MjEmwzIbWiWCW</value-name>
+          <value>5f7PAysI9SWpSzMmAryeN4Fn7ty35mi2CiK4QcMR4AhPaVbCmJQ2FnpNRXIOk1RObBSTNxKK7Tr9PCL3et5TRnGIchwwafclQXewuQ8tKzDr3guhKs3tPBb1Szq2PufxrlVNcV9OmMfqUBzE3C7K6aEY</value>
+        </name>
+        <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_PASSIVE</administrative-control>
+        <supporting-pc>M8OROr1uPxZabGjkuRqQRqQBIJOL5B6JJUspemL3TCd4jpgN8GvZZmAH5gs2RqDsl5Rzjuuc7I8qZp57XBYWPqEMHYGypj1CgK3AfxEm7NE64B5143QTumFbklBBwC5Nn8nuy1QFGmECXJE2FmV1IBc2ONwliB0xCn12gJHP5d</supporting-pc>
+        <extension>
+          <value-name>IstCi2Y591nrzGWH5U5RcvggL6LHDZbdjFIBzyyIrV10tPHqBE9N9pWNnHuTyy6R5GtE6TfyH8yaQ8BrMC7W23JhC5abD92IHnfO9mmQuU0c2tEP6DD0ye9abkdPl8p2vEQEScmfZnrTI5AGAdG8jQbv2ocnwBp288y0cVfba</value-name>
+          <value>5KEFr7LZf4HqrJPDYlfgffoGfAtnMv4JfAgGHTyXQffhZWVPa25phtXo4iLINHj3irBZl1ObhWk8S7X293kio9HkskUf2dacFE3SFS3WGn4qvUtwPFHdOgygAkoCyyO54SXKCSya7vAupV1eAAjhQJxq4V</value>
+        </extension>
+        <service-priority>-9223372036854775808</service-priority>
+        <forwarding-direction>FORWARDING_DIRECTION_UNIDIRECTIONAL</forwarding-direction>
+        <fc-port>
+          <local-id>0xs4BkG5OXNDUF3sOVAmLrHyzR8BdhzdGTiidQfTN3xAAAUonuC1NbrnVzY8IplpivznmOg1JFBb7nsnS4ox8PU3gK3Z1gojMPy0vP17mvimSKJCH72PWWK4zN3A3jUH8kHE1BLoY</local-id>
+          <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_BUSY</lifecycle-state>
+          <logical-termination-point>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</logical-termination-point>
+          <fc-route-feeds-fc-port-egress>5yZ4maCHWSorFB0VTYqfE2r9I8XN4e31MV58XzQLj64Yz4MlUcAq61sP2hCYwyZilWjan1VG7ZxzVjUIvm0CfsjhCNf8d6iqUBAhCnYCevb2O5CbjCFyXQQzE5zR4RaYtK8X06retC89zKkSfSj4I9ve64Y2V81gS96K7xZA2ZJtKVeRNxVoGqCEmAH9AIilJo5QVWiXW1jyWxpC4c0KuugQXXZxx9SgxYYlM8aI9t8</fc-route-feeds-fc-port-egress>
+          <label>
+            <value-name>ZPX2NWeuySskr2DPOnmH9LpWdLP4IX5AEUCsJIWhshtUbZBRmYzoBYcGB2KbRHLvtnPcXEmqVPkYGVQ3LpjefvMQpo18XFEr2lvSZRiMzuL7</value-name>
+            <value>B2VSl1ZROH8cAh2fVta8Y28IcU9GxgX0jKSwMJnAqwETNG8A1aA04IAgvBWUJMVUoFrapGKH4hARXBjZLURQujYRMNMvrzqPeJ0vpC5u</value>
+          </label>
+          <selection-priority>-9223372036854775808</selection-priority>
+          <name>
+            <value-name>KIGtdnsfcg</value-name>
+            <value>WkCBodEHZeQjVmlo7Jm2lXIGa58p9gsXA5qYa5y9bgs6CFnBgJvBye9IbhZdxk20htQrqosBwUz0sWBIy7k6dtPgDGl20o29RTA992KyPjyhg2ZO1bM6xtm2aI426ZcPKMYLHAjoTSx1UoHNAuTZXf</value>
+          </name>
+          <administrative-control>ADMINISTRATIVE_CONTROL_QUIESCENT</administrative-control>
+          <role>EGNCkq6B2OlplLLT1pkoLTDllOXXrJDXhiAuJG5Dnq2I4Fu55OmIIZ33N1S6Co4TGwnhclVzDPaHvENss9a2866N7QTB6PuFlKWq5RZIz1q4x5o0eqUewS1vJM6HCtmPdjfa27St8apGfNyl6krCdk0O76vBrSqE3yOXFzrFBQdRwL4C6webQ6ZP5uiweJ399J7OiytUgHDMkzoi5vtOBkvGH</role>
+          <extension>
+            <value-name>xdJ8pAMbruFCspo73LyC3oIMo6cSbGMILnJaXnlgRTSbi8jdTRHX7pJvnNgyl297hShefDmYoe1GekL74s4bJGz7tPFPJGO0y56FAsvYyxwMRhTVBQZloysJnZq6GeY6c4EMw9D4G1IqjBdUjc7HKzjZrJ57YV5aZJOnTrjrt1REv5qGhygUZzTqiRpgMniE67</value-name>
+            <value>RqdbT62ptZQa9gq3fZOyhFPqkcIQbHJU8O5TV0jgZ9q8pQ3wHS4ZpUhBYRr1z3WzRTsETLVLMdL34PALHwCYiLA9D1a4W6vO0XkLB7wflajhZL2y9xwsa6BF0LJOK6uC4PnxWMM9WXqVAllKKR4UQxAIaboUiTweIMLwypymnY9Xjuz3dDQV</value>
+          </extension>
+          <fc-port>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</fc-port>
+          <fc-port-direction>PORT_DIRECTION_INPUT</fc-port-direction>
+          <address>U7DNERniuLQUjc9ilYtHypU37Q6plrS7qwU4fheK34Ee8FolDS239X7gFdFSwp0WVUT347NZ4j5cYuytmsxnhEDWRiHnHHbvt4qpcdggomkeQSH4deruS4jBe0QNz2aU6A</address>
+          <port-of-internal-fc>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</port-of-internal-fc>
+          <is-protection-lock-out>true</is-protection-lock-out>
+        </fc-port>
+        <fc-switch>
+          <local-id>hXa1PVlpkoV0kDiPP9Co3y3hyWeKHtHQjJS0wdpRudRGQ1vGb7Wey0v6OBQnWpe7068xbxgxK7dt1B1cAXq8PN6DoOTc57k65sv8ZLGCKT5Lu6X5Vf5L24giS9vY8PW5hre8cUCWNzAaxx7tN46H8e0TovJocFutYIt2C6Qhxqj5YiqDnwknKcg0zRhLoL6mtAoXy765xq2nIs05Qdltht</local-id>
+          <configuration-and-switch-control>TevHlEzq5DWL3LEM7ZAEuEfP3C0LhOT22gCfNbGSHuvKg2of1YUvu1cxEcbNS4QUcs1ZvzJ44fOchcri2dFwfR4TV7GN3ozfIAf62Ya6dZam3BE6Pju42qPXxnCAMbQmE5sGVDE1COnFp2D6d8a8yZ56fIy1LonplQXhlBiXhFuzz0FF8INyzSwOs5P6l5nHNlQ8O0X6xjF7jcErUr0ubwiwt0CPXZoC</configuration-and-switch-control>
+          <internal-configuration-and-switch-control>6K16zZvSwucI8vDzvZLU99f1L4YKkAXqcQoLPUwloIVx5qYBpBnzKCAvzr8T1Xc6FAJumfHLPCaV30okCDLmfeKGFKAyzEw</internal-configuration-and-switch-control>
+          <lifecycle-state>LIFECYCLE_STATE_INSTALLED</lifecycle-state>
+          <label>
+            <value-name>SI9CgaAIcf3lXF9pKSaCDdgPgv5FqWKixLMFVfn0uidjXmJAeT4RYkz6QEL8svrR95w4kLWH3a0TwBlDmpukKVqsrbAUzTDIZaEbVBSZLTK9u5MRu936</value-name>
+            <value>myox1aYMNyDXdPLGHCjsmsPj7yNgBUcXksnlCd8qMLfZsSx2mQuIib1hJHxdBC2V4h9zv9Z9M60fRxhdnDOxPHP</value>
+          </label>
+          <switch-selects-ports>PORT_DIRECTION_OUTPUT</switch-selects-ports>
+          <reversion-mode>REVERSION_MODE_NON-REVERTIVE</reversion-mode>
+          <name>
+            <value-name>RlKCJnJ6IbmFJtMGT4JgMb9K2e5nvyQmLtRvIstrDH6e3KUWOv4tzddtraQPAybm12RCmc3ZT15OESKsnPVWU0pea73LG6Zz1IbnUenF8kuMc66ANUoIUGWXNZAt5z36h6u3lJAl34783dIQ7YqUEmJkdjNbKIh1PDW2ewnatmioz0ezQFlnT4H7fmiZXrSMXOGbc3lxhDVQv2heHuBsqarFwJ</value-name>
+            <value>t3o704F3hApORUCAiERwde7FEh7kFIQ1L78DbOHkgY18KDI2hryuFF9cO8wuRevulv0xbzRsxSA9nacEBK89ial6iRs1XPobloIwXrQmcqvzAH64k6dCgyArhVseKQpX6Zm3jchnvNO5mU1G1ea9MDAVyV2aDr8KjuFuGXR3KF16s2FthPCVs5RS0T3Dc3nnx3R</value>
+          </name>
+          <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_PASSIVE</administrative-control>
+          <extension>
+            <value-name>oevRQyFNPOmcPdlBblQ2SZg7v4FcDuC2I0Lryqef6skVFFpQT7LL7TTuPqGsUamCa83Iy9QxBak8HJRARCeYvZkcp0Eja1Nd9JVzKD6mNjmn2dXTPbJc23or3VC6WqjX16oLCnZhGmEIzCChFdlIhC9cxMal4liXkGIW3AdBWSknmOw11KJamLfLpp6lDgiXOSTKs6lgQFwclUefEPp0sEDRWJ4zZmoG7hqrfLI6j6iE0oTx6bpyH3ivMm4</value-name>
+            <value>BkcIBC1RfJPyHZ5AoQ7m1wUBz46ej3KUnWuRyvAN7peOobgE1n0VUNwlRuzaxbWN7iExOedNvjtLuKqv7iiT5OfPbGRASOnR6ThM7uzuN3ghFyEMQXGODNvOtepd2E51yeFxI72n2awHIalq7T6DGtj2II7Cf4vNi3c0a6f48LLQW69VS7qyBKsbkANzEbeXerPop5syQ</value>
+          </extension>
+          <wait-to-restore-time>-9223372036854775808</wait-to-restore-time>
+          <profile-proxy>p5e9y1cJubWopLG66D90Sdif6VHI9EQyCWz2YDLkOzA5c94aMd2wilEogl6hSOIuDhwtN9NBAgzMpDObIQz13dpcrotj4bFHlba8cQBM6aqvF6ygW790dy4EOxPTJusWxv4JlxnjINO</profile-proxy>
+          <control-parameters>
+            <network-scheme-specification>pueFpdwx7yOZSbwKIZRyG10NzEv3vHaU4hzluXStnGkfRQRAIA0ou04VFzY280W4hopDl96JPiQz9I1Ja1ZE13zyupAvqxrzVRd80bJIuAhvaaekb5Rc1iLvIlS0Kkzx3EG3QpDcRMH1WNe7S5cT</network-scheme-specification>
+            <hold-off-time>-9223372036854775808</hold-off-time>
+            <wait-to-revert-time>-9223372036854775808</wait-to-revert-time>
+            <reversion-mode>REVERSION_MODE_REVERTIVE</reversion-mode>
+            <prot-type>he5Lg0GggTSTE70SRHpt9Q2NmgTCQmSZAXCQXb754RYIYYtHxKaGA4lXcfr2BbT48oUXzT2DLSdBJyjgjlPLqaACp2x15i5eGRbfD6SoYYZHwaYPwFtOP3i7XP0305hGOkWrqGHpwz63BWK7BdNjh6q6Nq9Nnqu3Liv3Q4snvri7n26R8U2pSsvFSxt7XPaA7FEPCY</prot-type>
+          </control-parameters>
+          <hold-off-time>-9223372036854775808</hold-off-time>
+          <selected-fc-port>
+            <local-id>TgwzN32F03VqRZetIvPBV4vkllmsdTq69PxXKruKvp2eggHYMwAzsXTOj88o1qm3fT0ZcuBHMEV2Mu1q1t0lqL1BT9ZNAlQH6Qzjc2SYGGTlaUL3fDpxhq92s0P2mFBsn2Ds5wiD4bYeXCac7zKoRLrjLgd7WHsbJ5DOtWkp7aE5MG9U7LiYwBaiSnhG4JRGHnm</local-id>
+            <lifecycle-state>LIFECYCLE_STATE_INSTALLED</lifecycle-state>
+            <logical-termination-point>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</logical-termination-point>
+            <fc-route-feeds-fc-port-egress>Lz9ei4rj7FRotq1q5ylJeyTjjzt74AZP104k4nD4VmsgMlGJT1k0r6bLFEKKeJrgJnAFL5Jyj3OYhuz2nU2H06kxK49RFBZgYrNBwp1HkPFBj7wH1qgTwAq9EA0b3ZjTq6nOvonQe3jp2P6VgeOEO6NkyNvtEOnWNKKa000e3cEXTCS1RyGxwtS59nyN4NKRpm1qmUwhY2eRx</fc-route-feeds-fc-port-egress>
+            <label>
+              <value-name>ShEAJbwucrLZ1pG2vxioEQh0i8rnQT6BaD3LOsf1TT0MayHF5R3BzcuRlV63OdEQQICw2JpVChzMPg</value-name>
+              <value>M7mgzzKqMFxPlCm3kWxQYhgLLxkyftRTs691xLkjiR0DtmzNa6v8nLT1b6zizib1gdVNYfYh6ZMrdl6ostoH7iIio9AXkDQAQLgPSeYQ5K9bYfriJPZQ7A0nBscV5VoWyEDrKthQ5rT3ykl91dR1FRogjt4hosdW6IfQbxygQjcoDxyxChy99OqkhuBx</value>
+            </label>
+            <selection-priority>-9223372036854775808</selection-priority>
+            <name>
+              <value-name>jGsiRYfDEhpL2ABzbLJ310B5ClLbI05TGx3xnj3TAkwuU836LM1MFvShQvkqvpb4Xetcpw6RRumDuhJg4D2B8MKYa4gxtrBix5vXttOcP2QkkrAg4uRchB2rxaY0Bsj1xGYS1E5QzV2TeC9j7SvglqzSApS4R35gBV9Cr</value-name>
+              <value>l01nT7SUqZEO7ZeGRO5CKXxP51CeD4kQ4d6QlYCDPhrW8FCSmzm6oTOuUqAqmN8j0e1dcDR1MaXVIrF4T12hUIDH1eZn17yTmzZy5Is</value>
+            </name>
+            <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE</administrative-control>
+            <role>YXgr38iRHk1tiuFt90T5Gwmd2dFCjzz9oPAsXSbw440nyxQIpJN681b2fQwqh6zGV98L2jh6n9tOzboYV3WV4ZXbItBZraFfkF0eQ9c6byUKJiAwlprhoot6K4Yb7vqjbixTsJZD9TfT3Ppg6Ryv71tRXrV4Xdn0wMTYoLBxwQqAxQQEzo1GhuqfOdbLqzDWloUJ9n9G5z8vhY1Qf2pwwHDcUPXkgs9BRVd0bmygNGD5FEVMGca5TO</role>
+            <extension>
+              <value-name>G</value-name>
+              <value>UoJKr8bIYuUf0jFxOW5X5Lfi3JLAxsWrIy4ay7KxBwEtHj0vfXldJAnEc86JAV3bt7d</value>
+            </extension>
+            <fc-port>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</fc-port>
+            <fc-port-direction>PORT_DIRECTION_OUTPUT</fc-port-direction>
+            <address>l4b2f3qv1LACdX</address>
+            <port-of-internal-fc>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</port-of-internal-fc>
+            <is-protection-lock-out>true</is-protection-lock-out>
+          </selected-fc-port>
+          <switch-control>SWITCH_CONTROL_FORCED</switch-control>
+          <address>AVp0mSCO3XgIwVTLS74znlEPTvUa1QrBLIu7A6OvV46sRZ5B71bmmPc8cYieOBHsc3rM27aX4ghV7ex6fItupFCCvUIcnpwzlXen5gk1wuWDItKY3dstK4X7QFj5WPxhFLwC1RDpdz2VVETYJdjl9gtRNEPCmmL17iv010hezb9mQVdr0wN2FgTsUIWgWI9V0EV1E476ggk63xx44c6JsR3fs0noAx</address>
+          <prot-type>Fsq3OLhwvZAI5</prot-type>
+        </fc-switch>
+        <lower-level-fc>25fbedaf-00e7-2908-fe09-07fe37aca56a</lower-level-fc>
+        <address>qloaP8JZ76ACvnvBY5UfVEEdAs84OCveXThNTSE0Y6CluZWs4IzRe55Ox5SlHnsx8Jk1tYUr5oMroATkikcxp9lX66aOtCludxnGnhZkyDLW5w8oIkN8l0Xs678sCtWPSjo7tfs1L5PQCXeca1kv29X095sLqosaAIiVYKWJHDrbAGoCzI8tKXmTVOEd56oFHysFag</address>
+        <is-protection-lock-out>false</is-protection-lock-out>
+      </encapsulated-fc>
+      <sync-ltp>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</sync-ltp>
+    </embedded-clock>
+    <client-ltp>4ace155c-6c04-f585-d9ec-d6a845794520</client-ltp>
+    <layer-protocol>
+      <local-id>0DkhyDkZsty7hR3XOorifRkLOKCjpbphOByeeSdHdDGumJj27KketwR98ttpEKGllezrYF8baHxxqJzqlMEPioYjRjIo3pBg</local-id>
+      <configuration-and-switch-control>StXqdFGVUfH9CAM1iPfjpi2ZRLGHxq3iLTIZyhMkwtl8371lO8w5qq49cCQBUULGFmF5Djp1MK9IJ3VxbkCCKzLObui6g3EVpb0UuhV815IC0E9bYLNAcrpgNHe3CSQU3QOpZCxSz8uzMDKCgqclRtBw2PzFHprC7f16R</configuration-and-switch-control>
+      <configured-client-capacity>PQ</configured-client-capacity>
+      <fc-blocks-signal-to-lp>iykRcPCOX2TiLeThhIIOh7fT6mM465UoD6gQVSwKMh3xwWGNxotOnIAl4eh2j3rX9zFWj3G5lBuRqawXqZDNH</fc-blocks-signal-to-lp>
+      <lifecycle-state>LIFECYCLE_STATE_PLANNED</lifecycle-state>
+      <label>
+        <value-name>pXFCY0iS4J1TybcMmH14JkVGM54mjvOIkmkieu2ieWbE7njuXkqGEdfjibxBGmj0IwbW056619L1xWvmgVUM015idvULR5MrBPf</value-name>
+        <value>UlsOu5PT1kfh724731hgwb2f9GGCnV698zXDEMwyYEP5GL4BFmS3pMbykR3zF9IFAGi7sHFjdmgL0lmxz6AQKLh4vkv2teHWUS3erAxEOOpO1LlsKOiurzrWTWQfaybWi63JyAnmgE3hhgJ14UwwtPkfLbuOBxKTDNu3gRpwnkGEBhyFb43xLoMwrgc2NPNiuhdK0C9nXHTqYr52n1z8pdxQlJK0yxi3OvFOZG3On</value>
+      </label>
+      <layer-protocol-name xmlns:x="urn:onf:yang:air-interface-2-0">x:LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER</layer-protocol-name>
+      <lp-direction>TERMINATION_DIRECTION_BIDIRECTIONAL</lp-direction>
+      <name>
+        <value-name>aIuHQFSp5pQOQ81CMQN2H6M0Oa45LkBN25vLCf2HESnm0pRF7EHOClPivLo8XZOSWbvyqx8WiviiM9PUFpA9Khs8UI8SzWCv77VpE3lWzE7dFOZddAmYJGYEg6oP30c278sD3NsC</value-name>
+        <value>rIRfH4l9ibTZ9pffNXaF15E9x9dcBHoUpf2Zbn8tyTkzisGXpRCqWgslqxxT6NOw2In55vrvpL4z5Cxmt1Nhi7CAE2tKP98KRvHOT8baM7JRK865aTnsSR2oLn0tp15gwMXhN8rzg3i0bo5l9kFTczhXPiqejvmHajZXsioIly</value>
+      </name>
+      <air-interface-pac xmlns="urn:onf:yang:air-interface-2-0">
+        <air-interface-configuration>
+          <auto-freq-select-is-on>false</auto-freq-select-is-on>
+          <tx-frequency>1918523254</tx-frequency>
+          <cryptographic-key>AylJKXUe3yscsd2oSfkeVkyeFdCPqk70KkBuhoIlWbxggzF8HZmCbUIR7lGpxFih0LMh9muYp2eFtLN2C2FOWfFWAddZLvhL</cryptographic-key>
+          <xlts-threshold-cross-alarm-list>
+            <level-threshold-second-kind>XLEVEL_THRESHOLD_SECOND_KIND_TYPE_TLTS</level-threshold-second-kind>
+            <granularity-period>GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN</granularity-period>
+            <xlts-threshold-cross-alarm-definition-number>-79</xlts-threshold-cross-alarm-definition-number>
+            <xlts-level>-3</xlts-level>
+            <amount-of-seconds>-19860</amount-of-seconds>
+          </xlts-threshold-cross-alarm-list>
+          <air-interface-name>1vsbdRSpt7d1O0w5ckcYRaY1zj3Go9AqF2BSMl9fsn89nE6rRipAlgtUroAQx2gcXRXJc6QxlYGIvM2eXjOazh41FwR4qZhnQ6YUcOryFZ82MagBu4LVdHOKdxODw5Te3R9gyAG5sO76RfHdbs8o1X0emOJTMC7Pmg5UJLZbsYhb5QogaowbdwpAk0t6vsWRJTDkxunZkw2</air-interface-name>
+          <atpc-thresh-upper>-3324</atpc-thresh-upper>
+          <atpc-tx-power-min>-15</atpc-tx-power-min>
+          <maintenance-timer>104077674</maintenance-timer>
+          <problem-kind-severity-list>
+            <problem-kind-name>dKw6mXHRzxE6orKqnGLt0OGG6eAiuxwzi3Fw0fosMUq2l3sBBdWtTvaZJK95aFxkAcQtreV50d7e8zPJMDdF8nwJZFP9detNqcgKq3Pj9Xxhwm1bZeI0t7JsMquZEPNX1VHkZoD8dapCoqNfwnfZuZkhhG8WvNTpJsJAImIWoZyMid1OA9G500e</problem-kind-name>
+            <problem-kind-severity>SEVERITY_TYPE_MAJOR</problem-kind-severity>
+          </problem-kind-severity-list>
+          <problem-kind-severity-list>
+            <problem-kind-name>jSHB083EJd2qZi1VduGiHPyk7mhYBiOM2no3vjzexBEoTGc72ShJzP3y3dpxn5jpszkXTU4inIG9gS8jDp2c6YL9b2Gy7SPz</problem-kind-name>
+            <problem-kind-severity>SEVERITY_TYPE_NOT_YET_DEFINED</problem-kind-severity>
+          </problem-kind-severity-list>
+          <problem-kind-severity-list>
+            <problem-kind-name>i9pgzjn6M8UPLWmzKt6G4bUVWh4zqZuJ1LRA4eGIfsp0gDr17xH3ItYxL363UsEVdwvhC4SRwhJNVaG2HfXiJVHmQNpLg4Gls4DW0nGwEpbrARl97ijI60WWGdHW9g9BcMqc16IGvM7Xvl7uDi4Bj0yZe</problem-kind-name>
+            <problem-kind-severity>SEVERITY_TYPE_WARNING</problem-kind-severity>
+          </problem-kind-severity-list>
+          <problem-kind-severity-list>
+            <problem-kind-name>nfWRrBhDCfeaC0aAnvzS0ROC2P2TV1yihn1IQamkpAv2sxuPU3zUMooH5is0k1aBgcj6mFiM7NGzcap65QTRe9qbsTbMMmf2qy0M6iq5YYFa8W95M2XTbf4v8g9UuoOU</problem-kind-name>
+            <problem-kind-severity>SEVERITY_TYPE_NOT_YET_DEFINED</problem-kind-severity>
+          </problem-kind-severity-list>
+          <problem-kind-severity-list>
+            <problem-kind-name>e532QsDa3dTpVHFM7r4klTMmzJmrXvZct26jnJuqWfIJWnvVHs7UlTgMDu5sZ4wkYCEdl0E97eK3B8QaAX4VQczlGEOyAkSqPoE2oacvoWqR4g2E5YrWbS9RoXhYaahZyV1PX5cd2D4YLYvRPOF0HOJXMTOO35FtSGaPEnUy0QwDHTuwI1ohQZ6uSUiNZX9Jvjq9ykHqb64SRqgrsEIivPMgBW3BT4cggDiOXRf</problem-kind-name>
+            <problem-kind-severity>SEVERITY_TYPE_MINOR</problem-kind-severity>
+          </problem-kind-severity-list>
+          <problem-kind-severity-list>
+            <problem-kind-name>yN7RSXPx7QtgV8aK1e05J0dTNz9tlYiULhDw6k3d2pmYxwAqKsnmlB70agtw7LiSUNg07k62BkS0QsqtNNH8gO8j4BPbfZW1EcUDo0FZkxZ2ShnFX4FdSFwP8d0f4OhI1bmh319fr09bixQftnke2R32WVi1CzBvCXMxRVMaWVl6k3lOqx2kg</problem-kind-name>
+            <problem-kind-severity>SEVERITY_TYPE_WARNING</problem-kind-severity>
+          </problem-kind-severity-list>
+          <adaptive-modulation-is-on>true</adaptive-modulation-is-on>
+          <xpic-is-on>false</xpic-is-on>
+          <expected-radio-signal-id>
+            <numeric-radio-signal-id>22094</numeric-radio-signal-id>
+            <alphanumeric-radio-signal-id>NJdsw4QAjUObpjz82jW8dGLMC9k6y5UlH7Gd4wFfitizEJHH2vH7csTOC5N23zfCyVHurmJCI1bmCTVEoDMsXxhzvWtqvJ23EJyYX9Ax3LMFwHcNcYfanoBKk5aPO4LkFjivkS2nwO32ofPA5XCkle5Gb7nZ48jJjueEm9</alphanumeric-radio-signal-id>
+          </expected-radio-signal-id>
+          <atpc-is-on>true</atpc-is-on>
+          <g-826-threshold-cross-alarm-list>
+            <g-826-value-kind>G_826_TYPE_ES</g-826-value-kind>
+            <granularity-period>GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS</granularity-period>
+            <alarm-clearing-threshold>1083721612</alarm-clearing-threshold>
+            <alarm-raising-threshold>495817016</alarm-raising-threshold>
+          </g-826-threshold-cross-alarm-list>
+          <transmitter-is-on>false</transmitter-is-on>
+          <tx-power>-33</tx-power>
+          <loop-back-kind-on>LOOP_BACK_TYPE_IF_TO_REMOTE</loop-back-kind-on>
+          <rx-frequency>-2104348067</rx-frequency>
+          <modulation-is-on>true</modulation-is-on>
+          <acm-threshold-cross-alarm-list>
+            <acm-threshold-cross-alarm-definition-number>43</acm-threshold-cross-alarm-definition-number>
+            <granularity-period>GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED</granularity-period>
+            <amount-of-seconds>-32236</amount-of-seconds>
+          </acm-threshold-cross-alarm-list>
+          <mimo-is-on>false</mimo-is-on>
+          <power-is-on>true</power-is-on>
+          <atpc-thresh-lower>1226</atpc-thresh-lower>
+          <remote-air-interface-name>mqFwObH2HYC1YX0lpOc0HHk6bz5v57UrprXeCw8buK5lz5GYTLZssbzELw1QwOaVfZ1Sw1VSL0dcXMbIx2bZdCvQ0pzwdJksAdcYf8RS0W5YIgG7aJ7nlu6mTFK6</remote-air-interface-name>
+          <performance-monitoring-is-on>false</performance-monitoring-is-on>
+          <receiver-is-on>true</receiver-is-on>
+          <alic-is-on>false</alic-is-on>
+          <clearing-threshold-cross-alarms-is-on>false</clearing-threshold-cross-alarms-is-on>
+          <auto-freq-select-range>38</auto-freq-select-range>
+          <transmitted-radio-signal-id>
+            <numeric-radio-signal-id>38699</numeric-radio-signal-id>
+            <alphanumeric-radio-signal-id>rQaDHpDyhEmeu5u24EMbUZy0drxYqFURn4m4lSuvoRJSO6USKGWwyuo</alphanumeric-radio-signal-id>
+          </transmitted-radio-signal-id>
+          <encryption-is-on>true</encryption-is-on>
+        </air-interface-configuration>
+      </air-interface-pac>
+      <administrative-control>ADMINISTRATIVE_CONTROL_QUIESCENT</administrative-control>
+      <extension>
+        <value-name>eegcgDdHMuUbkfU4fltpg9MNXDuSsRGy5WCdAPUejGpvNbrUoUjw3XkSBGCVpjtnf6AHNnVZV</value-name>
+        <value>m</value>
+      </extension>
+      <termination-state>TERMINATION_STATE_TERMINATED_BIDIRECTIONAL</termination-state>
+      <address>AP3wEfgfVTac4wzbu2T9hG8cLvN1bjpD0s9EHiMu3WH7k8aGa3QrCQEndjgoCF2u031zlN4gBDnWLyCWtkf5bLko5sFz0H40C5rQSn6l0mhEUMsf6Hd9lpqqS5ZKEVCgS36Cj5Ybr7P</address>
+      <is-protection-lock-out>false</is-protection-lock-out>
+    </layer-protocol>
+    <ltp-direction>TERMINATION_DIRECTION_SINK</ltp-direction>
+    <server-ltp>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</server-ltp>
+    <transfer-capacity-pac>Ekcigz1yXA1AZkrVmniN3S1</transfer-capacity-pac>
+    <address>jwmM8b6NO6wfZ5TRgQJby1gHtDl224adAoZIAYng4Lv3QgN76oawprdK4qM6uOb4dbFF92VdGq9wGOvEcGbt7gd3HR2bGd8ToNypHlDnLEMjkhXoX0RWhW0YN2</address>
+    <peer-ltp>4ace155c-6c04-f585-d9ec-d6a845794520</peer-ltp>
+    <ltp-in-other-view>8c0b5632-f6b1-1b90-dc8d-4334c833133c</ltp-in-other-view>
+  </logical-termination-point>
+  <logical-termination-point>
+    <uuid>8c0b5632-f6b1-1b90-dc8d-4334c833133c</uuid>
+    <physical-port-reference>371eda64-3aa3-f78a-2711-ea75d567381f</physical-port-reference>
+    <local-id>QP3U96UL1W4DY6Ivmukw41wQCnD5PXJFEMsNSmqUamp8t7DPtXdxQJnsZTqOQ1lmON9G1rs</local-id>
+    <lifecycle-state>LIFECYCLE_STATE_PENDING_REMOVAL</lifecycle-state>
+    <external-managed-id>
+      <manager-identifier>uGO7YV4</manager-identifier>
+      <external-managed-uuid>VaSaWW0StCdHiUV06c2Q9SIwqpvpcs3ZCV2qJ2adEfMPaHH8MJZVtzj</external-managed-uuid>
+    </external-managed-id>
+    <label>
+      <value-name>im6RrK26L0XCFLtZCeIXtNuViPMJIzP1WNKnpNl2FiEcV7cxdUmyzRtRy8BgHi9v5UKuz5x6n3ji3vI8h4HQV2zla2CKkD7hpSEYX3Xd6gv1D5aUaRCXT3bW6NyiiFAIx6yn9vA7D59g3j252w2NAdJGS9Y3PqLewjBFPbNk9WBc7vh92bWuhy21z04ojPvP16nQaa</value-name>
+      <value>jYDnX1w6VHUpYkr0Uj4aCMFkNEHvORx7H3mE4SCRro8iBzanK6pfSXzFBg2hZAgGDCczuGqVWy5pZfMBm4Qe1pMCFOTEg1cLDgkZOCML2SaT7PvtTlIULmoi29PjaT4NahEYTqBOiEHqt4Leql03HodKp23zWZeYgSO2aiQtWpLhuwvMSvPrL2baX6JT6PJezxgJPYcDgPUKmhw6Mdxp7Bz4HaPNZy2yYaaF1mbh451qfpo1uVjBoSG63nLUO</value>
+    </label>
+    <fd-rule-group>4cd72b11-5cfa-9e34-94d1-42b54486ca7d</fd-rule-group>
+    <connected-ltp>79b69572-4586-21fe-efd4-4a81a2b57515</connected-ltp>
+    <name>
+      <value-name>FbRvM7QL08rI9N4Xs5EuwYFcQZtyPrSmuCR9JzMBHebRT7GlccPAbvNTm8r3skpWW95xIK0qYb9RiP4u2UWdhB6DKpHcBY0p7YWQIW8y7hhp6lL07A5ob32VtBZ4r0uzYipy7x6eGnwMI9FQJK6VO0IhBId3AHuy0L67a4dQrBu1L9R</value-name>
+      <value>UYhIYSRsA4n2MJAEuyDEuIuVcYWX0GjUwtumllGNpVP3Ehz0H4EbN0YZZMOZkZLQkf5FADkRz1V</value>
+    </name>
+    <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE</administrative-control>
+    <supporting-pc>isvUhjeF5JiKDpydm71u4sONO0xPWDqe5V0e6fL3Y4FBteOPlHchaSXY</supporting-pc>
+    <extension>
+      <value-name>lMQv</value-name>
+      <value>RJu0Ns15HitAMhTnFMVLHbptZ4ODMjWv3jvILoOkGhUkyOI6svJ1G8uF5baRu7fpiC031Onz59UwPuC9Zdaymx5rIga4fhuxUuAVaPmfYgDGK7PCl0aHxf07n2bCkF961BTbqfjhwWX8WEKhEUQ32IapKm2WT32NFVQ539ezY3HUIk3eeTa8tcydqs2kv4ZaSP8NReePaVBK7wYmh0mKdUPDeRPCOOMywM</value>
+    </extension>
+    <embedded-clock>
+      <local-id>YvYRgSn1ffJKuWcBrUf2SF3Nlaz8xi0nNYe3IuWXJGH5uMHNGOPqlS6G2FPrYPODF2zgov503N5prEcZk1pFLnmN336TSMwpH5F5tL5oqbOJHSI2MZHxnVdqYbbIYH0FNxK8aQwATcbA5TuRTcg8ZlyYxJyviyaX6M58uCJfOUQLGcuroL</local-id>
+      <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_BUSY</lifecycle-state>
+      <label>
+        <value-name>IA7vIbiem0tmv1n7GkT28hPluOEgDlQdNPIvT0Cf15uoYRvw4hzcyoxU44bHpTMcBmzmfbB88XwYHUvLb4PBknwprzYIsLMV7lhmpLupITopNT2YPSr97Pyqox8</value-name>
+        <value>aUE97WowzSWhDczq5BgUtIVspuSOT0pVM34URsiqd6AQi99nKp96Z5yprj5cju7Yp3S9w2zB91jrasHNKQLJNb06uXaGr9EJdoSBqjczlvTnYAaAiNbYZc4t171tgF4t3W4mf8NAEGYug04rO7pFjl0ls2GJHK4DG1ZN9MoFle1B6X2U5jzgFABZC9</value>
+      </label>
+      <encapsulated-casc>PZ5w0gXwcpDF2wkNuG2QiY6lX2iZUC8Bu58umX1ynw6hUq4o6Z6oX4JU71L1wLv0QvmcsfDPDJYy13O7UVnJ</encapsulated-casc>
+      <encompassed-clock>AsuvU4rbRSpT9HFIa7buM3wiMnUvF4TfonCij3l3NKWXjCxmJIQvEeGqCsW9wHoN415fWriK3fzfR6BsPrXtGvLaYzjmgz9cs7spyK1tRAIAGj2nDSIjnull3EIc5JoyQQPgtQKkqsVYEPehHWsXiNaejSqouOOkxDB0tlcLFZKbPYso</encompassed-clock>
+      <name>
+        <value-name>g676vIE0S52Q3PVbbpMr6z9JfleGKR70P66lOCdyzgoC5cG8tszr1Ib84p</value-name>
+        <value>G8NyXTwaz8o8IEocBASJWdjn61y7XPNDXtbNeHXOIdOiRcukFf4BsfQq8px66lB4GNJUmyI4MoeDtBQ8QMBa1rA1I8ZPltL18mVuUwrGMFcf82fYOQ0HaBAKBsrOV4P3qCpl0QTNo5UwZanF0ne2QHNj9e74jOZBjoWj7IYvFTTxVgcNwjQm0vG1BF5UuWoNccYjUXG</value>
+      </name>
+      <administrative-control>ADMINISTRATIVE_CONTROL_UNLOCK</administrative-control>
+      <extension>
+        <value-name>bLFOjGN7HsnnNBggHebujuVz1n31Z4B3Q8R9GxgoRDDE6</value-name>
+        <value>MO7Xaik5KdtN6kRInHI7JpwZFnvaTB3Fh3vrdHpXUSC14mBk3brEAXE7c1h5CdCM875dGu3BeFub1XvX8OBBD7IP8SUDXoh5wma4RdFXT18MYDJ7jdAWkiLl2xQZW7Wkt7occW25XaSOGtNZGnWTxz6A7WrV3o7onvBzjDx9FhXl</value>
+      </extension>
+      <phase-aligned-clock>Pcvg6m5goT4u2hBlkAc</phase-aligned-clock>
+      <address>14gAaQzYam1qthNRKeafLjV288FClQtmMKXWsoMuLFUeWH5HO8WzjJukS1W5</address>
+      <encapsulated-fc>
+        <uuid>04bac48b-84fe-c14b-e3d3-9b827878de29</uuid>
+        <configuration-and-switch-control>j0r8Qcv9</configuration-and-switch-control>
+        <local-id>86zz2q948iE</local-id>
+        <lifecycle-state>LIFECYCLE_STATE_INSTALLED</lifecycle-state>
+        <external-managed-id>
+          <manager-identifier>MtQH0qe8rTIUltm5lEYyC3L1fGmPLXzpiiZjIdra614jvqhQ4</manager-identifier>
+          <external-managed-uuid>hz2UAitXZ6Myv5ImgrzztxBxJYP0GLZXk2KNcdC3jgBGdc3lDCV62ovLmcD2XCSawCPAPjD0z7GNjJ8OeVUgjh1xtEsi8kkxO17vkDvUCbzVNHJ1vv9GEaeZGG9OSudGvdbQQGCsJbfoKQpfdyWRA2QgIZXsla8Jnbz5R3xseERY</external-managed-uuid>
+        </external-managed-id>
+        <supported-link>63FIEg1FzssLAK0i1d6cd</supported-link>
+        <label>
+          <value-name>YrBVMxA2U65zVxIKXfJvIXGJNIsTggDeHe1lDBnyzl7vKHfzWY5wOD7BdAmtIZHpdIKRbZhLcg8XPnwDdt1168ukIQFiPfHVXjE1jNEv3MkK9JfecggboKnZt2hahZ57aJ0loERjq33rMaFRqV2PyhO1jX3tO9AZKAk9e3sw7oXLyCCZqwGYNmR7jUA</value-name>
+          <value>V2ZGujHIf96ep3ZYFCP58vVWREV2zn2mh12LdJlsLrGauF019P7acUY3zTY080mpUha70vrDW7GiEGjGoiQAdOwMzuMzm0Ygh0f</value>
+        </label>
+        <layer-protocol-name xmlns:x="urn:onf:yang:air-interface-2-0">x:LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER</layer-protocol-name>
+        <fc-route>lEYr6cgI3rukc5Yx4pHYFibFK7HcHkR3RQmP2Dp54Tq8ZgxVFeTdoXK9WjdEE4znUVcOqBMmv4umk19Z824oZOpO8CkEHT1tGda7OWlb0QpkJybJtg8k4x8c2sQBdJ4UW6TD26GUW6eywihZyhcCHkHJFpkS9gEXfpshw94k7i</fc-route>
+        <name>
+          <value-name>nK0qakEObvbcBKLD3Mz3453b39t158itSaL2uqRyVUKoEn1H9sL6pGhkPKlNSv8DFTF1boz6ajmPGfoIH1OYA5ipIv4s</value-name>
+          <value>c5x6DzhT8g4kCL0S1Ir3oqDmAU46ZoYbmohRXrC5HGhjji3lSvo9NTvfNrdEPcQ3AZUpqpmZ5EbhOeCGJSPoLcEqDRXlVFgnE3MXs9WpF7Gtea1P2JeFV</value>
+        </name>
+        <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_ACTIVE</administrative-control>
+        <supporting-pc>c3tH4B</supporting-pc>
+        <extension>
+          <value-name>nGNbNltk2M0i5ISawoWXSAw7smnKmDUBbzMZV7bPT37QLRS9gG608u7BQnl4S7F3GjUtq5ab092L1MU9tS1Be9c4op0gwFb5Y6qg3Bs4CmHv8uwBey5tHhpXHq55XgaOeB4i4weGSN419Auo8zRHRgEqyJvwSGk69ogdNuLFaPyji3Hiuq0dzwD781D0zPYI6fVTByyLgZ5y2EI</value-name>
+          <value>5ACE7fD78hZH6Xp44cXGLorTnojh31F0ChwBp9AxizfhowllJj1mHkfWJydErSw32UEr36QeF5nWCIhdTarsuGo56tBxe7tgTZzP6p3DnqzR0I4USvef3Dc16OqcNTsHT1wRjruGJWpJEtvpQCwL7IM5w4icYKTJEhsPAWnjSMUp7iGXUcA1Me6bion818JxhbmR8J2SvW9</value>
+        </extension>
+        <service-priority>-9223372036854775808</service-priority>
+        <forwarding-direction>FORWARDING_DIRECTION_UNDEFINED_OR_UNKNOWN</forwarding-direction>
+        <fc-port>
+          <local-id>WELfOrjmQiYY6aBfqp9TZ7H0yBb7SfkGT5VAx6WfpMdvOOCf6L05SHXja0q2gCI1AEB7Kqe14rwT708dM0awz0PK07MgKnacTLbv3px8Q31P41VI1XeAXWkY3Z6FmgRfU2KXr959d6R97MR8BXBzTVpPUvu8Eefy</local-id>
+          <lifecycle-state>LIFECYCLE_STATE_PLANNED</lifecycle-state>
+          <logical-termination-point>79b69572-4586-21fe-efd4-4a81a2b57515</logical-termination-point>
+          <fc-route-feeds-fc-port-egress>szXW9z1ayh4</fc-route-feeds-fc-port-egress>
+          <label>
+            <value-name>I087x6nSr</value-name>
+            <value>zcd7LF3J9dvU69WL89VsivsquSoRKHjcUwbFb7ockU7</value>
+          </label>
+          <selection-priority>-9223372036854775808</selection-priority>
+          <name>
+            <value-name>Svs1tB6zkfzYYHAWa1P6qwSN1Tr78Rf0fH2Ib0hngQmeqW2AXKyfgj29cugcdodsX7a07kof2KmsyoVn8lCpEEqI0HVeX0GU7RN6bbmdNIylYlI7GkodQOVRnQ5cQD7PuMWxXaDKK3X</value-name>
+            <value>oxH4RX9zM5q1Nnew1dlnZ9VObqqVtnwRU5ND3X4HUvAzSO5LTr9SsWyEeYrHdPqZVduQ2zpO4ZoOGtszMtk7pSLDJ4cWUCOHHipKJOqFFOmlaOVOh7VyZy3ADfppRd6qnn27btMQ984bOZ056VvXmyyZNXow2mXpJZoMk3uubyF0pxXnltdHTLGzAW5uiUL1MaFYd9s</value>
+          </name>
+          <administrative-control>ADMINISTRATIVE_CONTROL_QUIESCENT</administrative-control>
+          <role>vA2n0bzvSLctqtNbuWPsb7UkvVoP2zAy1CV2Nmxy7B1q4HBzDiTGpFSUBhCvIc3JGQLt4a1cLVCIC597n2NFzxraO3Go7B8Nk</role>
+          <extension>
+            <value-name>33435ZwnmYFRQ4AtLUxFqIduPBG2nNtjJxmGpSVLJAurw5UiZjPhU2LBwsDL7Y4IojoNbbqUMVma08sRka8e4UHselelba4ztkexwxrasFkkGF30Pb6LXNeb0kxcmtDQNSnbhGlJeyVUdYMU1SxRxL2qXrCk</value-name>
+            <value>72ARhL8XZJ3pEXCuBoolVfTz9jotNIfUKPE1tMRkwUJ2KdplBNHoUsPVDeoqWEczlQsOv</value>
+          </extension>
+          <fc-port>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</fc-port>
+          <fc-port-direction>PORT_DIRECTION_OUTPUT</fc-port-direction>
+          <address>VIWkVpZCGLWvHzJ5RyB4ZXMjD9vE2lnY3caYB2t9NhFmRgkIOVEFKjZo</address>
+          <port-of-internal-fc>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</port-of-internal-fc>
+          <is-protection-lock-out>true</is-protection-lock-out>
+        </fc-port>
+        <fc-switch>
+          <local-id>erHb2jr</local-id>
+          <configuration-and-switch-control>AlWqHZkLBTg7FwerpPWGJsDb9VJgjeTLzHb8GvL9g2gWqmfP43nNv0QxOAN7OyKf7WfNj1OAVWoljD2nzp24iTt6l959HPgHDvmXobpj7NwiiyxRQAO8t96OibP0S5zwsVlR6K26proHRWrHo7HJgNpzYerRb0fvNAeUc9SBA8arWt1ksI3Bws2myt5Blk70M</configuration-and-switch-control>
+          <internal-configuration-and-switch-control>UQmEjWNugJPhWiZRTncVKKgPet2ltGygxV</internal-configuration-and-switch-control>
+          <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_BUSY</lifecycle-state>
+          <label>
+            <value-name>Y</value-name>
+            <value>OK1kFdB6lXK3111LQbnjR0BzyvJBy</value>
+          </label>
+          <switch-selects-ports>PORT_DIRECTION_OMNIDIRECTIONAL</switch-selects-ports>
+          <reversion-mode>REVERSION_MODE_REVERTIVE</reversion-mode>
+          <name>
+            <value-name>ku9FElopNi5qnOmIU2QeVKC24jd6vwSP01mxnKW2U2saIOSuJIIElkGpwMvTanA3hWAwGoyti0D1Gnvp66WjiuIO8dzjt9mK5O8E4G7nyCg6ZDoXJkg2OYIX4a8xju9pahVeP2BfwJlvnJl63B0KsBzwLzVW34d5d8jU2N9ywuWT6hS1KKL4dcsQLnNGj0Do1Xi3</value-name>
+            <value>ru8OqUUzEVbgzgmDI4h6RXhKtGDqQG2aa</value>
+          </name>
+          <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE</administrative-control>
+          <extension>
+            <value-name>3ejXzR22XnZHqSIkvzvKKeCmN3RpEhYzwaw51q7YNYy6Igq6HVIs1dGOgx5UP4ld6Ka7a9XYZv4zEmxd9gFatdQJLWvsSIxQsHXDIMtHap8OLG1MWzOhMESpsfRcXo</value-name>
+            <value>qXRVFwoeGNnuq3n4RWS8Bo00JfSV48QuYzpDXFKDk7ZC2nGTby1MPTNy0xl4x3zvvQ1soL6IKXlMc1Fosy29rHHj62nE6O1tFUV3xTDhRYVVSAbc0eljVUCUW0qUOrflebgL4UVNKQBujMyj0LDOF7Iu70gOrw9xzijv46bGWM37yBjrfOfUVPg3P</value>
+          </extension>
+          <wait-to-restore-time>-9223372036854775808</wait-to-restore-time>
+          <profile-proxy>ndPXtsQDCxfOV1D6790a5e6fUtrbEgI1mxQPZylt5A91BMZAORKT5I0Z3kbHALJOirE90Zv5rEYUjXu7P6SMOSMR4PzFAalKBZLtQgz9Vp3efxl4D5IjXmb2bCzDEUf7M1Buh2E4rHiG7vC</profile-proxy>
+          <control-parameters>
+            <network-scheme-specification>IQOm7Zo0U5zyiAy9FYu6FM7eA3CYwvJ7dptkoJkaPLJZe99T8vRN9QTJLnIaSjh5ACqQlC02oJ2uT3nTy6yHWsrIP1SAc1FMDXuYsuTQ6NcRQzKgFaXtCgbs932d4zZzplyRQjzO6LFWch4JrTc42gobbip8JgH0C7Rkqi8wVFk7WoIfiVbkbrnmJMulV4lpb5JCfR8botakJTrTGD5R4t5G7s1</network-scheme-specification>
+            <hold-off-time>-9223372036854775808</hold-off-time>
+            <wait-to-revert-time>-9223372036854775808</wait-to-revert-time>
+            <reversion-mode>REVERSION_MODE_NON-REVERTIVE</reversion-mode>
+            <prot-type>b2g7c8QXv2K7NSP1dJeGpEOOrBF3aJ2dDbcHj3EG5gGK0vDdeJUvgIkHbRKmAFr6QEN1HkHEAfhBKUOQwAmMbylmp6ARL2XtGDufX3Lpj2SVPzMd10ZcykrPi1yV3ooB</prot-type>
+          </control-parameters>
+          <hold-off-time>-9223372036854775808</hold-off-time>
+          <selected-fc-port>
+            <local-id>my0FF60DSvJf0xHW2kJU0LVZbP20Vz79Z7OEdGaXcLdciU1ceK66nU5yJZqwqxFpEmWK26HeJUj1GkeUWc0j6YJQXaegHUFegBYizFpisIc8UiVIuV1BLKjBMxRuroIzSGKrd9CFJGGvYBdso6V2IeDvEmZ5Kzxu7hWciqS16qoW1BghzcjhiOMW2DUF4r9bAXoSn8Llq1hjCyA3CMkUs7</local-id>
+            <lifecycle-state>LIFECYCLE_STATE_PLANNED</lifecycle-state>
+            <logical-termination-point>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</logical-termination-point>
+            <fc-route-feeds-fc-port-egress>kCpDaZBMaaW39UcZv53CgClGFgBBIWk3yByAA1eCbaxlWJcjPfVXR9Eop7Z73b2tMsVet9IxbfS7R4jyj6v371jw8jw3mqo1TjfesYLD5vDWrWuLU0G21Zq2aW5x</fc-route-feeds-fc-port-egress>
+            <label>
+              <value-name>3VYICBvJJO0GuAuOHRq3W2G1PkEl2heXccyOF3qgJqWe0iUz9kvXfbQWnn9hEn7IzFp6APnk7bq7uczDw4tD7jruGBMcYLVqqkw09LcgXufrGGW5KpIJB2e9DSmtD9TVtiNu3SCSmJb3q802pAM0CS2fKgJfpu2KMP6IHIsWrERRMRM3ryW4qYb26M9vhb7VSdvsVYoeu768YKbhi7dAXhu33DycGF8qSDSFt8UXfS55C</value-name>
+              <value>fMgkeeBI9FdIRTfRb0n4xQcrGkbDpNMwr3RF9sniZASJl0AxSPtpyxReR2J9IwF9rwPsR4CQxvrK</value>
+            </label>
+            <selection-priority>-9223372036854775808</selection-priority>
+            <name>
+              <value-name>vCDaHWjKw90gw0TKqUTJojcrVY</value-name>
+              <value>IqKrVf4XWS9ygirwGrhqSbktzDF0rDL9WoAJDwHrgQZw0iUGKb7umjXNODN78qg4OIOj6nKm5CK5UELwHK</value>
+            </name>
+            <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_ACTIVE</administrative-control>
+            <role>DFil7Hs3UhYaoiW7lED6OLnNXWC7OgyrVJE2i7YdgWfw7cEsI9ypUN4JJGQpOgQKZnEamCnCru1yyFShOiyA6CbHa17Y9PI1cfbyJq32</role>
+            <extension>
+              <value-name>29fJCEhann1i72SDITW6AoXF0G4n7OC1YRLAo2CDqwNpyF28zQf16cGYSKeSzQTpIEZYzCBR0hgyWaHn0WpY0XWLIaD91oyB3pruT2dTbts8v1nnXMlPChAck5lduLOp2fLW9YHlr1lW2IbRnwHZF93Z7ocB1SS37DR9BzmUAzID9Tmwp3n45qWcG0NzTxDSam1DVfxoO7TY0fmhbCdgU9sBa723EFNGUHjHWI5DPQtP6P69jbpedJHnIJ</value-name>
+              <value>eh5UbE5SBNQ6CGzjEghNAscOFNvUve4Jv2DyGIr9nhfZPOiu5zhF2mlz9QuFWygkAMShmbqKkyJamUEjtNQn9bPbTjQIJY2cKMt7YLRajskymYJIEAXNDMYpXG7HF1ThFeovR7G3A0BORkwvMmaq81P6HOFePqwmEMSvMyyey</value>
+            </extension>
+            <fc-port>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</fc-port>
+            <fc-port-direction>PORT_DIRECTION_INPUT</fc-port-direction>
+            <address>M0NPiVQZTxNqEuQ2RuOBSs9iGzcJRq2viPkBC2soA8O6CF8l1OWThX4XxgygGADYpYrU0Uis26qwLyKFfyqwwulVCU3amG1MwsypeQJ8WaFAIh7XPxld2H0Et3PPKQt8a1xpJhxyr401l7R3E4gGDhd6kUOWC95EbC3ULtk4pk6LrPO6TWExdRvqDbm7lrMwWHiH2DMsXK5hzLnkH1JNLfdgqzoLTa9PJkwMPa6EUbVlWiGvcpiX</address>
+            <port-of-internal-fc>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</port-of-internal-fc>
+            <is-protection-lock-out>false</is-protection-lock-out>
+          </selected-fc-port>
+          <switch-control>SWITCH_CONTROL_FORCED</switch-control>
+          <address>Gu2RZ6XaNLWQLnj4OySVtNKBIr0rrVc7heQhl</address>
+          <prot-type>2nHhlCtnsXpV655LrW2LwIzbojmfzGBB3iTgUeEeb32i07Vs3X5zywCWIY3hFETAOERASvO4qQerX9L0ZIspf4dXVg6sUR2IvTigg6cHPi0</prot-type>
+        </fc-switch>
+        <lower-level-fc>25fbedaf-00e7-2908-fe09-07fe37aca56a</lower-level-fc>
+        <address>T1TGfSRx8ey1ehyvtUmtDol0cvubcV36WPM3zvtHB1JPihkD4G6zWkA0H4bTS7RGWvKv054B6FqgXCUTaSs642ZLZ2xR9op5U9sUepoc4GtTjfMt77sc1rP0tmJDL9AxaVjhcHtggO2z3OU3Vm7XFWP9jrEWA6tCTMT5mfmC3ob7452Sk</address>
+        <is-protection-lock-out>true</is-protection-lock-out>
+      </encapsulated-fc>
+      <sync-ltp>4ace155c-6c04-f585-d9ec-d6a845794520</sync-ltp>
+    </embedded-clock>
+    <client-ltp>4ace155c-6c04-f585-d9ec-d6a845794520</client-ltp>
+    <layer-protocol>
+      <local-id>oNLHpLLrCzQwVebS1gD5uk8E6YSH3vOkirTzcE1GdRc9YnTZvo5ZI5EG3onYT3i3m3DqHw6VnaWdxH5U52UF7qdaOs0Avj</local-id>
+      <configuration-and-switch-control>UUOrsatFpBOTqwJGWBTmDithQhDblNSfzyG2I1HZunKVLltHWeVrxgJfymiT128BAGvaH41brMY47jMWyzn5QYcoknhephPSXcUE8WHzAyDzRhnpRLmzBrXWO625nRPkVKQ3yxu0XZzP9X60AtrbMoZAu1xRKn3xZTAxi4pgWY55N3</configuration-and-switch-control>
+      <configured-client-capacity>m2cfg9CPIPnx0dyap7EyWts</configured-client-capacity>
+      <fc-blocks-signal-to-lp>ooraMiC8caRWpUmoNWN5TclP2iMQeJ5C</fc-blocks-signal-to-lp>
+      <lifecycle-state>LIFECYCLE_STATE_PLANNED</lifecycle-state>
+      <label>
+        <value-name>ZsHiLCdKSJzWm5t45EMdi1Rci1Mn4ahWCY6nAjZk3y9pwCmB80Gq1pukrhznjQjVPpahJ9uMID36fhHfifybF2n</value-name>
+        <value>bWluFFhu4rDFB7jbKfhRwQ7G5FSCz7AD4W7Jtp5pQA5jIgukvDc2tbIrIs39AEMwsU7VbccTM95mqzHVdLXyOyZw0VFsrsYTe5Gh9S2W27akHJfMm5caDcGv7eYqyWjE2RVbBXZvX2PwL5i8auaFyRaxX8Xv581ZZW2tLUYIWG6zLoHNLSsbBuJqDyNAz</value>
+      </label>
+      <layer-protocol-name xmlns:x="urn:onf:yang:hybrid-mw-structure-2-0">x:LAYER_PROTOCOL_NAME_TYPE_HYBRID_MW_STRUCTURE_LAYER</layer-protocol-name>
+      <lp-direction>TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN</lp-direction>
+      <name>
+        <value-name>Jm89WEfJUpF7OecIbeuQlM3vtnw3SHytVHCRdRA787fWdrwoyTeTF9h0wF3gmuJ9bd1oWto4tDSGWh5uabgHdxIBcLSq7tzizszvOXs9sk</value-name>
+        <value>otMLDY1l3y3ECGo2OKtYjWpOCegLGtsXWfIs5BF81AED83xWN0N6O4MqjV3ZgwWcLwwI7bI8LmLUpaI4bn</value>
+      </name>
+      <administrative-control>ADMINISTRATIVE_CONTROL_QUIESCENT</administrative-control>
+      <extension>
+        <value-name>rqKtTnfKYbq4L3lkQ64a9xEKX9jKBSq2a2o4qDOgP6ks9FERDJ1F8xp6zAIak95vbtzt6fJNl47uBMl7neMvD3B4EcfYdktgNUKL9trupyQTc3Sz9w5NzyR5KY4Xip6XkQBtb2QtsymFC6eLCjq3Si9u8dkrCqgO8RajL0M6y0L26ZOAbeEVoNhxSBQmT6b1QlltdZzD0cG64mzfAd2RSjgKN66y4</value-name>
+        <value>AMmN8zMHdEUTDY7c5Hp7q9iGTXMRwJTYvfLDPpdU4ZFHXMTUlaTMj3s417NpIGn5W0JDpOxlNc2CYNobPhX0ki4dhSCZqR4eRFR9tgu8spKic0uUhjUuBRHSBcR1VOgNt7OXgiXIHATMAfGSyse2jVMUZwWVk4AN3gCjyAU82FUCUsukUIeew1</value>
+      </extension>
+      <hybrid-mw-structure-pac xmlns="urn:onf:yang:hybrid-mw-structure-2-0">
+        <hybrid-mw-structure-configuration>
+          <number-of-tdm-segments-to-be-reserved>43</number-of-tdm-segments-to-be-reserved>
+          <clearing-threshold-cross-alarms-is-on>false</clearing-threshold-cross-alarms-is-on>
+          <problem-kind-severity-list>
+            <problem-kind-name>47fbldU6HE44mBclAQbsT6VROazO9PI5OXh9b38SAcOWN09nIkHtjvcZFLOOswMgmVpxYxhyC5nhXwFxRe02Jc1pXH5p6JxsEWZvmgVQdi7aPEHyTHACLBTIbZZhAwJfkICyQxo3Qodx2M5VlFq68bGj2xAD3jSfTmGJTWMBkR8nvdaQKAWTMu4O1FjWQ34</problem-kind-name>
+            <problem-kind-severity>SEVERITY_TYPE_CRITICAL</problem-kind-severity>
+          </problem-kind-severity-list>
+          <performance-monitoring-is-on>false</performance-monitoring-is-on>
+          <g-826-threshold-cross-alarm-list>
+            <g-826-value-kind>G_826_TYPE_ES</g-826-value-kind>
+            <granularity-period>GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED</granularity-period>
+            <alarm-clearing-threshold>1899414942</alarm-clearing-threshold>
+            <alarm-raising-threshold>-1620779179</alarm-raising-threshold>
+          </g-826-threshold-cross-alarm-list>
+        </hybrid-mw-structure-configuration>
+      </hybrid-mw-structure-pac>
+      <termination-state>TERMINATION_STATE_TERMINATED_BIDIRECTIONAL</termination-state>
+      <address>RSCwOS17jBTrDyd7kFCFzcTFAUGQjm02fvz3nA2G3W7ymcFHR9ejm7YOUwE5Tx802HVhhPYcDXK0apzTzNc</address>
+      <is-protection-lock-out>true</is-protection-lock-out>
+    </layer-protocol>
+    <ltp-direction>TERMINATION_DIRECTION_SINK</ltp-direction>
+    <server-ltp>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</server-ltp>
+    <transfer-capacity-pac>rXkq2ZjElhxAQmIvOXWWqqJ0JbZMImL1j6rlXKRaTpLBDl6riUgAdZAW2r</transfer-capacity-pac>
+    <address>3mxNu3DIcw4WJRLe5vWzjCeR804nTvrORQtdT7V5DSTeJxkG28glLu4Lm098vsWejis4pf2U7V0Qkcpmlxz6TDRfvSf0l4fwmHADWuxWipECB3ZWsy2l4MtzEIsRMHn0g</address>
+    <peer-ltp>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</peer-ltp>
+    <ltp-in-other-view>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</ltp-in-other-view>
+  </logical-termination-point>
+  <logical-termination-point>
+    <uuid>69240baa-0b2a-92e0-a819-a4b44c107c39</uuid>
+    <physical-port-reference>371eda64-3aa3-f78a-2711-ea75d567381f</physical-port-reference>
+    <local-id>bga8GwCKR71i6hhO9OoOAWfYOybymiwpqHxZ5aJP9K7fUpW3dcJN0ZDOxPfLZD2qczhiB07LC6SovGjAT3fT2TArAH4rk6JpF0H9SGUnEELad5C68SR2Djl50pwdvgC28bb1J5onC9pPe2NeMw8pQtuISSNf0hi9kta3ryj3z</local-id>
+    <lifecycle-state>LIFECYCLE_STATE_PLANNED</lifecycle-state>
+    <external-managed-id>
+      <manager-identifier>Mz1Lstbm1so9EXWcA2qL5wFGDcsI7G0MfUpHfsW8Ukhr96vK0VnXsUEX76F6EyKTs2szuoIhBRAKX5mY0JVkwrhvpPt3n6OH8hguFYD8Q5TFafv3RjfnKpS2ed5BjMij3qOApjJ7pCErRauAtCX51H7fV5I6R0qUi6mHh5GGzl8jnuTQ6JV7q3ed0WcROuD7AZGRXfqwAyHXUBF1kA0CvfIv3UeSoRRQJxzGMZ4epM3cfIdrb53ycD4gxa0</manager-identifier>
+      <external-managed-uuid>2RvLo5j3Wn9e1dqgNvHQADpNglVGvVlpMRa2Ol5CJfICk0L7vkYYXfD6syEXlZn7Ip9wL71meJYyCBx7WnXTCsR4SvUdn9k5qmublvpz6g7IRwINUxzo0ilSO7</external-managed-uuid>
+    </external-managed-id>
+    <label>
+      <value-name>LxJIhAQsVJ44t1qHmEPEOeyDnrmGZ61KwCkNc28ZLcV66lNs0u6GAwbQYqwPwxr29LIdFQ4qUZw0dcl5GjD9IPZyfvfDUGyVj88YQ4gK3ED8QQdp1RyByp9NUgiGWQB7YBXGF5jAKWJAEORxxp95OaKAr38fLJnCcciRiBsUp3mVRetpvCmcM7Md2NtNoIhBMAk43MQtHdgzrJQWdc80jN5dAq1Y0irNKMJOqA98Np</value-name>
+      <value>61p2eB3eNIc0aCT0D4sqO61uwBDEgV5mWuha6chLUtL45x4ABoSpuUU1vpxMkD0gZhjXtAIf3mj0TgtuwlL17xUDXjh9O9qOrJDMbm2eAd6ltzPSVsL20xxXQG6xQod9ZQVa4XgEbnZwWGoJ19M1GbQpSOOA51JWJE7GufcFC43rKsaDtOE20mjK37c80V4Br3hVbuAN</value>
+    </label>
+    <fd-rule-group>4cd72b11-5cfa-9e34-94d1-42b54486ca7d</fd-rule-group>
+    <connected-ltp>9b31b388-e9d8-23c7-454e-8f4883a74d94</connected-ltp>
+    <name>
+      <value-name>FLo1m9U1oMjyVD25ztvSoXs0DXppdkkLYJMcKyd0dwz82B6BWttcqNc3CtlIFFtDo7H0yV1LjATlbRWZlhbD5fzzIUhnzKTQKAQinRVHrG2uyZtL</value-name>
+      <value>wodLPNlJ4JbHu1jWJtkBoTU4VpuMKfVhw82lNoXKZ8jl1ChK5tdlm8paxUW91JqxS</value>
+    </name>
+    <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_PASSIVE</administrative-control>
+    <supporting-pc>eAUadKhSt6Lq5BSFfGQq05ZoIVoFt5iHF4RSH0Ca7oA4RlJ7TApUxpagcyVFD6ma262J6FTdVm</supporting-pc>
+    <extension>
+      <value-name>E6aYhOr5klXHEHCLTKDGGf8Cw3F0w</value-name>
+      <value>q2rB0IhjNBFDabcMX6oAEXHMreI666qp8R00zhbfKISVU4HJ2YbzVTdm7Vs5TKu1CmT3vXagF</value>
+    </extension>
+    <embedded-clock>
+      <local-id>uaRfPbbZAVr4py9MVsotBZskeBX55I7rLQHA1SrtNSx5iHR597rCYTW5nLasm9T7ZAzSt0l8KTdVsW0tVr6UdU</local-id>
+      <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_BUSY</lifecycle-state>
+      <label>
+        <value-name>HjKOHH3sko2SVYpKuY0cpJ6VXS8kKt3kMN0luVOPjIz7GYR3OK75td1i61CIuGU9lUmIP2p1LY8jOZeDJlA5ztfxuSfRq2SLWetEhSFUINdpEs2gNudeYsLkkTbCVVoRaJvju2d4PitmCnCiSPwQhiau3e6Y9mPbYdus7zoXSSbufNMZubPDlS7oY6m7</value-name>
+        <value>3bi8xCg715RTgd0VS0p3HUorUMp</value>
+      </label>
+      <encapsulated-casc>5HHU0m76K9ddGNYCZN7R1j1ulLxuSLLXlsRlGQjiSwwqcm2311U2kOpxrW1jzM9U607NJqXtXlT1HN4BOQD1E2yYQshq6qcdjkSUKPfz38sKVodBfRuLL3JCnTUtb6ymiqg38vubvXNil1MAKgevbXZyIL2UKAg2TpXTMs4apJsCCe5mnjKy8B7Rn9DZBL</encapsulated-casc>
+      <encompassed-clock>AsuvU4rbRSpT9HFIa7buM3wiMnUvF4TfonCij3l3NKWXjCxmJIQvEeGqCsW9wHoN415fWriK3fzfR6BsPrXtGvLaYzjmgz9cs7spyK1tRAIAGj2nDSIjnull3EIc5JoyQQPgtQKkqsVYEPehHWsXiNaejSqouOOkxDB0tlcLFZKbPYso</encompassed-clock>
+      <name>
+        <value-name>AG122bV12osVJk8JW1XJlLKPH3VtgHkQnlKhoyarWuexGmgvg5eBJQqiUdL2VXLaankzVm0JR6gpspUIu9k5ZCnLI8Gv5jF8GRHCezdXFme7L9Q7a2d1EAFmBlRywpGc8nGeWUbtgqBTrj0BldCRG96huPP06w5fLLtA</value-name>
+        <value>x3FXwygPrR2ElMcvSt</value>
+      </name>
+      <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_ACTIVE</administrative-control>
+      <extension>
+        <value-name>0pc3svcZZsY0xPLNVEINwZQ5T6xFKOxK5KNx7Zp6jfZQ5KvSg5FM4nSQlhv5X3P3FCsMuJKNZJwWm1OC7lh3I1T3ah07cP2RjnvF6ftXRZTdSzHZUY3uZOp95p996bSiqnXxvimm9gr2H81C7WYYLg0IF9SEcKWD0T2ncoJlw2f</value-name>
+        <value>ahI95</value>
+      </extension>
+      <phase-aligned-clock>4FWoq782APXUwepFATR6jnGPlBKxGc5DRUTa11c</phase-aligned-clock>
+      <address>zu1j053WIVHCiL1T7pVeDYvd7BMZjARS4K3WQ7Sq2s3ddW6cd2rRSOWRhIRBjAlflpcboWtigwvukuyyoZhgGd7XOQq7rMeM3iPrfiJvH7R1BqrZhA7XOeVu5dBoZHa20Rl79XCI4mCxM3oVEvTkJGOGTh4LY6FQX1XZQsHMOjbsfznL48XFO</address>
+      <encapsulated-fc>
+        <uuid>a0815700-2ba1-a6ef-e358-dd03cff63dcf</uuid>
+        <configuration-and-switch-control>jq08Fql5sLnDAhGSsc3rvbikKmdsfKLy2DyzVTwnxUTZbrKD</configuration-and-switch-control>
+        <local-id>ZdNiWtKODHPRnQGkPS08tyzzadRo7KN6QsgMW0srAhiPZQ9HJaP4IpDSum8B7VAPfQBbJVCjcU83L9KmjAiTRWDlaDOhqg6G7zRQmm1yg1uTae7mGqfxeLKooryHHwnO66wkspTBqfuBtuX2U4z8Hco6DWFkt21r0pLtPw47LqA7Up9OmIO3Md1h1GCuAvVBMz4t</local-id>
+        <lifecycle-state>LIFECYCLE_STATE_PENDING_REMOVAL</lifecycle-state>
+        <external-managed-id>
+          <manager-identifier>RdxZOGmHO4CBcFjqE3XEHds2UkihOSUx6joMRCtGHX9Lvkb1n0F4d0Z0k9h114qZnHM7b7NSXWDs8GtvH0rU0iUdrc6lgokv5YChYp1VdxnldIIUI2HBcBGEFMRVabj82Vp0diVqPaE3SePsgo3t0JZxnQlqTEyVzPNM7A5XCBSmPzPYYKjQminJ0I1LezzOgmsoPpdr05OQ</manager-identifier>
+          <external-managed-uuid>DOuf7kBhIl9imUpOl54AxkpXxQXuwF11lvhkQStq5CAspZ8C4ccCxBrWkgrQOsS9X9mN1P57kGrBFzdKDqe2T</external-managed-uuid>
+        </external-managed-id>
+        <supported-link>Z7lBtq4IaH84lyD8j9wQVhI6IsCmfrf6yAIT0Et2dt6y1BHkC53ymLw4d0ikrxrRZ1KRx5LKyJbzcKUPPXf3ALZNEa75HqPzjriQx4t5FExSojH58W8Iz7nd9mbRF0iYjAHQw2OcGd4WoD1wr1600t6aPhTm93lkvU32WR6uW2qkxjIYcOQ49WeY5Zd62yrykusgdqK9s2lZd3PpRFt0CAQzz3Gut7UNBmVOMxX6raXEdM34rx</supported-link>
+        <label>
+          <value-name>hkVwTap2LDbv4q7NM2hXpSCJ4At89Oqi0dGTo5V1BYxFpwk3zu1Qevri5Uj6ABoAP5td2oeveD2D2fzBJsjXXK7VwiT6UaGJ71W1p2xDyr9AGI3p2meZYmMuEGsqQ09X1XYqSnVqPW0vw3Nyh1qffcBMK3cA3mp4bgm3D9tk6lQuoD3FwtMMxnyiiCKdYa92iv5</value-name>
+          <value>FrgDMY73t2AZvfD3C3dNGX0wZayhxw54XlHB</value>
+        </label>
+        <layer-protocol-name xmlns:x="urn:onf:yang:mac-fd-1-0">x:LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER</layer-protocol-name>
+        <fc-route>BQ2QkGffZYofrZb7HPt6VJ4Zr7MyDeq64tOg1</fc-route>
+        <name>
+          <value-name>71PHISmNUDOs7j3C6EhFAKLAlu0pkdKj7zSPj6C5KqyRBtmI7DfH</value-name>
+          <value>09Bm9SynCJu3ubmANsk5S4zl</value>
+        </name>
+        <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE</administrative-control>
+        <supporting-pc>V7EvyA323aOJL2wrO4gMnqJ2Dn5zPunCt1ZUB2OxcD8PFEgmAw8YWK0r7X0OknjNhiHSdohp1p7G4nUEM3uAFm2Mk2tEiMjz4Tj9hBzi0yQ4VLBzG5adkcRE6kao6tP3m94vKDNK3wHZ9aqH7AUrEL5DY71WBJRPSWlCr0evoVmx5M65f0wLECouJiqc1a2T6fnx7tUwhg3eVaja2QVykc2Vut8nD28B9v0gQVM73ImYSx0MnWlH0nvuI</supporting-pc>
+        <extension>
+          <value-name>HwEJZv7e92I47vK4oh4qHdXdi22DBwGaUkMTIT7RNQVUdyQBHU1o0RuiLoWmUupPPbApWA8Ji3vvtlZa8Sr8JVqmjeJ6J0NqbnP7XXIfS5DeqCoqmPqYCJkWXVUyVHQ64x5UmN17SElb8BBnjUlVDFJsBvTocJv99AVngWu8tHjtbNQuHb</value-name>
+          <value>cJTEcoxAt95CayxxOl2OGB0aMN08m4qyFb4Rzur2vpwFPVcvh6jXAjZm6SvkONKtYPkxbDsGUYlJMp63oqSYJKcICHUiuFLkmXSxAc5n2iYOH5J5vuV668OIHB</value>
+        </extension>
+        <service-priority>-9223372036854775808</service-priority>
+        <forwarding-direction>FORWARDING_DIRECTION_UNIDIRECTIONAL</forwarding-direction>
+        <fc-port>
+          <local-id>3GCJ5xgQFJEg3X5VDWx03PTFh9t3D4eyKRhPgqGV1c44110FXpF06qGoA1r55GDHpNwxd4s6goaiq2XnkuoqVWGvP0AMG5tXSRuXOO34d6eD030kqgLd4rITraxZ7SOSKiPqZLmcJBHJwz4WIH1M0JykL5jTQ0Dsik</local-id>
+          <lifecycle-state>LIFECYCLE_STATE_PENDING_REMOVAL</lifecycle-state>
+          <logical-termination-point>8c0b5632-f6b1-1b90-dc8d-4334c833133c</logical-termination-point>
+          <fc-route-feeds-fc-port-egress>xA6ybWUaj2zb4wmlcC45vdCq9gt1qQLQqKoCGaERdd29BguNTrToEnGNDaGV0sDj4UNK4ruhwwi7NNVyeGOK3vpyx6lpqZAuTn6PGA7cZhcE474aFSUIfc8Mat4AsEWdUU3An2FmjRSgQWqnOd54h5IryETTbP65B1FYVcc734nL0F8HS5D92dsBSlm32k0Emxu9KHgFDvjwbr53pI5rNxUxLgsNBsjP0OYCn7h0CAoNUtJ</fc-route-feeds-fc-port-egress>
+          <label>
+            <value-name>qO8ZNvdiLzsoGGx0PB6Lrat4Rs2nUk9d894WEh6hIzGgf58WyeIRp3W8vQviawvjFr7kIdBiM9zU6HIEOqw5mkdRaI1d6owLPvXpArIfA91HIJdw2JBo3O76o9juxH8f45EEoeTRfUqYEDuGf64aM3g3crpC8xRcvnJTCCCRp2HVGctVapXOs6RFxh9yG0K3flX</value-name>
+            <value>Yrtf</value>
+          </label>
+          <selection-priority>-9223372036854775808</selection-priority>
+          <name>
+            <value-name>95elOHUqeum2c34</value-name>
+            <value>3Fgnjez44zHwJ1oTZC6Fc15qnrkzmghqWyF7M6bQFSehLCaK68qi9nAwPVX33ftRF1Yr719FTnWxZY9X6z88PIEwvuzzB3qgWhHViIA45oBWeKTdc1l1CRx7l6yW1R4P8DLqldmquXeIA0NMT8FvS4v5232WUYLUCodXuzgYpuyZmmDgmaLee8k84e4YcILG6YEsp</value>
+          </name>
+          <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_ACTIVE</administrative-control>
+          <role>w0UMfdLqls7Oy3xv2YuGp0UP6QaN7bRvbL9qYUIbfQ0FTp2NgpuFpgmn7xa6ITtUwCcnwVyDLyjwYdj6CFL1W7hVEjTndm9JYlYmgx01XbpNoJT1gEU4E</role>
+          <extension>
+            <value-name>a22evXoUM5eSWTq5UYEMAH2WwLMYeTshVuvqjUc5RqYFcgL66hTGYNuvy8tF1NWWhresdqp4RfCVvf1BwMauzwZ0Fkxy7tvgMBIS28OLnqGLFzebegyNNxFkKcSRxf0kRI4TISwYb4JQvXUJ6sxTR4dBh5lOll04V4XEPlC0hdIM2uw8WV1GZ69g4m5hHXlD2a9RvDJMQryKWWTKRMiRLkZPGW6oUrTOBUx</value-name>
+            <value>xgCfz2ZnZK0Qpiz2CzRbvPzh8k5BeCzDK3Sk5JH4mzVDSmFmVoxj5Ys5ayGg27TNaD7ffGkt8760tDehTEsYuU3FkBVnIH2Sk1ZzHj2Pi0HEvOVokfeO19lmC9BkQD4aE4Cdfw3qpC4UiRbC6hj7jElVNW8vzcG58ajgyeGXQKK1tVvz4OynlMj0Arw2v47E6qMEEkCn4eop9TYdAoBN2MFDd3FI7Me5d0KRcee8suxtgnyIM1v</value>
+          </extension>
+          <fc-port>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</fc-port>
+          <fc-port-direction>PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN</fc-port-direction>
+          <address>6YB5DPbQINzU1G3lasOiQe0</address>
+          <port-of-internal-fc>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</port-of-internal-fc>
+          <is-protection-lock-out>true</is-protection-lock-out>
+        </fc-port>
+        <fc-switch>
+          <local-id>EMfN4tLU8TjsPOLoz5whmV30cAnnvUL1zSOverimdtO2hrqIoORLCUDOm1bJNPKezqCNKM1XfQRo9h6yYXjAKOoYHsIn9ktIL5wnRxcYf3mpckXaa8KUO1SwlsTuNecqkAF30R27Ugo6Bdh</local-id>
+          <configuration-and-switch-control>1Cleug6YRDshsy8tgJwwSaT1udWu6kp7XKmj0kiRXC0ib9DjK9PujAnFNj1Tvq0kaeEbqOUoiVyt4bEOctanVx2AQ3tdtmyvs4GTSB9aoHwkKa0WwajrHd2x8nKBBa64eFP68Y9wxFQhHQ5d0oxzBr6JGIciLaeZHVYPT7diEV</configuration-and-switch-control>
+          <internal-configuration-and-switch-control>lDEzvUY4np2Y5D2foclfMgdt1cHjQuKc0gDv2BspSmnXZp5fuqngzAJANiMDFoHFFk2HNuZFJmvAEsQ8S5gjFZMkayQPOxmlKo3xLU5u8s4MUMMER2YpUKJ4azLYZ7kJnf8815C9xzWrlI65D4uxGdtIF6GE5SfsZnB0t5a0E6k0Gq5jmzIUE3Cj9aXe34HUsiVNnXN2V7Ut</internal-configuration-and-switch-control>
+          <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_BUSY</lifecycle-state>
+          <label>
+            <value-name>942smV7SWKZwU572xyy228Atx563mpinlcHI7HsWrrkdosfVSNQUVqgknegJEy6ZKFzJmUxNdSSCc7x4MfRzFZM2d2DJsBB4h2FvWdbaX3M13bXHrGhYFVTLXouh0Xl900EW5P62LKVOWTvfrEdZz6Kon6Fn40o4T2SYKRTvBGbxryMT5SSEQuVdAsswlQseLd4n4XKFwV5XlJQqBA5k4Sxxk</value-name>
+            <value>VFIoLlBQIxFkcbf99BT</value>
+          </label>
+          <switch-selects-ports>PORT_DIRECTION_BIDIRECTIONAL</switch-selects-ports>
+          <reversion-mode>REVERSION_MODE_REVERTIVE</reversion-mode>
+          <name>
+            <value-name>lTx2Uhy7KjBpxGHJgmF8dzgZPE5qSe350A7USx2uQvTgbsZkOEsT5ASVfPdZ4h44R4QBBK5k8QAjirv6YYR3yBYFr4wnltj4x1G0EDkMuMXMetLcju7J66ppaVMngXrNYZOuv0gZN6DTzg5KL4tJaK8cyMzOJTCzKi4fac6X</value-name>
+            <value>KIJSFtvKXeUHeZ70qWJbqbWIf3KraAKMitEYP2IMgulnltnMhZXHaThpX1IZBsLUOhKDjshAOuXaPcW63LNdx4um6dlzx6ldf5QzpZ1emYgb24a6PXbmUGASTVjiTFw9KeIa6JgszwvtAFzpvLEhj</value>
+          </name>
+          <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE</administrative-control>
+          <extension>
+            <value-name>1msYGoI6N3YJAyZmMs4mZJH3NOdWh6FbkZ1ToKR3FHM77LtTdpg49P8WDlKVjh6Dh7oxRfAoWnw40RP6h5aiMi6qDQdWZjsgiIF2YgqMvWIvOytXvEfiWlAs3Ng26AbojQq96JVtFERl4kazYpRNKjfN6nI4YTthBLqAud32RUfV7qn5P6KsqZ</value-name>
+            <value>wfPBdAWucHMM4ZHYJu5EBv1Gd0jxqaEWpmxCOlY03KEZCePlIURjqLRvLa2bly7KUxfJSdBNY8EsetNWoE7GpY3215dmDdYqKd1uruahCOJQaoEy2L6kK9mL6AZJNX1p32Tux3D1KmKUKokE</value>
+          </extension>
+          <wait-to-restore-time>-9223372036854775808</wait-to-restore-time>
+          <profile-proxy>pCMruLxcPEsWmCocqcIA4hIW2yyDGak5M6p9KOlrsNfGhDKAPtaMKSIMjgpZjJX5Imek2rDu6S2gvMQcf0YRLyD4HUV0wS566cq8v3uCNwSajAmqsdidLN9sI5k6XqcWuu4Zpztc5degNAzgNJlrwvL6A6cpogdSKiJ1JddGqrXeUomz7H0vcECEKGW0X9SzjtB2GGJ70ydUWztV8mqdS2RuBFuqPeZ8HA3o9Mn9ks381o</profile-proxy>
+          <control-parameters>
+            <network-scheme-specification>6CoaTPybooFNVgdQS8jb3z8NxDt727T8Jhau7IxnY4aTkoJ5oU8ju871Ls0NzLNbVYFUy59x9kimAUjQOr9aAg4dJ4TiIGtvE1p5YyC7KUlcGE2vYcFqkJv3GoegXzLts2yqAaqdXLpDis08EyqYhVUPk059zIC2KbkldKyaoXGyhyGN66Eg1y5dq3mZLZTw2eJfY9ieYYMgwk3vqHLk7QpxTEpxva3</network-scheme-specification>
+            <hold-off-time>-9223372036854775808</hold-off-time>
+            <wait-to-revert-time>-9223372036854775808</wait-to-revert-time>
+            <reversion-mode>REVERSION_MODE_NON-REVERTIVE</reversion-mode>
+            <prot-type>xWr98AcXP72o1uyO9VLWPyWB2dkHRC4grnqzYCwFJy3CUtr3g4S6vGzx</prot-type>
+          </control-parameters>
+          <hold-off-time>-9223372036854775808</hold-off-time>
+          <selected-fc-port>
+            <local-id>3J4TZROpmTyZmZyXc6JhoYmW4N0pD71yI5rHWfYa0wamvAbzHVJ5L5TPKT7fS8OA</local-id>
+            <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_AVAILABLE</lifecycle-state>
+            <logical-termination-point>2b454936-1b31-1d28-4dda-1d3475708a0e</logical-termination-point>
+            <fc-route-feeds-fc-port-egress>AsOTJzDG0ZI3AczUY3hT0nU1obNz5Q2FiIy1h3zaU95vmEhczy6zV0Ab3gK86FOonehxaIH4REz5iIiR8oi3gL7j1Jk7g0nEew3oeCtXgUVyvdhDtrzJcGU5hecyer4lX7</fc-route-feeds-fc-port-egress>
+            <label>
+              <value-name>LAmCwDDHt2ruboqjWPYQYEOCncE7uV67nkJLYekrhMWs2eDQWBHUfnoDz2CVPI342EQST2c2G0uIe7raA0WQnklPfXK4xF1r</value-name>
+              <value>Rk5Lw7swt2CstN2lBKJWXq3M27jI0DURPRvdQXJbZdDl0xGCahq7zlMCk5clAY4pPzCxwdIordJjKhNMr5M0qyuLvG66EanlK0S85swoF7Iihv4IBQA1o5MMLKSiV7vFZgN5Ictoj3GAzCa2tLVJIAvlkfDfn9MepsjZEFfPIVi9qs3</value>
+            </label>
+            <selection-priority>-9223372036854775808</selection-priority>
+            <name>
+              <value-name>792n7c</value-name>
+              <value>vmCSXFkwA3td0m3C72SZayrnFApUzuaWQMOFj83U3wZ3SUyZWiQ6QhunRLiifkeY6VvhVz3ZX3UQXsHUKy0sHmQr00J7kQ5iLtzyUDxRGszvM9pxziZgwHHoHjw19tbMWLkIoKsW41rQ2JnBTfSpWzOwScxTFJFumS4CCwyGyRwAAM4tTWLPnrd8DL1amzwAjBcV7KtxtR04D4po026ntjnY4p1iQxS98WWgypN2gN6MRnaJqg</value>
+            </name>
+            <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_PASSIVE</administrative-control>
+            <role>PJK7G66EhPDu6uOBvaXUhvC26nGzVKbCtNC2MAy3pbpnF5YafVWojyqpVYRIJ2d4QP6upExOPW3n11p9Omx7UQpIOgqxaDCSkAmJ7LpWHsbBlBK2X99JZyrGGK5JnHBIaQjhBB5b3hMhSojHpkihTKXru2aJCEjMuv356081h</role>
+            <extension>
+              <value-name>5ZuNz09T7M1mNFB47U4Drjl27D3x57ib6MYxEZiMEb8rRJoQwkmPDHRCcN19UbkSYbhu2zgGDh0uSocgIq6d7PQbCJlo</value-name>
+              <value>x8LIpfLRojuFjQpH2GplEvktdwYWReRonuZEKCv8VRFfH4OCK6XoBhKOFAKwOuN3YEIA85I3XnaEkZ845XlG7XmMx6bdsYhjuZTC4CFTRIqbzy8EwlcDiyhPwsUZqbaU23oZx4SpEasdJsJ7NNC5dTMJmHAEKKrFOPEdLoCp</value>
+            </extension>
+            <fc-port>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</fc-port>
+            <fc-port-direction>PORT_DIRECTION_OMNIDIRECTIONAL</fc-port-direction>
+            <address>d9d0La5EXPSwhxg2QVIFrVjIqI9f5bEakJ35U8BJXu77Tn1JbJguwz4Oad3foApIbsFXBhyqDFxo3yZ69fsyHxeRCaYTKftNA9L3ibtVRTbMjaSthc1YJ7Hehx71NAHfBkiTvDGmwR8QTSbb541GbJMt8TmNm32XfcRLQpZe90W2S7dP37ofQaAQWWEiSG7ZTQKBgC</address>
+            <port-of-internal-fc>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</port-of-internal-fc>
+            <is-protection-lock-out>false</is-protection-lock-out>
+          </selected-fc-port>
+          <switch-control>SWITCH_CONTROL_MANUAL</switch-control>
+          <address>dpxFg8k5aB8cmCJifL2tnW5L8CNqsrRxIocYwo4GZcLmHuEO7yiumf8uRNUkfLRP1WOpcKYcOJqv54c5CurYBzktneFuRojKcZ1pBZBqA1NGXZLrl4hXEBiTHXfqdyaqqbP13qjDjZj8QWzc1Q1x</address>
+          <prot-type>na3qu4wkxtPewxOj7BcFwpPY50Ok0iAotDOPzc16FRd4o1nnCs28RK7XKNhK6R0ruO8WS92qS7u99RwLbrM33T0NyhpE0iXm65iR7dhZkD0tmp7yQTBTEBy</prot-type>
+        </fc-switch>
+        <lower-level-fc>25fbedaf-00e7-2908-fe09-07fe37aca56a</lower-level-fc>
+        <address>uA8T2kYpfgg3PlFNQ1IO7IvPq6HuecSIM1BGdrYsHewwz3bh4U5bCASUyroMD9uhaXXnoVQ51euAhFJdrHoW9gQIH7ucgZtqOiFd6na7BwAK4jXv0ljat2S29ee</address>
+        <is-protection-lock-out>true</is-protection-lock-out>
+      </encapsulated-fc>
+      <sync-ltp>5b29f3db-6f13-96c1-f189-f038af15cc4a</sync-ltp>
+    </embedded-clock>
+    <client-ltp>4ace155c-6c04-f585-d9ec-d6a845794520</client-ltp>
+    <layer-protocol>
+      <local-id>cSe7shWutOcQz0SH80JigPPah6WRBosNgGMAQI5bph1Y9Mx9EgjU604n7T6Ahzfp72ZXC401d2ReGpncFH6DH3SOWZgdqwCpytf2yf4D9VSHcfTSO0nw38cR7tWpZqGpTVrj3vX4jPMvWFfLxv9sDdbCG7</local-id>
+      <configuration-and-switch-control>3NnzWvUz2yYfwwynBuW52JVKkgZJOxGJcWb1j5Alvqs1W1gpvdupOha0</configuration-and-switch-control>
+      <configured-client-capacity>YiWUGCH1AX7gYBed66cgxKSTx4Xe6BiWT6IzIiBbfAr54yaaEmqbYaXneUBcvM1hSJQtTjw0MX5Qv701tidjs2HGWiTjWUAPvjahuGhgvf6TmYUIg71I1IhPTa1PWBwjMGAheKxKZwvdmpVDpXdqxugqwh8sKEEpd6GrQ53HtyNQQItfx</configured-client-capacity>
+      <fc-blocks-signal-to-lp>K6qiPve0wyXYLsoemc7CBCHYTw73wxX8vnrcSF5g526JnuXJy4dayV8rjfnHEcQ9z9mkOrsMlzvIVkjugxEOkE7DLucqG2r8bNkS6MwsdT29dmDlT99dF8IqDUIbX2b0PnKO2g8f1aoewTzpUAuz</fc-blocks-signal-to-lp>
+      <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_BUSY</lifecycle-state>
+      <label>
+        <value-name>wpM8BrwlU3LxQFCr1eZe49i5WGAiU5ajuXjYoPb</value-name>
+        <value>LXHtubUnpLBmULrRr11eYbpl0Ijgqmrbb0EycyVtcpH628Pu1IA0UZlMHw37SmaWmOuqfhUryBpBC7XvPxvBoIo56j5RF7N1Whk3qemZHLAbKxHAW43kNrhLCeC9mp3ayn5ZBrYa4qmPPVhLZkXEE6qgl2qzktBKQGBj7rl3RHKyu1bum800fq8slq1xTChBaTU9c</value>
+      </label>
+      <layer-protocol-name xmlns:x="urn:onf:yang:ip-interface-1-0">x:LAYER_PROTOCOL_NAME_TYPE_IP_LAYER</layer-protocol-name>
+      <lp-direction>TERMINATION_DIRECTION_SOURCE</lp-direction>
+      <name>
+        <value-name>xxzWrngKqLzuWg8kdGzQd4RyH4JbLR4agE7H1fkj0TFPaO9fuA5zFO7eSJqvsuGI0Fq1UCcMvStxyC</value-name>
+        <value>UdJlKxlQi48Nwvlev</value>
+      </name>
+      <administrative-control>ADMINISTRATIVE_CONTROL_UNLOCK</administrative-control>
+      <extension>
+        <value-name>c4PXCcQOG4OG43Z5nkvoJhS0S2LFbYNoUudoG34e8TV4OM146xsHGlzyf</value-name>
+        <value>5r3KHXfUdNPi2P3PUJBNNzc88SlHjAUo1X9IUgu03kaX1dEVO7BuyNCGGXoZxifrgo92ww2sQ4hRhWFY38sCV4aBTysqRIRZ6TTvpOX7SeQ22n06vsAroKUhbnzU5jT34Eqlsnsduafwq7uVzWePz1YKoxwlIhgMVH7g4rtquAPUHbP80WXzXVbdkHy3YOHLvH1s0mKuWzoDL6LL2IcRvf4IWCDMikxOTr8U</value>
+      </extension>
+      <ip-interface-pac xmlns="urn:onf:yang:ip-interface-1-0">
+        <ip-interface-configuration>
+          <dhcp-client-is-on>true</dhcp-client-is-on>
+          <fixed-ip-v-4-address-list>
+            <fixed-ip-v-4-address>Rg2T5oTV954XOKU2PXUKQmmcOpr9c0048VP6bBTkGXamH4gpT21JofN5FeeR67N7Uvd566iE4s0Dw9UhbN0A3GFAULjTKZ0Eu5CsbUY7mYDK7p1bd1D8zaIuV1fy0fcmkOGnAEnWv0GuhHxuBaC2kcw8eLG6SSl4zTs1qPYVHwhY6PtHRXJca8kgL0ewKzAbt2dTR3GqzPpFwKeoHYsJYMZBEe7gFIs0CxTmAr</fixed-ip-v-4-address>
+            <fixed-ip-v-4-address-prefix-length>37</fixed-ip-v-4-address-prefix-length>
+            <fixed-default-gateway-ip-v-4-address>9bPxV3VvTfeJT6lxkkGZ200xxLT75F86RXDETr1EGgoAmBZyVFxQFpf438b8Ncew1R3Ua4rRkPjyii65QwNvV2AQaDYQP4eROhDYm4HyL073j511BOwpJYfLu6Bb2Q2I7yHlCgUghTbsYctsTZJCQYfcWRnRzqzyY8UspGIGrU8hYBBRsklabBm7kKQT2qjSy5cPLVv4HveFYPpjaKtldIkxk3imtC6THiJld6hMuv</fixed-default-gateway-ip-v-4-address>
+          </fixed-ip-v-4-address-list>
+          <maximum-transmission-unit-ip>22180</maximum-transmission-unit-ip>
+          <maintenance-timer>-577170901</maintenance-timer>
+          <ingress-policing-profile>b737f45c-5824-79ef-f58d-6a5a991aeab9</ingress-policing-profile>
+          <l-3vpn-profile>b737f45c-5824-79ef-f58d-6a5a991aeab9</l-3vpn-profile>
+          <arp-proxy>ARP_PROXY_TYPE_DISABLE</arp-proxy>
+          <interface-name>jgOJGWd5b021AClsbnl</interface-name>
+          <qos-profile>b737f45c-5824-79ef-f58d-6a5a991aeab9</qos-profile>
+          <egress-shaping-is-on>true</egress-shaping-is-on>
+          <maximum-information-rate>-1992486821</maximum-information-rate>
+          <loop-back-kind-on>LOOP_BACK_TYPE_BACK_TO_LOCAL</loop-back-kind-on>
+          <problem-kind-severity-list>
+            <problem-kind-name>zHUY1X9niLtckLNFRTXDnkXIFGl22kKt1xj2ushNdCRqgE57pUCF7snM0IPU3rnWYHZl180fLJF1nC0EpCjw4GaXhZRcj709GZmH8eWTXtMcYMRfoaDlJNaSF14Q84ZOWeoWscHqGtCwftDvwgIfVS7</problem-kind-name>
+            <problem-kind-severity>SEVERITY_TYPE_NON-ALARMED</problem-kind-severity>
+          </problem-kind-severity-list>
+          <interface-is-on>true</interface-is-on>
+          <statistics-is-on>true</statistics-is-on>
+          <maximum-burst-size>2712</maximum-burst-size>
+        </ip-interface-configuration>
+      </ip-interface-pac>
+      <termination-state>TERMINATION_STATE_LP_CAN_NEVER_TERMINATE</termination-state>
+      <address>Nn5T1INBME71APPckBuE0aqrikf3IZnnek87UVJGrQz1xo5RZsnRuNjNZqIIh5Xvp6DbTeRd4q6tG4cxwro07HF67nGgkEMBChMvvDArVHMBLQ099p9gYHfYWVehrSSV1FjwaTPYAtrdjsmtRwBP5QF1EUaXM3TOAccC5UAynULzm8U5wvMBesuSmFH0AsGaETECN7221FBnNnkbT6E7y9RMGqNgTlipeWTT3VO4B</address>
+      <is-protection-lock-out>true</is-protection-lock-out>
+    </layer-protocol>
+    <ltp-direction>TERMINATION_DIRECTION_SOURCE</ltp-direction>
+    <server-ltp>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</server-ltp>
+    <transfer-capacity-pac>xgRPHsHZnrM6Gg8N59mED4o5T54E3Scs0V9InJzDadJRtKwzTS5oXluIqqetiqVjlXTBGk6QyPz1r6scQxBFSXoanCDxVrI8otJWOPEmx6nY4I3U7</transfer-capacity-pac>
+    <address>aLAmkvfyJel3b7Oy0qUUliRwyoqBQ9d0VOefbtFVzTYL0Mj045MqnvONU6oCguubaJil4YgEJ7hJTsBQxo8NT</address>
+    <peer-ltp>40607f48-e0e3-b1db-76bd-a47ffb26d223</peer-ltp>
+    <ltp-in-other-view>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</ltp-in-other-view>
+  </logical-termination-point>
+  <logical-termination-point>
+    <uuid>9b31b388-e9d8-23c7-454e-8f4883a74d94</uuid>
+    <physical-port-reference>371eda64-3aa3-f78a-2711-ea75d567381f</physical-port-reference>
+    <local-id>QEwNcIv40UVaP04ytaNMfvG3dY17K7SsLgfPQKTJwGTdyXL17rGeWmi2dj1XqTh31wSShDBNbu1JjECj5ixUFPWS8XHqJYtKmduvI5bTr4uLI74GptsWjoGjdfKO5drsjVX1T8VccpPNoLtOfVKybjJgyt5Ezw6Sr3Tc4Gp8YeVm0o27bNxe6gvwKAab6g3pcOC8vTglZcHRsKYEpvSnMfToP4r</local-id>
+    <lifecycle-state>LIFECYCLE_STATE_PLANNED</lifecycle-state>
+    <external-managed-id>
+      <manager-identifier>Lkvmb7bR7SDKml35H03mLMpU9zge3eEOq13t8el77QRtbUqKMl6pZvb8WkeZyKGQMJk</manager-identifier>
+      <external-managed-uuid>XxU4nLqqyIbcW9uNxFWtZ2tpN18rKsdHZ7EeLWEbwHfsRJggh4J864yL5GcP0ipRhV52RB5njdI2OQi5UT6</external-managed-uuid>
+    </external-managed-id>
+    <label>
+      <value-name>0MGQRA2dY0mmeQuHgnRVGG3cAAmmVd1V0ADJ2xX0xbeL1Ik96b4ES8QkA5HniAbiaOUdmRdT2sxW2RX0V2EF2nZukGSCh3NjRHw5qCZk4ogY76Z20vH2KHo4fgHo</value-name>
+      <value>uIV3e0tQRNM7WDf2C927R4KqkOxBnWEREzMKsftb37jRKqTezVeqRYIbMgE24bTIKyk4NFgINrzpRkEq7SJYIr2mzyoDJadmIyqn5y6SZxaISO9ZyKQ83KuDiTg23moDUG0ZfYK6wUPgAQ70AP8DzCgSnpMiL2VxIWoXM04aULqmBqm37uGH7Prue5NR7A</value>
+    </label>
+    <fd-rule-group>4cd72b11-5cfa-9e34-94d1-42b54486ca7d</fd-rule-group>
+    <connected-ltp>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</connected-ltp>
+    <name>
+      <value-name>sFSrJAjbc9HBFsYjHJzpN0cSmh8wYp4qWWKFo3IAci3JK12jLtIqtVaHcbe3AalwY53f0LP53TOFMJZpczIyuSfz3luDnP1mV4BNIiSD3HjQiafuJXU6I2FLn1hLQaZD7srPKjsOSDEaNLxxBrvbl2WJ35mT8dxfFQ4p1o5U2BWPnteQNJ18LPJONXAVa7aPPe7QC4CwGzm3</value-name>
+      <value>sLH4MIPtrwgp6br5d9Ur8CWc7sSGGNA1ya5cSUGbiOsoSUl537pbKlnRF8peVRfu1kyL66XpVpNNb9K6g9hSmxB2F08ASnWLHnxNtmcgDS3PTGV1P5Ucuv69oeBgBqTaNiXgE2xaMsZ</value>
+    </name>
+    <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_ACTIVE</administrative-control>
+    <supporting-pc>9n5JYJPO0PLDuQjIlX6NTRb9vam5C5</supporting-pc>
+    <extension>
+      <value-name>PoENbFJlrmEGX4203xyKwn3St8xkf8A5o7KzElNXHrDwnGoq5W3tc6lFfLSmTkr9j3JXowV5Pqt46Ju3yxoKwKhDn1Z8mrhFu0vLoiI5Ic9HVEKl315zLf40g48unp2RqxuGPdMxhV64rRqvSvWvC1vT5Dfs2hbkOGTvLFV2s16UKwpuUdRweehbRxvMOzYv7R0SoNURP0Lrp2Wj7NP</value-name>
+      <value>2</value>
+    </extension>
+    <embedded-clock>
+      <local-id>4FWoq782APXUwepFATR6jnGPlBKxGc5DRUTa11c</local-id>
+      <lifecycle-state>LIFECYCLE_STATE_PENDING_REMOVAL</lifecycle-state>
+      <label>
+        <value-name>Y6tZJSjknZZBVr3zDKMqMSgPm117Dh2Covt7gMkDLjfyKiZn2MFHEVoSOpRsGUW4hp4x3obGHierA6HuSe3o2rgQI7apT6l3npAiNDYmV5OnbnK3BNjD7zmPyw6kvsnKJX3xBTToQzM1OwWibfViG987Ger3yOFiDAH6msvc296Ix20IaO1QX1XvfgyO46YAGFG27371cdKJfCkh</value-name>
+        <value>l0oePTt6k92i7CYEbTMe0Fjdh2kUeCczCsNje9pyakQaWGOZrs6r0pwhjR3ylgZXIF8WGymQS4SGDzy41EwT32beL6E6mEVXb4TRu8Hm4sUH1sMU6aO14R8QXMOkiK9tG2ka2Uo7miOnDs9BCXvHODpMhdYAP73v1gFW233oeJDRcMsOKXnqsM4KSUcH175VnKRpGMFUniDzX5gzVvZnaWZ2QbBKbGxyrgQZ2nT</value>
+      </label>
+      <encapsulated-casc>tbu9q6teyWrMeRpMh1Cl4r6JDiCMWFEhJ0q9YTgwQHb4yAIQtl3xMa8psK4giAx1AX2yIiXqR8miA503i3s45AlpdhFnR4orTiSCtH2kPpChmucEyEAD6V3bdA</encapsulated-casc>
+      <encompassed-clock>AsuvU4rbRSpT9HFIa7buM3wiMnUvF4TfonCij3l3NKWXjCxmJIQvEeGqCsW9wHoN415fWriK3fzfR6BsPrXtGvLaYzjmgz9cs7spyK1tRAIAGj2nDSIjnull3EIc5JoyQQPgtQKkqsVYEPehHWsXiNaejSqouOOkxDB0tlcLFZKbPYso</encompassed-clock>
+      <name>
+        <value-name>I1n6fELHquNBRt</value-name>
+        <value>cX2JDfH86B18CUl5uekAuRdbhHZSqkbDhdeNsVVroPzSBMXY1aqn1EyadpUEC59TbnyvbmWr3okEa9u3jVqcrReE89iK6rE9H4FKqBbtRv02FuXQhoVIf9nnix0hZEqyI5i1ztuqRukoZi6gy1ZFbe2lD2Cuy3290cazGESp14N0mT8MV7rYdmjRgOdHJgQJsSb0oVppZ4heQq0DpsBDOMmWAzDbHlN25Y2uLkLKo</value>
+      </name>
+      <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_PASSIVE</administrative-control>
+      <extension>
+        <value-name>GoRvt74gu3wERvGIzikKYRah7081g1qWh9jL8nTDiphaVQKm046YV8821g3hal5rvo4vLY83fi528Po8TmYGv6IwfDNhRSAegxJ1nSWCa2FaJVivigbNfMbmpYD8I5mYC6RZYFC0z9aj4kOeARTHD43VUy3CEqs8wj8mRCeqLgBHAhWa9HSMMNzGmDbS3D0rP0NGCT6f9AXJRLLSkvx6j6FxJQpElh5aiKQU</value-name>
+        <value>P2EhZn0C9TWEqVPwsm8aDMvVKy5mgZ051weSUfmV8b</value>
+      </extension>
+      <phase-aligned-clock>Pcvg6m5goT4u2hBlkAc</phase-aligned-clock>
+      <address>qv4s1JXOtvTPMKHJE6Qo05DN5OeDEnrWTooM7dAsJ</address>
+      <encapsulated-fc>
+        <uuid>d2a5991f-b46d-e3ed-82dc-6232ef5dea4c</uuid>
+        <configuration-and-switch-control>IsZYFC38psQG3NynwNmnvPDgnDIhH4mhxl74Qbc7v2OzHeW51blx0YFfCnpbsLkR7rVXuZ40TKztYnq0yLpqK4Gek5hEQBvPUiEp9Bh2dQvc5W4EzlWjhCpBzGfi9CZ4MElV7uYkcloh9sNJNKUXekyO</configuration-and-switch-control>
+        <local-id>xkH5qOou6Jo9RMsqqsqeva3bOOWWJPY99G6smuWkectXZVnpg</local-id>
+        <lifecycle-state>LIFECYCLE_STATE_PLANNED</lifecycle-state>
+        <external-managed-id>
+          <manager-identifier>dOiqsrPbwx6w7F9ED4fU4tcbTzVhBi4G6e6rFOCblIIkfJZTNe</manager-identifier>
+          <external-managed-uuid>SzZVkzRC29GI8VGzsu3EIMe21P1UvgznPra2S1EU3cub7aCAxF6frchl1b7ojHL00W2SPGEST8VS</external-managed-uuid>
+        </external-managed-id>
+        <supported-link>aXYXtbSsFINR4b05wOGbyB8ENzkF7izh8peBsZ4ZHJIDMJBiphmXKutx3O526wk6OqIgpE8ZfQu1r5cQfyFZU9pQXuSV0c2GDCXU8XTnNgg7dkXsKvsFERntdfo5kiMPUBJ2yvhdDqcQCajnFDUbmhEzoUwA5ap</supported-link>
+        <label>
+          <value-name>LFe9RsdMVjcw0FzmsROf2oYC7B4FBJPehVg8ftM2MYzED81XZH5U53w4xsK04r6lmmlBQ7EuX59sd2p4JmQPimTPHvPLOVY2ijw0i2u77vzkpQg9d7QvlBk2Z1FNODI6OeY6gldnQEz8vPhIOZ52sp4riK76fP54332bg8yZM77hOgRDfWFH</value-name>
+          <value>B1vd8CtPzpKurVLzlKmkJv8ZnDejaNxMOUROocDXBfsV25unHIHq6QptlvEwa3aZY1Fm6bcHqEutBZQizqAF8R0tmF</value>
+        </label>
+        <layer-protocol-name xmlns:x="urn:onf:yang:hybrid-mw-structure-2-0">x:LAYER_PROTOCOL_NAME_TYPE_HYBRID_MW_STRUCTURE_LAYER</layer-protocol-name>
+        <fc-route>zIJS0iI</fc-route>
+        <name>
+          <value-name>jQAhZBP53crSwF40C3NRk3oPG5gvAmgTcI33bS0fWsZl73dCZ0lbWKTCH17inf3APYD1Jw8FY70X2dr16N52pYw6</value-name>
+          <value>wgeDcGtacmTIurGtjvvpXpvCupTkNR3j0hPcYaeaw0S0rqlCVQ1KfwmBNfNB7QM70BbYLp09hK1I2mdXdeIkDWWq4BT3sG2s9diVua4MU6mWkzLxOlSjiGJm9DhtbjVko57Sf4w12TXmkJM04wje4VsdqJHB2uNqsNbHRHJLsyZF</value>
+        </name>
+        <administrative-control>ADMINISTRATIVE_CONTROL_UNLOCK</administrative-control>
+        <supporting-pc>L1Ubo3h1ltRYv2l2F7d1gJsEwRfB1wANxmQNi7ODtyBYAO18Ve1bQmImdXXelpTLMKy4JfzcNb3fZ4nNapY0LGmYvb4JBYufA2bbhKgWVjcNnzAxQqyBZMrmYo5zezGGuRRDB7ApiM4Fdw54WvxNhRa7f7ylze135SyzS8Q2MUASiFW62lUj4Wjj3REC6xx3i6C26k4L6EDobrvdMhxR5Q28zzDF62Jo0dq7qnSw1n</supporting-pc>
+        <extension>
+          <value-name>wI1nyV3V1e7AwD5Z6WIgn8Q3gHVJVABjbuHBpCoiIn</value-name>
+          <value>e0Q6YEOe1W4WcDSNykgKnLjZaVnlvL6JDWPusDItrFivi2jJeztCkMtnzII4lOFRCvl403pkIHPTB8CQAXkMBF9anJ6JpLs18N59IntjWacyjGgLDAx67zguim5I7xBg</value>
+        </extension>
+        <service-priority>-9223372036854775808</service-priority>
+        <forwarding-direction>FORWARDING_DIRECTION_BIDIRECTIONAL</forwarding-direction>
+        <fc-port>
+          <local-id>01rhILZZ1WoFaJxodIaxc5S55IEZ05m06NiHqhys5WZfyxDL7NbjK3gQDUHDR3DQJVp</local-id>
+          <lifecycle-state>LIFECYCLE_STATE_INSTALLED</lifecycle-state>
+          <logical-termination-point>8c0b5632-f6b1-1b90-dc8d-4334c833133c</logical-termination-point>
+          <fc-route-feeds-fc-port-egress>G0xGb80zAHQq8E6St4xzhByPkfFqk4X0XmG8uyz5gpnoVm8hiyIz18hlnWLISIIH5hHrPgoXxEdl0mCaUkCVsT8QHUqr</fc-route-feeds-fc-port-egress>
+          <label>
+            <value-name>KXJgAjPhtd8dilGxDSY5cN9KigfqgD70AQ839XkuasHlGfKbZJ8cwhWOp36FHdx93G45vgryB9ThoDkgessCJgi9joGSBeUxMYuh7VPI4ARlebBkDVXebffmEW77a1EWR05YWNySnp5t</value-name>
+            <value>yO5tLkw0zLwnSExLalCbjtZ6TJtjPXLfDJJo37guSNSCjhntvSwOdnM677hWW33zMMXHM63wTN94XwpkoW0BjMAiTR6QUahyW77Ad37YIg2FErZVfZorDYJxQQfC0o3Ov2p</value>
+          </label>
+          <selection-priority>-9223372036854775808</selection-priority>
+          <name>
+            <value-name>4XtaTlhjSN5Rsg25baNO4urNq4v1SU2WJoYvJ8OtVLcn16k4g7ScujZUgnN89H4TXVgy34TYQ5dJbyOrxGD1SvN8KAgLacw7ZMy2RrSzpYasoYUVxpXhMKpodxafByeBlMv46gvveFXCwJpV1ecFZt4406btEp4Z4sVaIqFW6uqu6Hp7WtMNWIROO2hljecny8xgq44ormSx39wZCaMyTvezpwUBC7YafoiFsm4TAOiD</value-name>
+            <value>OvAZ91SxfrWDepflohsMz76N30nKaTIZoaYpbIWj1LWfa4Ayl2cN2jsXbQHlBhcRkagnSdGUYD90HCz2EDHyOawZS5dtfpczssWcFD6v88w</value>
+          </name>
+          <administrative-control>ADMINISTRATIVE_CONTROL_UNLOCK</administrative-control>
+          <role>oAPpQyOGKP6F5kb7yRO</role>
+          <extension>
+            <value-name>5oyOwslaUd51cusQk4faUmNMKIA8KRQQfhwLJROv4Lx97RRsVYCHkhtWZW4KNNsV4YyFHebE0AN7jwz7u4OGlaCd6zPLmhyi7ZXGd0kdAZlUnM1RQHpcR2hPt6tHfTZmSOU</value-name>
+            <value>P7bh6o3ub4d1ED5nxm50syzHjyV4eQ23XddVCghFdnyR0EepSjhdJQU3gI7uq9qfeD2QLknYHWPzs4Ykf7xZXk2521zkaRromt78Fm6eiWNKSD57Ku6zO0EI16U3XlkkPjsuFqJYeoA6Ux6w246IXCjQIdMyz6SghcCWCdMJCfHoMNUGK0hzvAp5FbD69</value>
+          </extension>
+          <fc-port>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</fc-port>
+          <fc-port-direction>PORT_DIRECTION_BIDIRECTIONAL</fc-port-direction>
+          <address>f441NyguWVaRBMJKlekKk0OX6PllgMcvQgoDPF0Ds2u3O6G9k0LwSrmRhz4pl8U4oaH5HzJ9B55pbLqoDcUoD87UHbbVj5Zz8yxP88ZBd41hHrFkvrA1sHV1K7W34Vv4m2Um2LX7HYooi3AFnbGPKuQvtFqpsVuOPgaJ18RIYfY8bqOqtufeYXJjC1J5XdLEtWgmW74MmUVpcBPG</address>
+          <port-of-internal-fc>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</port-of-internal-fc>
+          <is-protection-lock-out>true</is-protection-lock-out>
+        </fc-port>
+        <fc-switch>
+          <local-id>t</local-id>
+          <configuration-and-switch-control>J6YaAzGE2RGMTaOBWvjEpdfgcqZF7QpIWfSoOr3QaBvVEboAGIe5Vml0MdFL34lRj670xa</configuration-and-switch-control>
+          <internal-configuration-and-switch-control>zEduioSS5sZ2odggZlVDgSY73463thM2VRw58hP5JO7ZTffLA3oQVePYjWUM5yPSpdXxmMu6tuXeJ5Zc8n23CKTNyFrDd8nvmc2AYpyjTwyCBpGJNBEhlpWLXngaw</internal-configuration-and-switch-control>
+          <lifecycle-state>LIFECYCLE_STATE_PENDING_REMOVAL</lifecycle-state>
+          <label>
+            <value-name>s0ym6umFK3uk9oUDQGIFqLqu3HpCMnz6fZtdlPK6K6iLn5gdDZK3CapGKGao3BvasQfNxRT9Y4Vd93qMUbHpdZ5PF7eBAJD2zTP6KB7AF2NO66sS99hm8ecGdihN1UPsFxqi0xSFsylqENiNWA1XG5DUnMHg</value-name>
+            <value>pIeO0wOygtSGOicBsZp2T</value>
+          </label>
+          <switch-selects-ports>PORT_DIRECTION_OMNIDIRECTIONAL</switch-selects-ports>
+          <reversion-mode>REVERSION_MODE_NON-REVERTIVE</reversion-mode>
+          <name>
+            <value-name>sVEeX76rwlMZdCLkdXkn3NmwYPFCp0vRW1XT83cFgYwtA9ON603aOhyE6d8ndDe1E3NM7ZjnYHJqQp6Xh1Z5ixBoCJLPmRJ0UwF1vQhlySMohKdyL4w3t7j5R4N5Nw6H</value-name>
+            <value>DBptKL1CpiL1vjMsHHVH01q4GvJctq66TnAD0t7hLSi944BLDwkDpKz5gi9JB7Quvi0vLZNpSXqOU1rxpMbHwCMEVOooV6SigKGTKliuiIacBBKTfNAMpeqc2GAQEl8UXOOz1Y3kz5w2H8VWNvA5CThErKm65nSU3yu5xppYvN04WOSBblGNeQkFAGDx3wj74NctdBrAgkE48oGjJe7X4jvwZ8V3wf2B2647HoHXAd2AuATdOS3T3qh3ydY</value>
+          </name>
+          <administrative-control>ADMINISTRATIVE_CONTROL_QUIESCENT</administrative-control>
+          <extension>
+            <value-name>BYRveD4uctdih5O5DWqnD6FPz8HZ2AdDqX0Es59wyeOIjCFPrYc44KTESsvMUAilxiR0fSoO6doiHV78TbcYVYuFiZkdrCqZMhR2afI8k6q2TpaNBfDo5Z4nQoAhS08EaZyk7gkreDt02wNvLiUQhQd76GgYGpuQoV2n3nPi0</value-name>
+            <value>iUyXijf41oU7nSNDIl24cjZ6G3lnddqn8YkiarmbP8ic0XPAjKEn3EtJzP7M2p92nlkxMGJtOTxGReg2YNp1jSDSzCwC1FEoSRWExxZeiwM1KV3JIkC1dfTMRhgSWN9GEXc3mb9EHWyjRB2rWFs1MdFEuOoiBxY7u2aQdcnU8V5Ro8acFC5rHLX3rmd2L3185bQind4n096h9gtOKz8</value>
+          </extension>
+          <wait-to-restore-time>-9223372036854775808</wait-to-restore-time>
+          <profile-proxy>4sa2K2u9QUPQPT2BZZjJBGY</profile-proxy>
+          <control-parameters>
+            <network-scheme-specification>OKgknN44fgJ69AQqR5aq0vLwug7LGBQul6GAUCE1Tf8UIYdr3nR3TDrfTySz1JWeHCOt7kv0sDMaBZBxfls0YM7Jc0aeB6saB9</network-scheme-specification>
+            <hold-off-time>-9223372036854775808</hold-off-time>
+            <wait-to-revert-time>-9223372036854775808</wait-to-revert-time>
+            <reversion-mode>REVERSION_MODE_NON-REVERTIVE</reversion-mode>
+            <prot-type>FZTRKhheSGVtlwZCJgq</prot-type>
+          </control-parameters>
+          <hold-off-time>-9223372036854775808</hold-off-time>
+          <selected-fc-port>
+            <local-id>59QPEN9xqCUHge32ILyjFIqkose60BS5KIMgnNOGqAnGPqJpb9JJK130u96uDQrnrdwO0cuiMJZt9ALdBmWlnRlRSjdvaELBRhhKtE2</local-id>
+            <lifecycle-state>LIFECYCLE_STATE_PLANNED</lifecycle-state>
+            <logical-termination-point>2b454936-1b31-1d28-4dda-1d3475708a0e</logical-termination-point>
+            <fc-route-feeds-fc-port-egress>FfqMFcD6HYQnDYDkldXN5pSF8M6moOLV33IAfdGP4w4HmI1HNQuT7fqg1wCicfdfjNPy1nf5LkE82xPPocAvr0Dso8CAnQHGvo7oLmtxG7xIxmqVqSiRLWc94OCjwj02A7qllMK2LhCiwU5WNoGycSz8Gbr5nj7XipaE3NyH42ZsXXhKdXapPJpnNIk22jZcJ1IEOglLbd582mKfbUw0vVgaDAcxU3KvXs1LBnoMsuMuIwJUifMF2UQFn</fc-route-feeds-fc-port-egress>
+            <label>
+              <value-name>kDp24WwdeDbMGizSs4pqZOnsMIsn0o4kUtmQpSVEo6iWhJOJNd9ETo</value-name>
+              <value>y6qV7P0rBlGjLqfhOdrKuaq5XvfCpDAXC1KJIC2bQAut1BKPP3s</value>
+            </label>
+            <selection-priority>-9223372036854775808</selection-priority>
+            <name>
+              <value-name>nTtpleCPAq2X9oP1z2pBza4qjm2E05LfQ6E4k8TUyVKHbrBLl0mU2rddFfRxcuM3BjZVrSI0FszRT2ue2Q1W9e9Gt0dGnSBY3ALuktmZNOIGQcNTVOH42RDnJQ36Aw4DYQ8ibmaZaSx15cMS0tOUcriWad2KKZoAHoTSKVJVF9OClsueNj00KaWUoQx0HVAojl938KQOTwq7YVlE6lEIwsvMa2MSXe88sh3A2MoNiPU9CfNI</value-name>
+              <value>jqRDVDNPhFMnOMPXQqRCOFMvzN7HsH2L0ToNo4DxBhUh4KfM26oID26dQ5MiNOWFHcs5gXuSfo9b0gX2ndD0fJ5XORgtx48egBbxqFpFWqIWHxRWKmOS5UPLDXf31nhiQlPhS6OOoxD54m1HAQrFCgi76xa7VkhDxYUp4B6l0BqW</value>
+            </name>
+            <administrative-control>ADMINISTRATIVE_CONTROL_QUIESCENT</administrative-control>
+            <role>FJSC0XeUypAjalTpytoZc1RJ9SCjarvI3fk3dqPDPhWRCIha3x2fqTRzDlKGMfoHnAKA0s5HJ2</role>
+            <extension>
+              <value-name>dKh2gwwx17mv066IB9TjJfMCRokGrMRwo8yEw5bq4xV4w2EZ3piEE4hvsB3LfVhDVPikMlKITxEhza8Czq96mqBG1Fr8sILfpVz4hbE2JjbaljFVJO15euD714flE0B3W2Z56E7PPaZatw5ckY9ylMxmIMImFbhtdh</value-name>
+              <value>jVx0CHSMaoKeJAf9VTHiBl0P036tgf1s2qsEZkr1J3fkDulzf2RQoJFgMEKUTDmW4PAV1TXCWcWAza9OcSxst4J7Il1uYgqUXSQYMNtIRhairj7w3wYoAzvbUpFTx5FuPnkB2NcUXm4oy</value>
+            </extension>
+            <fc-port>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</fc-port>
+            <fc-port-direction>PORT_DIRECTION_OUTPUT</fc-port-direction>
+            <address>02knd7MSSbPxFEVS8XxkJuyOT6RFIriAtDXyCCquN71lDOdLEKXn7w3SuVx4eQEzlu7XYpjDwcY113FxGCMN0QxvD4zRM6iZspOqO73ccU55PKCnfo2f6zCJ</address>
+            <port-of-internal-fc>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</port-of-internal-fc>
+            <is-protection-lock-out>false</is-protection-lock-out>
+          </selected-fc-port>
+          <switch-control>SWITCH_CONTROL_FORCED</switch-control>
+          <address>bzxXCy5zBVRR1NeTXda6tENe5Nx9KUEWl3LQBIp4v9VwW2iTfsSIYxW3cm4O8ICtLnje5JjtSeZGg9svCc6AJUwNgsBo36SOl3VjE6MokD5tNxQpJWRkRn7ZQAgTy0zU3m</address>
+          <prot-type>UOUv7owQll370o38KRfGDtsqTF1IlZx7FrCMH8D3uyamP5urWJ8rcsSX7LykC5rho3W5cr8GZaUGfo83Z8n3A71ISz2nEmw2ps7BT89Li3rqjrtizQm2XfKIOE5k0BmiWlLPlVsEQU42dpcN8qP5FrFtXCNQ6102fLRAyc6h62jbkvQsWxptY5XOHCwNEwHLhrlQDk7BmiMGFD0taqX1nUHWodCUBjFSKTAndzYrRD0xg00ii</prot-type>
+        </fc-switch>
+        <lower-level-fc>25fbedaf-00e7-2908-fe09-07fe37aca56a</lower-level-fc>
+        <address>CeSMqiXYyIt0gz7PPuZ3zz2ZbibKr6G3kqICJFA9o32wu9djD4e5Eh4PzfzTe7Wqpw30cvasrcYVd37R7lOLCSs4Z1Xd0LEiizimWkOnwEbCzalGv9k01M4SGTYywuQO392ZtQfSmiuVsPuXYOPRsTB8EzHb3xRYyUQ2CXMRf8MHX8wNWewh77pEzYPuoytWkbQX8COfKsWztkehyKyyKY4bWLFcj09E3</address>
+        <is-protection-lock-out>false</is-protection-lock-out>
+      </encapsulated-fc>
+      <sync-ltp>5b29f3db-6f13-96c1-f189-f038af15cc4a</sync-ltp>
+    </embedded-clock>
+    <client-ltp>4ace155c-6c04-f585-d9ec-d6a845794520</client-ltp>
+    <layer-protocol>
+      <local-id>GmLe4ffIqjfqoS6yEn0V7bjc0GT7bElR0Y5WdcwDwM3Uw2sapkYxw9BoPun08IK1GHPUUmpq0lkwnEyEZwbvGNLn98gaR0bpz0bteBLeW5KbCbPBzTY7yJvHJLRADUScN3y1wj8khSvTVdmv6cCwN7dwKXZfRRkwMSqj3yDki15eejJcndIadVzXKy5uhp039qmcYSp9</local-id>
+      <configuration-and-switch-control>PirT7FT3hwRCMuvk1JjzoATQkic20VrH6SB5pm0HSRbxeGJ7hUHFuswPCAJCwacC2FHk1HTMr4bxDUEUPdAbF6SayBM4LQyGv7SpHL30Pexk03fH9HTOFDYd7DaSlIqJIa0pV3</configuration-and-switch-control>
+      <configured-client-capacity>yBDhElAuy6KLe4RjL7P1341n50uubA6BcJSI4lcvjO8xSZQwYxpTtqhrqDNteT5qvP0r2cWd0WKKVtgLSGxm6GNpjsSpmP</configured-client-capacity>
+      <fc-blocks-signal-to-lp>9OX9J4JSLuzi7pwe2yZg8hZQsZ7n2oS34Q4OMNGqhfIpF6vzEuPNEGv6FDlz1eu6WzUIms0EIJVfHqGeNo1r4wpC1K33Qy1M7Nnt7nZPYUWydDMS1NbXbAz5cD0331HaG4vNknva9rImWu6P9hNdJeiWRiZMbyWRDkEPH1ZQlA5h4b76lMj40B0KLRwWilNVFjCeltWG31P05O6qApmBSflDYJrg4e3BpFPC9Ea4F04COaUhrhSjw5OmOfDL</fc-blocks-signal-to-lp>
+      <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_BUSY</lifecycle-state>
+      <label>
+        <value-name>a</value-name>
+        <value>xjfCvYZ6hBnSEIKw2ZSjhwKA1vzlkClRVtmirlhBOElke5R8WBsd74G0z7lTJzDF2ZPlc6O1C9dR64Z2xj8wnOwXVKIFblc5c1ih07aC8ntfklhREpg25ER1gzyrVKwZDPgDOigWGBb0WtJBKRvQwmJMN96ATCAojIU7124HD7zAAa3d2qV</value>
+      </label>
+      <vlan-interface-pac xmlns="urn:onf:yang:vlan-interface-1-0">
+        <vlan-interface-configuration>
+          <drop-eligible-encoding-is-required>true</drop-eligible-encoding-is-required>
+          <external-to-internal-vlan-id-mapping-list>
+            <external-vlan-id>-10585</external-vlan-id>
+            <internal-vlan-id>18331</internal-vlan-id>
+          </external-to-internal-vlan-id-mapping-list>
+          <restricted-automated-vlan-registration-is-on>false</restricted-automated-vlan-registration-is-on>
+          <received-priority-overwriting-is-on>false</received-priority-overwriting-is-on>
+          <default-priority>-30</default-priority>
+          <internal-to-egress-vlan-id-mapping-list>
+            <internal-vlan-id>23770</internal-vlan-id>
+            <egress-vlan-id>-7589</egress-vlan-id>
+          </internal-to-egress-vlan-id-mapping-list>
+          <priority-to-traffic-class-mapping-list>
+            <priority-value>-73</priority-value>
+            <traffic-class-value>-8</traffic-class-value>
+          </priority-to-traffic-class-mapping-list>
+          <pcp-bit-to-priority-mapping-list>
+            <to-be-decoded-pcp-bits-value>-38</to-be-decoded-pcp-bits-value>
+            <associated-drop-eligibility>true</associated-drop-eligibility>
+            <associated-priority-value>-82</associated-priority-value>
+          </pcp-bit-to-priority-mapping-list>
+          <service-access-priority-tagging-is-on>true</service-access-priority-tagging-is-on>
+          <interface-name>WZURpQNLrt538ehDmYhAcceQxXEtsNYoES8VIVz1gE5oKm1YcaqomE6LtDfVi5cXXkSxfjqvXvLzJFxVPXc4tiPWVWK61O3</interface-name>
+          <default-vlan-id>-9223372036854775808</default-vlan-id>
+          <interface-kind>INTERFACE_KIND_TYPE_PROVIDER_NETWORK_PORT</interface-kind>
+          <ingress-vlan-id-filtering-is-on>true</ingress-vlan-id-filtering-is-on>
+          <pcp-bits-interpretation-kind>PCP_BITS_INTERPRETATION_KIND_TYPE_7P1D</pcp-bits-interpretation-kind>
+          <forwarded-protocol-vlan-id-grouping-list>
+            <forwarded-protocol-group-id>1335170668</forwarded-protocol-group-id>
+            <forwarded-vlan-id-list>-9223372036854775808</forwarded-vlan-id-list>
+          </forwarded-protocol-vlan-id-grouping-list>
+          <ingress-tag-filtering>INGRESS_TAG_FILTERING_TYPE_NOT_YET_DEFINED</ingress-tag-filtering>
+          <admin-point-to-point>ADMIN_POINT_TO_POINT_TYPE_NOT_YET_DEFINED</admin-point-to-point>
+          <received-priority-overwriting-list>
+            <to-be-overwritten-priority-value>62</to-be-overwritten-priority-value>
+            <new-priority-value>-67</new-priority-value>
+          </received-priority-overwriting-list>
+          <egress-vlan-id-translation-is-on>true</egress-vlan-id-translation-is-on>
+          <service-access-priority-mapping-list>
+            <c-vlan-priority-value>-81</c-vlan-priority-value>
+            <s-vlan-pcp-bits-value>-53</s-vlan-pcp-bits-value>
+          </service-access-priority-mapping-list>
+          <statistics-is-on>true</statistics-is-on>
+          <drop-eligible-indicator-is-on>false</drop-eligible-indicator-is-on>
+          <vlan-id-translation-is-on>false</vlan-id-translation-is-on>
+          <sub-layer-protocol-name>SUB_LAYER_PROTOCOL_NAME_TYPE_C_VLAN_COMPONENT</sub-layer-protocol-name>
+          <pcp-bits-encoding-mapping-list>
+            <to-be-encoded-priority-value>16</to-be-encoded-priority-value>
+            <to-be-encoded-drop-eligibility>false</to-be-encoded-drop-eligibility>
+            <associated-pcp-bits-value>-73</associated-pcp-bits-value>
+          </pcp-bits-encoding-mapping-list>
+        </vlan-interface-configuration>
+      </vlan-interface-pac>
+      <layer-protocol-name xmlns:x="urn:onf:yang:vlan-interface-1-0">x:LAYER_PROTOCOL_NAME_TYPE_VLAN_LAYER</layer-protocol-name>
+      <lp-direction>TERMINATION_DIRECTION_SINK</lp-direction>
+      <name>
+        <value-name>mn7G6j3b16oOFer5jVmANhJ6EN4o45hrsoZqzUCs00gxeHCp</value-name>
+        <value>QZi8AoEgk2kqjLSzCb0xNspFIPUijjEabWaLcO1xIeP1ZzsuKsTpUa5uZREj2jld7vZkbSJT6yMYZ6kKyd1kn6GnXly0wL5D8WXjPy4NYQDYOXAeaByqAeNprdhXYnB6jqh0RlGP3jNR9f5bRvBjBgI3t00jfthqMyjDTZk</value>
+      </name>
+      <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_ACTIVE</administrative-control>
+      <extension>
+        <value-name>EwcrFi2qNuO6cI65K2Mg9dIKoLPi3KIH8M8N52d</value-name>
+        <value>w1IJCOOeQtm0y4COHr6K3OrbtsYqu3aTWSuqzaFpD1h4YTSFcZq7FJi038qq3Aj0lNqUXXbtRtxPmhuz8MGOoROrR7RVH2V2PdONb082tFRHWd85SPLgyrzhyjc8lZ2bdRQoJYi4v1LjeUgYBT69dGqDZvLkuGnHpdX83fcygXKnR0lkMstZ0MCZ9gbDWzdlM2lQixgqmSN6L1q</value>
+      </extension>
+      <termination-state>TERMINATION_STATE_LP_PERMENANTLY_TERMINATED</termination-state>
+      <address>qSkz8vcW4h9RkuzCTH28AIedJwK4i0xISRh1mmPjDZ2PlBjfaenCWtPFZrJar8SkR2d5g2oTTqBf1Um48BG44oBVPc5hcYB3SG98IxTuYuBRpXVpquuuKXhz2nIedbi5Rr5sYYWOlxGCmt1MPn8zlp1nMJBZVTWMc163S2R5rpHNLIzs6zUjZVGDw9vjVr67l4257May3ReOrN9xf3QeYoRmymGtGEsTIvYP90gcJu1a9aIo5q</address>
+      <is-protection-lock-out>true</is-protection-lock-out>
+    </layer-protocol>
+    <ltp-direction>TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN</ltp-direction>
+    <server-ltp>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</server-ltp>
+    <transfer-capacity-pac>UO8USH9yJVcWx2tQMwzobOztAc5LD2CpILjsks13f5ZE0kvEQW22KtncFkYaeszW5LhpdatlfkZfFmTnjNh3gF8VZ656yxUEib3nloIBJAIgWCD7hV3yAblr9jpHQkd0v9fRpYk8q2oew2mOPp</transfer-capacity-pac>
+    <address>pkugPBZIlgnf747KwwEkPL7xZ1wpF2cWmy4414Mmk9</address>
+    <peer-ltp>4ace155c-6c04-f585-d9ec-d6a845794520</peer-ltp>
+    <ltp-in-other-view>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</ltp-in-other-view>
+  </logical-termination-point>
+  <logical-termination-point>
+    <uuid>c931723f-d4e9-a03a-492e-a4b6db919794</uuid>
+    <physical-port-reference>371eda64-3aa3-f78a-2711-ea75d567381f</physical-port-reference>
+    <local-id>7dgVAXAA0BfYTml3OpoTd4f9P1JoK69RjpELmemmPtdAPqvDPUoUQv3xpF</local-id>
+    <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_BUSY</lifecycle-state>
+    <external-managed-id>
+      <manager-identifier>4U1Ozw96T6CPzmB03xza7v0YAd6ZfIVbCOZ3k0257wUySvyV2062v6SXbZPiHKtbyl6Kl8QkwKSo8jc2ja4G8PDjOktv4Oyu9E7nNXHbzsAHLMCWWyC4n7f3sAyoo6TyD0ViPutoW3YzHAnv0ZroZyrr8SPx</manager-identifier>
+      <external-managed-uuid>AXtsKLh67GVawmKYK7YBzeA7yT8qJx8bmuE67V4etZhZm1P68Ozz2azs3HSE6TIsnmym9CBDuSuQTcOT0ntUp2nlB7ZHSz97Vzu535AxXWnI83t0rWNQQ2bj9302C11qAvnEAP3pLrZMutENhrE0tHjvKcpfdqFOW2kwJnOmON8b8NYi6uaAct5OFu3TUAzIu</external-managed-uuid>
+    </external-managed-id>
+    <label>
+      <value-name>JV2wRmlSXYI3wz21e9o2l5VWfBWYZeZAaT718kM5bm0HO2A24ZWpWSd3l12cg1NqMMjU6XR9kRI8Mj2QaZ76Jk9Wl31B4O1JsdvqanAm6iuKtpsDgzBRTLNfOOQLuKmWXRnZ6Pm57IHB7a6fBI6nlMC1skEPW0DLK0LIHZNPHniHxgO</value-name>
+      <value>YNnjrRdL4RA0SeMu6p4OgSvP7FoEVdwM0U5jLa4P2xIMLmgJLkpT4MIbj7Hfce140YnL1rt3YbPBxXda9u3ehDhAKRHW5A0XrfAsz3vp6c1v96xiAsoJ6GkIxTxuupjVFTfeXKDVWwrXuYf5jEGpc07BMw5gWg3t9azYU4UIBdxX3MUmiBDutD5f92nXiiqksZi</value>
+    </label>
+    <fd-rule-group>4cd72b11-5cfa-9e34-94d1-42b54486ca7d</fd-rule-group>
+    <connected-ltp>485ddcfd-8e40-0021-4ded-622c0d9a41be</connected-ltp>
+    <name>
+      <value-name>AuWWch1M7raCg4T3Mg6bFDYGgUq57GFHbtEfKx1RZ3m7Z7aLn9W3MMB3G28OANvD81SSzMCqPYxP5Is</value-name>
+      <value>Rhnv3ZqCTyitdN7lHR68DIytGXaDxuXgLlMHccj5DBqIgpWPh2XMKn7idhVKMK1pXF69Jh6eKxXTOTIXVyKxNRP01CDNew4c3blMkk15RYYxJyvwY73MYKEZehEsFJEIUSv6co3Ve1sXsPlqWg4V0JM6Sryya58WXD2116WfZg4j6pCUxGHphuv2N4sP1ALY6FR7DNfvVbGTBiO0Rnq</value>
+    </name>
+    <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE</administrative-control>
+    <supporting-pc>txjSdoFn00F1U2Klw7Y3VoXBoIgeoUkJjEBo28L29jW3lGgKFeFAvD3TdkZB6kchYNFSOjNXCJSPh1zWffoKKsvXEvqKHCTxhqp5J4UdNF3WGCKNJ9ytt3i7qAJ74uEeUWbE0YJGvMu3hfQ0gomJkwICZjC3N89z4l5XjPvOBZRK6HDmYRXanxMeIginprXtE2iXRFDlxm5D4ASUrHWHfAVPR5dgp2B</supporting-pc>
+    <extension>
+      <value-name>44Wxhlud8hziSdNlQKtRFQPX979B7sQ3wEsO0O105siXxXbfIE7fmO4nVeRUGzPc5hS56LX3681D54TFASUWyZct53gLC5PHfIFdl</value-name>
+      <value>8rC1XA5I7FsUu0LylQBBt5ziMGSjLeOTxiVmK04KywwUwhsSZVls0MKEsvYdJE78OUvrUrbkYH6mQy6Htk9l6L0zgQERmDS2xntkOwwE5DTV3ZuxjDKihKRpsn9GT1Jig4C4B1BGEuuHlY6xuRPDty2OVbuGcdZsitpLuSr0eNIzEGY8xNLTdFH1R3HVhGgraxcEpvFvbf4PVVXlIA6W7NXQQ</value>
+    </extension>
+    <embedded-clock>
+      <local-id>EbDgq9YX0NSgexJplJAR6BxwW6QuqjrXu45U53K6JCeX1YemzOdxhK3dQLI9496z53l3651HzfwA5LXEra4JN7WvLwEPxCgvFCyEzzl9GKJMvGiWJmxommT7SyOiaXNQrlm0MH1sjL6OjpDUL2iZocY9CFrEC6mVrIV5iPxBs</local-id>
+      <lifecycle-state>LIFECYCLE_STATE_PENDING_REMOVAL</lifecycle-state>
+      <label>
+        <value-name>YnkYY8YJK8poFtFr6NgL5Ls7tYlIrJlq7GgXOezrnYP2jmlpaC2fnvmRtzrUjNcils71zGsWwiQQE37OFaVVF9E0J5MUKZ45rb70KzO8RwYos647g02N9yNKEzEgqImSUlKwUrEEPvUhBYhJYbw0KbKgKhw3ZKVL5x</value-name>
+        <value>SQOoyjaHM8Yv72TZM4BUGSiJS3wv0WNKEt0cMaUybKVaMG9qCKcaDvUnqiSi6xVL0NPEYBc1eZbSFkbhWnsrSeOaozlv6g8Z3PDTjIUxH5pfhAweYQFI4mLlV6ITeQKhxg3QYPnxVFE473i5TQGQcjbZpTKDBvM0LHRBx60kLFoTIzQtpojtzmkY74tAz8BcPkFeqyy45XPFox8FOk8nGseGozgYHJ2p3ADm84i517KhwSWc4WALgGjE</value>
+      </label>
+      <encapsulated-casc>4A7zlE3TrEOvldvMwQ2yOnktsXLwnMssnzTIdOtxsa2GfpkL7mkVBEpWu2kRPMbcl5MyT85ei0Mxh6bpkvkN1BJvE3flPip2nbt9bqftq1TIZ47brjYsNAQjD5Eln3fD6IEi9TDrMo1Ds0OLkEeZe4iK1OXgRcLPVp74aDvO1xjmx77JEdIS9Su2GrjpE47rm6nwJSdLhwZHw6iacTUlLhokIHJeDQFZX2oyNtbWZavv9OxlHkGkB</encapsulated-casc>
+      <encompassed-clock>AsuvU4rbRSpT9HFIa7buM3wiMnUvF4TfonCij3l3NKWXjCxmJIQvEeGqCsW9wHoN415fWriK3fzfR6BsPrXtGvLaYzjmgz9cs7spyK1tRAIAGj2nDSIjnull3EIc5JoyQQPgtQKkqsVYEPehHWsXiNaejSqouOOkxDB0tlcLFZKbPYso</encompassed-clock>
+      <name>
+        <value-name>qLVVyyXQymUono3O3xUpsd8giq5H1xdja86AH4j7idvFCrlxYfWjk4zumwbgVhz5hGyYCRXU4lryMM5K1U3dQuH50KlV1MTjkj9Wa7I6k9x6VuQOoM178Ac9lxWmjHxE0</value-name>
+        <value>s2Gb90kGY8aGWrsQyBqKCLhq0s0x606z3EC4wWKu4U3TdvJLY9vsNMTN7TcdLbEGHgKe5uA1hDUu1DgRFDkki57pYbCBe9iWh22mpCgG8a21GaSdOcx69wv7HZBO0TKiNMw4gMKgXFhvPaIvefBo</value>
+      </name>
+      <administrative-control>ADMINISTRATIVE_CONTROL_UNLOCK</administrative-control>
+      <extension>
+        <value-name>ruPbx66ZJs7NC4GBOX8GLkLHMoXszCA06pbvvam6ClU7psIdiQM33pDHNsaeWKeV1iiosFu40g3qJMDTupOxOj7tMhHITODM6WaytEutVyTwkphOG5enplQ3uqLf6h1c5bKyH6TuEN0Y49FK7L7w6Qrs84HelIqiT2Is8CXNhPDlZa</value-name>
+        <value>6V5uTNVlVZ29dKrvvt6YBINgRCM4BW1zSY3DLQZGQ1H3E0q1toRX6E5P9RTCONcyL7bxY25GWFBsF1t1idYgJ36SVRvBEz1q</value>
+      </extension>
+      <phase-aligned-clock>4FWoq782APXUwepFATR6jnGPlBKxGc5DRUTa11c</phase-aligned-clock>
+      <address>Mc3rNvZHQ0Z3YfFTdxO5UhJli12nIyuvDxOq2N7SNYOD</address>
+      <encapsulated-fc>
+        <uuid>a63c6adf-b9b2-9bf2-8745-80d7edcd7459</uuid>
+        <configuration-and-switch-control>7rc3WYBt7zN8CAAhVrKYkiNamODfK0dJjqM7gfBnOovrQXILokBAuhKR5n6HfjqyB4GRjh68xBrnr10PlBqHSayPqwwFQOejKMb4Vh4sLvHcwH1Jajq3mRKMn9r5XxpIjAEeRAyu57GtGAcRTuMflw1JFlGvS55cx</configuration-and-switch-control>
+        <local-id>fH0wx6yMCMirsqTtdHbTeWDBwkeVii1xR13o7t2K7cbAD5VIE</local-id>
+        <lifecycle-state>LIFECYCLE_STATE_PENDING_REMOVAL</lifecycle-state>
+        <external-managed-id>
+          <manager-identifier>xuELHPBg7751A7w6vgxi7jI7G83eHTO7flKXaldhkiiMhPTM5iX5BFc9N7onS4m8p65zjaQEk1iBIbfFucKXRO7xWnMGr8OR6LipV1372mICpYhT2UJMIIjw555w5LfbxyAkzwstK2590eVV8EHJeS7jPcPUYXXnvxzWVThFWePOsCJt8icmabFZgmL6jItG8Uu3OLBCZiikUUN2cZgf2Vei9SolAJ1AEowk97O1p6lj08d5Ztk</manager-identifier>
+          <external-managed-uuid>gqcpiAKLkElQ2R23YQ4fWhqPhDUgY6aewewPOgA0MNQOFSSvAODx63</external-managed-uuid>
+        </external-managed-id>
+        <supported-link>JLgQsJx2NgN923vyW66hMBaKGehpoyA7kIYEjnG6DlfFoC5dIbunMw</supported-link>
+        <label>
+          <value-name>l4J3DjCEYS34BV5cE2km1rHyJH7zcX2xTDAoW4UMWYIqLFCqHPMBgl9Z3gqf5kMZPefEaaq701pLG13gIIRZ30QY995etJ5bXdP0n7</value-name>
+          <value>f8o0HhWX0wORrGHqPQvWc7Tn464WlbVAkbt1tpQlNwcecLEUu2IG9BV5AZ2VaPwm1Zfmg5H3BT9GwOA0IayJDtGdkA1nqxJjoZFE4mzy7IeDoGEYQ4HtyozKYA7g7JznAeTwss4z2a5jQBhyFZ25ftQ53Pe2yNh0UaxeuBOwMLPum73TYX</value>
+        </label>
+        <layer-protocol-name xmlns:x="urn:onf:yang:air-interface-2-0">x:LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER</layer-protocol-name>
+        <fc-route>PVd5330BdQxjMw84zELJHpjp9NIUYVwOJBLMwDfJlEV7b33KHPlg6xFfkn2ajyY21BGpeN1zjWyuZu6yjsOpZtxbJzlUZcO0Nmp29qtseUPdoVDzfrQ6Nn9wWviNH6Nms5gtnCVCwCHMqldFE3ErrNPfi73RdI6xFm0VYOxmq60Qrdo6h2pAP7P0eKJklPRScSN2GcpYjpHCD5AU7SuOZbGdOqp1fhTj1zmzDLxWaerFbTzaLVZKZxQFXf</fc-route>
+        <name>
+          <value-name>6JS8gB9cZhx21F647J12jF0VpNULYll4454cG6gxnOrgtykAheuBLuob9aO7v94r60vM6MjlALB3jOvs2ZVNlbQnlEmQFi9LjFxhrJDTmeOF2jZWaVKnYsKk772Ep4qIJP02qvVMJJjEUjAW6cj4F4gEbjasns3Yi30IqNn9oGFaZg6Xkp2Rlanol</value-name>
+          <value>RI0UyaPqLf58gtOWDG4BDoTxgeIDD33uE4g4e5vZkAZA4OwzuA3ZRWx727CF2G1GKhLQm8IyIH1Enx6J09JR58Q7fkFh0yQCQ</value>
+        </name>
+        <administrative-control>ADMINISTRATIVE_CONTROL_UNLOCK</administrative-control>
+        <supporting-pc>sCgJ1Pb81TYFcldaYyqvXUB2vEoSrVRLx7vqWGzX</supporting-pc>
+        <extension>
+          <value-name>5qH2lwgfXWwXIGuWaYCyKno6Bn9vd6mao34JrlYo9u</value-name>
+          <value>R2IFcGiLix1p1gqolxKvVNzx6MvvVSJEUjc7SmK2TLrUTSaehUJ4zaBGX73KRMhL5lKPHuSA7bn03x6ckPhTSKrHJujAg</value>
+        </extension>
+        <service-priority>-9223372036854775808</service-priority>
+        <forwarding-direction>FORWARDING_DIRECTION_UNIDIRECTIONAL</forwarding-direction>
+        <fc-port>
+          <local-id>7nHLi1jkhLhDgFDY57eojEpNBpZ1dlzcJgX1a8erLvW2azSgz6ESLVxekofxKPJlXye7GsrkYfm0HeggdU0YHx4TVkix91S6rZ60jpkhEGilMqtZdtPUSUOGe6df0YdjXbj8Avq73AsQ0OHd9x02rOIxMNM</local-id>
+          <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_BUSY</lifecycle-state>
+          <logical-termination-point>8c0b5632-f6b1-1b90-dc8d-4334c833133c</logical-termination-point>
+          <fc-route-feeds-fc-port-egress>5kqU4bmNSPbIqw7AIOp9b18M3kG2or5lDn8Iyuniby1CX8cxWu</fc-route-feeds-fc-port-egress>
+          <label>
+            <value-name>JoPnFVAUhor5FuLJKt0Tv4AtbxeUOrppI6Mn2f9bvAgb5TUHfMtKI3dTArFhK5ys3lP5sZgXro8oaUYpGr9gme2PFH6hEwKIRrFbiO9C4hSe4QDC9ETwSVlxujP1PrBzK8</value-name>
+            <value>3WLx13pfZ8LBhpuNih0HEboFTH8ksgWndIU6DjlCrY5JoAoyJh7nkwUd52xxjmUw4OCH0PbrOg24IjussBHMZC05EpCPLpdH5Pg5xrpdAr9iCDC46kR6OJ3k0</value>
+          </label>
+          <selection-priority>-9223372036854775808</selection-priority>
+          <name>
+            <value-name>LZYAb9JDF1KAt5qtT0z2xz4YfEnTs9y50oG3phH4arxDwX6pXxsmYoc53zZnIpsBF0E49</value-name>
+            <value>1jNyWbnVBdkVzjbMo6dftOwOpbG3gQph94HYf4TIhd</value>
+          </name>
+          <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_PASSIVE</administrative-control>
+          <role>5oropSKYwvokyCLdGxFQisHVrfL64SE9h6yGQixmOVHepkr5RYW2rvXSKARPsnYJlwicHPynK7B1k</role>
+          <extension>
+            <value-name>aMWnt25K7u3wHDQQOklqprC8pqRsDR0NvO2RQ7</value-name>
+            <value>QBwea2WSQh58GxLGO3x9Gg1lMPovynYgZuu1ojUeAZn8o0O53deKtf57WlCmJsCAXZBdinsSfH0vHGAKTGmeVseKNI6obJY0AAdSPFC4eusVa2GVB29omf82Y7q9Qp</value>
+          </extension>
+          <fc-port>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</fc-port>
+          <fc-port-direction>PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN</fc-port-direction>
+          <address>yUMv0gXWiRCdsweRLuRNsY5tGmCYdQ8MCM9DU6rcX3hirw1c0SRkRXNxjhopZw3ubc75aqa7lrhMXiRP3I9UxWjJ5H0563z97</address>
+          <port-of-internal-fc>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</port-of-internal-fc>
+          <is-protection-lock-out>true</is-protection-lock-out>
+        </fc-port>
+        <fc-switch>
+          <local-id>7yjkMjt0haDdZAtObmw3uCV7ZAySXWH4mTo04JSeTnrKYUy19X4vrRCrr2boYSkcDIcIj4W4snPiafbb4fGw6aPqd0ObK9goJs6VpUZJ9G1jO4uSj2ghdXHqPoBAxRQ8cO3BIVcRt53h9x2sAaJN8j5XHGp6qfeu3aXD59nqeqIn</local-id>
+          <configuration-and-switch-control>lAx5RsI3mPPR0YBjSXg3SmS1DHW01P8epFj8Z13mIS5BJGUtv3pnphh2RdUKUVZbAaks4nOE8T7Js2c</configuration-and-switch-control>
+          <internal-configuration-and-switch-control>5BlmLugCH3eBY5Mq8YSceyIesQXMK1JPDW3gqbSZeYsc47vc5ngjWYxgGm2qoD71Aa9Sm1SsRkFVr2ZppfAd60tMmndK1cDtnMdBF53xiAkBCk0Urt7xttcPQpsJB54QKajh7fOpP1TkdLeEed4HGgppxR00W5Ry72QehwE7xpjCaxhhKdYjtfI06I0VFJtMMb13Ix27WlKYST7v66Ozdwrk6rfEbAqXMjSuIVBwgdv16CwcAkDO</internal-configuration-and-switch-control>
+          <lifecycle-state>LIFECYCLE_STATE_INSTALLED</lifecycle-state>
+          <label>
+            <value-name>wVGHtnLZeZVe4Tj1gm526OtRZ2DIUlAq9hZCEKBLBxZxijyzxwtDcXmbZZLLdmbmDaY9NrUoQUW95mICK37W0tZRtLuGZFUuISDnbqL2czbhOLLyOSnHlmqGZVeQs8kaSQx4gbYsC1JiMmRse61rss0kfeaHfnK7d93tcTNPUo7yKQTYWUhhehttwD3LSFK5OGqTrdAeBzMdqFbestnGKQ28mXLeCociWCbnILBbdgpDNsJfV7OyXQyjNkq</value-name>
+            <value>ACrweDTOgn0tDpYiRAyFHm5w4vIJP80hKjNQWzF5WFqrWhJFR9cqn9WrFE2mMUEoerf2SU7G</value>
+          </label>
+          <switch-selects-ports>PORT_DIRECTION_OUTPUT</switch-selects-ports>
+          <reversion-mode>REVERSION_MODE_NON-REVERTIVE</reversion-mode>
+          <name>
+            <value-name>CPhMqWMB1CiA1o09vm4xjAusXUyfCV46CmTUaFwchOMb5Ecs</value-name>
+            <value>gZbQtvFn3USYZYsdJmnpSzyzdBwRNYJ4PUMipsxkmhid8KiRZG8R7HiliO46EO2tAGDS83cnknssZLkYrsIq10DcHIado4zQK4IT7N8saAM9lY0EjI5kAAw9iyfyCOpnSZ80MgkWI6YWXYAgyxA00ZaixpJ258pX7xPMF1An0qbXgMdObFPbwRm4856d5n24USQrTjGTJSI</value>
+          </name>
+          <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_ACTIVE</administrative-control>
+          <extension>
+            <value-name>q7fHJMqKZQ80MrFju2XgymuZtxKfwqyOqNn1zNLqDLri56tz0qPyEcq7J2e7sMWSrjT1ZxjuaCMfB7OBqw24Ak4bmaiOX6zoikhhJtLU5q9GxQaXe4UOoQZC0hiXgRey4vPNYAHWSRCqzMfNQ1B6RAISJ1HZKVxOjeu9Pb5zUAZte7858J30bEKVFrUhnk6yysHfDNPqfGLtFUqODuGP8qCFRoW6IUE9eegST5a8EVBjH2ZdoF</value-name>
+            <value>wXw3HURNvEkwSqMCjKMroA2z9Wzmk6gI4ELLrvqO9CkT26wlIaE6CzGMv70Id9qhN42ezl2AXet0dRdV2SUwrsaOzbwMkXW7TQe</value>
+          </extension>
+          <wait-to-restore-time>-9223372036854775808</wait-to-restore-time>
+          <profile-proxy>uGO8S6dkyCP2zza0nhj4HSJ1yYeJXJnjh3s99xlA2aCBBEtYNMVvwEoWuDxjeUDvX5EZuRzwT37uIAkne7SKEhH8M6s01XvQU1PoSgVLc27Uvj9Jr2u5b35X9pX2mkT</profile-proxy>
+          <control-parameters>
+            <network-scheme-specification>P5fWI1I07eSLvMq0n</network-scheme-specification>
+            <hold-off-time>-9223372036854775808</hold-off-time>
+            <wait-to-revert-time>-9223372036854775808</wait-to-revert-time>
+            <reversion-mode>REVERSION_MODE_REVERTIVE</reversion-mode>
+            <prot-type>kzPDotW8XF3r3kEylD3RHv3lbDhbjFiE609ut5DjCyKGSg65L1OtxROAm5EGDWcJOl6iiJtN95t2lr77tOsSx8sU56sIVwsJRyT19mOir9cFBcEW06Ox68jb7LUUhev0Eh2NDIXXKaudm09e6P</prot-type>
+          </control-parameters>
+          <hold-off-time>-9223372036854775808</hold-off-time>
+          <selected-fc-port>
+            <local-id>jH3sTt3Fkwr5is8oINS2CVS2NNizPy38f6s8rnNDL7J4zJshpdj183VWQ5nyEryTx1URgHu2O56fPqw6DH7EL</local-id>
+            <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_BUSY</lifecycle-state>
+            <logical-termination-point>2b454936-1b31-1d28-4dda-1d3475708a0e</logical-termination-point>
+            <fc-route-feeds-fc-port-egress>KVPvIXRnAjCjthKSNHSxn7UcqrLYioK2brpTphhRsL2V2NGQmyfJy1VYtyOLXqF8K521ebSyWVlQI1y4sONSPAIi0oVXOtYqqSrE3k4RfpzXj8TLWyvL0d40BRQhkOIKG1gBlkkAKTp31aGXIbBIgxBJor0B7AlNCCgPOAiqtHlvK1ks4N3ccwVBXO44gpJSTZAIzS02rmpbfCwchzou5k5U81Qoqz9cqJUZtMTU8b6gFCsW3Qq02nM2o</fc-route-feeds-fc-port-egress>
+            <label>
+              <value-name>QSbC1V6jg9W5yjwe6fFYmIybrcKxF6KwYN0SIZ3Y8R4HasNhHs732GelSRSpXvVOiOy1NBRNlNmvg9EXtMTwsZRcQCBO7puh52aSv2FQH2eP3SFxwy3YpM28owWnNiFSkPKPRhGrbMgfEVM3lH1LtWTKkH77ZMRbCt0lKyMWkV3RIPU4wNHRBs</value-name>
+              <value>V1JUSnL3ZeVdRmRFGMIpnpbrNZ0Esk8glJa56O8Y2V3LhUqQz0fWpjf4afJCzRSM</value>
+            </label>
+            <selection-priority>-9223372036854775808</selection-priority>
+            <name>
+              <value-name>st0PTw8spGlbpBTTvzZtPGUdMpVL3yFn1xdN3lflTswiVh4rJ3UqBGDn6q01YFpS5uF8HMtB6SL19PsSKfidVOsTesN58cPdymdf8zIeru7AbAlOHv1ujmgqO3nW7c1Fy7UyGDM7ZTz2lUQUiKpt6FTMIgBPkCmSJgqhL4oKQYN3KvYU7fo5U9Suqlb</value-name>
+              <value>XxvzFVQrS73IXQDzeBu</value>
+            </name>
+            <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_PASSIVE</administrative-control>
+            <role>8Bo2ZW4y8C6Y4yGewHTh1uz36wdgAykA1Au0xyzF3FDZ5beCSZLUtcXzIbHaBTKDu6vTF4yIB3zH7NbZMWL78JGJMgTf9wSvCgo9kOROSjnZ6yQLmCSudr5RHZ6QnReZ7C9jrS7bbu2aUSVgmNDreIiNzpwW8KOfmPqF</role>
+            <extension>
+              <value-name>3RyJRoDMrp4mHUVI1JZkY4u5FZwoRiQM1gvSF1E6qAs7mfHgQzsOvXLaOhq</value-name>
+              <value>rgkswHcbIJa0jC0yKHOA8ghD5UFT45rvdDQKk2NVLXVXsVn4vbwDjN9hAG2EMl9RYRtbUh6x61mqXJukM1X6GYfgFhUjDWatNEEzNKZTEdctXGNBHCzgBOw86jrB7B4U7BmUdlGRyScnqZZ0uyg5fE5dXwO4ZKR7l5TzqriQbv6Cm5uIvKFCgKP6gv2g8TftY0Ugs5Zvs5ZO2tpp542mPRs5fudnokIelDnFAma2r2Ilv7KBcE</value>
+            </extension>
+            <fc-port>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</fc-port>
+            <fc-port-direction>PORT_DIRECTION_OMNIDIRECTIONAL</fc-port-direction>
+            <address>DT409gIgBdD8NZjHilqDIxfjBU8uixlVjpNsFnI9tdh8csQuFgZoFfHh1QLjf66ynLTV0t4tHdCLGk8dA7B7ebofT2q80ozo9kbaN7Dmk78Srg6Tfz1uKhBDb2Ecq5sspDC4K7rW7rHyzNkOelaZu</address>
+            <port-of-internal-fc>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</port-of-internal-fc>
+            <is-protection-lock-out>false</is-protection-lock-out>
+          </selected-fc-port>
+          <switch-control>SWITCH_CONTROL_NORMAL</switch-control>
+          <address>ff1sZ6fTY9phtA62LCHXrv4clawpbiqqqjSpp7ig9zxC1vxM06BjBywWI2dTdDjDO3U634m4DLyF95j93VsEtYt3TGPYc0t04n</address>
+          <prot-type>hYogjQyXFIOvLpExOtJxqixvgsWpzuEQkU7vKxtif9NTqjq7E1E5k4AAop0YTwO6qNB3kWlsY0lgjDnYF23ZYvrmUjcGPTE8G7bT4olUoGaHjyxQsAHiY9EKkJqaC4aa4</prot-type>
+        </fc-switch>
+        <lower-level-fc>25fbedaf-00e7-2908-fe09-07fe37aca56a</lower-level-fc>
+        <address>3utNXsZctUJz7VhgP108IKD1cTmqZ9pVESIBkzNFuo7tcgJ1hB1RdEKqq6QpgfcMZNfcm2RQiQbu6Unfop6B3R1lXKL5RPRRC6VR0EzbvLxtxNJV4Hx7yqlo26lUN5Diby9</address>
+        <is-protection-lock-out>false</is-protection-lock-out>
+      </encapsulated-fc>
+      <sync-ltp>5b29f3db-6f13-96c1-f189-f038af15cc4a</sync-ltp>
+    </embedded-clock>
+    <client-ltp>4ace155c-6c04-f585-d9ec-d6a845794520</client-ltp>
+    <layer-protocol>
+      <local-id>Mi4jQXkpX25OHuATQ7HXAicQqjHAolvaDrltgFS5IPThcta2AJRa1VSkerUvMhFqI1LQy</local-id>
+      <configuration-and-switch-control>nujKY3iAd2d819WSOJQ7CJZrwJ2PODrb7DOXy6yL0DU1MQMssur46qnC2qjQ3KTafH0OFyzGblzQ4diwIKsO2Qq4gJUjlGltflhVTItX4UN08XoQHQwCGWGWxt7K9tdoOmbA5wx1jcTj9h1J7xlOlTCSeKun5AELWHdT6KMpOFIQWJzWgMCBxelMQH1NhFz6fMZlpMK5jsV83m4j8GM</configuration-and-switch-control>
+      <configured-client-capacity>b40Cs8ArQxejST2vD2yjFXLbXOUS640a10Ml0nEQUSaME4a97ItEFePuUBe1ye3r6PM7cjXY3ZDH4NR3vcz3ihxdSM6q09R7Yw63P31SVwsZjbUHntKFKhSD3Y3WZNVYjT10OUKJr</configured-client-capacity>
+      <fc-blocks-signal-to-lp>7kDGliY1R4gwVBVzd0TxO1AaXLbDxRpw3Ucod2pWYxsM0fld86KWZcYWX9rmSJSVvXkIZBxQ9RC17P77ORVNWTCTVVgNE0J2X3KPw9xF11z0QGZEpUklFO7sJnggfRi5M</fc-blocks-signal-to-lp>
+      <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_AVAILABLE</lifecycle-state>
+      <label>
+        <value-name>jweCV1D5mxOEIeo16G4X59uVYDYW4dTfJ0RE1nBgUhUuwavuRrjOBNJrizfmM9Bn1l22AvamN5Qb7lxQ</value-name>
+        <value>QwfD8HNHW1mXuJYPDTh93DO0lR0GoQlefsJn1wWQpiFT2EBxpSGsomlJdliB3DHiXqxZOuHdEm7ySI6hsMCQ1XAeaSQ5npocQN3whKKW7JmRjs1L7Du8s4muO4z3uPfcDjIM3kA23XUmpN0wiuwKqT6ePFhjvwn0P6MLqnNmkzIBeA0w4w8mhes7UJih8G9PMVs4a8quH1YWBYkyutUMHfLtY3CYJLG</value>
+      </label>
+      <layer-protocol-name xmlns:x="urn:onf:yang:mac-interface-1-0">x:LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER</layer-protocol-name>
+      <lp-direction>TERMINATION_DIRECTION_BIDIRECTIONAL</lp-direction>
+      <name>
+        <value-name>V8lOpx9zrCaaMcXxw4YizDA63a7G1ycWGqD6PEx9gIbVM9sadisEV2KQdSxeiB2YTF4JcuSsc3nY4H890ANVvyEIi3WAEQyqov9AZT23Oi1LZ1UZtINY8jyimmSSdiiBFjbEc5zTnsEntqe</value-name>
+        <value>01F8keqyAarNtJg03rF7x60Uzw92XoJXppYCDoa5rtTUd1U8tr7Sy0M7wW1lcDbB295xp8uQBfCGhpOKQWCgWgfk49GgERKy0H5hPr8rHK7Y9OISCc0qk8KhhipV99l1RijyJjRq3Ro5FYX92Xzn</value>
+      </name>
+      <administrative-control>ADMINISTRATIVE_CONTROL_QUIESCENT</administrative-control>
+      <extension>
+        <value-name>H8sRgSeQTcEn2YNorz21ONuFR7DASbYrkibs2piWtObvNYT6xW7eJCTsBoVtALNM3Ye5npTId4dSUYZkM6yoArQbPLxhwk3riaxxzifMfkx1awlXuLl54b8UPF3dR7F1h4yImFmtZTv2pQZMCkRGnRscxoigvXiETQm7oIBfu6hTWgxqAgZQ8j2xHcN495A2WW2cxDr1JJMxZcQs</value-name>
+        <value>PiA0c7ApVEq0flO3n0s0klJ3082cYmEFE7GJe881MqUTLAP8th0NvBQvKKzI75gLcOmrWusIVeuyPjzisz5XbVkVxTvEZDi3rEun1PYO3smSDV25n7VyU7ls1I6SmgVNVi3W71C2lYNQMPV9XIzJQUbJuatQigwdyr1xkDsFufn84ah</value>
+      </extension>
+      <mac-interface-pac xmlns="urn:onf:yang:mac-interface-1-0">
+        <mac-interface-configuration>
+          <link-loss-forwarding-delay>8</link-loss-forwarding-delay>
+          <maximum-frame-size>22950</maximum-frame-size>
+          <interface-is-on>false</interface-is-on>
+          <maintenance-timer>-1469993067</maintenance-timer>
+          <transmitted-frame-format>FRAME_FORMAT_TYPE_802.2_SNAP</transmitted-frame-format>
+          <loop-detection-is-on>true</loop-detection-is-on>
+          <maximum-share-of-broadcast-frames>-41</maximum-share-of-broadcast-frames>
+          <fragmentation-allowed>FRAGMENTATION_TYPE_DISABLE</fragmentation-allowed>
+          <loop-port-shut-down-is-on>true</loop-port-shut-down-is-on>
+          <statistics-is-on>true</statistics-is-on>
+          <configured-mac-address>yUcjZdYYYsEJDithmhVD2v4W81JJyxGYjShiX79OrFx5XSeba2H4pLSxNt8d0G3cqkuojv4K3tHSmW4oQLk7ocw3xFgydj</configured-mac-address>
+          <problem-kind-severity-list>
+            <problem-kind-name>3V6B27R80H3DJjmdHUW6xzvajZNebFVet2Hv1qv17yERSS4rETxbs2eEU1S5yFbTzTgAbMBjk8a406vFZ2IkXWYJPIGg</problem-kind-name>
+            <problem-kind-severity>SEVERITY_TYPE_WARNING</problem-kind-severity>
+          </problem-kind-severity-list>
+          <problem-kind-severity-list>
+            <problem-kind-name>4l3MYnTfrqiZXrpaK1O8ZIWtynSSwaxAvtfmI0BaqT1fkiiXjY5izTE7hwZNGpf4SmqAn1CNUvV7Nd4631hCMVK3jBIS0QWKcmdzfPf1d280747aXgNK3xFe0g61Y2D2gQCvyJpLLxLSuK2j</problem-kind-name>
+            <problem-kind-severity>SEVERITY_TYPE_CRITICAL</problem-kind-severity>
+          </problem-kind-severity-list>
+          <mac-address-configuration-is-on>true</mac-address-configuration-is-on>
+          <loop-back-kind-on>LOOP_BACK_TYPE_BACK_TO_LOCAL</loop-back-kind-on>
+          <interface-name>44dz6xfrlrKLft22KmYofcTgtmxhjLtfIGOG647rnJdCc7xOtncJAXRVjo4C2xSCeGikChL00QC4Y1TrhX2RVTE6aJB4gtGm1QyE7cwZ203S2OcjE62r0Gx2p0YytEUnmtTtFpszpnsj4wCICE1udywCzm2U0X9ei2HXj1oJhQ2lex3R34lguKLV6NIZCRdUMVR5O8G5YBq50lW3hhcE1Pr0C9Z7Tc1FZLCOTbLJM4OEhKHz2L5VA</interface-name>
+          <flow-control-mode>FLOW_CONTROL_MODE_TYPE_RECEIVE_ONLY</flow-control-mode>
+          <performance-monitoring-is-on>true</performance-monitoring-is-on>
+          <link-loss-forwarding-is-on>false</link-loss-forwarding-is-on>
+          <broadcast-frame-suppression-is-on>false</broadcast-frame-suppression-is-on>
+        </mac-interface-configuration>
+      </mac-interface-pac>
+      <termination-state>TERMINATION_STATE_LP_CAN_NEVER_TERMINATE</termination-state>
+      <address>CGk6INP13l6u</address>
+      <is-protection-lock-out>false</is-protection-lock-out>
+    </layer-protocol>
+    <ltp-direction>TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN</ltp-direction>
+    <server-ltp>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</server-ltp>
+    <transfer-capacity-pac>uGw70dB7y4C8qzv1fS1x46A4FkJSlbaPJGWJTpJrldsMMXF1IyyME0Iblk3Gv5neLbQEBzYOMqAqf7sXFSBcTcf6wbETg1724PyxgomUOWlW4NLBFnNqr3wXeaQu3Po8xXFNlTI2IVQEIBffQVyhY4647Wq2EPa3EIQRBqL</transfer-capacity-pac>
+    <address>ifruTISqd3x9Sl4HGF9Mtgri79OL9Txr8QOUyGcDBKEl5B2D83htbILaRrV0dkkla07AGk59WKu1lowlrNOCvrNeSA7XVrbXriyZCD0qfujASPVjCBNZ2A6N3dKYwVVXelOIRO96asz2amdEY0E0tKNwPqullharvY2mEbsOv1IFgVceVQegsUM9k8uxqEZNu1904tOzno7DjjR61XnlJ9u3iYBAusnQtoQpJwY6UXB58kb1aqmTAIXKyqc2K</address>
+    <peer-ltp>79b69572-4586-21fe-efd4-4a81a2b57515</peer-ltp>
+    <ltp-in-other-view>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</ltp-in-other-view>
+  </logical-termination-point>
+  <external-managed-id>
+    <manager-identifier>s</manager-identifier>
+    <external-managed-uuid>Z6j5P0gIo2u1PnSYvOD8DBdhiqdnsFTjE4ot5F4lzymoV6eiVSqqlvHEVM1fr</external-managed-uuid>
+  </external-managed-id>
+  <forwarding-domain>
+    <uuid>4cd72b11-5cfa-9e34-94d1-42b54486ca7d</uuid>
+    <local-id>Wjudmv61kMGXh0VcLyrlDuGq1YffnmZcG</local-id>
+    <logical-termination-point>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</logical-termination-point>
+    <lifecycle-state>LIFECYCLE_STATE_INSTALLED</lifecycle-state>
+    <external-managed-id>
+      <manager-identifier>fvENefRloo11i8Njyv4vGgmzwfylgW6njC2yRTL7hM0zNNSdbWIR54itbIOrxMOQgQg7B17SG7jlV4y6SgPPc7anIZHfDnXU66THZ0sF0D0VzqTsGI9SHk8pbHEO4uA2AuKzm47</manager-identifier>
+      <external-managed-uuid>HZ99q2BYCCRkWRJ7ygWuCoxcS9D75ClMunVUhoKU1t6PkHXKPLfr1EvUN9TSD6w7lkTDAEpt7njk484ULjdMXJyCSjmnqTvL5ogF2x12UcmZkqLXCYBrHaWrliPL3cp0AxGv5zpZLLQ53BUxsvZ1xVtT5aw1mN1WlHji8IhTl0QptKWV8NXFAiqysXzOKACXaOfiwpcKp21SFXONDDk5VLDnIc3kNxiXlxf</external-managed-uuid>
+    </external-managed-id>
+    <label>
+      <value-name>gFm460ENngJ6tao80fonCy3nfbxqBElKjHGqzk5WsG3VQr4Iyk6aS9yZcXiNCvpN455EhaAJQvxGWtpmNnx</value-name>
+      <value>oXxAUHfocF4gC9UUknvaK2Jzv0VinsQLpflcOAs07w8KGVw0a12U4DtrDpC0JkD1rQdfjx7q4f2CayukAofw2APFZryJL3K4UPj5eqvaGyMI683yxaWrKM6C5wdRsPVeE7jSxG356HO5QJDfTs</value>
+    </label>
+    <layer-protocol-name xmlns:x="urn:onf:yang:hybrid-mw-structure-2-0">x:LAYER_PROTOCOL_NAME_TYPE_HYBRID_MW_STRUCTURE_LAYER</layer-protocol-name>
+    <fc>
+      <uuid>25fbedaf-00e7-2908-fe09-07fe37aca56a</uuid>
+      <configuration-and-switch-control>O2uD03DuG5wt82e74b1q9Fp6</configuration-and-switch-control>
+      <local-id>ipbup</local-id>
+      <lifecycle-state>LIFECYCLE_STATE_INSTALLED</lifecycle-state>
+      <external-managed-id>
+        <manager-identifier>YjRa04l9M5qq6IyZlhpni1V6J5G372T5lC7dHsely</manager-identifier>
+        <external-managed-uuid>DwmbvzsVXCOSIpQgsXimUDQ2IpuXK2BnqQqWpSJevp75OPmgMEuGalASC5HnZbCq13eiNXxaewg2dCaZgFxqS8bu5SJ43muWhI74xw7LUnF7ZQY7vvqnvBJAltxhHT5YucU1A1Fugkt7ar7xPxMc8wNtZcKG5QwzUitvc8RskdsnEzUl6Hy65dz4pcCu20W</external-managed-uuid>
+      </external-managed-id>
+      <supported-link>MyVBBh6tdCXTHleQnsPjvIJwn0DexAoc0bNtkLXxnMj50xNn0CHnkiUzjpFIZ3UZ6ztrliYIW9FWHkczWLW83Ize7fX6aJYhjjAEtqehAM6h6iQV</supported-link>
+      <label>
+        <value-name>He7CyToQfFAq8q031EGkWryzSivM54yMixhQqFyyk0YtqRosn4Mk</value-name>
+        <value>dT8vpUAtkeDSvla3UInUHIlq7FN3j7jwTrTaelvyA8qXtB0nbgaSYva5aY1tXkSQELSS7nqzvJoRcp6nFg8vLitN8u96G1OkEH4L4ncs6Bbi0hFxyN2b6nR6R0cqT1CxAHbw4nQ2Y1kQbRfBxaMvxvBhnOz8HbG9KJFO6oIXh2FsMV3jXIOmdpDt5cBEg9N0SlHRJpG0kll68oh56XkceXFk28YiiEaaZR1A9zAtVVrVcATaxde</value>
+      </label>
+      <layer-protocol-name xmlns:x="urn:onf:yang:tdm-container-2-0">x:LAYER_PROTOCOL_NAME_TYPE_TDM_CONTAINER_LAYER</layer-protocol-name>
+      <fc-route>0I5G6TuP1R0QvJBMv86cW5zGzeM4rGrsgx0fiuWbdW2IFDv2</fc-route>
+      <name>
+        <value-name>8OsGUxTlBax5wr5s8fJjC0erKmAI1at1QVHCssXVun00GXtO540H5e0HtAhuCLvsG441oTWSgPSPEdDJivqfKqW5SdzuYWOx0SqgMe8U3SJA6fbgKuvmUjjFwS1nGQUyAkOeyO1uHKWFR7NuBaIot2VZMWetE8T7kIlLom7XZ3uQ2hcwjVMMPHEBvSW2TQ95quQGRXEIS8qNiDjBq5g7EM</value-name>
+        <value>1wx3hfcnxz5di3R0NSqAa3LDlITsmx3o4srlHwA65GjnB3noVFRXBusWdehzLkPHM93lFvrCbCZMFe3sTUhugKjtYAVJMKjqTeDqJ42VG</value>
+      </name>
+      <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE</administrative-control>
+      <supporting-pc>EVYnn5mC2lMDjVWuvsXWzewdkFbuvYp9Uoo9tLLn6p0hdPLI9AwAGUN1zZn4PN6B3mKw7vL5NDm0k7Auz7Wg1K9tBwpibvUeSEKR2nXP1jHljhHKoE0ig1LJqa1ByVQiAs1u</supporting-pc>
+      <extension>
+        <value-name>2LX4UWecspmr8g1hPtCChVylvjvUwKGynvDhjJtL8Ic9Q5qxr3aIQA3mTq8h2OPqckHv43h4LldBrE0SzashCnDnNMEQsu8EOP2KSjPvE2Y5yZPZ19hEwM1kqG2L2ahIZjtKCa7946</value-name>
+        <value>vXWmY5DuCioOA4QlY0DGRO1tr3tA8rGvouResnJWF7Kf3stTkYr3Mlp5oSxoj6TzALF28gQFfAUaUf3edvi0QHX6rvvCBob31Q697OOehBpbQsqWPAOx9LEA814JpfNrXLsWzhbQKA2sUkoKM49VQNnYOrA6ynpn0Rcz0niKPcdBotdaynXg2c6JvyP3VeiN5uf6JxIyBN2Zhf1HCYPF2Noxm5s9bCX</value>
+      </extension>
+      <service-priority>-9223372036854775808</service-priority>
+      <forwarding-direction>FORWARDING_DIRECTION_UNIDIRECTIONAL</forwarding-direction>
+      <fc-port>
+        <local-id>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</local-id>
+        <lifecycle-state>LIFECYCLE_STATE_PLANNED</lifecycle-state>
+        <logical-termination-point>fb0db2a3-9b3a-bc3a-55eb-3437f8360599</logical-termination-point>
+        <fc-route-feeds-fc-port-egress>3Ib4nqaXA75njmF6Cybwz7cm6Wvsknzf5KbkamiK</fc-route-feeds-fc-port-egress>
+        <label>
+          <value-name>yslGUg69B64fmL0qLh4Olv8OuVAEavCAXYhS6fTzdXOAAG0dQWTbr1ZNXrjZWWAMMJwKYpj4e7EGGwLwtEzMxqAmSTeOHOslpY5ff</value-name>
+          <value>jtoX1WuMsPiTBIj343XaSwYcSnbXDqeWMuMNq8sKXCDykOuhSjrCPiOHxZx2qDR47DRpLb9IOE80sC9kVtWDLLcaCJdUe4YlzQKkTLUHpUASpJ4cc1PPE208Dd3S915IJIUDtOcTAEDZoH4sATa6Nafjfa3o306NISicymX81A0h94JKXTIDVPOaZRq3RoIAg0EOeBPf3PwcT8OITxdHe1ReK</value>
+        </label>
+        <selection-priority>-9223372036854775808</selection-priority>
+        <name>
+          <value-name>4Gxk78audMAxxnGNnsljUNITROlzrGsofZIeZSI4xiCWyaJVD4epKPbtDw255nlke3yeOgilqMhYXTTsP0JrHUMcrH9w4uQiygomwHzWlINaByCjymK78xkzetXaQFsoVRCjq38LLVWntqGUEi1NPdmVzc5pRqFN9h6rk64510</value-name>
+          <value>njShX3aKSoZGXbDe2VTHW2GneMsbGkw3DgcBjmd4CcCrnfFi3qZZsFfGsHS01g3xof0ItdEYqgpNnX5qfXqICFgWe0W7gZEF6EfsSTqa9HPwwNPMK7ueMCbSD7ZTZwqX2FhMqHWzhEYNrNzbUVpyysibs9Wjxn8AUqel73MoHK40pDbbzsB7VTafV</value>
+        </name>
+        <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE</administrative-control>
+        <role>teAyF8ZTU3ctuEJTEQ41MfeIhXfNkhqNnSdU14FVZS</role>
+        <extension>
+          <value-name>9CyR4HRAv5bcd61BiMB7vvwA4KCVQmXZQwQM5zmAxpNCvGdOtPNQcbqgNU3w91vZp</value-name>
+          <value>EuN0WciBONiUtDJ8tNbL3ZGYvPRSGg6kCMdzQv2FicrEP2MaPYWKPuIcbs4RI34dPhExMG4WTvAIxfLmdH623</value>
+        </extension>
+        <fc-port>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</fc-port>
+        <fc-port-direction>PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN</fc-port-direction>
+        <address>5Jd9OUiss49wTU2tuzIfONOMHRlV5mY3Yb4MYnfqjgOcaIyEa8MYWAKDsYrpkpkispXqM4I5kpam7IShQEfMfSizQJQ20bdkAaDeelbqKlMK3E1Ub9yq1QRJrHDjS</address>
+        <port-of-internal-fc>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</port-of-internal-fc>
+        <is-protection-lock-out>true</is-protection-lock-out>
+      </fc-port>
+      <fc-switch>
+        <local-id>iE176F0i0ZpIXESsbQMePj6YhHa7</local-id>
+        <configuration-and-switch-control>CpoyAFzqamhTP3T7UURcjSqN8hVaH7Njw4R6JioTEGNuBytnkkzD4Zidh5nQcbaIfTHQc5KILp4eXxChJbMO351kag2njcXqYEh2K1KniPC7e6oYh2Ek7xwiNzx7DupB9GDLzo0R5uYjAe9ShN4okBy025ZFAohB5Mew2eg7BejblsVC80Sktjknob2QAbjx</configuration-and-switch-control>
+        <internal-configuration-and-switch-control>xV0Eb0fijqDDe7L6Z6raiOzmQhW2BlS88SMkS1C3kfHqekw5iXgBLPXt6LnHYfI60miKgUOA1</internal-configuration-and-switch-control>
+        <lifecycle-state>LIFECYCLE_STATE_INSTALLED</lifecycle-state>
+        <label>
+          <value-name>I6xIbUfE41YQdpGAp1zk3QCtkSM7bQbTWIC8uREySCgX1XqjYZD1H7v2099bZk4VUyVopAOac5762ppSpUT61g01p94ol1c7z7vZzc1M90K3q1VHVONO5OImPMD3FPafOy6oK72TZEOhFJYspE8mkQJ9ve4a3fhJNn7pm1aeFYvcHuEY8NdsvWt</value-name>
+          <value>2y35NkOsIORWP1anZGzya6waTJCoxXhzvkwaEdCeTtbAulXl1xT3Di5oTHEjxVK27h5MmH0f3bPxpFLi4EeHOjXI1BTqpDswMxa87bfae5zDKkWOR2nFlcfeF8E4E7tqwDzvOOFVLfynzm3ioiYKu5Ya6v6Kuza05BoLi3G3a7jKle2KxSm1Yc34H2G3t</value>
+        </label>
+        <switch-selects-ports>PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN</switch-selects-ports>
+        <reversion-mode>REVERSION_MODE_REVERTIVE</reversion-mode>
+        <name>
+          <value-name>0ejx7jvMjNEi5mfB6IMOm0EFYuPFFWyx3KWa3sPm7tFcIMNOmsDIk9gbD5QaThAW1w74YOi6hXaZCQGYibzucPFPMoSxFsmyYlCP9UNiKXamNQcXTLs5sZUenEEU60sXlWMuJzMtoWH4ET1xxlCZlp6A3Kv2KXZ5UDrv45Ys2xwyiq6PLAH6RNzNp4H9TG6Fbpafu0zox6XIwVp9n687LHMaLtbw19ccymj3nSjMY8mmVMobKwiwd4yQpKmq</value-name>
+          <value>qusNNn2FyGwH3KuP8FzEPXJLwra8Os16WlTJANh9uNIxxceGKFczDWd1ff93Ia2EoVgYJx75cHCJUIhwnmX0aaTpq2l05nEtiMrTbrYn8s7U2gqqCgiMqc</value>
+        </name>
+        <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE</administrative-control>
+        <extension>
+          <value-name>4ykkkCn0xyZQal54XuPbnFnjBXlh0O7WnjgzVwrt4rb6M82BuRMSw1b7YwoRcoFrHW0vksQgL1mp2o0w8MgENrMEP2v2i2lSYmnaG5qr6EI0VIp3mFH1ZlFGg2Ay5WiVax6QCo9B3RBYrS1NqAOhOuX4oyutmNpwknmXLnqOe1EFMxkc08tOuiSTIem41DAe0O3Mbtshm7W0w8cwhxkLQ4w</value-name>
+          <value>jLvkoXqhEt3POnZ3uN31WgpdFKQnOfO70bko8KFM6AuUYtXk81d49D9Gf043fS373nv373I5vcSlxHGFALKBoTiDLmzS6CZ1ZnWYiEWNIO9</value>
+        </extension>
+        <wait-to-restore-time>-9223372036854775808</wait-to-restore-time>
+        <profile-proxy>L4bp1PCVZJBLZhR1Spx9mtgR8aqk</profile-proxy>
+        <control-parameters>
+          <network-scheme-specification>fwuI2VmOxa4B0w4X7A9YxbB3EStO5n4kMy2GmhuLjqmjOi8VSiMitfd0ZGO4VShHjbnFkKiD2wWRO5EzfiRIp4IpColx9C7sOmZ86hM1NAStxo2MHTn6PXnreJRndYP1kO2jXGkK845ys8c11z0Jpf2DYT0cJH5Wv7fkFr4Ov1mP9yR30JMhYOUXAM1btY7QYeaDF6j27xS96JcYk</network-scheme-specification>
+          <hold-off-time>-9223372036854775808</hold-off-time>
+          <wait-to-revert-time>-9223372036854775808</wait-to-revert-time>
+          <reversion-mode>REVERSION_MODE_NON-REVERTIVE</reversion-mode>
+          <prot-type>0lBtYiiroVHYTWyROUaraW7CYuud3Sq351w3jGnAB4qmSY6zSg0347F2t28wUys0AYVLxal8eLvZBByuJqpNpWIKYQgToILQzGu6RP6XttO4WeqFEPlVE3FCLOn1o8SXHmVq3Ufon4lciDRXl4KZZqBKeZMCZwsGSf6N1e4hiptA2cpfhaegsQTyHF2GbufVCdADrEUJVfcQst5JDkRX2KvBhy9k</prot-type>
+        </control-parameters>
+        <hold-off-time>-9223372036854775808</hold-off-time>
+        <selected-fc-port>
+          <local-id>vAw3t48suMaBzbPKJA0RyBOkWQdpO4DcE1f75grr2t3BFKdokd7KOV4CDa2kexwTyDSETc5OF0pkKDJWQQHxED9hN3B2AZN9DxFoJCcpDuJfZkcH3T</local-id>
+          <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_AVAILABLE</lifecycle-state>
+          <logical-termination-point>4ace155c-6c04-f585-d9ec-d6a845794520</logical-termination-point>
+          <fc-route-feeds-fc-port-egress>b81vGtOGjAlglXc9RYRMtgymsBZjwtGHtH492SImkVCyKGHCFqg0HHe9idlOy1n1AjbD4LRoGtWr1wVyW3yvKMxVRSBpLZrdauIefzDVUzeW51uU5VhPHOCrGeQj59xfD7uSHZGBqMpoOUiTPzAog5PWjy8gHxnlEJ5lIDP9iex60HRH8r6owNdHdlPVKd8oW5CxJrG1x5ZyMQfU9dbyTo76BXTlaTBYZ</fc-route-feeds-fc-port-egress>
+          <label>
+            <value-name>UpcDQU0bVGsWqgfV2MKPEZcfYta0zpJuHWZpIZBDG3r6</value-name>
+            <value>yTdcEUJv7YlA8d2qXo7TnwteZ6MVpK6QEc2a6Dx5BSGK6A23Y9Odxhrxf6kwQqemu9wtM3yoO60MG2HE3vRAEb7Lhr97Kou6xSzjW8HCezoVB5zEsj7YueJLySSagegN7QZVYyp48N</value>
+          </label>
+          <selection-priority>-9223372036854775808</selection-priority>
+          <name>
+            <value-name>zogQ4jk6MbLVGis5249jzv2Puf14aMiJaqreCLcoPPbv0DsUHCdh776ueZyoLI7N9zULcY11OcxOPZAwtNFtMDX1unp75xVe6HRaFScl4B1TsBiOoPh3t64Xtt5ySSF</value-name>
+            <value>zw16h5slGt705hOl6Xor3shwOeXG6Cxx0qD9vXv3ru3oLKJRH8jDsA1gOYXMsmblMGu9EZc5l7l6R4Qr414xt5F94uVoQ6JuEeDi5PfrXApGxf7B8b0BhGKdaFB1Dlnar1swIAXxafeHmlbvpb6GRRL2oeVUza40bwpM6ej9txIQLTlaXjIOatIzHvl9Gp1RNqvMxPV0evIZhV9ef</value>
+          </name>
+          <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_ACTIVE</administrative-control>
+          <role>ql0I76pN1b1U7txsM60W0arXT0IYZwMhSFZRLgEFkFrr0YTNWLBWW2UHVuxU1cb</role>
+          <extension>
+            <value-name>BKr84Kf26lLRTvB3EQcjP2iCSR1WRGWsqfAuZHw539OWwpSa7WmOYEqInjEeZszhz1LqJ9nMabAHtkJsg5h6CzOZTl6K</value-name>
+            <value>F2fGNFpP3bZ6EyzYi27fbdRKURv7XgMuaTaXrAEmDwkh4U8eOfuRsdte4ZlT70fhTq6c0Dqv9LNdxVkd2O4u1xJYo4JnWZwIhvU98lEh6jmv6GI8mMDobeesaPP7OeP5JB6ROL0M4mh33ZbhDGFPUL9XBQ</value>
+          </extension>
+          <fc-port>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</fc-port>
+          <fc-port-direction>PORT_DIRECTION_BIDIRECTIONAL</fc-port-direction>
+          <address>Nelw36wH3LZ6GQ9XmQv3KgczJ2v1788MnlbikzZnkQlSzuQVkdYXt2w542Y326IprTzLkr0x9dpII7vUklJOn8Ls2Jn4H5u0Q3MbmEIwSZes7CerXY7lYSN0B24a8qbYmX1ItBedBlxAXM1UC97sTMsnPoxXPIN3xHD1aS6L5EdUifGMgOe9AywpW4eDMUGcBc</address>
+          <port-of-internal-fc>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</port-of-internal-fc>
+          <is-protection-lock-out>true</is-protection-lock-out>
+        </selected-fc-port>
+        <switch-control>SWITCH_CONTROL_FORCED</switch-control>
+        <address>spzJaReW5NG3pGWgVT7dx308J1n6I24brwUCf0qdOYg5wdmrYlEnoxv7yT59Nakfy6JN610MZ9Swm6PcruzPT5OrQTADVMKtKt9Jm9veinKwlrIMVitGn9053AIQftkZOtAbu6pNl1bHsUtg4PWjYWo1p6Kwr4ngpYjL4AqhBCYVok3s9SL7G91X7DtzzRPYH0BDA2U3ELY25Um6M75k8YifB</address>
+        <prot-type>kShy6uKw75aR1PSV0TtiMc1nDI1XtJtFCK6A6I7dF94GQPtIIX0n1TKEuLtXvWuZyAzFiySYIPwyw096P1tQVempZIemEId5bNKllubVjImPIvWpwh7rvtQnbWBIFPNICp3PTfL5XZMxuAW0S3kfo2CsZe2w3Pex69mRoZOdYBKk3ydNtp3KrFciLeOOVUd14sKkrzyi2iu5JHL46</prot-type>
+      </fc-switch>
+      <lower-level-fc>25fbedaf-00e7-2908-fe09-07fe37aca56a</lower-level-fc>
+      <address>BPhcCjbLy4k329IWXYlb3Fk6h9eoll7W2g0wzbaZfu29wKXlAiwvXQB70Ivd3u2XK2tb6Dbl0dnwQkRqvnOk5prX7X32j5R47dfdIirIwGee0XEnckIiK97JYaEi7ne7AlkjEDT2j0gcXUza79kRjrs</address>
+      <is-protection-lock-out>true</is-protection-lock-out>
+    </fc>
+    <name>
+      <value-name>0itVmflNAY98g36vimK9qqCHkkX7uYAm93hvivbL</value-name>
+      <value>kTKnS7x6RGw9a5lu2sZT2lU6vhg0s1lNNX2F5ADOg1Qr6bV1EMMy0GwvXNniGI5lG70DHvjYw1hDdcwJZi9ZQGmFtJX1j2nR2fmBLyrhzIMENinEsxvi5RYysNrDIOvKWRdzhFQRnvvaNLO8abqf</value>
+    </name>
+    <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_ACTIVE</administrative-control>
+    <fd-port>
+      <local-id>a8aq3WV96ZN0M06C0tvDltQ4EM7I99Aj9KJdyFeFw1xaUDEU62qkv8o2UvK3wkmG4YTvv72T0z3MdzzbBZv7ZL1T9LPF53l116ww5yhY0cKdMbgf2Me1pfNy0Ce5FzZHyn5DOnBOze1dphtkVzldP8LPCZNirERZ1OuP36vDcwItG3NtD1Gs9s9MjOWCkNtmtY3xWz20XKtvO9ZjaxLbZMXbtLFNq</local-id>
+      <logical-termination-point>4ace155c-6c04-f585-d9ec-d6a845794520</logical-termination-point>
+      <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_AVAILABLE</lifecycle-state>
+      <label>
+        <value-name>Z629wyzoSZ1w5sJ9MnwrE4eU1S6Hezbdx5f4EGkwGdULFwNsTbLygZs9JrQY0U3xZatvROTp1O2zcPT51EvhvYq</value-name>
+        <value>h9WhV0GM22iTQbaJRdi3231VHw44mvbDw7MrZtdUvnFdzQWi37eXafLKLPG0cRDIRi9IDfu0Cad301mV0AK3HnNkdtkpdQ8W89wLo1L13Q43RiQKSsNrQAM3VYk0OkOOulrSe4LhUQcE82oTu3ccDYfqXsjDM7kgkL1yQMHCuT8DNwo</value>
+      </label>
+      <fd-port-direction>PORT_DIRECTION_BIDIRECTIONAL</fd-port-direction>
+      <name>
+        <value-name>1UZ5rNwtFl50RT9IcjfPv7ukaXYPCoQEaHBBmZWTk2U3V3D0fLHCSbOU0MBD3k9dTKP8JD1VFVRtRulYf2sZ6gL6VnBYHKbsuSA5wC13pKwgeR6mMydSPZQCesAV4DfzoQ</value-name>
+        <value>UspPR9m0g56CRxHBeGsQUUqHYVXpjNO57dVQf9QvePZYmGzAf1q9NIJEDyVPdJUkPPa4QTz5IqVW6molgOn3o6zTEnIRYv3Nc5J3Ya0yAVmHhKUxqhtOfUAL9iu8NxN0vpVtzVUaIgJZ1vprNK8UwIGGS2GyslqXKlik8cmQl5Hms6F7IF27nAN8ClG4G61rjcLroZhJWYXoXvwxayEq0jyCE6zl4sMnEpGVgXEcNuA</value>
+      </name>
+      <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE</administrative-control>
+      <fd-port>a8aq3WV96ZN0M06C0tvDltQ4EM7I99Aj9KJdyFeFw1xaUDEU62qkv8o2UvK3wkmG4YTvv72T0z3MdzzbBZv7ZL1T9LPF53l116ww5yhY0cKdMbgf2Me1pfNy0Ce5FzZHyn5DOnBOze1dphtkVzldP8LPCZNirERZ1OuP36vDcwItG3NtD1Gs9s9MjOWCkNtmtY3xWz20XKtvO9ZjaxLbZMXbtLFNq</fd-port>
+      <role>VKYlQqFD00PMOdF7Lu4cgcrfIke67Au2kkgaDVGDOnhuBOBmixyrJRGj3VhavD5PQdSt0qYON7igVLDdi3EUVldY8n1D06kQb4bbu</role>
+      <extension>
+        <value-name>zAm4rCng4GTIN5Z8R0yzEgb91kEPI2Zaul6VPt3L9</value-name>
+        <value>uPUlPLdnkRvo0xIwmiqlsVGzIo2E94tDLnYA1bXdVlBNSbkeuKrOx7n8niMxe72Zu1rn4gBZBcNtoZHKB0y10O1nYNUcMX38QuwUK7MmjrHzqhbThKUhqVFoAzsmovveR11B0NPjexLwOWp5ycfY7UmAtO</value>
+      </extension>
+      <fc-port>nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl</fc-port>
+      <address>2cZwcMdwSK9gq5GoEKDuRpRjSxgCJrtDEs9Q7neZZngilOyZy3lhscBcCJPlaaYOC0FJfTJe9RwuF4l57GerLPEnqlABvqh7qORFAsMJbadI7qN661yRJc69xGC27U1xIS5icRTf16X8o</address>
+    </fd-port>
+    <extension>
+      <value-name>veE7j3c2v1QBxXUimsdszU8ECR9JKBp7HW71ZjVmlLXSAJaXbnhCapgMgioSTNZtB6usqhGD3vvveysiVBU503K8l006NSzhYVJgdqT8VhD2PYcCz6As1cAecBdRtM8jAKsF2dNXmiRb83GI2gaVsKawdnny1wKt8c8ahN7EYRH6MnOGDQuXtEtyTJ7M7RgfVgpcW</value-name>
+      <value>IUfq0UNHsjpW8Ssujldq0k98z4oY8kmR6u97oWGQ75FgQ7K1l</value>
+    </extension>
+    <address>tIwRyw4Un2gw1ElHnsF2An1com1HHa92SFUibQdrStPU02tfv09XnaaDpbk6mt960VpcDuvnPkhPnDWKD5H18JExVRv9kwfljwpW0UkQ6txl6m5KjFDrg9Qb0ekdKsy4YXSZJcHHy63Es0gMxT5O3WZV2c8MEyICnBt6F2Od9JKBJ0n9MtXHhOCjSD5wbG1zhmxOpd2yWM9yExHqSw79cCs5fptq5uReJp38C5GzJHZf6GG</address>
+    <lower-level-fd>4cd72b11-5cfa-9e34-94d1-42b54486ca7d</lower-level-fd>
+  </forwarding-domain>
+  <label>
+    <value-name>UHIS8HhZzx0w1Gv1Z4lGiNGw4IMz85M3NmNN44FvBxTCdov4tILLvjazTW021MXG9Cm5G1A9ytDDJ0H4IkQdDSExGxrzjo8k0upy</value-name>
+    <value>RzVc4yW470MsIR5svu82VIebQq3cItHz2uMY2A21sOt3xrv3VEXJe3UWmQ84</value>
+  </label>
+  <name>
+    <value-name>VO8fNQx1upe1FO4VhHVNqvimvyiijpY766mTXLMj20kIOgv5XrKgWVCstUCNcAMiG03vLPGOQ1o</value-name>
+    <value>9TC7cef99RtDE5iQxW05W3tHK9ns2LZcxtbJHqSRhdmNawvzsvFgq0P39dvcQugnXr7xRRg05CO70jHkHeA7ep2nuyr</value>
+  </name>
+  <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_PASSIVE</administrative-control>
+  <profile-collection>
+    <profile>
+      <uuid>b737f45c-5824-79ef-f58d-6a5a991aeab9</uuid>
+      <local-id>bqA9KZHlOUSQMqUxttPiCVUnA2H0R7V3xvchmUDbGnTkOFRh1yrDmdSWfrW7yJ2576nt0SEyfxSVdC4eawJwJBlZ39YBL0HS6WlZO0pVpaRuMVIWjjl3VyUYzKrkC0cIWyzCqZqP19cNWUJg6Wb1uXR4zagbbtLZTlubcUSdV40RRBZXq2YMRHIqRZB2knU5AogEa8J5dBO44G</local-id>
+      <extension>
+        <value-name>MESY6cemdj72sSNbjUEFrcu3L54mWUvIyn</value-name>
+        <value>EsN1FY8Hi1nlchZRJbdMWaIb6CGH24gHoVA3LID3B0oN9nxSqKwfN7qLB6sE2IdqvNmgvZbZZzE8ObTfOhmBoMe0SHENhR5NwrV1q7ShGxqnAbuosQRRC6JmNf1W67JuyxnZEggcFyzfJ3E4TnVntEC8TD5RKGdj5AiJQqWvZnDAj9E4wrsS540QHXzkwM</value>
+      </extension>
+      <lifecycle-state>LIFECYCLE_STATE_PLANNED</lifecycle-state>
+      <external-managed-id>
+        <manager-identifier>mhPaP1PHIYVE4ZsWy7O4bv9qaMf9C08QiXS7QzOzqB5utpi1oY5zu6SES7Fm7N4hCXokw5LWGQi1fA2DrZ5N5PjQOYcNDh576trCqdzZVJ0bcVGDMLqKsJAgzE44N9bTuCwVHXMDGMGSzenm0N6koyBXcF10G4T2Hh</manager-identifier>
+        <external-managed-uuid>g6BLNgjxPy</external-managed-uuid>
+      </external-managed-id>
+      <label>
+        <value-name>IBHkfoKBO7uJl76OLZawuOclHUMOzeThPtuXR6yye29r1ffEfpbBdfWU9BAIPmSxPmuyk26yWgZPneuCvF6IU2vVv5vljfS8BezW8FmWNmLbsfFYMLyyG3lb1Roc68lAmUomrCi7Y4ajbP9QtHo1DCcwlBIjJ3TYP9k9MD8CziNKZWskwRl9lyFG1fZKbLA0UV1yq13ZjIBbF4v3NR48pJOiYN21qv2dqV</value-name>
+        <value>QXGH8pijWePZ1G31XEPfuv9wVEq8WdMM2klbBEuxSboMRjNGPDVc0XANtSWq5A40Uqbo4xVOJcAsng15TWhLLJyfBmFyOByB1JZX</value>
+      </label>
+      <address>5d1t4o6FHfbMDD6vAaojJdS3Bxy5MliJzj4vH2ahhm3VZ9irbGKUUvQn2osGCKh33myDoJUyXXlOYDf9c0VYnDlhUOXwq6zuk7ZBIT9xImlyRtH3luTI0fZUVOqlMZH7YGIHrJ615s</address>
+      <profile-name xmlns:x="urn:onf:yang:qos-profile-1-0">x:PROFILE_NAME_TYPE_QOS_PROFILE</profile-name>
+      <name>
+        <value-name>hQmcaB6fbuvHwwqtB19x5PqAi9JKzAuQrQ2Br0Juu6bSCBlduvKAc22ubD6KdBtErn8LoRfKPjDsMYxhlaJqcDMggTStml0NB8qZRyJGRe0D5qMqAvIE8vUggFKC0KhtKIs</value-name>
+        <value>841Zi2unkhGMMoqNLd31SFvKhF61fymnComNiQaC7QgM7GrSLmMv298bOe53Erq9PEWZv6tuPJ8WirG3OkrIurTiFYejqEs7bgZGns24430muyhaTISn1ExGCLSUicUttT1IdVMhYEDlcVnXv8cxMK5gnX3x2XSvITdVHR5xvIKzv8xTgJiUln2Jd58721CCMHqtyvTVdDuBLTuTDEFQ1Ir6NA</value>
+      </name>
+      <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_PASSIVE</administrative-control>
+    </profile>
+  </profile-collection>
+  <extension>
+    <value-name>HDebh45J76cNsflTKgGg5pm1cin2irdZWja6ofPneTaG0nzDD7TBxgCBqZvJiIIeULca02x6NHMO5drAlcbKkNlLEQuWq43kPfuI91OXBtDyy48T8cDtRQewGA</value-name>
+    <value>7EfjmnGWwzCl25YAEUBp3NVwELC2kcfjImu4J</value>
+  </extension>
+  <uuid>fd1ff4be-c400-6056-08bd-086e916d77c1</uuid>
+  <equipment>
+    <uuid>371eda64-3aa3-f78a-2711-ea75d567381f</uuid>
+    <actual-equipment>
+      <local-id>gXtme9LRFlvM5VOHb3f8X1sTjJzbEP0MEl0LuLC1Y7OVUuuXx</local-id>
+      <manufactured-thing>
+        <equipment-type>
+          <description>11FaVVsQED5wWYyzerb7piiMho80pELixqksdFiSing6mHxs8Jrx1Kbi0japXVzmeUOrz6bJmsHA1629PuGI6RT633oSRXf5JVoaUATgUsIVzK4g6CZ4lSbg</description>
+          <part-type-identifier>XnLMjHNUGAdlPvKGvJOyJt3co5eNYpBWFfAYWgKuIYPpls5R3UpFflRvq5ihnU521FSXNvrwl8VGsTxwFP3UaUqsSIJfuO9nm1k1wDxRElq66XuLExFOkX9cySr2zAiVtCW08mJMz9KFZ7qvE5cYVl2t5lnEVFzhao9iKSWjUyYLFggcds28N5BTqZpewZnGnwQZgEi2d8NKo4WBoRK4WdPe4ekB5H9k50j</part-type-identifier>
+          <type-name>wtoJBcuR8ito95sXa94fogIlYJG3BZh8tGRWKdOSo98p6tngCjnSz5epPUtiTKqeiab2fRMD0V36oimSBKL2HZsoLVHwx7LI9OKpFp2xkXDAfRsIt5L34drH00ep0Z79FSyc9tJtqmVy5fgzl1Ch6VZ6W5w</type-name>
+          <version>4DXBnoNwRwR9KMHPUQgfJSoQGfWCksqgYnRdLEKu2tEM8du2VK9Fvxv3NjF7M5oCk7PYMrsGVYl34P5ZreEOL1RqloyZlOBGViwzKYg</version>
+          <model-identifier>z1Eo8B030aXsW5eoN1XqX6or5tMPEVC5W9l4Cl7uwXWs22II3y80EwjJZ6yvT2AH3WLG9KaFzZ7u1IcXgkPUI9vA7350Xyz1mcHvWRboIaSKS4z0goUYppqwkwoa4Xbi1KNYtQecT6OD2nEaDq03Qrr2XI4Txf3zRQplzDpsBd5vsJF52F0S6kM3UROjYRSQA939EsBfFyKZahWcXPW31IZVrFeixZ8Z838NvBU21x1b</model-identifier>
+        </equipment-type>
+        <operator-augmented-equipment-type>
+          <asset-type-identifier>mGp6Saey7cqd246T06Gzd40Q2bPaIUu5sL3dW9LVlb8gf697cIHqEH8GSXRsJdpcRlpNuaAIdIYtO7ATPhblQj2A9L3SYk4PFlu2n4KBEI4lHEepOpK</asset-type-identifier>
+        </operator-augmented-equipment-type>
+        <equipment-instance>
+          <manufacture-date>2021-03-16T22:59:31Z</manufacture-date>
+          <asset-instance-identifier>2LXNXoFCMiUYcOmQrP4ehNVDrsPrbKf5ncSksqXeIJ5MxjCQ8H4hmRUFbJ7mlekIq4VKuKY4lVQTetJe2GwgxqVJ2UXn8hYqmLaIv1NQWDB3YdhSTN0ieWTgIJvJ0t9e6cXB5KkTfNW60eYLTZW7NHfnqD6j68x5</asset-instance-identifier>
+          <serial-number>ITaFSBTpiwi1PDqfuL3XjYgPq0Gyxv17gbM0ExhWVAYK5gZATUx5LFMbxsJ4PC35NHYr6fg2P6EVmwn7iMc3sZ6RjHO1jRY6rWqxcGrTEYG0m3ZEIcA23GTegHfzreyS2QpeoJ02HGU3CTHcX9e0Q7f6Hmx8A5SDN9JbSJdzi7uUT46QdcJ3bY1SczSNwKicU1nMDBeVAIHtMFc0RV</serial-number>
+        </equipment-instance>
+        <operator-augmented-equipment-instance>
+          <asset-instance-identifier>IE7Rp2CgmG52Us4hoGSVg</asset-instance-identifier>
+        </operator-augmented-equipment-instance>
+        <manufacturer-properties>
+          <manufacturer-identifier>oS3WIfu93ED7dsrra69mSWJqxQd3JVBZFEWgUihPWUO2e8to6DKYrtoYbtTUgmUOTI4F0dmO73Ilb4J</manufacturer-identifier>
+          <manufacturer-name>zl00OoQ0KCU0YGOJgKo8XLPWOx9RBK02502UhLM1fy15fIPnkdwaYl6EKgve0ogYojSFWwyb4sgb25zmb5w1iDG2L3gDrxBQIlnERWPOg5Zi3yEeD3fVGVQjZ6OiDi8dDoRncy3sw2KzBgF6jUURIK2zIRRe9SrEgj1kR4MnZoOAwtyQgszY4CpNt81C0sg8Dasn66K5urx1UYJ2iiSnUh2fi3Rin0jT2Lg0KSY6jn76lI8E</manufacturer-name>
+        </manufacturer-properties>
+      </manufactured-thing>
+      <lifecycle-state>LIFECYCLE_STATE_PENDING_REMOVAL</lifecycle-state>
+      <physical-properties>
+        <temperature>FGtdkswGAvsjhweTufhRlXZMhHIOWoTB4eGoG4WgAoARNGDhVU09RZN8GoPuMAXROE7uI4Cak427KFgyzgzj7mj</temperature>
+      </physical-properties>
+      <label>
+        <value-name>8rV5uhdJ0DU47s44ox6drUDqJmnqNTZNcUSG3Xi3A4Zzw4vVtt0NgE5ZSkix5hkh35Y6282vc1WAXsnjVoYbU33MfdckmwBptrnorpLDjHe81BrXRp0DkViz8uTu0nLmG9C8ynDJ4RS6ljVcBVQNJ0nRu8emnZIW8k4zzziEr2CEmpQPcyCVyRN2SThfSZ3Tc7kLzCh0FLwTaeAnNcidWX8OQpVBgZukYO6xifpP1VAbaaqPfJUby2ZpjMSsL</value-name>
+        <value>MK2K9c0zU1uu4wxvlM68PE2GVmsNGe1sQVdZ05yUYVg2jFpFrnN82POP3hvJnw4dk94cev6cqe6JUogdLVmFD2nyjSaGgeLAfQMtdKxDRveDTnIxaW4NZreiboRsuuUJcz4pbBU261xSo8py4le3FkeQI5a4r5NEER3HsQCqR9ifhzFeVLhA5viFstJMy</value>
+      </label>
+      <physical-characteristics>
+        <fire-characteristics>TmvOaMYjcDMmIBLLQpQOp0OIK3UKjl84HEKKiB3ueHQPiuA0TiHiinT2jFFC0NzzjjbCU7Y1OHQZbiZWBy6TWZOfwlJw8aYku9Wgg</fire-characteristics>
+        <weight-characeristics>2hDeepUWehiLSzVMfa4xg0dZoywYoaVisypyQjn4AFHkfD6mF3LW3YNrpkqFudYOMnfCyCy0h7loKrCimneqe1Rvd9aAn0g1nvDV73Wha9xNAa5XxbfD4Y8i0jKnj0gz</weight-characeristics>
+        <materials>95tRWwaVsDmzoiq4pXp8lyjjSFlGNBkXyGOmcQaxtw6KOoOdledHEwSo354RHgO7Wuu1dEyG2EiQ27Vgl8PZxznAFjjerZlouHpHdXfftyXnx</materials>
+      </physical-characteristics>
+      <swappability>
+        <is-hot-swappable>false</is-hot-swappable>
+      </swappability>
+      <function-enablers>
+        <power-state>K89xI7goDfSdbnowriv4XECoM3HUpTr21BrCAH05WLa88qwrI1vFx7Wkav6soxui0VMsuExipAqp0ORBIm8fm4roAxQY5c857UqtzXMQp4giTZTBd1Iz6aQGHGwELFCKz2e0R0RhWZzPYki3l1DrblZK1opE3TpuVDnEveVjdm93Gj6UkBdnWd8QtpuoiTS5o7JLlx5qL6tkpseC3rZSwZIZo4ny</power-state>
+      </function-enablers>
+      <name>
+        <value-name>YuDqnW1O0xv0j2djNzWhANgoI3T50iHYNkh29iJ9Qe11gedVF1cfOlwpohuoz3fenw9wGSxo6yifEv2jo7zdsXuQeQeFTlU8R3xqN4GLDYShlVtK22PuRjk59qKUMw2vrzN6EuS9sKiGxLqzFfVwq7try6lcCnHWPn2lRUubxER4q9w5oruGzX7ZVsbqIKmx7gKY362AKTwa328jmu0</value-name>
+        <value>j7MfsXF2zTzH9bxchzM1lb4g5czryreRr06LPDNpwe6ypvKGXpHaALqFPR7njdfCedn3Jak7oiFNOqlDH2NhOdOv4NTf10J7562O8nWoxt3dToQsrDJ7IqCFdnM6nw5tu89Dn5TUzX8klYNEuoD4G8BUvoSLMYeg6nLllFfMufYP6Dms2ZwAZ8mvof8a5mi3B4oOBvA5LzMR48j60HzZHVm5au7fIqicuy054t2P2Oy6XJ5Pqw</value>
+      </name>
+      <administrative-control>ADMINISTRATIVE_CONTROL_UNLOCK</administrative-control>
+      <extension>
+        <value-name>q4flLH3f0Upi1yKHMFkW7qjh5MKPqadQ6t3S27721od3PXCtuWpteJKcnv1Nx6vErqouxnorMBmtqQWMEmfTX05knY7U4uqoUOSkc8DQKZj2H7PltW6iObC31BY65gmS5echmP7YGiTfpIALwH3lKGoM9eK7v6ZAc3JqKQpi0axpSZagy6BbM0XN6HUBFL3RG</value-name>
+        <value>hiuyAuIZUsRWJh2csGcpmjY8MDUQmsCwL74dBF5nZWcI56VyNZX1aO9Xj3NGoh41o06SFb7FZbf5i2DXUsY4g7TA3y8rQck6cqQKuYhl1wqjrVgdge9oe3YhtYAb2Uafc0ZGQg2SEkbX8kaoqkMEfDVIBvUEh4LuWCaNS4xopImxU</value>
+      </extension>
+      <location>
+        <geographical-location>tMQvdx0FqSoxM7rm87URU4UC51wv6N8zsQWx</geographical-location>
+        <equipment-location>mIoqU35zfRD4KB8kvi5UZUWzVYz6Ct3YbkoXflov52zPDz10R7UITI9GyIMabQ9f2p4h</equipment-location>
+      </location>
+      <spatial-properties-of-type>
+        <width>K47NKBIohT5f8S36hBbYjPwErI0BM11xX1kzCVXTGV0GFVMXoYNHFjd7TdAG6B53CpC6crZSeRzUMdR23wBJPOIB1i97Le2gDEmIYeAc516K7PMalgL34lE6DN5h10xwET6u7</width>
+        <height>vSTkJiUYSz94NA30YpAfYN46VxESN3DiVwDwOpuyQDuvdyn4XXjODoUyNqiAtVTojoUZFgqvTU0Ykf2adeYQCSgpiqSLeL1p1NpG3H3OtVMOaHYnVO5pGdOQEytKbm9c1</height>
+        <length>H5ANHHvlKQBvLGRhEmWBvPB2e8OkCN1jSuZr3mNN4gbQWU7s844ELxyZFmkiadtUHkmDG1iLhlB6fAygwuUi2k9HHtRRHdDgxRT6S4R2pk8xUyNj3zt5TCEA6ojFBPV0GH6rDXt29BzW1ef4NA1Hcy9aWlPpaDhIco9PdCJf5jb7xi3dS5M4DV7r8WIarZTDf2klx4AC</length>
+      </spatial-properties-of-type>
+      <environmental-rating>
+        <thermal-rating>
+          <minimum-temperature>-8576656451195163.0</minimum-temperature>
+          <thermal-rating-name>LBE3FRNKDRfrYyrN8C6ZnK7pWsOSUj7xUEszvfb1YikPILCQfIQCkXU9hI1b11IOFaf2hr3fBf4kTy209SDlHpuY7w11pJP4L462n2aZ9eb2Nd3OYy9FXEwW2xXr9EnMBtPYnZPx5SrK6my4UIBJe7G8xvzyaWkLh1BxSj4YbnA9K95wJHgPGOX5jwDtkY6tZI0K1WI4kaeWjjkU0sJzgGEA4aVg02KZCKBvHbrTmFHFZ1sRu3iC</thermal-rating-name>
+          <maximum-temperature>-8266177001844291.0</maximum-temperature>
+        </thermal-rating>
+        <humidity-rating>N1kCue4bM5JfUU3inanGYkFyOau3HXsmQNQcTMnGJ6Nv1I</humidity-rating>
+        <power-rating>
+          <power-rating-name>GZ0XZUzQobsTSDcDZScxJeZAA2LcE</power-rating-name>
+          <power-rating-value>hdzh2q3BgrMAcx6o25gfuZllsVgdZMF8Z6hTwkmEL1fXylmsiCHNuU0OHg1H3yHUEZOajaO5bV2Bgg4rTDefye37nWOquok0n0aGbQDeMGQUWMlHhrOPGJX3FDl11x1gy3XBUsPG0xsXjOwBfdiNW7IuD3nwt</power-rating-value>
+        </power-rating>
+      </environmental-rating>
+      <structure>
+        <category>EQUIPMENT_CATEGORY_CIRCUIT_PACK</category>
+      </structure>
+      <address>ZXcVGGiscAoX4kz6ZjbwzA7N71cUmUteKy1iejKiL0fHkGOkRZIqrP6qRic54FbO5c6boQt9QIR3gxf7wXqPNwfwGrtKYFz4RFf7oJh6j01sxgrVeJKT7ZhNiCy8h7c1Ek82Vh16h2yOj0BpBlaJcrwm34vd3H6IT6COovNxyleJdP0PbaqftWCoT7tWGzwAG1gWw3tW</address>
+      <mechanical-functions>
+        <rotation-speed>8v6ffStEPTpVfBcHPOC9GuFF4xW9UuZU05a7PDDEo2rDwwclcPmSb2ygzuhlQggIdiH3NkzbfTHLhTYtAlmMfUUGgb1Yj9zwjgr6tTaIERlVCjodwKRLwLrEWlD7m4DGkXMNQWnuFIhaUFnqi64ORnlFIYM</rotation-speed>
+      </mechanical-functions>
+    </actual-equipment>
+    <equipment-functional-boundary>Hxmxx3AztP2ijrbqU7ZmwrUpHQVDbKML90aH4KgprbHLuS3gS2CgloF36syi4c3ecdV8P3y8e7TI0PZKJt</equipment-functional-boundary>
+    <local-id>OkugnJF42gbAhAkbO58laM0jSCl2L73zkpQH8nDaEHCNhXQ5UYj5CbguNtwzsr0MQItY671CGDhXs8UfYdcBps5cNuDfVw2M6nCcmDG29YZBYMQWZ2xgmvl1RYhEmbityVFVqePz4H32tTYkOoB2LW4CMl89wrCWm9JMnzer8hlBakNQAoTlcXPZiX0Gou</local-id>
+    <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_BUSY</lifecycle-state>
+    <external-managed-id>
+      <manager-identifier>5Sx0YZq84u3iGg5HX076feRP6GGIi2AfU77KZxT31Wdz5a82af0huS7sqFbIHLPtLW6KtRFmFKOKUWF4cxmypl0Q03qAP8Vs41cqSRMytAanpHjBf</manager-identifier>
+      <external-managed-uuid>1wS1eL5xdMF86J2i9U</external-managed-uuid>
+    </external-managed-id>
+    <label>
+      <value-name>p0PRUOsIP3p0zO5wdBPKpLtLu7kHsRRJJGsvmV54Qv4ib1OoDD12huFLt0kNJbwlJYQ6LW2uj6Mu7sSCXLFe7kRAcbfOeL9QCZOfNQJ6WnsVPdyNY5T6hLyuOOa3zjL3azjYp2Wdih07uqMsvyqNbZ9ZNjUeuFiE6tuvnjAFABF41jopRH42GdUloOzSmJoscLYAWq7w1Ms36IkPpoK</value-name>
+      <value>BEiRkK</value>
+    </label>
+    <connector>
+      <local-id>1GkJpKq7DnIFuKn04TrDFc8tKaTsJMLKkXlKILJd8jSuV8m0TNvr0wUCGF4prH1Mxmo7ZZc7j4ue4Q6Ywupo0b0y</local-id>
+      <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_BUSY</lifecycle-state>
+      <label>
+        <value-name>RiC84uhTo88j40kEs1WVniwelM7gPxXHHrHMNYF4YFn2xzzZBnMQGi41439Lt6k2q2O5Sl9R0xLpYcozA2h8cd189bUC9eEr8lxTyGCr5fQ4s7vU9N2m03u96oD8vazvv6o3N0uSgdWAksut7oP7jchqAUyX47tr6RnTKRD04AsgUWK1cr0vDhN64d</value-name>
+        <value>0dosj8P4SyHKv9cL30vWcXXHs6vyaICbV0D68kaSSSCn1G1XGoTSdIsGPPeZpQadJFjJZuCSe67fN0ctpYeCGGivnxnMfpZQ5jA4F4OTaO8XOdjd3pQJX07kxu6FT6vQhXNW1tP49P1Y2c35tLHqMGKb2JQVPeEYbrU5MB9Wq2Ul7PiABR1fxDizm1n3f11ikNn6owUHrGUyw48ZW96lNoV1pa5E</value>
+      </label>
+      <connector>sZXQrGzdAhCtGdaKDjMjKkH3sosEP8Ji7y0rfzEHR8apmk9ZDNbfZKar8</connector>
+      <name>
+        <value-name>WYavRWU6c15cd5naztehAcNWtbWF3mwZkGn4vhaHbfLgk0qLux34JQS52GK52gXfWkjjttTEIEV3FdG1KJ5mAPruvbrxjoM7A5r4ykA9</value-name>
+        <value>n4nBKodulzWa0iF3J5m0JusPVof7ZgXekdP5B3rXufZvxxq8CN8lhB24ZabQq05LdMIPH1EcgDzF2ZNEMOSVhMZ8W2ZfVWS8IAPitluJR3oT23y</value>
+      </name>
+      <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_PASSIVE</administrative-control>
+      <role>swzHUTvWxaxQyT</role>
+      <extension>
+        <value-name>6XfMcdaB8J2ODAcIIbEKhZpGMq5WnCRmr68Dka6sU88xAl7bwDVGvcmhuj6SVX6eWeKgoQAaRIAr3HCAlp8Qtu</value-name>
+        <value>YFXItNOHJ2rZiarl19VkdCXFPeNFA9xyOu89hWRSQaJ0kaldkgypLn4AtR83SFtG1BQbpz3fBN8WXt19CzyfWuPidPl5mPEoqmzQVuXw95k7re8VNzaC3RUhH7m3W0jfmSX9fUyoSKnbYwYM58g0Z2hy9wC6wVdLGaMNWkbG5zR3XHHUPPUHR471ABZYpcB5eoKaIV</value>
+      </extension>
+      <orientation>CONNECTOR_AND_PIN_ORIENTATION_MALE</orientation>
+      <pin-layout>QDG8Cf03mrA3aI6zWqIOWnZ3mBeFKIDsdjAQqsLMTdQ4OWDKeeq2Bh6QTcvvU0X0kpIKRlxKzfOf3kRhyic1ziRsufXgfM8rbQ42cBNDItSLNBUdT6flgYFK5vTlh1EtSInW</pin-layout>
+      <connector-type>2zTwjwbUrpOpE1GCGiIbbVt5zOPabLlecfCvLNp4c5uI6adNsNQwIbB9Zij33Fh7MTCpy1uD7Yl50yKsdBQVMjXEB8HwFQDrBfR19dEg30d3qYnEzerdxgJ9pixW0bgBi7DrchHf9VisLF6cTppjG1kXjRTk29Nl8qMcAmrB9J3Uh162rnl7gFWApHMrRzERSj4sxn3y7Zkg0iarFwqW3eosWaMFBiwtBsN0QJyPISXIa72I</connector-type>
+      <address>bia5Z0SyJOGCghteGxQDL6fWObNmpfPBxZyp</address>
+    </connector>
+    <name>
+      <value-name>NMygWK3FkkyxovefFbfdsJH4fVd8sIcfuKnjujYGDwd1TrhyvoLX0kTfg7fIHrQcc5vyolf1JsVCM42hsF6sZRH7QWIygyCsDZ02k7V3AIxeMzn76tz5c95VXNlddXxQWyK8Fy37gAdV1A273B48C93AWoF9ddS1Du9</value-name>
+      <value>2cabMn6NY0MTtQ160WyOcdYpiIqVcz67D8apv84t8InBzgzrd77hdXHvFZjKrhJ4pTmUTqg11DuATWTY30g8QPwvOP7fYQcfBy9uYpnZUKrGGcwB5MKVt8iaPqpN8B2K13e0luRfebNUfknkY77s7iCWITBInDsozzgU301h3P3i1qvZqCrxUVmuPXd4txs26JO1BPaEwdWxwrxWWQlQEHdlx</value>
+    </name>
+    <contained-holder>
+      <local-id>BQZlwdVb3QvUg3rqYyoNpxPTFCYZ0l6t35GratDdb00s4rKUR1Hgyo250S5T53e80Vzbo4oA5oU1HwVyxuHXTJ3Lt0wyVLGVG76WcnohDaidH5L6zs4k3ZYwRu4EfCzNKyKON05ibfvSchYLBUYxLW3uq08yCAle0X2NYZ596B1iKRW</local-id>
+      <extension>
+        <value-name>tQME9aR24</value-name>
+        <value>PgBDlHfrJnsJs9HMjapyySocoqm7siE9y7MTO2cphw0JFHwRJNp9xFlW5H3qZzzpzeaf8eFpKF9ifF9Ykq8R5lN33JtUaUcB0eR8twyd3zn</value>
+      </extension>
+      <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_BUSY</lifecycle-state>
+      <actual-holder>
+        <local-id>5PIKksKDk2di7qfv8foftvasEL9r2CE7rmRMGtp1vubuUqZ2xg91Ljth5CB76f6ytXk1qB2N55iSn9MVpWW37hc4LN3RU9pf6Bhw4jkahu2EDOz3CnYKwaOhYS1K1q08UhwYsQ0Jc2oQJPLldB5JLMTBEUmFceF6vcXPUXz70PPBEsOJ3MlOyei40wJcKpb7t8Wn5nu</local-id>
+        <extension>
+          <value-name>phXEPF5h0ejkGSAJHfbk8XKUGoThAhyRyvvn2Aw2GPeeIOYh49B4YeYFCJO40mWqKjNMMcPs1VzJKx0GyuKxIA4cjShb75BRogD2skvug45St6q1AaqaKmmV7v6eAH5RXITq3gMbcR3xXlrpvRr76OUdb0rMzwvo6gO1xscBk799sArPjSOpGIuSAVw9jTy</value-name>
+          <value>9eryHw2Tvb2YDtFWmmeU4IExw2GPV6fXdznM5pFAAzq53Y2hk83gQINeCm4qsjfxSCjP2QiuqIAlGuCSCx9k7WzKiDaDOpazTmgV4yi</value>
+        </extension>
+        <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_BUSY</lifecycle-state>
+        <label>
+          <value-name>2fZeTr3gFT7XB0uZCDz9DpX3NKgSr0ml7lzSEu0ko79Z0DRu8qDMPsPvcXnvPBRXXiPBNQN3POUHjLbs4GeT8VgcTvII7rx4JfxoXdjM16m</value-name>
+          <value>RxFNeLzmGPzrl9asAzobONsLSLqMRMZBbw</value>
+        </label>
+        <holder-structure>
+          <is-captive>true</is-captive>
+          <is-quantised-space>true</is-quantised-space>
+          <is-guided>false</is-guided>
+          <holder-category>HOLDER_CATEGORY_SLOT</holder-category>
+        </holder-structure>
+        <spatial-properties-of-type>
+          <width>e8gPQqWBBEOI69UvoTGfdsHq9WvcI4dWctLUUAwn6cX4mR</width>
+          <height>B0Zv7nHDZEQQ7zRYA6IX2o3Inncbh1FTTEg11XwSunItOrjox1eri99FwdQF7nq01zTVwqNSFollPFKfyQGQZInnV6UUtdNvMGia653DloZ33BiujQkayIxmOj8hwVEiCWtAUw67M5aIGscZbo1J6yXMJ6Wg1AqvpT6bhca49lEHFQyQ6zAd7pRIvNYxgp2xa0Ik4Sgd5UULCkBIT3NStFBYsrnAQi7TaHd7stkxf7iRrMzdPf5aUG</height>
+          <length>KL7SYz</length>
+        </spatial-properties-of-type>
+        <environmental-rating>
+          <thermal-rating>
+            <minimum-temperature>8757905308121344.0</minimum-temperature>
+            <thermal-rating-name>gBfLNXP0TTlxO7Zcm5oj1C3sfOA7E9qUKFxpCnpn8DUWKT07QpiR1lcg1MfxVFjykRXO6fceK63mS3lAsEkmZwu1iKq5hKvuBliHsuNctQydUUFmqZApn5ixPJDYl0sWdLvF7iRA1iFV4l9ucKLAP47wFCu0vXOIAboHl7amhHhl2rP7bBH0xGo4bSWGHCo9NMJ8MLv3sEpn56u8zb</thermal-rating-name>
+            <maximum-temperature>-3712017184848307.0</maximum-temperature>
+          </thermal-rating>
+          <humidity-rating>B8l0wOrBZfxFlEWop5N6Y5Dm5j8KlxdOxyG3eZx5e4CsAyQRDDQuAtQxFRhSguyNUeR0dgXkczMM0Cwv7mZHHIeern</humidity-rating>
+          <power-rating>
+            <power-rating-name>o2U9QAIkZS7Dt8hevlG9C37IxfaAg8kE36NLHw6yg5bJdtXIGvKirRSQ62rm3D16JG</power-rating-name>
+            <power-rating-value>i4PQcV2V0nKJV8l5zcXpaSIxNdqLXYu73kY77S377FI2N37e74wiOeHBkZe9XJgSVe026V9dASfgNeuVb05Z7MtrLHAAiQldXdf38h9A1gQOvdBG5GF4k0nXAPqSyL6vYdq6uzynQh4lmF1reyoqrLo1BOT1rZwp5WnrwNPe4TzqqsKwS8XjLdkeT6fk5LB2AQu6DjcA4D0m5CTXKI9oVtCGzS0xvtr5bV3O67oaKhxPTiFw0GUN1o</power-rating-value>
+          </power-rating>
+        </environmental-rating>
+        <position>
+          <relative-position>HREuDKdvYtsax1WcTqIpp4g6DQcShzYYivlNfqi5UK7jD3vpldOK9WINFUxOlnFDS0i0qAXcc5wQ01fm7V68J</relative-position>
+        </position>
+        <address>ejIIRJ2YFtAQYCtN1veNRuAW3SicC0TIbtqUclLSOlANY3sRqyEa276XZg1u8V4kov</address>
+        <name>
+          <value-name>cbqRDfAy1Vfr1xv136eNnpMQpIeu6AkaMK1hZuQSh5bbCGcxFic2zYTYy7tEzNPdpIvp4l9milxMTBjyUvttlmkTlNqUs70RPv8MIa00nxMg0XHUkagFoAyJfQvzXviFSjrAtrAQQeYQbxDvHL2Xdtykj4Thr3</value-name>
+          <value>cmfMHyfxoto6xVBUvmXszq1TBXESgIysWN7Edm3tHrAefb1KqY4Rg5DRUhC3R2vGQCkVQfpyzZEO2FqkvucDsPneYZhQ1FoJ9Ix0PWyoNccHK</value>
+        </name>
+        <administrative-control>ADMINISTRATIVE_CONTROL_UNLOCK</administrative-control>
+      </actual-holder>
+      <label>
+        <value-name>zWEFGPMFp52atStYKwhQIhNVNuxVZD</value-name>
+        <value>qzUX8JJN0OPahzD8j2p2CGPplbXgaAwA1qp918O1Wv364G6gAvic3ZuoarwdTUNUc5WddK62890cH6kitCm</value>
+      </label>
+      <occupying-fru>371eda64-3aa3-f78a-2711-ea75d567381f</occupying-fru>
+      <holder-location>iXt6v5eFrtdYbRKh6yX9djrs02S0shJL6cJCaYhtjurud3DcBAdOMEhMy1M1ioEosfSC515gopKBsfFWQLKCpToQU3R4jntLudgAfdQDCt6XIETqpv2GpjwbefgxCBi7Oyz3MhygKxdlbYLAuGgLZFW5U4CpFMoulXpZ6QfJnl4ybH0Fn8ieN7bIbNZJAn5NcuEicT1z6XZixRPU001N7cnaSeTkBY7FlDYxoRZvHQFeIu0IuTntYDEQRx2l</holder-location>
+      <address>O9hUuXP</address>
+      <expected-holder>
+        <local-id>8ol3JpYPNgQcErL2isytxD4QbqFrWMI5a38LkYB76rjLSXN3hdwPRtxUTdlHZ3M1YMMjKniRGCurz9uQn0</local-id>
+        <extension>
+          <value-name>WfbxEkS2z5vBWvTrwyza7XGZYoxBrUxf1IMF2wAuu55qAQJZgi9n7Hn6XMHgG6wHOieIHOcbU9tmRcd8vfvuWKAMw924fqLVJ0EiOItAKWPB8UJv970YRsKoCEsJ56FGYbYELj7vfW7fQILSPDQz5sXzYhbVfQBdTrSEKZ2RN97vJKnzf50cpXMg6PbexFrq6bWJ2YAP7zlJjAayyaLX7</value-name>
+          <value>55ehjLWD3UOZDRY6yXFTyZmIpUS2JRrPXxY8aUD5Os5kbVqJKXvjOJ1evM86DAVsZLt2F67mqcyBZQdCNIVCjOIOsQU6iIyit1k10rfqwN2nD7ZiHMU0tuOVlI1DqsNMlZNlj2EPPy4kF4CmQpmjT2f6K8K3spPOhu1AwFhddlpKp1</value>
+        </extension>
+        <lifecycle-state>LIFECYCLE_STATE_PENDING_REMOVAL</lifecycle-state>
+        <label>
+          <value-name>8OtuES6qcHoyK4lOjUkUPl8qbE2gtoiBcMXIwV0Avo9fkuWvggi5tqow4iMqG5TKJRs</value-name>
+          <value>MsP9IQpUddqttIzP0XlX70nN58pOZRVEbCNLt4FGhX1DxAsqpFnwFCbKKAqCjlgmQV7b0FR9uSM2lesCUH9rjccVNux6QFtyBsJt7sCCcpwxvQahxbJInND2h39ZIuxbWgEWIhqVyOk3Emd3xWDNJ8P0bYSUkp59yCXgTn3j3oeHKrCanfXYnMRzDJlP0iYyUNPF2KY50dMDEoNUvCSTgJkLkFBlXrTSfAxhlonlB1Y7iD1N7MGov09QxC3v</value>
+        </label>
+        <holder-structure>
+          <is-captive>true</is-captive>
+          <is-quantised-space>false</is-quantised-space>
+          <is-guided>false</is-guided>
+          <holder-category>HOLDER_CATEGORY_SLOT</holder-category>
+        </holder-structure>
+        <spatial-properties-of-type>
+          <width>4nyzf8V1npZ03PKsR5QSXroOAqgzQppUMXtTXhUlGTdBAX3jUM3S5ryxSO7AdouReQKb7xwNqKoTzj4uX8e3rMAbAzLNYgE46gf5NES6g8ZPj3bh3pkvbMGLmsqcAWgy5nDS1vQhvHZODa5Gsh3D4Khi4zmww</width>
+          <height>10JEQ82A7x9</height>
+          <length>4BZHlT4c2zT1fw4l5wu81qKiAGSWcgqgJiP4bT85k27Aq3VnzhwsI8LiPv7TDx2mPRiSLrY5tXxL0k9rCxTcF</length>
+        </spatial-properties-of-type>
+        <environmental-rating>
+          <thermal-rating>
+            <minimum-temperature>3170529762573547.5</minimum-temperature>
+            <thermal-rating-name>umTt8w1aKI13tEujCPg1A8mBzY8kaGJwUC021T4LBYGWu2f6Rv0kvmV4kWhmu0SouSjvDn97lH3QKjOBGOV</thermal-rating-name>
+            <maximum-temperature>-5523740738829978.0</maximum-temperature>
+          </thermal-rating>
+          <humidity-rating>Ipb68RBYiItdFhQMeI8e71qV0Rm1kJoU0zS8jt6B3rPJJxvP7v3eot2odgqxRGsR7c0qGYUJiBs18PIgcLmA6oZjFhJoX3g4fgnV6hFoSZhSHZ0TCnmBLdUiuDHjGXfW5uJ3Dgsn8JgPBgA5DWGh9Bzv68OFXWtUi4YWlqjt1ziCISIdHouQRWmQ42nUQQO9UM574oA6QKAqviDcz82i4g80jvU1dBa</humidity-rating>
+          <power-rating>
+            <power-rating-name>8mxhI1htpEdA1RYaYbS1TucA5TgT5ju5F1ng2wJjaWUcNKeDVYFHsRhqCpjzIFFgGUwAq7TtVFFBhTe5KTMcDVCfkNP3smb0gHAyGm1BTycbkjg442gHXLP9yw4TSfT0WmquIs6t0aEktUgyOx7DaWNAkRt47f4VBnibPgEHqbUM5a</power-rating-name>
+            <power-rating-value>MzbpJ04kkWFpVUlInI0ypg57zg1dd3pZDApmAlyV9ec40pFo8FWpO1wn9pAnlRmYrDcUZLH8RT5RaKfih4I556s7oUuJLIz5mLZdoylfjq7t2mEkqepokKnAERbizKfNw60UEe2XE9iznWTGaa4nUjXra9JBTYhh4h4Av6p2fHBCEmaOw6brp1Szat3VjkdfthHZn6TuNuYrQ98efbFFcp6eK9aVlf2PoJGDPz7DV5WD6WRm8x1cO7rz9tm</power-rating-value>
+          </power-rating>
+        </environmental-rating>
+        <position>
+          <relative-position>nf7kwIqes0EXbh1Ch4UlcVeni0pwBzwZHvbddBjyt</relative-position>
+        </position>
+        <address>cmyiZHUU1cBPt5J3tocyuxXeXQd51podMXnDwapxm0fPXYKqeWQAlNPavU7wjwBXlZsJ1R8nRn4OdG6kuWUP</address>
+        <name>
+          <value-name>6l506aeO1hs28fOjZ4BIK54bE6FntyMrLJrSTFyMP0OXfD87HJHjPEvlK2A5AnwmYX6KvEwkwl9EQ9LpSkIzY5VI8nNICbWB92lwyRQX4RBM0e3KyMkpR7ZZmFAZQwARrNnRw5OBWhfOvjrW5LdOKcG6Rg5AExrXkPHRMnkB</value-name>
+          <value>rp2KQYHtbo5g447c1zQz1GLInumKGXh8fkS5isrmQoCUsBYubGV4myEB30mBYDJdXu</value>
+        </name>
+        <administrative-control>ADMINISTRATIVE_CONTROL_LOCK_ACTIVE</administrative-control>
+      </expected-holder>
+      <name>
+        <value-name>EUKpQOM8GMyamUpmRj1Hb7QhAJskBoxfaiw0Ya0wXzGjlXy4hzMkGuB8eVsPjSWt2kl0vewsF4D02bWbDAvb5YkjUM05EOrG8MyDSWXx1BpVEe6hOBtTrN4lr4rYSSwTw5ohTmGMP6HlcNv0gYMIDQVWNeUxYjqngHE93kWKiv5ubsnji11VRPKw3w42Pmh53V7Y7VAqiyMt01Nj2G6UvQqrfml4JC2Ep1DwOdW6LBAE</value-name>
+        <value>fXFV3zjMRK16XXPrZtQSYmG4bNHMfloui3heuA0ecTk9Q9AIuislF9pQO6CVs0pCWGIq9AEltYncZPUm8eHNn6v347YoZf1NOJ6XcKaFBxRsnDOnSna7lF3qE1Ov9HjXjpMv1WaumUXBpDY9T09excEb5ly62R3l8HQawTwKNll4Zb6KbfYIrvLoQjvS3qeb0WdwPKgu5</value>
+      </name>
+      <administrative-control>ADMINISTRATIVE_CONTROL_UNLOCK</administrative-control>
+    </contained-holder>
+    <administrative-control>ADMINISTRATIVE_CONTROL_QUIESCENT</administrative-control>
+    <extension>
+      <value-name>GlR1qC</value-name>
+      <value>0qhZWjMgeKRyr8W36pHg82SJAeABE5swvKvkV9s9Ljz5kn8qMQyUKrvcx5Gb28zyKWKF6cGJofOICP0gxy29Rxlov1rx20XMXHkVM0w28dKC2CLz2NIUlVaQPCfRudvjMH6yADAIIccKOXbRDLLYyVGnpN6U0CdNjkdTPGtxSy9Hncq0X3QvQoLgcR24tfRFrXqgDMNnkW4H0mAXpqlgP6o1Xq</value>
+    </extension>
+    <function-block>icI4oc5C3d5zDbucyNiXWIL50xrXeRnw35tr9yVcLTDhW8tmVMjJmXGmm7bBQyZTwscF08KETnVPvgbi2nThcrDyrH1h713vlf3efNK8axXyN1QIoCZA3u0m3</function-block>
+    <expected-equipment>
+      <local-id>hQdTjSSJJCelJCmg3dmeJ65IwY8QUQtbGH4ZrXA3rHo2bKj6Pxkrvp12f9KaZddxMipe7RhqqxsC9LIQa3hGsiIIkkKjxXJk70qeRzEi6ZU7CuXNx7tSp3sJncVU9w6hwonnXUx3Tj2vO0id7D5oGx03BNQLjOUPdh4abC6WV0sJ0CXZgUgOkgSV3Ayegs3tC7wNJuCFu4gvy5mGSCvcSfZN</local-id>
+      <manufactured-thing>
+        <equipment-type>
+          <description>gQbpoRH6Zhjs94npazdRj0E8NmOkYk5628viZ5gQmzavDxMG6ZpiS3qFhfRf</description>
+          <part-type-identifier>O1M2tXy6mkMtc4L473BpitwJhS4eCH2iBOl4DT205Hl9L65S1H9k2GVbqShUzjd20yYvj1vgAIq</part-type-identifier>
+          <type-name>Gn5I472YNP25Hj09vdbvD20O3o4D6mQNKVnG2pxH6zNO</type-name>
+          <version>NXfS0Cn2DbXT7sRmiwY6Tw0a3Ahun572UmMUZ9PucMfbf6xpDnvwUoHPYYcdVjfPxTBo2qK65ZhkYHJ</version>
+          <model-identifier>Wmt4JL</model-identifier>
+        </equipment-type>
+        <operator-augmented-equipment-type>
+          <asset-type-identifier>bhNV4RoLivkzHyyTR830HTZtVF4Tsb0vkNjhxH2P4npDNXxFXsxFdx0044TwfU2AzlR6ULOY05BOU0tSs0xypxytBsSJeMbF72ETNsROxkujlXbFPAd7ZMst6kck6nZ5hDQWXHCmU6Gf3RMLk0KjEcMKpY4ndVluzbjoLVLF2rMXayAuqkO4xAGOrKbwywT7Acnl78S1zEZK4zevUUrjn87OKaciz5h9</asset-type-identifier>
+        </operator-augmented-equipment-type>
+        <equipment-instance>
+          <manufacture-date>2020-11-05T00:37:40Z</manufacture-date>
+          <asset-instance-identifier>kdqw05wlL0WdNhLEusQxJDb4xH7OLBy5GQBHV02ySQDxZocmIUTrp5nWMnCpY2mwSYdFQ7dAXQ8P6cbG648n1nbNKN4APr7Hhce7krz99HY7L1NJ6N6</asset-instance-identifier>
+          <serial-number>ZQvyytoKGbVN0kGuJAUlyZdPbboVElUD3p4B</serial-number>
+        </equipment-instance>
+        <operator-augmented-equipment-instance>
+          <asset-instance-identifier>FmhF6ifKhRGJX3vSvGfvFV7P7ig5zpe6DvMJOTlXC2Gz53rsJyPotX6tfmyGEMFhaj1Y4eNG8mf6pzy17gpt5vOkKeSo0xF2IySMFGsN2ITj9kk8ACBF7pRJDJ7w9FqR5jEKZYyTyr4H</asset-instance-identifier>
+        </operator-augmented-equipment-instance>
+        <manufacturer-properties>
+          <manufacturer-identifier>UiduQC9bqxtCWsCZHkFlll6N1LWeQJgC2l7KP8N8y9KmBfliz0wMeusf7otX0Cs2XrE</manufacturer-identifier>
+          <manufacturer-name>zjN7spt4EGe5HKSVfk2mAvcAZEuP50uwk9EMyZIdGXafz22Oe43PrfhrLM8IMC6YLKDbClgaarpKtjqAnthGAyZdc7VRJ2PmEkq8GGiI7Hkt0L3f6kWHKNUXVIOwKv</manufacturer-name>
+        </manufacturer-properties>
+      </manufactured-thing>
+      <lifecycle-state>LIFECYCLE_STATE_POTENTIAL_BUSY</lifecycle-state>
+      <physical-properties>
+        <temperature>a6JxNcGLHpFKVWxrFrIzWnDpmpmZhntrucY9owU5VrHIn61VxKmuZZLdpZdymGRIKHS0dEX1YwBdCD89fvvem8rL7Ebmc24OBOOHtDIj9jwDOFN3aahwjBai7dEc8B0JpHqKk03mcAZ07E</temperature>
+      </physical-properties>
+      <label>
+        <value-name>oeBy4XeizqR2teuCXo0w3jGh9K23M7O2lhtheHAO7jQsycWnAXTDgsNi4PlJW2L9jerqO16NcW8C040A1L5adSsiAF1oHEyTLZjrSpe4deHdjH</value-name>
+        <value>ckKeyvGI5eBlN7TGSSRjK8qHlEoqXX52hIgH5Pp23SnI0hhS184Mhutu0JVYySSHs0pxPGzKzXtz6Cj7KnLTJ6gKPbAfVsXosmVaUnUtcfUiR6hul3f5</value>
+      </label>
+      <physical-characteristics>
+        <fire-characteristics>pIpOuu1ELWqUzg317L4dPIqKEpUVFKIWs7KWuDtfAL2125U9IQeyzEad3W8AGIp0Q9PcFir73l0XjUY1KcrbRupMipfZ8ERQFG2cQtjMPjJ0dI1QMl1vPia7IpYQVQysoA</fire-characteristics>
+        <weight-characeristics>27tcqL6vgSm8sY9q0pRpHovUeiAtIgVLfhXx2WUiO8i86rr7QiopHTcVbMgTUcw1tmynikxYsPYygpxYAVn9Oz4RdcD7o98Jvy6FSDDksuTALiyleOuUfqMtDhA1qBDW9JB2f7ezt7aeqIAwwWqMn47SlzLEaoAc03ef2sOvsYKKzcgX0yBfvI7IiTmkhOwhSKoM5dap3U9CYhAYH36cMdV469ggY</weight-characeristics>
+        <materials>fVY1CaCCncE5ZR7uGpEFZVwHIefbCPQJLGKfQfS6robifaNNsjsrfQ9X4g0z6IiJhVY7aQ5t69Mljz8LKt5Zj6PgmHPkq73H2UG4CMyJVk46L5KvyPnJN4Z9LOu3WpCQjbVOPlxCFtIiykNY12IO6HYKokFcJa2VlPJa28MHBmR2Hx0IzI</materials>
+      </physical-characteristics>
+      <swappability>
+        <is-hot-swappable>true</is-hot-swappable>
+      </swappability>
+      <function-enablers>
+        <power-state>hHdF0OHaOVH03i0EzzXkUXf81PZ2WEY5d3D5Skfy7Wy26qzy0wSMlZUnHThvp7BCa6H2iPsqD0kCrTarpU5DTZS</power-state>
+      </function-enablers>
+      <name>
+        <value-name>y1XSWru4PaFjMcNIta8qxPi1cmUrmz0MtXwpg1l531oP54pyexRLe9NqozJK0JotHULXN6VQZjx5nOvuem7soULMlmoe6MzFykuejp4iBufQiLkwZsRneC1sYpGW3ftCsYQLfMVI8bzrOLPNdG3ka4M9ukXxrr1ThJwwosfw</value-name>
+        <value>GXjrFYxl1Rw6vxsPuRgVL24uyBK0Ihno6yHLxeZqXvosUQ9oAiclkgHSJsLrB0HHzhl6vkolHNFBvPR57Vij403NkG7VHOu85P6t1uGI9lbF23C1YNk2FgIZWPMvvgDtYJOZeuAnPLUSGxTxc6rRm9QaQuGeCjHA3ns9R2wyFrimQ4L22c</value>
+      </name>
+      <administrative-control>ADMINISTRATIVE_CONTROL_UNLOCK</administrative-control>
+      <extension>
+        <value-name>vPRyh6</value-name>
+        <value>B3S3hF5c20x67koRqylLBsQCYxtwGA0hvKdNiiZkaoraIH18feMIGulE2O3AgVSMG5rYfiaqGtAp3tpaHbTnG62AUX23SUHqR8g7qjp6MRnPk</value>
+      </extension>
+      <location>
+        <geographical-location>0LBwODaoO6Mt2fEoFufPdyrV5h8RK0ZCLA0rd3QU9uf4JTsofz5l7xg4OgOqgNUTnVlsY3eZxtVgfgxuPCPP9YTP6HfnmagBXB4NEaE3EAkLQJ7xdXmnN84THk84mpFjSBYpMCsicE3UnasBZOQMOUyw6GAsX7DQJB7nezFieIdtSx4KdMo2HWyNv08s7LaInhXtRCLXcQqXnnHB95vQU3wpVEJUpUvEbs7U5L</geographical-location>
+        <equipment-location>EbVHGgWBu4o6crD2Zr3H1rb0TfuTByN7BIG9ZvLlz1sLs5NjoQ1p9ch2jMONcBUFctO3YzgxBIiVGYfWO8eQkvKw9qjl2506yH9o8pVB06xy4MuKUIA66dCfDNBxLtDb2EAb4vMWtbuxXQaJrKQxPkMt0</equipment-location>
+      </location>
+      <spatial-properties-of-type>
+        <width>uko4VNud2wLJdvU5hZ9LGgiu0oU7deNIz4EmR0zUwcvJHpGYhQCXYMrY2eYfsLXTPtfztGtZSYJrgpip7UmXyFWATMPexF7f8fOCN9tyZcZ7u9wt3Srtyf3j1LxqixxiElMrmgRmkRtO00aWKBhaIduJQ118qzi4M5o9l7vFYQmRQwFB7OLH17iR1jR</width>
+        <height>yinaGHHSiRM54uOewWS6q7Xs</height>
+        <length>KaoxfEysL37CLllCRS5QGIxAQPrJ1b2LlqasWIUADTcp7pTYhQHPy6pgOJZPU2s7kDr9ddJR6N85c1WlRDahBsqpbh6Xbr4oWnx9A8SyV0E7TAkC5uUGOcYZlWOxnKVb7klHsdgn6MmZmGCj2oRRsPINEpkT9759jqQLvY0BKetYU5hPl1yNQgAmFN</length>
+      </spatial-properties-of-type>
+      <environmental-rating>
+        <thermal-rating>
+          <minimum-temperature>7810506706970542.0</minimum-temperature>
+          <thermal-rating-name>HMlQ6DyJ0xCu9QX8DUhk7iSU10mnG1vfOI5MlDne2ZIcIFclrlFyEpsxpGU5Iico09aeNxsHpaL7HXk8jRGPg0mFG8DgqPEjZGxE6Zdv1ZuIWOQ7FoOVoasWb5dtNJMEqbiw2vT3mnDb3liIJ7v79XWcV9GASseaEoyGTrC8GfjJBBjkAOkCE8Orhu11Pf4lDC1oWDwCLPemjxyLeKfSS4b1qc37j7sOBm4pZB2Ci8YtFp7T9mD2iO3B0YI</thermal-rating-name>
+          <maximum-temperature>1563083954320466.0</maximum-temperature>
+        </thermal-rating>
+        <humidity-rating>iReOH5hCkZr5TcNF73JMt8qBWQty7nNh615NZfib6JgZVVEVQfHco7NcQ8KXvp7tj49ijrtp2BgPxUKf2jrqjfC9nnYLM5e52nflGIDAkTiJG2YIei0xpCyERopEmwBoLRBkreUL0cmy7d8lv8KUCiquGQ02etiZkUbM06p0aMqhZqumye83oyxXgpRuSam5WxJWv8PGM7XDykZ6q71PyqEOPvbIxpFtWoiko70bePOM1GLsNMhd5V</humidity-rating>
+        <power-rating>
+          <power-rating-name>Zzp4YgxSTHSRby8ajiwXkHDfiweSHbVzCkDtB2duJ6dUwm4HEtwQaa5kGbcff8ORkjcVlih5ovRMJOtf905j22vA6HPlHw42P9X3r78PCZtlFWAOOxZQruix48KLwPNlYDop</power-rating-name>
+          <power-rating-value>o6egrrVfTC4qBMJ65ha51NBItOy65PItVOJefxu09yqCc1I9iKecyHM1wlZt2zWYfy4mXym66MAbNbkYVr2l0Oew15Z4wOULeY7bxt9v7JyNULDIcF3claBf7sbE85hmVppkKyIKagp412E5zAaMKD1R54n61FsXWS9GiRis0HpTJ3Rav1X7EQRBVeHWT2THUVg4MyxEgOyRJh2</power-rating-value>
+        </power-rating>
+      </environmental-rating>
+      <structure>
+        <category>EQUIPMENT_CATEGORY_STAND_ALONE_UNIT</category>
+      </structure>
+      <address>ooRiQD7TG0FfqxnzENSVMEM1m6GeZpRfNIywdFhUxW1QtppZ4hUQNyS1wy7vXYLDGb1UIiGg6H6AYnr3EeTjMDlbcsG1rrwZuxLdPjtWTroROHUkVGDAjYLnjjpKDVB7lnk2GFQr66jMO56BLC3XsGkL0BvDp7KKmXMUCvmBBxfpCe1gQWdaDxWD1j8qiK2EHGrcbNFNkM4O054IUhTxHP2I020jM2</address>
+      <mechanical-functions>
+        <rotation-speed>K962gzwqF6lXVNfqG</rotation-speed>
+      </mechanical-functions>
+    </expected-equipment>
+    <address>7E8fhU3E6RBGSPgHfGUnn0LoQ3m1A3JzH</address>
+  </equipment>
+  <top-level-equipment>371eda64-3aa3-f78a-2711-ea75d567381f</top-level-equipment>
+  <address>tEsk766Io9nbxTW9W8l3rWpWS1YL9Agu7IOeHVOXWb8u4WDS5RNwNdkFejifTqJS1y6IlUxhXFDUthMy0s5NFhkLAv0mVJeW9dwmZ3wXA9R4ivCiXzXuRa7jFZFABMxKZ3ZYZvNzEwvXU07Jz56ifduUd9uOVTqMPhDOMqfjXLgJ</address>
+</control-construct>
\ No newline at end of file
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/air-interface-2-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/air-interface-2-0.yang
new file mode 100644
index 0000000..906a91c
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/air-interface-2-0.yang
@@ -0,0 +1,1832 @@
+module air-interface-2-0 {
+  yang-version 1.1;
+  namespace "urn:onf:yang:air-interface-2-0";
+  prefix air-interface;
+
+  import ietf-yang-types {
+    prefix yang;
+  }
+  import core-model-1-4 {
+    prefix core-model;
+  }
+
+  organization
+    "openBackhaul.com proposal to Open Networking Foundation (ONF)";
+  contact
+    "WG Web : https://github.com/openBackhaul/Overview
+     WG List: AirInterface@openBackhaul.com
+     Editor : Thorsten Heinze
+     Email  : Thorsten.Heinze@openBackhaul.com";
+  description
+    "Copyright 2019 openBackhaul.com
+
+     Licensed under the Apache License, Version 2.0 (the 'License');
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+     http://www.apache.org/licenses/LICENSE-2.0
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an 'AS IS' BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.";
+
+  revision 2020-01-21 {
+    description
+      "Model for the Transport SDN Pilot at Telefonica Germany.
+       Please view https://github.com/openBackhaul/airInterface/issues for changes.";
+    reference
+      "https://github.com/openBackhaul/airInterface/tree/tsp: Model definition
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+  }
+  revision 2019-11-22 {
+    description
+      "Model for the Transport SDN Pilot at Telefonica Germany.
+       Please view https://github.com/openBackhaul/airInterface/issues for changes.";
+    reference
+      "https://github.com/openBackhaul/airInterface/tree/tsp: Model definition
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+  }
+  revision 2019-07-11 {
+    description
+      "Model for the Transport SDN Pilot at Telefonica Germany.
+       Please view https://github.com/openBackhaul/airInterface/issues for changes.";
+    reference
+      "https://github.com/openBackhaul/airInterface/tree/tsp: Model definition
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+  }
+
+  identity LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER {
+    base core-model:LAYER_PROTOCOL_NAME_TYPE;
+    description
+      "none";
+  }
+
+  augment "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol" {
+    when "derived-from-or-self(./core-model:layer-protocol-name, 'air-interface:LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER')";
+    uses air-interface-lp-spec;
+    description
+      "none";
+  }
+
+  /****************************************
+   * package notifications
+   **************************************/ 
+
+  notification object-creation-notification {
+    uses object-creation-notification;
+    description
+      "none";
+  }
+
+  grouping object-creation-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts object creation notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf object-type {
+      type string;
+      default "Type of created object not specified.";
+      config false;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  notification object-deletion-notification {
+    uses object-deletion-notification;
+    description
+      "none";
+  }
+
+  grouping object-deletion-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts object deletion notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  notification attribute-value-changed-notification {
+    uses attribute-value-changed-notification;
+    description
+      "none";
+  }
+
+  grouping attribute-value-changed-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts attribute value changed notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf attribute-name {
+      type string;
+      default "Attribute name not specified.";
+      config false;
+      description
+        "Name of the attribute that has been changed.";
+    }
+    leaf new-value {
+      type string;
+      default "New value not specified.";
+      config false;
+      description
+        "Attribute value converted to a string (xml, json, ...)";
+    }
+    description
+      "To be sent when an attribute has changed and one or more controllers have to update their data.";
+  }
+
+  notification problem-notification {
+    uses problem-notification;
+    description
+      "none";
+  }
+
+  grouping problem-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts problem notifications";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf problem {
+      type string;
+      default "Problem name not specified.";
+      config false;
+      description
+        "Name of the problem according to AirInterface::AirInterfaceCapability::supportedAlarmList";
+    }
+    leaf severity {
+      type severity-type;
+      default "SEVERITY_TYPE_WARNING";
+      config false;
+      description
+        "Severity of the problem according to AirInterface::AirInterfaceConfiguration::problemSeverityList";
+    }
+    description
+      "none";
+  }
+
+  /****************************************
+   * grouping statements for object classes
+   **************************************/ 
+  /****************************************
+   * package super-classes
+   **************************************/ 
+
+  grouping current-problem {
+    leaf sequence-number {
+      type int16;
+      config false;
+      description
+        "Unique sequence number of the current problem object.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf problem-severity {
+      type severity-type;
+      default "SEVERITY_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "Severity of the alarm.";
+    }
+    description
+      "none";
+  }
+
+  grouping current-performance {
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "The timestamp associated with when the current data was collected.";
+    }
+    leaf suspect-interval-flag {
+      type boolean;
+      default "false";
+      config false;
+      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.";
+    }
+    leaf elapsed-time {
+      type int64;
+      units "s";
+      default "-1";
+      config false;
+      description
+        "Number of seconds that elapsed since the last reset of the counter.";
+    }
+    leaf scanner-id {
+      type string;
+      default "Scanner ID not defined.";
+      config false;
+      description
+        "none";
+    }
+    leaf granularity-period {
+      type granularity-period-type;
+      config false;
+      description
+        "Time period between reset of the underlying counter.";
+    }
+    description
+      "none";
+  }
+
+  grouping historical-performance {
+    leaf suspect-interval-flag {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "This attribute indicates that the data collected during the interval is suspect.";
+    }
+    leaf history-data-id {
+      type string;
+      default "History Data ID not defined.";
+      config false;
+      description
+        "none";
+    }
+    leaf granularity-period {
+      type granularity-period-type;
+      config false;
+      description
+        "Time period between reset of the underlying counter.";
+    }
+    leaf period-end-time {
+      type yang:date-and-time;
+      config false;
+      description
+        "Time when the counter values have been recorded and the counter reset.";
+    }
+    description
+      "none";
+  }
+
+  grouping air-interface-lp-spec {
+    container air-interface-pac {
+      uses air-interface-pac;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  grouping air-interface-pac {
+    container air-interface-capability {
+      config false;
+      uses air-interface-capability;
+      description
+        "none";
+    }
+    container air-interface-configuration {
+      uses air-interface-configuration;
+      description
+        "none";
+    }
+    container air-interface-status {
+      config false;
+      uses air-interface-status;
+      description
+        "none";
+    }
+    container air-interface-current-problems {
+      config false;
+      uses air-interface-current-problems;
+      description
+        "none";
+    }
+    container air-interface-current-performance {
+      config false;
+      uses air-interface-current-performance;
+      description
+        "none";
+    }
+    container air-interface-historical-performances {
+      config false;
+      uses air-interface-historical-performances;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  grouping air-interface-capability {
+    leaf type-of-equipment {
+      type string;
+      default "Type of equipment not yet defined.";
+      config false;
+      description
+        "This parameter indicates the equipment type. Instead of uploading the complete set of capabilities, capabilities of the same equipment type could be reused. Should be unique for a combination of modem, radio and their respective firmware.";
+    }
+    leaf tx-frequency-min {
+      type int32;
+      units "kHz";
+      default "-1";
+      config false;
+      description
+        "Value of the minimum transmit frequency tunable at the air interface.";
+    }
+    leaf tx-frequency-max {
+      type int32;
+      units "kHz";
+      default "-1";
+      config false;
+      description
+        "Value of the maximum transmit frequency tunable at the air interface.";
+    }
+    leaf rx-frequency-min {
+      type int32;
+      units "kHz";
+      default "-1";
+      config false;
+      description
+        "Value of the minimum receive frequency tunable at the air interface.";
+    }
+    leaf rx-frequency-max {
+      type int32;
+      units "kHz";
+      default "-1";
+      config false;
+      description
+        "Value of the maximum receive frequency tunable at the air interface.";
+    }
+    list transmission-mode-list {
+      key "transmission-mode-name";
+      config false;
+      min-elements 1;
+      uses transmission-mode;
+      description
+        "List of supported Transmission Modes.";
+    }
+    leaf duplex-distance-is-freely-configurable {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Transmitted and received frequency can be freely chosen between the given minimum and maximum values.";
+    }
+    leaf-list duplex-distance-list {
+      type int32;
+      units "kHz";
+      default "-1";
+      config false;
+      description
+        "Only relevant if (duplexDistanceIsFreelyConfigurable==0). Lists all supported distances between transmitted and received frequency.";
+    }
+    leaf auto-freq-select-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "In case the microwave radio is capable of automatically selecting the transmit frequency in unlicensed bands, this field shall contain a 'true'.";
+    }
+    leaf adaptive-modulation-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "In case the device is capable of adaptive modulation, this field shall contain a 'true'.";
+    }
+    leaf atpc-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "In case the microwave radio is capable of ATPC, this field shall contain a 'true'.";
+    }
+    leaf atpc-range {
+      type int8;
+      units "dB";
+      default "0";
+      config false;
+      description
+        "Extent of the ATPC range. This value represents a device specific maximum value. The actual range of the ATPC at a specific link might be limited by the difference between configured transmit power (AirInterface::AirInterfaceConfiguration::txPower) and minimum transmit power of the device (TypeDefinitions::TransmissionModeType::txPowerMin).";
+    }
+    leaf supported-radio-signal-id-datatype {
+      type radio-signal-id-datatype-type;
+      default "RADIO_SIGNAL_ID_DATATYPE_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "This attribute is for expressing the datatype, which is supported as a Radio Signal ID by the device.";
+    }
+    leaf supported-radio-signal-id-length {
+      type int16;
+      default "-1";
+      config false;
+      description
+        "If (supportedRadioSignalIdDatatype==INTEGER): Maximum value of the Radio Signal ID supported by the device; If (supportedRadioSignalIdDatatype==STRING): Maximum number of letters supported by the device.";
+    }
+    leaf expected-equals-transmitted-radio-signal-id {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = It is not possible to configure an expectedRadioSignalID different from the transmittedRadioSignalID.";
+    }
+    leaf encryption-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "Shall be marked 'true', if payload encryption is available.";
+    }
+    leaf-list supported-loop-back-kind-list {
+      type loop-back-type;
+      config false;
+      min-elements 1;
+      max-elements 4;
+      description
+        "List of supported kinds of looping back of header information to the remote site.";
+    }
+    leaf maintenance-timer-range {
+      type string;
+      default "Range of the maintenance timer not yet defined.";
+      config false;
+      description
+        "Available time periods for maintenance configurations (e.g. the loop back of microwave header information) to be described. Concrete values shall be separated by commas (e.g. '10, 60, 360'). Ranges shall be expressed as two values separated by a minus (e.g. '10-360').";
+    }
+    leaf-list supported-alarm-list {
+      type string;
+      config false;
+      min-elements 7;
+      description
+        "Available alarms to be listed. Mandatory:'signalIsLost','rslIsExceeded','signalIDMismatching','temperatureIsExceeded','modemIsFaulty','radioIsFaulty' and 'modulationIsDownShifted'. Further alarms might be added by the vendor.";
+    }
+    leaf performance-monitoring-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Collection and aggregation of performance values is available.";
+    }
+    leaf direction-of-acm-performance-values {
+      type direction-type;
+      default "DIRECTION_TYPE_NONE";
+      config false;
+      description
+        "Expresses, whether the ACM performance values (timeXStatesList) are measured at the transmitter (TX) or at the receiver (RX).";
+    }
+    description
+      "Describes the 'analog' capabilities of modem and transmitter of the microwave device. Value ranges of attributes are not independently (e.g. min. and max. transmit power depends on modulation). Legal combinations of values are expressed in transmissionModeTypes.";
+  }
+
+  grouping air-interface-configuration {
+    leaf air-interface-name {
+      type string;
+      default "Air interface ID not yet defined.";
+      description
+        "Operator specific microwave link ID (often used for coding area, type of element and sequential number).";
+    }
+    leaf remote-air-interface-name {
+      type string;
+      default "Air interface ID at the remote site not yet defined.";
+      description
+        "Name of the air interface, which belongs to the same link, at the remote site.";
+    }
+    container transmitted-radio-signal-id {
+      uses radio-signal-id-type;
+      description
+        "Transmitted radio signal ID for synchronizing the remote receiver.";
+    }
+    container expected-radio-signal-id {
+      uses radio-signal-id-type;
+      description
+        "Received radio signal ID for identifying the correct transmitter to synchronize on.";
+    }
+    leaf tx-frequency {
+      type int32;
+      units "kHz";
+      default "-1";
+      description
+        "Center frequency of the transmit channel. The values to be configured have to exactly match the values listed in the international agreement referenced in channelPlanID. In case of automated selection of the transmit frequency this field shall describe the lowest center frequency selectable.";
+    }
+    leaf rx-frequency {
+      type int32;
+      units "kHz";
+      default "-1";
+      description
+        "Center frequency of the receive channel.";
+    }
+    leaf transmission-mode-min {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol/air-interface:air-interface-pac/air-interface:air-interface-capability/air-interface:transmission-mode-list/air-interface:transmission-mode-name";
+        require-instance false;
+      }
+      must 'boolean(/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol/air-interface:air-interface-pac/air-interface:air-interface-capability/air-interface:transmission-mode-list[transmission-mode-name=current()])';
+      description
+        "Minimum transmission mode to be configured (in case adaptive modulation is not used, this value represents also the fixed transmission mode).";
+    }
+    leaf transmission-mode-max {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol/air-interface:air-interface-pac/air-interface:air-interface-capability/air-interface:transmission-mode-list/air-interface:transmission-mode-name";
+        require-instance false;
+      }
+      must 'boolean(/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol/air-interface:air-interface-pac/air-interface:air-interface-capability/air-interface:transmission-mode-list[transmission-mode-name=current()])';
+      description
+        "Maximum transmission mode to be configured.";
+    }
+    leaf power-is-on {
+      type boolean;
+      default "true";
+      description
+        "Power ON. Activation of the entire radio in a split mount configuration shall be expressed as a 'true'.";
+    }
+    leaf transmitter-is-on {
+      type boolean;
+      default "false";
+      description
+        "Activation of the transmitter inside the radio shall be expressed as a 'true'.";
+    }
+    leaf receiver-is-on {
+      type boolean;
+      default "true";
+      description
+        "Maintenance Feature. Activation of the receiver inside the radio shall be expressed as a 'true'. Attribute shall also be used for RX main and RX diversity squelches in case of diversity configurations.";
+    }
+    leaf tx-power {
+      type int8;
+      units "dBm";
+      default "99";
+      description
+        "Transmit power to be configured on the microwave link. Signed Byte is required. The actually operated transmit power might be lower depending on adaptive modulation and ATPC.";
+    }
+    leaf adaptive-modulation-is-on {
+      type boolean;
+      default "false";
+      description
+        "Adaptive Modulation. Activation of adaptive modulation shall be expressed as a 'true'.";
+    }
+    leaf xpic-is-on {
+      type boolean;
+      default "false";
+      description
+        "Activation of Cross Polarization Interference Cancelation shall be expressed as a 'true'. In case XPIC is not available for the current combination of channel bandwidth and modulation or the hardware in general, this parameter shall always be set to 'false'.";
+    }
+    leaf mimo-is-on {
+      type boolean;
+      default "false";
+      description
+        "Activation of Multiple Input Multiple Output (MIMO) shall be expressed as a 'true'.";
+    }
+    leaf alic-is-on {
+      type boolean;
+      default "false";
+      description
+        "Activation of Adjacent Link Interference Cancelation (ALIC) shall be expressed as a 'true'.";
+    }
+    leaf atpc-is-on {
+      type boolean;
+      default "false";
+      description
+        "ATPC. Activation of Automated Transmit Power Control shall be expressed as a 'true'.";
+    }
+    leaf atpc-thresh-upper {
+      type int16;
+      units "dBm";
+      default "99";
+      description
+        "If the receive level is higher than the upper threshold value, the transmitter is notified to decrease transmit power.";
+    }
+    leaf atpc-thresh-lower {
+      type int16;
+      units "dBm";
+      default "99";
+      description
+        "If the receive level is lower than the lower threshold value, the transmitter is notified to increase transmit power.";
+    }
+    leaf atpc-tx-power-min {
+      type int8;
+      units "dBm";
+      default "-99";
+      description
+        "Transmit power, which is not to be undercut, while operating ATPC.";
+    }
+    leaf auto-freq-select-is-on {
+      type boolean;
+      default "false";
+      description
+        "Activation of automatically selecting the transmit frequency in unlicensed bands shall be expressed as a 'true'.";
+    }
+    leaf auto-freq-select-range {
+      type int8;
+      units "channels";
+      default "-1";
+      description
+        "Number of transmit channels (starting at the center frequency defined in txFrequency and with channel bandwidth according to txChannelBandwidth) that define the range within the transmit frequency can automatically been chosen. ";
+    }
+    leaf modulation-is-on {
+      type boolean;
+      default "true";
+      description
+        "Maintenance Feature. De-activation of the modulation of the carrier signal for fault management shall be expressed as a 'false'.";
+    }
+    leaf encryption-is-on {
+      type boolean;
+      default "false";
+      description
+        "Activates encryption of the payload.";
+    }
+    leaf cryptographic-key {
+      type string;
+      default "Cryptographic key not yet defined.";
+      description
+        "Key for transforming plaintext into ciphertext data.";
+    }
+    leaf loop-back-kind-on {
+      type loop-back-type;
+      default "LOOP_BACK_TYPE_NONE";
+      description
+        "Maintenance Feature. The currently configured type of looping back of the air interface header shall be expressed here. The received header is returned to the remote site.";
+    }
+    leaf maintenance-timer {
+      type int32;
+      units "s";
+      default "-1";
+      description
+        "Time of existence of any maintenance configuration (e.g. the loop back of microwave header information). 0 = maintenance timer is switched off. Valid values are defined in AirInterface::AirInterfaceCapability::maintenanceTimerRange. ";
+    }
+    list problem-kind-severity-list {
+      key "problem-kind-name";
+      min-elements 6;
+      uses problem-kind-severity-type;
+      description
+        "Severity of the problem to be configured.";
+    }
+    list g-826-threshold-cross-alarm-list {
+      key "g-826-value-kind granularity-period";
+      uses g-826-threshold-cross-alarm-type;
+      description
+        "List of G826 related threshold cross alarms to be configured.";
+    }
+    list xlts-threshold-cross-alarm-list {
+      key "level-threshold-second-kind granularity-period xlts-threshold-cross-alarm-definition-number";
+      uses xlts-threshold-cross-alarm-type;
+      description
+        "List of RLTS or TLTS (ETSI EN 301 129) related threshold cross alarms to be configured.";
+    }
+    list acm-threshold-cross-alarm-list {
+      key "acm-threshold-cross-alarm-definition-number granularity-period";
+      uses acm-threshold-cross-alarm-type;
+      description
+        "List threshold cross alarms, which relate to the time period of operation of a specific transmission mode.";
+    }
+    leaf clearing-threshold-cross-alarms-is-on {
+      type boolean;
+      default "false";
+      description
+        "Setting this bit is clearing all the currently active threshold cross alarms.";
+    }
+    leaf performance-monitoring-is-on {
+      type boolean;
+      default "false";
+      description
+        "Enables measurement, collection, storage and access to performance data.";
+    }
+    description
+      "Configuration of the radio link.";
+  }
+
+  grouping air-interface-status {
+    leaf interface-status {
+      type interface-status-type;
+      default "INTERFACE_STATUS_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "Operational status of the interface.";
+    }
+    leaf tx-frequency-cur {
+      type int32;
+      units "kHz";
+      default "-1";
+      config false;
+      description
+        "Center frequency of the currently operated transmit channel.";
+    }
+    leaf rx-frequency-cur {
+      type int32;
+      units "kHz";
+      default "-1";
+      config false;
+      description
+        "Center frequency of the currently operated receive channel.";
+    }
+    leaf transmission-mode-cur {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol/air-interface:air-interface-pac/air-interface:air-interface-capability/air-interface:transmission-mode-list/air-interface:transmission-mode-name";
+        require-instance false;
+      }
+      config false;
+      description
+        "Currently operated transmission mode according to definitions in Capabilities.";
+    }
+    container received-radio-signal-id {
+      config false;
+      uses radio-signal-id-type;
+      description
+        "Radio signal ID of the signal, which the receiver is currently synchronized on.";
+    }
+    leaf radio-power-is-up {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "If the radio unit has power and is switched on, this shall be expressed as a 'true'.";
+    }
+    leaf link-is-up {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "If connection is established to the remote site with the same linkID, this shall be expressed as a 'true'.";
+    }
+    leaf xpic-is-up {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "If XPIC is currently actually working (not just configured), this shall be expressed as a 'true'.";
+    }
+    leaf mimo-is-up {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "If MIMO is currently actually working (not just configured), this shall be expressed as a 'true'.";
+    }
+    leaf alic-is-up {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "If Adjacent Link Interference Cancelation (ALIC) is currently actually working (not just configured), this shall be expressed as a 'true'.";
+    }
+    leaf atpc-is-up {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "If ATPC is currently actually working (not just configured), this shall be expressed as a 'true'.";
+    }
+    leaf auto-freq-select-is-up {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "If automated frequency selection is currently actually working (not just configured), this shall be expressed as a 'true'.";
+    }
+    leaf local-end-point-id {
+      type string;
+      default "not-supported";
+      config false;
+      description
+        "The value of the localEndPointId is a vendor specific identifier of the air interface, used by the node to discover a microwave radio link.";
+    }
+    leaf remote-end-point-id {
+      type string;
+      default "not-supported";
+      config false;
+      description
+        "The value of the remoteEndPointId is a vendor specific identifier of the airinterface at the remote side, used to by the node to discover a microwave radio link.";
+    }
+    leaf loop-back-kind-up {
+      type loop-back-type;
+      default "LOOP_BACK_TYPE_NONE";
+      config false;
+      description
+        "The currently active (not just configured) type of looping back of the air interface header shall be expressed here. The received header is returned to the remote site.";
+    }
+    leaf performance-monitoring-is-up {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Performance values are currently collected and aggregated.";
+    }
+    leaf rx-level-cur {
+      type int8;
+      units "dBm";
+      default "99";
+      config false;
+      description
+        "Current receive level.";
+    }
+    leaf tx-level-cur {
+      type int8;
+      units "dBm";
+      default "99";
+      config false;
+      description
+        "Current transmit level.";
+    }
+    leaf snir-cur {
+      type int8;
+      units "dB";
+      default "-99";
+      config false;
+      description
+        "Currently measured signal to (noise+interference) ratio.";
+    }
+    leaf xpd-cur {
+      type int8;
+      units "dB";
+      default "-99";
+      config false;
+      description
+        "Currently measured cross polarization discrimination.";
+    }
+    leaf rf-temp-cur {
+      type int8;
+      units "Celsius";
+      default "-99";
+      config false;
+      description
+        "Current temperature (in degree Celsius) of the radio module inside the outdoor unit.";
+    }
+    description
+      "Measurements of current values on the air interface and operational status of the device.";
+  }
+
+  grouping air-interface-current-problems {
+    list current-problem-list {
+      key "sequence-number";
+      config false;
+      uses air-interface-current-problem-type;
+      description
+        "none";
+    }
+    leaf number-of-current-problems {
+      type int8;
+      default "-1";
+      config false;
+      description
+        "Number of alarms, which are currently active on this air interface.";
+    }
+    leaf time-of-latest-change {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "Date and time when the list of alarms has been changed for the last time.";
+    }
+    description
+      "none";
+  }
+
+  grouping air-interface-current-performance {
+    list current-performance-data-list {
+      key "granularity-period";
+      config false;
+      min-elements 1;
+      max-elements 2;
+      uses air-interface-current-performance-type;
+      description
+        "At least values of the counters, which are reset every 15 minutes, are to be provided. If available, the current values of the counters, which are reset every 24 hour, can be provided, too.";
+    }
+    leaf number-of-current-performance-sets {
+      type int8;
+      default "-1";
+      config false;
+      description
+        "Number of sets of current performance values, which are provided in the list.";
+    }
+    description
+      "Aggregated performance information of the air interface at a particular moment.";
+  }
+
+  grouping air-interface-historical-performances {
+    list historical-performance-data-list {
+      key "granularity-period period-end-time";
+      config false;
+      uses air-interface-historical-performance-type;
+      description
+        "none";
+    }
+    leaf number-of-historical-performance-sets {
+      type int16;
+      default "-1";
+      config false;
+      description
+        "Number of sets of historical performance values, which are provided in the list.";
+    }
+    leaf time-of-latest-change {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "Date and time when the list of sets of historical performance values has been changed for the last time (e.g. new one added or existing one deleted).";
+    }
+    description
+      "Aggregated performance information of the air interface for a pre-defined measurement interval.";
+  }
+
+  grouping transmission-mode {
+    leaf transmission-mode-name {
+      type string;
+      config false;
+      description
+        "Name of the transmission mode. BBBB-m*-i*/t*-r*. B=four digits of channel bandwidth in MHz. m*=required number of digits for modulation name. (i*/t*=code rate.) i*=required number of digits for number of information bits. t*=required number of digits for total bits. r*=required number of digits for rate reduction factor. Example: 0028-4QAM-188/204-1";
+    }
+    leaf transmission-mode-rank {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Configuring adaptive modulation by selecting _transmissionModeMin and _transmissionModeMin requires the transmission modes to be ordered. The vendor shall rank all available transmission modes according to the respective payload data rate. The application providers shall order the transmission modes according to the rank.";
+    }
+    leaf channel-bandwidth {
+      type int32;
+      units "kHz";
+      default "-1";
+      config false;
+      description
+        "Bandwidth of the transmit channel. The value shall be expressed explicitly (means in kHz) not as a reference to an international agreement. The values shall be chosen from the following _list: 3.500, 7.000, 14.000, 27.500, 28.000, 29.000, 29.650, 30.000, 40.000, 50.000, 55.000, 56.000, 59.300, 60.000, 80.000, 100.000, 112.000, 120.000, 150.000, 200.000, 250.000, 500.000, 750.000, 1.000.000, 1.250.000, 1.500.000, 1.750.000, 2.000.000;";
+    }
+    leaf modulation-scheme {
+      type int16;
+      units "symbols";
+      default "-1";
+      config false;
+      description
+        "Modulation scheme, which is base to the other characteristics described in the same transmissionModeType data type. The modulation scheme shall be described by the number of states in the phase diagram (e.g. BPSK->'2' or 256QAM->'256').";
+    }
+    leaf code-rate {
+      type int8;
+      units "%";
+      default "-1";
+      config false;
+      description
+        "Code rate of the coding scheme in % (Net bit rate ≤ Gross bit rate · code rate).";
+    }
+    leaf symbol-rate-reduction-factor {
+      type int8;
+      default "1";
+      config false;
+      description
+        "Reduction factor for the symbol rate. Example: value would be 4 for 1/4BPSK.";
+    }
+    leaf tx-power-min {
+      type int8;
+      units "dBm";
+      default "99";
+      config false;
+      description
+        "Value of the minimum transmit power the modem can operate in dBm.";
+    }
+    leaf tx-power-max {
+      type int8;
+      units "dBm";
+      default "99";
+      config false;
+      description
+        "Value of the maximum transmit power the modem can operate in dBm.";
+    }
+    leaf rx-threshold {
+      type int16;
+      units "dBm";
+      default "99";
+      config false;
+      description
+        "Value of the receive level required to decode the received signal with a Bit Error Rate of 1e-6 or less.";
+    }
+    leaf am-upshift-level {
+      type int8;
+      units "dBm";
+      default "99";
+      config false;
+      description
+        "Value of the receive level that has to be exceeded to shift into a higher modulation scheme.";
+    }
+    leaf am-downshift-level {
+      type int8;
+      units "dBm";
+      default "99";
+      config false;
+      description
+        "Value of the receive level that has to be exceeded for not shifting into a lower modulation scheme.";
+    }
+    leaf xpic-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "In case this air interface type is capable of XPIC, this field shall contain a 'true'. This information shall purely relate to capabilities of the equipment type, but not to the operational capability of a specific hardware composition on site. Means for example that this attribute might contain a 'true' statement, even if an additional cable would have been required to actually operate XPIC in a specific case.";
+    }
+    leaf supported-as-fixed-configuration {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = This transmission mode is available for manual configuration when Adaptive Modulation is switched off.";
+    }
+    description
+      "none";
+  }
+
+  /****************************************
+   * typedef statements
+   **************************************/ 
+
+  typedef radio-signal-id-datatype-type {
+    type identityref {
+      base RADIO_SIGNAL_ID_DATATYPE_TYPE;
+    }
+    description
+      "none";
+  }
+
+  typedef loop-back-type {
+    type identityref {
+      base LOOP_BACK_TYPE;
+    }
+    description
+      "none";
+  }
+
+  typedef direction-type {
+    type identityref {
+      base DIRECTION_TYPE;
+    }
+    description
+      "none";
+  }
+
+  typedef g-826-type {
+    type identityref {
+      base G_826_TYPE;
+    }
+    description
+      "none";
+  }
+
+  typedef xlevel-threshold-second-kind-type {
+    type identityref {
+      base XLEVEL_THRESHOLD_SECOND_KIND_TYPE;
+    }
+    description
+      "According to ETSI EN 301 129 V1.1.2 (1999-05) chapter B.1.1";
+  }
+
+  /*********************************************
+   * grouping statements for complex data types
+   *******************************************/ 
+
+  identity RADIO_SIGNAL_ID_DATATYPE_TYPE {
+    description
+      "none";
+  }
+
+  identity RADIO_SIGNAL_ID_DATATYPE_TYPE_INTEGER {
+    base RADIO_SIGNAL_ID_DATATYPE_TYPE;
+    description
+      "none";
+  }
+
+  identity RADIO_SIGNAL_ID_DATATYPE_TYPE_STRING {
+    base RADIO_SIGNAL_ID_DATATYPE_TYPE;
+    description
+      "none";
+  }
+
+  identity RADIO_SIGNAL_ID_DATATYPE_TYPE_NOT_YET_DEFINED {
+    base RADIO_SIGNAL_ID_DATATYPE_TYPE;
+    description
+      "none";
+  }
+
+  identity LOOP_BACK_TYPE {
+    description
+      "none";
+  }
+
+  identity LOOP_BACK_TYPE_RF_TO_REMOTE {
+    base LOOP_BACK_TYPE;
+    description
+      "Returning the header information of the remote site back to the remote site on the radio interface between both outdoor units.";
+  }
+
+  identity LOOP_BACK_TYPE_RF_TO_LOCAL {
+    base LOOP_BACK_TYPE;
+    description
+      "Returning the header information of the local site back to the local site on the radio interface between both outdoor units.";
+  }
+
+  identity LOOP_BACK_TYPE_IF_TO_REMOTE {
+    base LOOP_BACK_TYPE;
+    description
+      "Returning the header information of the remote site back to the remote site on the intermediate frequency interface between local indoor unit and outdoor unit.";
+  }
+
+  identity LOOP_BACK_TYPE_IF_TO_LOCAL {
+    base LOOP_BACK_TYPE;
+    description
+      "Returning the header information of the local site back to the local site on the intermediate frequency interface between local indoor unit and outdoor unit.";
+  }
+
+  identity LOOP_BACK_TYPE_NONE {
+    base LOOP_BACK_TYPE;
+    description
+      "none";
+  }
+
+  identity DIRECTION_TYPE {
+    description
+      "none";
+  }
+
+  identity DIRECTION_TYPE_TX {
+    base DIRECTION_TYPE;
+    description
+      "none";
+  }
+
+  identity DIRECTION_TYPE_RX {
+    base DIRECTION_TYPE;
+    description
+      "none";
+  }
+
+  identity DIRECTION_TYPE_NONE {
+    base DIRECTION_TYPE;
+    description
+      "none";
+  }
+
+  identity G_826_TYPE {
+    description
+      "none";
+  }
+
+  identity G_826_TYPE_ES {
+    base G_826_TYPE;
+    description
+      "Errored Seconds. Threshold cross alarm will relate to TypeDefinitions::AirInterfacePerformanceType::es .";
+  }
+
+  identity G_826_TYPE_SES {
+    base G_826_TYPE;
+    description
+      "Severely Errored Seconds. Threshold cross alarm will relate to TypeDefinitions::AirInterfacePerformanceType::ses .";
+  }
+
+  identity G_826_TYPE_CSES {
+    base G_826_TYPE;
+    description
+      "Consecutive Severely Errored Seconds. Threshold cross alarm will relate to TypeDefinitions::AirInterfacePerformanceType::cses .";
+  }
+
+  identity G_826_TYPE_UAS {
+    base G_826_TYPE;
+    description
+      "Unavailable Seconds. Threshold cross alarm will relate to TypeDefinitions::AirInterfacePerformanceType::unavailability.";
+  }
+
+  identity G_826_TYPE_NOT_SPECIFIED {
+    base G_826_TYPE;
+    description
+      "none";
+  }
+
+  identity XLEVEL_THRESHOLD_SECOND_KIND_TYPE {
+    description
+      "none";
+  }
+
+  identity XLEVEL_THRESHOLD_SECOND_KIND_TYPE_RLTS {
+    base XLEVEL_THRESHOLD_SECOND_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity XLEVEL_THRESHOLD_SECOND_KIND_TYPE_TLTS {
+    base XLEVEL_THRESHOLD_SECOND_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity XLEVEL_THRESHOLD_SECOND_KIND_TYPE_NOT_YET_DEFINED {
+    base XLEVEL_THRESHOLD_SECOND_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity GRANULARITY_PERIOD_TYPE {
+    description
+      "none";
+  }
+
+  identity GRANULARITY_PERIOD_TYPE_UNKNOWN {
+    base GRANULARITY_PERIOD_TYPE;
+    description
+      "none";
+  }
+
+  identity GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN {
+    base GRANULARITY_PERIOD_TYPE;
+    description
+      "none";
+  }
+
+  identity GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS {
+    base GRANULARITY_PERIOD_TYPE;
+    description
+      "none";
+  }
+
+  identity GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED {
+    base GRANULARITY_PERIOD_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE {
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_NON_ALARMED {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_WARNING {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_MINOR {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_MAJOR {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_CRITICAL {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_NOT_YET_DEFINED {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity INTERFACE_STATUS_TYPE {
+    description
+      "none";
+  }
+
+  identity INTERFACE_STATUS_TYPE_UP {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Ready to pass packets.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_DOWN {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "The interface does not pass any packets.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_TESTING {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "In some test mode.  No operational packets can be passed.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_UNKNOWN {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Status cannot be determined for some reason.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_DORMANT {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Waiting for some external event.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_NOT_PRESENT {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Some component (typically hardware) is missing.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Down due to state of lower-layer interface(s).";
+  }
+
+  identity INTERFACE_STATUS_TYPE_ADMIN_DOWN {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Down due to configuration.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_NOT_YET_DEFINED {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "none";
+  }
+
+  /****************************************
+   * package super-types
+   **************************************/ 
+
+  typedef granularity-period-type {
+    type identityref {
+      base GRANULARITY_PERIOD_TYPE;
+    }
+    description
+      "The enumeration with the options for granularity period of the performance data.";
+  }
+
+  typedef severity-type {
+    type identityref {
+      base SEVERITY_TYPE;
+    }
+    description
+      "According to ITU-T M.3160";
+  }
+
+  typedef interface-status-type {
+    type identityref {
+      base INTERFACE_STATUS_TYPE;
+    }
+    description
+      "Current Interface Status";
+  }
+
+  grouping problem-kind-severity-type {
+    leaf problem-kind-name {
+      type string;
+      description
+        "Name of the alarm according to supportedAlarmList";
+    }
+    leaf problem-kind-severity {
+      type severity-type;
+      default "SEVERITY_TYPE_NOT_YET_DEFINED";
+      description
+        "Severity of this type of alarm.";
+    }
+    description
+      "none";
+  }
+
+  grouping radio-signal-id-type {
+    leaf numeric-radio-signal-id {
+      type uint16;
+      default "0";
+      description
+        "Only relevant if (supportedRadioSignalIdDatatype==INTEGER): 0 = the receiver ignores the signal ID of the received signal. Any other value = the receiver exclusively synchronizes on signals with the same signal ID.";
+    }
+    leaf alphanumeric-radio-signal-id {
+      type string;
+      default "Not yet defined.";
+      description
+        "Only relevant if (supportedRadioSignalIdDatatype==STRING): Empty String = the receiver synchronizes on the received signal regardless of the signal ID of the received signal. Any other entry = the receiver exclusively synchronizes on signals with the same signal ID.";
+    }
+    description
+      "none";
+  }
+
+  grouping g-826-threshold-cross-alarm-type {
+    leaf g-826-value-kind {
+      type g-826-type;
+      description
+        "Kind of performance value that shall be equipped with a threshold alarm.";
+    }
+    leaf alarm-raising-threshold {
+      type int32;
+      units "s";
+      default "-1";
+      description
+        "Number of events required for raising the threshold cross alarm.";
+    }
+    leaf alarm-clearing-threshold {
+      type int32;
+      units "s";
+      default "-1";
+      description
+        "Number of events required for clearing the threshold cross alarm.";
+    }
+    leaf granularity-period {
+      type granularity-period-type;
+      description
+        "Period of the performance data collection.";
+    }
+    description
+      "Allows defining a threshold cross alarm.";
+  }
+
+  grouping xlts-threshold-cross-alarm-type {
+    leaf level-threshold-second-kind {
+      type xlevel-threshold-second-kind-type;
+      description
+        "Defines whether receive (RLTS) or transmit (TLTS) level triggers the threshold cross alarm.";
+    }
+    leaf xlts-level {
+      type int8;
+      units "dBm";
+      description
+        "If (LevelThresholdSecondKindType==RLTS): Receive level, which has to be undercut, for the performance counter incrementing the number of seconds. If (LevelThresholdSecondKindType==TLTS): Transmit level, which has to be exceeded, for the performance counter incrementing the number of seconds. See also ETSI EN 301 129 V1.1.2 (1999-05).";
+    }
+    leaf amount-of-seconds {
+      type int16;
+      units "s";
+      default "-1";
+      description
+        "Number of seconds, which has to be exceeded for causing the threshold cross alarm to raise for this period.";
+    }
+    leaf granularity-period {
+      type granularity-period-type;
+      description
+        "Period of the performance data collection.";
+    }
+    leaf xlts-threshold-cross-alarm-definition-number {
+      type int8;
+      description
+        "Sequence number of the definitions.";
+    }
+    description
+      "none";
+  }
+
+  grouping acm-threshold-cross-alarm-type {
+    leaf acm-threshold-cross-alarm-definition-number {
+      type int8;
+      description
+        "Sequence number of the definitions.";
+    }
+    leaf transmission-mode {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol/air-interface:air-interface-pac/air-interface:air-interface-capability/air-interface:transmission-mode-list/air-interface:transmission-mode-name";
+        require-instance false;
+      }
+      must 'boolean(/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol/air-interface:air-interface-pac/air-interface:air-interface-capability/air-interface:transmission-mode-list[transmission-mode-name=current()])';
+      description
+        "none";
+    }
+    leaf amount-of-seconds {
+      type int16;
+      units "s";
+      description
+        "Number of seconds, in which the referenced transmission mode has to be operated until the threshold cross alarm is raised for this 15min or 24hour period.";
+    }
+    leaf granularity-period {
+      type granularity-period-type;
+      description
+        "Period of the performance data collection.";
+    }
+    description
+      "none";
+  }
+
+  grouping air-interface-current-problem-type {
+    leaf problem-name {
+      type string;
+      default "Problem name not specified.";
+      config false;
+      description
+        "Name of the alarm according to AirInterface::AirInterfaceCapability::supportedAlarms";
+    }
+    uses current-problem;
+    description
+      "none";
+  }
+
+  grouping time-xstates-type {
+    leaf time-xstate-sequence-number {
+      type int8;
+      units "s";
+      config false;
+      description
+        "Sequence number of the performance value.";
+    }
+    leaf transmission-mode {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol/air-interface:air-interface-pac/air-interface:air-interface-capability/air-interface:transmission-mode-list/air-interface:transmission-mode-name";
+        require-instance false;
+      }
+      config false;
+      description
+        "Operated transmission mode.";
+    }
+    leaf time {
+      type int32;
+      units "s";
+      default "-1";
+      config false;
+      description
+        "Sum of all seconds the transmitter operated the transmission mode.";
+    }
+    description
+      "none";
+  }
+
+  grouping air-interface-performance-type {
+    leaf es {
+      type int32;
+      units "s";
+      default "-1";
+      config false;
+      description
+        "Number of errored seconds.";
+    }
+    leaf ses {
+      type int32;
+      units "s";
+      default "-1";
+      config false;
+      description
+        "Number of severely errored seconds.";
+    }
+    leaf cses {
+      type int32;
+      units "s";
+      default "-1";
+      config false;
+      description
+        "Number of consecutive severely errored seconds.";
+    }
+    leaf unavailability {
+      type int32;
+      units "s";
+      default "-1";
+      config false;
+      description
+        "Total time of unavailability in seconds.";
+    }
+    leaf tx-level-min {
+      type int8;
+      units "dBm";
+      default "99";
+      config false;
+      description
+        "Minimum transmit power. Signed integers are required.";
+    }
+    leaf tx-level-max {
+      type int8;
+      units "dBm";
+      default "99";
+      config false;
+      description
+        "Maximum transmit power. Signed integers are required.";
+    }
+    leaf tx-level-avg {
+      type int8;
+      units "dBm";
+      default "99";
+      config false;
+      description
+        "Averaged transmit power. Signed integers are required.";
+    }
+    leaf rx-level-min {
+      type int8;
+      units "dBm";
+      default "99";
+      config false;
+      description
+        "Minimum receive level. Signed integers are required.";
+    }
+    leaf rx-level-max {
+      type int8;
+      units "dBm";
+      default "99";
+      config false;
+      description
+        "Maximum receive level. Signed integers are required.";
+    }
+    leaf rx-level-avg {
+      type int8;
+      units "dBm";
+      default "99";
+      config false;
+      description
+        "Averaged receive level. Signed integers are required.";
+    }
+    list time-xstates-list {
+      key "time-xstate-sequence-number";
+      config false;
+      min-elements 1;
+      uses time-xstates-type;
+      description
+        "Time period the transmitter operated in the respective transmission mode.";
+    }
+    leaf snir-min {
+      type int8;
+      units "dB";
+      default "-99";
+      config false;
+      description
+        "Minimum signal to (noise+interference) ratio.";
+    }
+    leaf snir-max {
+      type int8;
+      units "dB";
+      default "-99";
+      config false;
+      description
+        "Maximum signal to (noise+interference) ratio.";
+    }
+    leaf snir-avg {
+      type int8;
+      units "dB";
+      default "-99";
+      config false;
+      description
+        "Averaged signal to (noise+interference) ratio.";
+    }
+    leaf xpd-min {
+      type int8;
+      units "dB";
+      default "-99";
+      config false;
+      description
+        "Minimum cross polarization discrimination.";
+    }
+    leaf xpd-max {
+      type int8;
+      units "dB";
+      default "-99";
+      config false;
+      description
+        "Maximum cross polarization discrimination.";
+    }
+    leaf xpd-avg {
+      type int8;
+      units "dB";
+      default "-99";
+      config false;
+      description
+        "Averaged cross polarization discrimination.";
+    }
+    leaf rf-temp-min {
+      type int8;
+      units "Celsius";
+      default "-99";
+      config false;
+      description
+        "Lowest temperature (in degree Celsius) of the radio module inside the outdoor unit.";
+    }
+    leaf rf-temp-max {
+      type int8;
+      units "Celsius";
+      default "-99";
+      config false;
+      description
+        "Highest temperature (in degree Celsius) of the radio module inside the outdoor unit.";
+    }
+    leaf rf-temp-avg {
+      type int8;
+      units "Celsius";
+      default "-99";
+      config false;
+      description
+        "Averaged temperature (in degree Celsius) of the radio module inside the outdoor unit.";
+    }
+    leaf defect-blocks-sum {
+      type int16;
+      units "blocks";
+      default "-1";
+      config false;
+      description
+        "Total number of blocks that were defect after receiving and could not be corrected by the FEC.";
+    }
+    leaf time-period {
+      type int32;
+      units "s";
+      default "-1";
+      config false;
+      description
+        "Total length of the measurement period.";
+    }
+    description
+      "Consolidated performance information of the air interface.";
+  }
+
+  grouping air-interface-current-performance-type {
+    container performance-data {
+      config false;
+      uses air-interface-performance-type;
+      description
+        "none";
+    }
+    uses current-performance;
+    description
+      "Turns performance information into current performance information by inheriting from OTN_CurrentData.";
+  }
+
+  grouping air-interface-historical-performance-type {
+    container performance-data {
+      config false;
+      uses air-interface-performance-type;
+      description
+        "none";
+    }
+    uses historical-performance;
+    description
+      "Turns performance information into historical performance information by inheriting from OTN_HistoryData.";
+  }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/co-channel-profile-1-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/co-channel-profile-1-0.yang
new file mode 100644
index 0000000..9906cf6
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/co-channel-profile-1-0.yang
@@ -0,0 +1,285 @@
+module co-channel-profile-1-0 {
+  yang-version 1.1;
+  namespace "urn:onf:yang:co-channel-profile-1-0";
+  prefix co-channel-profile;
+
+  import ietf-yang-types {
+    prefix yang;
+  }
+  import core-model-1-4 {
+    prefix core-model;
+  }
+
+  organization
+    "openBackhaul.com proposal to Open Networking Foundation (ONF)";
+  contact
+    "WG Web : https://github.com/openBackhaul/Overview
+     WG List: CoChannelProfile@openBackhaul.com
+     Editor : Thorsten Heinze
+     Email  : Thorsten.Heinze@openBackhaul.com";
+  description
+    "Technology specific definition for groups of microwave radio interfaces, which are using the same frequency channel (XPIC, MIMO and ALIC).
+
+     Copyright 2019 openBackhaul.com
+
+     Licensed under the Apache License, Version 2.0 (the 'License');
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+     http://www.apache.org/licenses/LICENSE-2.0
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an 'AS IS' BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.";
+
+  revision 2020-01-27 {
+    description
+      "Model for the Transport SDN Pilot at Telefonica Germany.
+       Please view https://github.com/openBackhaul/coChannelProfile/issues for changes.";
+    reference
+      "https://github.com/openBackhaul/coChannelProfile/tree/tsp: Model definition
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+  }
+  revision 2019-11-02 {
+    description
+      "Model for the Transport SDN Pilot at Telefonica Germany.
+       Please view https://github.com/openBackhaul/coChannelProfile/issues for changes.";
+    reference
+      "https://github.com/openBackhaul/coChannelProfile/tree/tsp: Model definition
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+  }
+  revision 2019-07-17 {
+    description
+      "Model for the Transport SDN Pilot at Telefonica Germany.
+       Please view https://github.com/openBackhaul/coChannelProfile/issues for changes.";
+    reference
+      "https://github.com/openBackhaul/coChannelProfile/tree/tsp: Model definition
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+  }
+
+  identity PROFILE_NAME_TYPE_CO_CHANNEL_PROFILE {
+    base core-model:PROFILE_NAME_TYPE;
+    description
+      "none";
+  }
+
+  augment "/core-model:control-construct/core-model:profile-collection/core-model:profile" {
+    when "derived-from-or-self(./core-model:profile-name, 'co-channel-profile:PROFILE_NAME_TYPE_CO_CHANNEL_PROFILE')";
+    uses co-channel-profile-spec;
+    description
+      "none";
+  }
+
+  /****************************************
+   * package notifications
+   **************************************/ 
+
+  notification object-creation-notification {
+    uses object-creation-notification;
+    description
+      "none";
+  }
+
+  grouping object-creation-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts object creation notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:profile-collection/core-model:profile/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf object-type {
+      type string;
+      default "Type of created object not specified.";
+      config false;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  notification object-deletion-notification {
+    uses object-deletion-notification;
+    description
+      "none";
+  }
+
+  grouping object-deletion-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts object deletion notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:profile-collection/core-model:profile/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  /****************************************
+   * grouping statements for object classes
+   **************************************/ 
+
+  grouping co-channel-profile-spec {
+    container co-channel-profile-pac {
+      uses co-channel-profile-pac;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  grouping co-channel-profile-pac {
+    container co-channel-profile-capability {
+      config false;
+      uses co-channel-profile-capability;
+      description
+        "none";
+    }
+    container co-channel-profile-configuration {
+      uses co-channel-profile-configuration;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  grouping co-channel-profile-capability {
+    leaf xpic-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "In case this device is in general capable of XPIC, this field shall contain a 'true'. This information shall purely relate to capabilities of the equipment type, but not to the operational capability of a specific hardware composition on site. Means for example that this attribute might contain a 'true' statement, even if an additional cable would have been required to actually operate XPIC in a specific case.";
+    }
+    leaf mimo-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "In case the device is capable of MIMO, this field shall contain a 'true'.";
+    }
+    leaf number-of-mimo-channels-max {
+      type int8;
+      units "channels";
+      default "1";
+      config false;
+      description
+        "Maximum number (n) of spatial multiplexing streams that can be conveyed by an n x n MIMO configuration.";
+    }
+    leaf alic-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "In case the device is capable of Adjacent Link Interference Cancelation (canceling of interference cause by transmitters located at the same site), this field shall contain a 'true'.";
+    }
+    description
+      "none";
+  }
+
+  grouping co-channel-profile-configuration {
+    leaf profile-name {
+      type string;
+      default "Name of profile not yet defined.";
+      description
+        "Identifier of the profile. Could be a name, could be a number. Free text field to be filled by the operator.";
+    }
+    leaf kind-of-co-channel-group {
+      type kind-of-co-channel-group-type;
+      default "KIND_OF_CO_CHANNEL_GROUP_TYPE_NOT_YET_DEFINED";
+      description
+        "Type of group (XPIC, MIMO, ALIC) of air interfaces with the same transmit and receive frequency.";
+    }
+    leaf-list logical-termination-point-list {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+        require-instance false;
+      }
+      description
+        "List of AirInterfaces, which are part of the co-channel group. Referenced LTP must associate a LayerProtocol class with layerProtocolName attribute having LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER as value.";
+    }
+    description
+      "none";
+  }
+
+  /****************************************
+   * typedef statements
+   **************************************/ 
+
+  typedef kind-of-co-channel-group-type {
+    type identityref {
+      base KIND_OF_CO_CHANNEL_GROUP_TYPE;
+    }
+    description
+      "none";
+  }
+
+  /*********************************************
+   * grouping statements for complex data types
+   *******************************************/ 
+
+  identity KIND_OF_CO_CHANNEL_GROUP_TYPE {
+    description
+      "none";
+  }
+
+  identity KIND_OF_CO_CHANNEL_GROUP_TYPE_XPIC {
+    base KIND_OF_CO_CHANNEL_GROUP_TYPE;
+    description
+      "Cross Polarization Interference Cancellation";
+  }
+
+  identity KIND_OF_CO_CHANNEL_GROUP_TYPE_MIMO {
+    base KIND_OF_CO_CHANNEL_GROUP_TYPE;
+    description
+      "Multiple Input Multiple Output";
+  }
+
+  identity KIND_OF_CO_CHANNEL_GROUP_TYPE_ALIC {
+    base KIND_OF_CO_CHANNEL_GROUP_TYPE;
+    description
+      "Adjacent Link Interference Cancellation";
+  }
+
+  identity KIND_OF_CO_CHANNEL_GROUP_TYPE_NOT_YET_DEFINED {
+    base KIND_OF_CO_CHANNEL_GROUP_TYPE;
+    description
+      "none";
+  }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/core-model-1-4.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/core-model-1-4.yang
new file mode 100644
index 0000000..990ddd3
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/core-model-1-4.yang
@@ -0,0 +1,3133 @@
+module core-model-1-4 {
+  yang-version 1.1;
+  namespace "urn:onf:yang:core-model-1-4";
+  prefix core-model;
+
+  import ietf-yang-types {
+    prefix yang;
+  }
+
+  organization
+    "Open Networking Foundation (ONF)";
+  contact
+    "WG Web : https://wiki.opennetworking.org/pages/viewpage.action?pageId=262963204
+     WG List: <mailto:information-modeling@opennetworking.org>
+     Editor : Nigel Davis
+     Email  : <mailto:ndavis@ciena.com>";
+  description
+    "This module contains a collection of YANG definitions for management and control of network fuctions.
+
+     Copyright 2019 Open Networking Foundation (ONF). All rights reserved.
+
+     Licensed under the Apache License, Version 2.0 (the 'License');
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an 'AS IS' BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.";
+
+  revision 2019-11-27 {
+    description
+      "Package equipment-specification has been deleted, 
+       because of wrong key statements and overall grouping never applied.
+       ";
+  }
+  revision 2019-11-22 {
+    description
+      "Module name and name space changed to core-model-1-4
+       ";
+    reference
+      "ONF-TR-512, RFC 6020 and RFC 6087";
+  }
+  revision 2019-07-09 {
+    description
+      "Corrected version derived from ONF-TR-512 v1.4
+       - Type of LayerProtocol/layerProtocolName simplfied to LayerProtocolNameType
+       - Type of Profile/profileName changed to ProfileNameType (same concept as for layerProtocolName
+       - FcSwitch added.
+       - remove references to UML model.";
+    reference
+      "ONF-TR-512, RFC 6020 and RFC 6087";
+  }
+  revision 2019-07-05 {
+    description
+      "Corrected version derived from ONF-TR-512 v1.4
+       - renaming of attribute lp to layer-protocol
+       - presence statement in root container according to RFC8407 4.10. Top-Level Data Definitions
+       - Feature names introduced";
+    reference
+      "ONF-TR-512, RFC 6020 and RFC 6087";
+  }
+  revision 2019-05-25 {
+    description
+      "Initial version derived from ONF-TR-512 v1.4
+       Please view https://github.com/OpenNetworkingFoundation/5G-xHaul/tree/experimental/models/tools for changes.
+       Additional information: Additional manual changes";
+    reference
+      "ONF-TR-512, RFC 6020 and RFC 6087";
+  }
+  revision 2019-05-05 {
+    description
+      "Initial version
+       Please view https://github.com/OpenNetworkingFoundation/5G-xHaul/tree/experimental/models/tools for changes.
+       Additional information: Initial version";
+    reference
+      "ONF-TR-512, RFC 6020 and RFC 6087";
+  }
+
+  /****************************************
+   * typedef statements
+   **************************************/ 
+
+  typedef port-role {
+    type string;
+    description
+      "The role of a port in the context of the function of the forwarding entity that it bounds.";
+  }
+
+  typedef port-direction {
+    type identityref {
+      base PORT_DIRECTION;
+    }
+    description
+      "The orientation of flow at the Port of a Forwarding entity.";
+  }
+
+  typedef forwarding-direction {
+    type identityref {
+      base FORWARDING_DIRECTION;
+    }
+    description
+      "The directionality of a Forwarding entity.";
+  }
+
+  typedef termination-direction {
+    type identityref {
+      base TERMINATION_DIRECTION;
+    }
+    description
+      "The directionality of a termination entity.";
+  }
+
+  typedef termination-state {
+    type identityref {
+      base TERMINATION_STATE;
+    }
+    description
+      "Provides support for the range of behaviors and specific states that an LP can take with respect to termination of the signal.
+       Indicates to what degree the LayerTermination is terminated.";
+  }
+
+  typedef layer-protocol-name-type {
+    type identityref {
+      base LAYER_PROTOCOL_NAME_TYPE;
+    }
+    description
+      "A controlled list of LayerProtocol names.";
+  }
+
+  typedef bit-string {
+    type string;
+    description
+      "This primitive type defines a bit oriented string.
+       The size of the BitString will be defined in the valueRange property of the attribute; according to ASN.1 (X.680).
+       The semantic of each bit position will be defined in the Documentation field of the attribute.";
+  }
+
+  typedef printable-string {
+    type string;
+    description
+      "A string that only includes printable characters.";
+  }
+
+  typedef universal-id {
+    type string;
+    description
+      "The universal ID value where the mechanism for generation is defined by some authority not directly referenced in the structure.
+       An example structure is [IETF RFC4122].";
+  }
+
+  typedef dt-address {
+    type string;
+    description
+      "A description of location via a hierarchy of narrowing contexts.";
+  }
+
+  typedef operational-state {
+    type identityref {
+      base OPERATIONAL_STATE;
+    }
+    description
+      "The operational state is used to indicate whether or not the resource is installed and working. ";
+  }
+
+  typedef administrative-state {
+    type identityref {
+      base ADMINISTRATIVE_STATE;
+    }
+    description
+      "The administrative state is used to show whether use of a resource is allowed or prohibited.
+       The administrative state can be observed and directly controlled by certain operational roles.
+       Typically, only a user (in the provider context) with administrative privileges is allowed to write the administrative state, any other users are restricted to read only.";
+  }
+
+  typedef administrative-control {
+    type identityref {
+      base ADMINISTRATIVE_CONTROL;
+    }
+    description
+      "Reflects the current control action when the entity is not in the desired state.";
+  }
+
+  typedef lifecycle-state {
+    type identityref {
+      base LIFECYCLE_STATE;
+    }
+    description
+      "This state is used to track the planned deployment, allocation to clients and withdrawal of resources.";
+  }
+
+  typedef forwarding-rule {
+    type identityref {
+      base FORWARDING_RULE;
+    }
+    description
+      "Rule that restricts the creation/deletion of an FC between points grouped by FD or related by the Link between FDs.";
+  }
+
+  typedef rule-type {
+    type identityref {
+      base RULE_TYPE;
+    }
+    description
+      "Indicates the focus of the rule.";
+  }
+
+  typedef port-role-rule-option {
+    type identityref {
+      base PORT_ROLE_RULE_OPTION;
+    }
+    description
+      "Indicates how to interpret the PortRole list.";
+  }
+
+  typedef signal-property-value-rule {
+    type identityref {
+      base SIGNAL_PROPERTY_VALUE_RULE;
+    }
+    description
+      "none";
+  }
+
+  typedef metaclass-class-name {
+    type string;
+    description
+      "none";
+  }
+
+  typedef profile-name-type {
+    type identityref {
+      base PROFILE_NAME_TYPE;
+    }
+    description
+      "A controlled list of Profile names.";
+  }
+
+  /*********************************************
+   * grouping statements for complex data types
+   *******************************************/ 
+
+  identity PORT_DIRECTION {
+    description
+      "none";
+  }
+
+  identity PORT_DIRECTION_BIDIRECTIONAL {
+    base PORT_DIRECTION;
+    description
+      "The Port has both an INPUT flow and an OUTPUT flow defined.";
+  }
+
+  identity PORT_DIRECTION_INPUT {
+    base PORT_DIRECTION;
+    description
+      "The Port only has definition for a flow into the Forwarding entity (i.e. an ingress flow).";
+  }
+
+  identity PORT_DIRECTION_OUTPUT {
+    base PORT_DIRECTION;
+    description
+      "The Port only has definition for a flow out of the Forwarding entity (i.e. an egress flow).";
+  }
+
+  identity PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN {
+    base PORT_DIRECTION;
+    description
+      "Not a normal state. The system is unable to determine the correct value.";
+  }
+
+  identity PORT_DIRECTION_OMNIDIRECTIONAL {
+    base PORT_DIRECTION;
+    description
+      "none";
+  }
+
+  identity FORWARDING_DIRECTION {
+    description
+      "none";
+  }
+
+  identity FORWARDING_DIRECTION_BIDIRECTIONAL {
+    base FORWARDING_DIRECTION;
+    description
+      "The Forwarding entity supports both BIDIRECTIONAL flows at all Ports (i.e. all Ports have both an INPUT flow and an OUTPUT flow defined).";
+  }
+
+  identity FORWARDING_DIRECTION_UNIDIRECTIONAL {
+    base FORWARDING_DIRECTION;
+    description
+      "The Forwarding entity has Ports that are either INPUT or OUTPUT. It has no BIDIRECTIONAL Ports.";
+  }
+
+  identity FORWARDING_DIRECTION_UNDEFINED_OR_UNKNOWN {
+    base FORWARDING_DIRECTION;
+    description
+      "Not a normal state. The system is unable to determine the correct value.";
+  }
+
+  identity FORWARDING_DIRECTION_OMNIDIRECTIONAL {
+    base FORWARDING_DIRECTION;
+    description
+      "none";
+  }
+
+  identity TERMINATION_DIRECTION {
+    description
+      "none";
+  }
+
+  identity TERMINATION_DIRECTION_BIDIRECTIONAL {
+    base TERMINATION_DIRECTION;
+    description
+      "A Termination with both SINK and SOURCE flows.";
+  }
+
+  identity TERMINATION_DIRECTION_SINK {
+    base TERMINATION_DIRECTION;
+    description
+      "The flow is up the layer stack from the server side to the client side.
+       Considering an example of a Termination function within the termination entity, a SINK flow:
+       - will arrive at the base of the termination function (the server side) where it is essentially at an INPUT to the termination component
+       - then will be decoded and deconstructed
+       - then relevant parts of the flow will be sent out of the termination function (the client side) where it is essentially at an OUTPUT from the termination component
+       A SINK termination is one that only supports a SINK flow.
+       A SINK termination can be bound to an OUTPUT Port of a Forwarding entity";
+  }
+
+  identity TERMINATION_DIRECTION_SOURCE {
+    base TERMINATION_DIRECTION;
+    description
+      "The flow is down the layer stack from the server side to the client side.
+       Considering an example of a Termination function within the termination entity, a SOURCE flow:
+       - will arrive at the top of the termination function (the client side) where it is essentially at an INPUT to the termination component
+       - then will be assembled with various overheads etc. and will be coded
+       - then coded form of the assembly of flow will be sent out of the termination function (the server side) where it is essentially at an OUTPUT from the termination component
+       A SOURCE termination is one that only supports a SOURCE flow.
+       A SOURCE termination can be bound to an INPUT Port of a Forwarding entity";
+  }
+
+  identity TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN {
+    base TERMINATION_DIRECTION;
+    description
+      "Not a normal state. The system is unable to determine the correct value.";
+  }
+
+  identity TERMINATION_STATE {
+    description
+      "none";
+  }
+
+  identity TERMINATION_STATE_LP_CAN_NEVER_TERMINATE {
+    base TERMINATION_STATE;
+    description
+      "A non-flexible case that can never be terminated.";
+  }
+
+  identity TERMINATION_STATE_LP_NOT_TERMINATED {
+    base TERMINATION_STATE;
+    description
+      "A flexible termination that can terminate but is currently not terminated.";
+  }
+
+  identity TERMINATION_STATE_TERMINATED_SERVER_TO_CLIENT_FLOW {
+    base TERMINATION_STATE;
+    description
+      "A flexible termination that is currently terminated for server to client flow only.";
+  }
+
+  identity TERMINATION_STATE_TERMINATED_CLIENT_TO_SERVER_FLOW {
+    base TERMINATION_STATE;
+    description
+      "A flexible termination that is currently terminated for client to server flow only.";
+  }
+
+  identity TERMINATION_STATE_TERMINATED_BIDIRECTIONAL {
+    base TERMINATION_STATE;
+    description
+      "A flexible termination that is currently terminated in both directions of flow.";
+  }
+
+  identity TERMINATION_STATE_LP_PERMENANTLY_TERMINATED {
+    base TERMINATION_STATE;
+    description
+      "A non-flexible termination that is always terminated (in both directions of flow for a bidirectional case and in the one direction of flow for both unidirectional cases).";
+  }
+
+  identity TERMINATION_STATE_TERMINATION_STATE_UNKNOWN {
+    base TERMINATION_STATE;
+    description
+      "There TerminationState cannot be determined.";
+  }
+
+  identity PROTECTION_REASON {
+    description
+      "none";
+  }
+
+  identity PROTECTION_REASON_WAIT_TO_REVERT {
+    base PROTECTION_REASON;
+    description
+      "The resource is selected as control is waiting to restore to a preferred resource.";
+  }
+
+  identity PROTECTION_REASON_SIGNAL_DEGRADE {
+    base PROTECTION_REASON;
+    description
+      "The resource is selected as the best preferred resource is in signal degrade.";
+  }
+
+  identity PROTECTION_REASON_SIGNAL_FAIL {
+    base PROTECTION_REASON;
+    description
+      "The resource is selected as the best preferred resource is in signal fail.";
+  }
+
+  identity ROUTE_SELECTION_CONTROL {
+    description
+      "none";
+  }
+
+  identity ROUTE_SELECTION_CONTROL_LOCK_OUT {
+    base ROUTE_SELECTION_CONTROL;
+    description
+      "The resource is configured to temporarily not be available for use in the protection scheme(s) it is part of.
+       This overrides all other protection control states including forced.
+       If the item is locked out, then it cannot be used under any circumstances.
+       Note: Only relevant when part of a protection scheme.
+       Note: if a protection process that has a relationship to the item (i.e. is one of the options the protection process may choose) is deactivated by being isFrozen = true) then the lockout request will be rejected. ";
+  }
+
+  identity ROUTE_SELECTION_REASON {
+    description
+      "none";
+  }
+
+  identity ROUTE_SELECTION_REASON_NONE {
+    base ROUTE_SELECTION_REASON;
+    description
+      "No reason";
+  }
+
+  identity SWITCH_CONTROL {
+    description
+      "none";
+  }
+
+  identity SWITCH_CONTROL_NORMAL {
+    base SWITCH_CONTROL;
+    description
+      "No administrative control applied to the switch.";
+  }
+
+  identity SWITCH_CONTROL_MANUAL {
+    base SWITCH_CONTROL;
+    description
+      "Resource temporarily chosen by control configuration where the resource is not the preferred resource.
+       Preferred resource has highest priority.
+       Temporarily overrides reversion.
+       If this resource fails, it will switch to best available resource.
+       If resource selected is shared and another FC requires the resource, then the selection control will change to Normal and switch to best available based upon normal rules.
+       Cannot manually switch a Forced switch, cannot remove a forced switch, cannot switch to a locked out item and will be rejected if the protection process is deactivated by being Freeze = true).
+       A manual switch/route that is selecting an FcPort, LTP, FC, Link or Route that is subsequently set to LOCK_OUT will have the manual removed (changed to NORMAL) and will switch away from the FcPort with LOCK_OUT to best available based upon normal rules.
+       A manual switch that is selecting an FcPort that is subsequently selected by a Forced switch will be restored to normal operation and the manual will be removed.
+       A manual switch/route that is selecting an FcPort, LTP, FC, Link or Route that is subsequently manual selected by another switch/route will have the manual removed and will switch away from the FcPort.
+       Can be returned to NORMAL by configuration action.";
+  }
+
+  identity SWITCH_CONTROL_FORCED {
+    base SWITCH_CONTROL;
+    description
+      "Resource temporarily chosen by control configuration where the resource is not the preferred resource.
+       Preferred resource has highest priority.
+       Temporarily overrides reversion.
+       If this resource fails it will NOT switch.
+       If resource selected is shared and another FC requires the resource through a FORCE on that FC and the FC is of a higher FcPriority then the selection control on this FC will change to NORMAL and switch to best available based upon normal rules.
+       If the resource selected is then set to LOCK_OUT then the selection control will change to NORMAL and switch to best available based upon normal rules.
+       Can be returned to NORMAL by configuration action.";
+  }
+
+  identity SWITCH_STATE_REASON {
+    description
+      "none";
+  }
+
+  identity SWITCH_STATE_REASON_NONE {
+    base SWITCH_STATE_REASON;
+    description
+      "No reason";
+  }
+
+  identity REVERSION_MODE {
+    description
+      "none";
+  }
+
+  identity REVERSION_MODE_REVERTIVE {
+    base REVERSION_MODE;
+    description
+      "An FC switched to a lower priority (non-preferred) resource will revert to a higher priority (preferred) resource when that recovers (potentially after some hold-off time).";
+  }
+
+  identity REVERSION_MODE_NON-REVERTIVE {
+    base REVERSION_MODE;
+    description
+      "An FC switched to a lower priority (non-preferred) resource will not revert to a higher priority (preferred) resource when that recovers.";
+  }
+
+  identity RESILIENCE_CONTROL {
+    description
+      "none";
+  }
+
+  identity RESILIENCE_CONTROL_QUIESCENT {
+    base RESILIENCE_CONTROL;
+    description
+      "none";
+  }
+
+  identity RESILIENCE_CONTROL_RESTORING {
+    base RESILIENCE_CONTROL;
+    description
+      "none";
+  }
+
+  identity RESILIENCE_CONTROL_RECOVERY_FAILED {
+    base RESILIENCE_CONTROL;
+    description
+      "none";
+  }
+
+  identity RESILIENCE_CONTROL_UNKNOWN {
+    base RESILIENCE_CONTROL;
+    description
+      "none";
+  }
+
+  identity RUN_MODE {
+    description
+      "none";
+  }
+
+  identity RUN_MODE_FREE_RUN {
+    base RUN_MODE;
+    description
+      "The clock is not synchronized to another clock.";
+  }
+
+  identity RUN_MODE_LOCKED {
+    base RUN_MODE;
+    description
+      "The clock is synchronized to another clock.";
+  }
+
+  identity RUN_MODE_HOLD_OVER {
+    base RUN_MODE;
+    description
+      "The clock was previously synchronized to another clock but that timing input has been lost.
+       The clock is set to the last known synchronization.";
+  }
+
+  identity LAYER_PROTOCOL_NAME_TYPE {
+    description
+      "none";
+  }
+
+  identity LAYER_PROTOCOL_NAME_TYPE_PHOTONIC_MEDIA {
+    base LAYER_PROTOCOL_NAME_TYPE;
+    description
+      "The characteristic information is that of a channel able to carry photons and of the photon source/sink.";
+  }
+
+  identity LAYER_PROTOCOL_NAME_TYPE_OTU_AND_ODU {
+    base LAYER_PROTOCOL_NAME_TYPE;
+    description
+      "The characteristic information is that of a channel able to carry ODU/OTU protocol (OTN) and of the ODU/OTU source/sink.";
+  }
+
+  identity LAYER_PROTOCOL_NAME_TYPE_ETHERNET {
+    base LAYER_PROTOCOL_NAME_TYPE;
+    description
+      "The characteristic information is that of a channel able to carry Ethernet protocol and of the Ethernet protocol source/sink.";
+  }
+
+  identity OPERATIONAL_STATE {
+    description
+      "none";
+  }
+
+  identity OPERATIONAL_STATE_DISABLED {
+    base OPERATIONAL_STATE;
+    description
+      "The resource is unable to meet the SLA of the user of the resource.
+       If no (explicit) SLA is defined the resource is disabled if it is totally inoperable and unable to provide service to the user.";
+  }
+
+  identity OPERATIONAL_STATE_ENABLED {
+    base OPERATIONAL_STATE;
+    description
+      "The resource is partially or fully operable and available for use.";
+  }
+
+  identity ADMINISTRATIVE_STATE {
+    description
+      "none";
+  }
+
+  identity ADMINISTRATIVE_STATE_LOCKED {
+    base ADMINISTRATIVE_STATE;
+    description
+      "Users are administratively prohibited from making use of the resource.";
+  }
+
+  identity ADMINISTRATIVE_STATE_UNLOCKED {
+    base ADMINISTRATIVE_STATE;
+    description
+      "Users are allowed to use the resource.";
+  }
+
+  identity ADMINISTRATIVE_STATE_SHUTTING_DOWN {
+    base ADMINISTRATIVE_STATE;
+    description
+      "The entity is administratively restricted to existing instances of use only. There may be specific actions to remove existing uses. No new instances of use can be enabled.
+       The resource automatically transitions to “locked” when the last user quits.
+       The administrative state is not visible in the client context.
+       The lifecycle state “pending removal” should be used to indicate to the client that the provider intends to remove the resource.";
+  }
+
+  identity ADMINISTRATIVE_CONTROL {
+    description
+      "none";
+  }
+
+  identity ADMINISTRATIVE_CONTROL_UNLOCK {
+    base ADMINISTRATIVE_CONTROL;
+    description
+      "The intention is for the entity to become unlocked.
+       The entity may already be UNLOCKED.";
+  }
+
+  identity ADMINISTRATIVE_CONTROL_LOCK_PASSIVE {
+    base ADMINISTRATIVE_CONTROL;
+    description
+      "The intention is for the entity to become locked but no effort is expected to move to the Locked state (the state will be achieved once all users stop using the resource).
+       The entity may be LOCKED.";
+  }
+
+  identity ADMINISTRATIVE_CONTROL_LOCK_ACTIVE {
+    base ADMINISTRATIVE_CONTROL;
+    description
+      "The intention is for the entity to become locked and it is expected that effort will be made to move to the Locked state (users will be actively removed).
+       The entity may already be LOCKED.";
+  }
+
+  identity ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE {
+    base ADMINISTRATIVE_CONTROL;
+    description
+      "The intention is for the entity to become locked and it is expected to move to the Locked state immediately (users will be force removed).
+       The entity may already be LOCKED.";
+  }
+
+  identity ADMINISTRATIVE_CONTROL_QUIESCENT {
+    base ADMINISTRATIVE_CONTROL;
+    description
+      "The administrative state is at a stable value (LOCKED/UNLOCKED) and no action is being taken.";
+  }
+
+  identity LIFECYCLE_STATE {
+    description
+      "none";
+  }
+
+  identity LIFECYCLE_STATE_PLANNED {
+    base LIFECYCLE_STATE;
+    description
+      "The resource is planned but is not present in the network.
+       Should include a 'time' when the resources are expected to be installed.";
+  }
+
+  identity LIFECYCLE_STATE_POTENTIAL_AVAILABLE {
+    base LIFECYCLE_STATE;
+    description
+      "The supporting resources are present in the network but are shared with other clients; or require further configuration before they can be used; or both.
+       (1) When a potential resource is configured and allocated to a client it is moved to the INSTALLED state for that client.
+       (2) If the potential resource has been consumed (e.g. allocated to another client) it is moved to the POTENTIAL BUSY state for all other clients.";
+  }
+
+  identity LIFECYCLE_STATE_POTENTIAL_BUSY {
+    base LIFECYCLE_STATE;
+    description
+      "The supporting resources are present in the network but have been allocated to other clients.";
+  }
+
+  identity LIFECYCLE_STATE_INSTALLED {
+    base LIFECYCLE_STATE;
+    description
+      "The resource is present in the network and is capable of providing the service.";
+  }
+
+  identity LIFECYCLE_STATE_PENDING_REMOVAL {
+    base LIFECYCLE_STATE;
+    description
+      "The resource has been marked for removal. Should include a “time” when the resources are expected to be removed.";
+  }
+
+  identity FORWARDING_RULE {
+    description
+      "none";
+  }
+
+  identity FORWARDING_RULE_CANNOT_FORWARD_ACROSS_FD_LINK {
+    base FORWARDING_RULE;
+    description
+      "LTPs referenced by the FD (or indirectly by the Link between FDs) cannot have FCs created between them.
+       This rule overrides all others.";
+  }
+
+  identity FORWARDING_RULE_MUST_FORWARD_ACROSS_FD_LINK {
+    base FORWARDING_RULE;
+    description
+      "LTPs referenced by the FD (or indirectly by the Link between FDs) MUST have FCs created between them.
+       This rule overrides all others except the CANNOT_FORWARD rule.";
+  }
+
+  identity FORWARDING_RULE_MAY_FORWARD_ACROSS_FD_LINK {
+    base FORWARDING_RULE;
+    description
+      "LTPs referenced by the FD (or indirectly by the Link between FDs) may have FCs created between them.
+       FCs may not be created between points that are not related by this rule either directly in an FD or indirectly via a Link linking two or more FDs.
+       For a Link points in an FD at one end of the Link can be connected to points in an FD at an other end of the Link.";
+  }
+
+  identity FORWARDING_RULE_NULL_FORWARDING_RULE {
+    base FORWARDING_RULE;
+    description
+      "none";
+  }
+
+  identity RULE_TYPE {
+    description
+      "none";
+  }
+
+  identity RULE_TYPE_FORWARDING {
+    base RULE_TYPE;
+    description
+      "The rule relates to creation of FCs.";
+  }
+
+  identity RULE_TYPE_COST {
+    base RULE_TYPE;
+    description
+      "The rule relates to forwarding cost.";
+  }
+
+  identity RULE_TYPE_RISK {
+    base RULE_TYPE;
+    description
+      "The rule relates to forwarding risk.";
+  }
+
+  identity RULE_TYPE_CAPACITY {
+    base RULE_TYPE;
+    description
+      "none";
+  }
+
+  identity PORT_ROLE_RULE_OPTION {
+    description
+      "none";
+  }
+
+  identity PORT_ROLE_RULE_OPTION_SAME_ROLE {
+    base PORT_ROLE_RULE_OPTION;
+    description
+      "The ports to which the rule applies must have role from the list in PortRole.";
+  }
+
+  identity PORT_ROLE_RULE_OPTION_DIFFERENT_ROLE {
+    base PORT_ROLE_RULE_OPTION;
+    description
+      "The ports to which the rule applies must not have a role from the list in PortRole.";
+  }
+
+  identity PORT_ROLE_RULE_OPTION_ANY_ROLE {
+    base PORT_ROLE_RULE_OPTION;
+    description
+      "The rule applies to any role of port.";
+  }
+
+  identity SIGNAL_PROPERTY_VALUE_RULE {
+    description
+      "none";
+  }
+
+  identity SIGNAL_PROPERTY_VALUE_RULE_SAME_VALUE {
+    base SIGNAL_PROPERTY_VALUE_RULE;
+    description
+      "none";
+  }
+
+  identity SIGNAL_PROPERTY_VALUE_RULE_ANY_VALUE {
+    base SIGNAL_PROPERTY_VALUE_RULE;
+    description
+      "none";
+  }
+
+  identity PROFILE_NAME_TYPE {
+    description
+      "none";
+  }
+
+  identity PROFILE_NAME_TYPE_USER_PROFILE {
+    base PROFILE_NAME_TYPE;
+    description
+      "none";
+  }
+
+  identity CONNECTOR_AND_PIN_ORIENTATION {
+    description
+      "none";
+  }
+
+  identity CONNECTOR_AND_PIN_ORIENTATION_MALE {
+    base CONNECTOR_AND_PIN_ORIENTATION;
+    description
+      "The connecting elements are dominantly protrusions.";
+  }
+
+  identity CONNECTOR_AND_PIN_ORIENTATION_FEMALE {
+    base CONNECTOR_AND_PIN_ORIENTATION;
+    description
+      "The connecting elements are dominantly indentations.";
+  }
+
+  identity CONNECTOR_AND_PIN_ORIENTATION_SYMMETRIC_NEUTRAL {
+    base CONNECTOR_AND_PIN_ORIENTATION;
+    description
+      "The pin (and housing) orientation combination is such that it is symmetric so a connector is compatible with itself.
+       The connecting element may be a surface rather than protrusions or indentations.";
+  }
+
+  identity EQUIPMENT_CATEGORY {
+    description
+      "none";
+  }
+
+  identity EQUIPMENT_CATEGORY_SUBRACK {
+    base EQUIPMENT_CATEGORY;
+    description
+      "An assembly with holders designed to accommodate CIRCUIT_PACKs.
+       The assembly is designed to be mounted in a RACK.";
+  }
+
+  identity EQUIPMENT_CATEGORY_CIRCUIT_PACK {
+    base EQUIPMENT_CATEGORY;
+    description
+      "An assembly with connectors compatible with those in a holder.
+       The assembly is designed to be mounted in a holder (SLOT) of a SUBRACK.
+       May also support holders (SLOTs) for SMALL_FORMFACTOR_PLUGGABLEs.";
+  }
+
+  identity EQUIPMENT_CATEGORY_SMALL_FORMFACTOR_PLUGGABLE {
+    base EQUIPMENT_CATEGORY;
+    description
+      "A small assembly (compared to a CIRCUIT_PACK) with connectors compatible with those in a holder.
+       The assembly is designed to be mounted in a holder (SLOT) of a CIRCUIT_PACK or STAND_ALONE_UNIT.";
+  }
+
+  identity EQUIPMENT_CATEGORY_STAND_ALONE_UNIT {
+    base EQUIPMENT_CATEGORY;
+    description
+      "An assembly with connectors for cabling and potentially with holders.
+       The assembly is designed to be mounted in a freeform environment (on a table or simple mechanical cabinet).
+       May support holders (SLOTs) for CIRCUIT_PACKs or for SMALL_FORMFACTOR_PLUGGABLEs.";
+  }
+
+  identity EQUIPMENT_CATEGORY_RACK {
+    base EQUIPMENT_CATEGORY;
+    description
+      "A mechanical assembly with cabling and predefined mounting points for particular SUBRACK types.
+       The assembly is designed to be mounted on the floor in a row with other RACKs.";
+  }
+
+  identity HOLDER_CATEGORY {
+    description
+      "none";
+  }
+
+  identity HOLDER_CATEGORY_SLOT {
+    base HOLDER_CATEGORY;
+    description
+      "A guided holder with fixed connectors.
+       The guided holder is designed to take a particular form of CIRCUIT_PACK or SMALL_FORMFACTOR_PLUGGABLE";
+  }
+
+  /****************************************
+   * package resilience
+   **************************************/ 
+
+  typedef protection-reason {
+    type identityref {
+      base PROTECTION_REASON;
+    }
+    description
+      "The cause of the current protection state.";
+  }
+
+  typedef route-selection-control {
+    type identityref {
+      base ROUTE_SELECTION_CONTROL;
+    }
+    description
+      "Possible degrees of administrative control applied to the Route selection.";
+  }
+
+  typedef route-selection-reason {
+    type identityref {
+      base ROUTE_SELECTION_REASON;
+    }
+    description
+      "The cause of the current route selection.";
+  }
+
+  typedef switch-control {
+    type identityref {
+      base SWITCH_CONTROL;
+    }
+    description
+      "none";
+  }
+
+  typedef switch-state-reason {
+    type identityref {
+      base SWITCH_STATE_REASON;
+    }
+    description
+      "Explains the reason for the current switch state.";
+  }
+
+  typedef reversion-mode {
+    type identityref {
+      base REVERSION_MODE;
+    }
+    description
+      "The reversion mode associated with protection.";
+  }
+
+  typedef protection-type {
+    type string;
+    description
+      "Identifies the type of protection of an FcSwitch.";
+  }
+
+  typedef resilience-control {
+    type identityref {
+      base RESILIENCE_CONTROL;
+    }
+    description
+      "none";
+  }
+
+  /****************************************
+   * package timing
+   **************************************/ 
+
+  typedef run-mode {
+    type identityref {
+      base RUN_MODE;
+    }
+    description
+      "none";
+  }
+
+  grouping layer-protocol-name-and-qualifier {
+    leaf layer-protocol-qualifier {
+      type string;
+      description
+        "Qualifies the use of the LayerProtocol where the same LayerProtocol may be used recursively such that each recursion has the same characteristic information in the main traffic path but where there is some distinction in some other aspect.
+         An example of use is in the case of the PHOTONIC_MEDIA LayerProtocol. All photonic media is of the same characteristic in the main traffic path, just a channel that enables the flow of photons, but may differ in overhead and with respect to level of nesting.
+         For the PHOTONIC_MEDIA, qualifiers may include OMS (Optical Multiplex Section), OTS (Optical Transmission Section) and NMCA (Network Media Channel Assembly).";
+    }
+    leaf layer-protocol-name {
+      type layer-protocol-name-type;
+      description
+        "The name of the LayerProtocol chosen from a controlled list.
+         LayerProtocol names include:
+         - PHOTONIC_MEDIA
+         - ODU
+         - ETHERNET";
+    }
+    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.
+       Layer protocol names include:
+       -    Layer 1 (L1): OTU, ODU
+       -    Layer 2 (L2): Carrier Grade Ethernet (ETY, ETH), MPLS-TP (MT)
+      ";
+  }
+
+  grouping name-and-value {
+    leaf value-name {
+      type string;
+      description
+        "The name of the value. The value need not have a name.";
+    }
+    leaf value {
+      type string;
+      description
+        "The value.";
+    }
+    description
+      "A scoped name-value pair.";
+  }
+
+  grouping local-id-and-class {
+    leaf class-of-instance {
+      type string;
+      description
+        "The class to which the name refers.";
+    }
+    leaf local-id {
+      type string;
+      description
+        "The localId of the entity.";
+    }
+    description
+      "The localId and the class of entity that it identifies.";
+  }
+
+  grouping port-role-rule {
+    leaf-list port-role {
+      type port-role;
+      description
+        "The role of the port considered.";
+    }
+    leaf-list port-role-rule {
+      type port-role-rule-option;
+      description
+        "none";
+    }
+    description
+      "Constrains which ports the rule applies to.";
+  }
+
+  grouping signal-property-rule {
+    leaf signal-property-name {
+      type string;
+      description
+        "The name of the signal property to which the rule applies.";
+    }
+    leaf signal-property-value-rule {
+      type signal-property-value-rule;
+      description
+        "Indicates whether signal properties should be accounted for or not.";
+    }
+    description
+      "none";
+  }
+
+  grouping metaclass-class {
+    leaf name {
+      type metaclass-class-name;
+      description
+        "The text name of the Class";
+    }
+    description
+      "This datatype represents the '<<Metaclass>> Class' from the UML metamodel.
+       An instance of the referencing Class (e.g. LTP) will reference a Class (not an instance).
+       This referenced Class will provide definition to extend the referencing instance.
+       So, for example, an LTP instance will have the attributes defined in the LTP class and also the attributes defined in the referenced Class (an LtpSpec).
+       The referenced Class may:
+       (1) provide invariant properties (that are the same for many instances) that then are not conveyed with the referencing instance.
+       (2) provide definitions for attributes that are present in the instance that are not defined in the Class of the instance (these attribute may have been pruned and refactored from one or more external definition sources).
+       (3) apply constraints to attributes in the instance that were defined in the class of the referencing instance.
+       (4) replace attributes that were present in the class of the referencing instance by a new definition (same name).;
+      ";
+  }
+
+  grouping external-managed-universal-id {
+    leaf manager-identifier {
+      type string;
+      description
+        "none";
+    }
+    leaf external-managed-uuid {
+      type string;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  /****************************************
+   * package core-network-model
+   **************************************/ 
+  /****************************************
+   * grouping statements for object classes
+   **************************************/ 
+  /****************************************
+   * package resilience
+   **************************************/ 
+
+  grouping control-parameters-pac {
+    leaf reversion-mode {
+      type reversion-mode;
+      description
+        "Indicates whether the protection scheme is revertive or non-revertive.";
+    }
+    leaf wait-to-revert-time {
+      type int64;
+      default "15";
+      description
+        "If the protection system is revertive, this attribute specifies the time, in minutes, to wait after a fault clears on a higher priority (preferred) resource before switching to the preferred resource.
+         If a further fault occurs on the preferred resource in the waitToRevertTime then the reversion attempt is cancelled.
+         The WTR timer is overridden by the needs of a higher priority signal. Depending upon which resource is requested this may simply cancel the attempt to revert of may cause immediate reversion.";
+    }
+    leaf prot-type {
+      type protection-type;
+      description
+        "Indicates the protection scheme that is used for the ProtectionGroup.";
+    }
+    leaf hold-off-time {
+      type int64;
+      description
+        "This attribute indicates the time, in milliseconds, between declaration of a switch trigger condition (e.g. signal degrade or signal fail), and the initialization of the protection switching algorithm.";
+    }
+    leaf network-scheme-specification {
+      type string;
+      description
+        "none";
+    }
+    description
+      "A list of control parameters to apply to a switch.";
+  }
+
+  grouping fc-switch {
+    leaf hold-off-time {
+      type int64;
+      description
+        "Moved to ControlParameter_Pac. This attribute indicates the time, in seconds, between declaration of unacceptable quality of signal on the currently selected FcPort, and the initialization of the protection switching algorithm. ";
+    }
+    leaf prot-type {
+      type protection-type;
+      description
+        "Indicates the protection scheme that is used for the ProtectionGroup.";
+    }
+    leaf reversion-mode {
+      type reversion-mode;
+      description
+        "Moved to ControlParameter_Pac. This attribute whether or not the protection scheme is revertive or non-revertive. ";
+    }
+    list selected-fc-port {
+      key "local-id";
+      uses fc-port;
+      description
+        "Indicates which points are selected by the switch.
+         Depending on the switch spec (via FcSpec)
+         - more than one FcPort can be selected at any one time (e.g. egress switch, ingress packet switch)
+         - zero FcPorts can be selected. For an ingress switch this indicates that the switch common (egress) is 'high impedance'
+         .";
+    }
+    leaf-list profile-proxy {
+      type string;
+      description
+        "Provides a set of predefined values for switch control in place of the direct values available via the FcSwitch or via _configurationAndSwitchControl.";
+    }
+    leaf configuration-and-switch-control {
+      type string;
+      description
+        "A ConfigurationAndSwitchController that is external to the switch (it is coordinating many switches and hence cannot be encapsulated in the FcSwitch.";
+    }
+    leaf internal-configuration-and-switch-control {
+      type string;
+      description
+        "A ConfigurationAndSwitchController encapsulated in the FcSwitch that controls the FcSwitch alone.";
+    }
+    leaf switch-control {
+      type switch-control;
+      description
+        "Degree of administrative control applied to the switch selection.";
+    }
+    leaf switch-selects-ports {
+      type port-direction;
+      description
+        "Indicates whether the switch selects from ingress to the FC or to egress of the FC, or both.";
+    }
+    leaf switch-selection-reason {
+      type switch-state-reason;
+      config false;
+      description
+        "The reason for the current switch selection.";
+    }
+    container control-parameters {
+      uses control-parameters-pac;
+      description
+        "none";
+    }
+    leaf wait-to-restore-time {
+      type int64;
+      description
+        "Moved to ControlParameter_Pac and changed to waitToRevert. If the protection system is revertive, this attribute specifies the amount of time, in seconds, to wait after the preferred FcPort returns to an acceptable state of operation (e.g. a fault has cleared) before restoring traffic to that preferred FcPort.";
+    }
+    uses local-class;
+    description
+      "The FcSwitch class models the switched forwarding of traffic (traffic flow) between FcPorts and is present where there is protection functionality in the FC.
+       If an FC exposes protection (having two or more FcPorts that provide alternative identical inputs/outputs), the FC will have one or more associated FcSwitch objects to represent the alternative flow choices visible at the edge of the FC.
+       The FC switch represents and defines a protection switch structure encapsulated in the FC and essentially 'decorates' FCs that are involved in resilience schemes that use switching in a protection mechanism.
+       Essentially FcSwitch performs one of the functions of the Protection Group in a traditional model. It associates 2 or more FcPorts each playing the role of a Protection Unit.
+       One or more protection, i.e. standby/backup, FcPorts provide protection for one or more working (i.e. regular/main/preferred) FcPorts where either protection or working can feed one or more protected FcPort.
+       The switch may be used in revertive or non-revertive (symmetric) mode. When in revertive mode it may define a waitToRestore time.
+       It may be used in one of several modes including source switched, destination switched, source and destination switched etc. (covering cases such as 1+1 and 1:1).
+       It may be locked out (prevented from switching), force switched or manual switched.
+       It will indicate switch state and change of state.
+       The switch can be switched away from all sources such that it becomes open and hence two coordinated switches can both feed the same LTP so long as at least one of the two is switched away from all sources (is 'open').
+       The ability for a Switch to be 'high impedance' allows bidirectional ForwardingConstructs to be overlaid on the same bidirectional LTP where the appropriate control is enabled to prevent signal conflict.
+       This ability allows multiple alternate routes to be present that otherwise would be in conflict.";
+  }
+
+  grouping casc-port {
+    leaf port-role {
+      type string;
+      description
+        "The role of the port of a C&SC.
+         The interpretation of the role is provided by the C&SC spec.
+         The C&SC spec will set out the role in the context of C&SC functions.
+         The role will indicate how the port relates to the associated entity, e.g. is conveying messages.";
+    }
+    container port-role-properties {
+      uses casc-port-role-properties;
+      description
+        "A link to properties associated with the port role as defined by the CascSpec.";
+    }
+    list logical-termination-point {
+      key "uuid";
+      uses logical-termination-point;
+      description
+        "The LTP that conveys the messages related to the port and/or is subject to control action and/or provides indications of state etc.
+         For direct association, there may be up to 2 LTPs (to account for directionality differences).
+         In the specification representation, there may be a number rules that provide further LTP relationships that are implicit in the instantiated model.";
+    }
+    leaf encapsulating-casc-port {
+      type leafref {
+        path "/core-model:casc-port/core-model:uuid";
+      }
+      description
+        "In a case where there is nested C&SC the ports are also nested and this references the superior port.";
+    }
+    leaf is-related-control-flow-disabled {
+      type boolean;
+      default "true";
+      description
+        "If TRUE, then any Control signal flow related to this controller (to, from or drop-and-continue) is prevented from passing through the related LTP carrying the signaling for this controller.
+         This can be considered as being realized using an FcSwitch in an FC embedded in the LP at the layer of signaling to disconnect the FcPort bidirectionally.
+         This FcSwitch should be represented in the LTP spec.
+         Note that the FcSwitch will be at the granularity of the relevant control signal and other flows may be passed uninterrupted.";
+    }
+    leaf is-controlled-fc-port-disabled {
+      type boolean;
+      description
+        "If TRUE, then the related FcPort on the FC is disabled and hence signal will not flow through that FcPort.
+         This is realized using an FcSwitch to disconnect the FcPort bidirectionally.
+         Note that as the controller may control many FCs and may switch them all together as one, in an implementation the FcSwitch could be omitted from the FC instance model.
+         Any omission should be explained by the FcSpec.
+         This is equivalent to a blocked indication on the LTP used in other representations.";
+    }
+    leaf is-protection-lock-out {
+      type boolean;
+      description
+        "The resource is configured to temporarily not be available for use in the protection scheme(s) it is part of.
+         This overrides all other protection control states including forced.
+         If the item is locked out, then it cannot be used under any circumstances.
+         This causes isRelatedControlFlowDisabled to become TRUE and isControlledFcPortDisabled to become TRUE.";
+    }
+    uses global-class;
+    description
+      "A port of a C&SC that can be used where there is significant asymmetry to be represented.
+       This can represent any combination of:
+       - the conveying of messaging to/from the C&SC
+       - the conveying of control action
+       - the providing of indications of state etc.";
+  }
+
+  grouping casc-port-role-properties {
+    leaf signalling-format {
+      type string;
+      description
+        "A reference to the definition of the signalling format used by the instance referenced by the related port.
+         This is a placeholder for a more sophisticated capability.";
+    }
+    leaf monitoring-details {
+      type string;
+      description
+        "Information on what is being monitored in the instance referenced by the related port.
+         This is a placeholder for a more sophisticated capability.";
+    }
+    leaf control-details {
+      type string;
+      description
+        "Information on what is being controlled in the instance referenced by the related port.
+         This is a placeholder for a more sophisticated capability.";
+    }
+    description
+      " Container for properties associated with the port role as defined by the CascSpec.";
+  }
+
+  /****************************************
+   * package timing
+   **************************************/ 
+
+  grouping clock {
+    leaf run-mode {
+      type run-mode;
+      config false;
+      description
+        "The run-mode of the frequency system clock, such as free-run, locked, and holdover.";
+    }
+    leaf-list encompassed-clock {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:embedded-clock/core-model:local-id";
+      }
+      description
+        "A clock may be emergent from and may effectively encompass several clocks in a resilient solution.";
+    }
+    list encapsulated-fc {
+      key "uuid";
+      uses forwarding-construct;
+      description
+        "A Clock may encapsulate an FC related to resilience where the clock provides an output that is essentially that of one of several other clocks in the resilience scheme.";
+    }
+    leaf-list sync-ltp {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+      }
+      description
+        "A clock may feed one or more LTPs with timing information to propagate across the network (it may feed no LTPs).";
+    }
+    leaf-list encapsulated-casc {
+      type string;
+      description
+        "The clock may encapsulate a complex FC where there is a resilience mechanism active and that FC will need to be controlled.
+         The Casc to control the FC can be encapsulated in the Clock.";
+    }
+    leaf-list phase-aligned-clock {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:embedded-clock/core-model:local-id";
+      }
+      description
+        "One or more clocks can be actively phase aligned (this is especially relevant in a hitless resilience scheme).";
+    }
+    uses local-class;
+    description
+      "Clock function processes the input sync information (frequency and ssm or time stamp and PTP announce messages) and provides the modified sync information to the sync distribution function.
+       If none of the inputs meet the quality defined by the controller the clock may enter a hold-over or free run mode.
+       The status of the clock will be reported to the controller.";
+  }
+
+  grouping forwarding-domain {
+    leaf-list layer-protocol-name {
+      type layer-protocol-name-type;
+      min-elements 1;
+      description
+        "One or more protocol layers at which the FD represents the opportunity to enable forwarding between LTP that bound it.";
+    }
+    leaf-list lower-level-fd {
+      type leafref {
+        path "/core-model:control-construct/core-model:forwarding-domain/core-model:uuid";
+      }
+      description
+        "The FD class supports a recursive aggregation relationship (HigherLevelFdEncompassesLowerLevelFds) such that the internal construction of an FD can be exposed as multiple lower level FDs and associated Links (partitioning).
+         The aggregated FDs and Links form an interconnected topology that provides and describes the capability of the aggregating FD.
+         Note that the model actually represents an aggregation of lower level FDs into higher level FDs as views rather than FD partition, and supports multiple views.
+         Aggregation allow reallocation of capacity from lower level FDs to different higher level FDs as if the network is reorganized (as the association is aggregation not composition).";
+    }
+    list fc {
+      key "uuid";
+      uses forwarding-construct;
+      description
+        "An FD aggregates one or more FCs. An aggregated FC connects LTPs that bound the FD.";
+    }
+    leaf-list logical-termination-point {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+      }
+      description
+        "An instance of FD is associated with zero or more LTP objects.
+         The LTPs that bound the FD provide capacity for forwarding.
+         For asymmetric FDs, the association to the LTP is via the FdPort.";
+    }
+    list fd-port {
+      key "local-id";
+      uses fd-port;
+      description
+        "The association of the FD to LTPs is either made directly for symmetric FDs or via FdPort for asymmetric FDs.";
+    }
+    uses global-class;
+    description
+      "The ForwardingDomain (FD) class models the topological component that represents a forwarding capability that provides the opportunity to enable forwarding (of specific transport characteristic information at one or more protocol layers) between points.
+       The FD object provides the context for and constrains the formation, adjustment and removal of FCs and hence offers the potential to enable forwarding.
+       The FCs may be formed between LTPs at the boundary of the FD or between AccessPorts at the boundary of the FD (for the most basic media layers cases - most media cases use LTPs).
+       A number of FDs (related by Links) may be grouped and abstracted to form an FD where that FD represents the effect of the underlying FDs but where the detailed structure is not apparent.
+       This grouping and abstraction is potentially recursive.
+       This aspect is essentially equivalent to ITU-T partitioning but this is an aggregation not a composition, so it allows an FD to be in multiple higher level FDs.
+       The notion of abstraction/grouping assumes that small things are brought together into larger things as opposed to ITU-T partitioning that assumes large things are broken down into smaller things.
+       An FD represents an abstraction of some combination of software behavior, electronic behavior and physical structure that provides a forwarding capability.
+       At a lower level of recursion an FD could represent a forwarding capability within a device.
+       A device may encompass two or more disjoint forwarding capabilities and may support more than one layer protocol, hence more than one FD.
+       A routing fabric may be logically partitioned to represent connectivity constraints, hence the FD representing the routing fabric may be partitioned into a number of FDs representing the constraints.
+       The FD represents a subnetwork [ITU-T G.800], FlowDomain [TMF 612] and a MultiLayerSubNetwork (MLSN) [TMF 612].
+       As in the TMF concept of MLSN the FD can support more than one layer-protocol.
+       Note that the ITU-T G.800 subnetwork is a single layer entity.";
+  }
+
+  grouping forwarding-construct {
+    leaf layer-protocol-name {
+      type layer-protocol-name-type;
+      description
+        "The layerProtocol at which the FC enables the potential for forwarding.";
+    }
+    leaf-list lower-level-fc {
+      type leafref {
+        path "/core-model:control-construct/core-model:forwarding-domain/core-model:fc/core-model:uuid";
+      }
+      description
+        "An FC object supports a recursive aggregation relationship such that the internal construction of an FC can be exposed as multiple lower level FC objects (partitioning).
+         Aggregation is used as for the FD to allow changes in hierarchy.
+         FC aggregation reflects FD aggregation.
+         For example a low level FC could represent what would have traditionally been considered as a 'Cross-Connection' in an 'NE'. The 'Cross-Connection' in an 'NE' is not necessarily the lowest level of FC partitioning.
+        ";
+    }
+    leaf fc-route {
+      type string;
+      description
+        "An FC object can have zero or more routes, each of which is defined as a list of lower level FC objects describing the flow across the network.";
+    }
+    list fc-port {
+      key "local-id";
+      uses fc-port;
+      description
+        "The FcPorts define the boundary of the FC.
+         The FC is accessed via the FcPorts.
+         Flow within the FC is defined in terms of its FcPorts.";
+    }
+    list fc-switch {
+      key "local-id";
+      uses fc-switch;
+      description
+        "If an FC exposes protection (having two FcPorts that provide alternative identical inputs/outputs), the FC will have one or more associated FcSwitch objects.
+         The arrangement of switches for a particular instance is described by a referenced FcSpec.";
+    }
+    leaf-list configuration-and-switch-control {
+      type string;
+      description
+        "Reference to a ConfigurationAndSwitchController that coordinates switches encapsulated in the FC.
+         The controller coordinates multiple switches in the same FC.";
+    }
+    leaf forwarding-direction {
+      type forwarding-direction;
+      description
+        "The directionality of the ForwardingConstruct.
+         Is applicable to simple ForwardingConstructs where all FcPorts are BIDIRECTIONAL (the ForwardingConstruct will be BIDIRECTIONAL) or UNIDIRECTIONAL (the ForwardingConstruct will be UNIDIRECTIONAL).
+         Is not present in more complex cases.
+         In the case of media the FcPorts and FC may also be omni-directional.";
+    }
+    leaf is-protection-lock-out {
+      if-feature "forwardingconstructisprotectionlockout";
+      type boolean;
+      description
+        "The resource is configured to temporarily not be available for use in the protection scheme(s) it is part of.
+         This overrides all other protection control states including forced.
+         If the item is locked out then it cannot be used under any circumstances.
+         Note: Only relevant when part of a protection scheme.";
+    }
+    leaf service-priority {
+      type int64;
+      description
+        "Relevant where 'service' FCs are competing for server resources.
+         Used to determine which signal FC is allocated resource.
+         The priority of the 'service' with respect to other 'services'.
+         Lower numeric value means higher priority.
+         Covers cases such as pre-emptible in a resilience solution. ";
+    }
+    leaf-list supported-link {
+      type string;
+      description
+        "An FC that spans between LTPs that terminate the LayerProtocol usually supports one or more links in the client layer.";
+    }
+    leaf supporting-pc {
+      type string;
+      description
+        "The functionality supporting this entity.";
+    }
+    uses global-class;
+    description
+      "The ForwardingConstruct (FC) represents enabled constrained potential for forwarding between two or more FcPorts at a particular specific layerProtocol .
+       The constraint is explained by the FcSpec. Even when an FC is in place enabling potential for flow, it is possible that no information is flowing as there is no flow matching the constraint, hence 'potential'.
+       Like the LTP, the FC supports any transport protocol including all analogue, circuit and packet forms.
+       The FC is used to effect forwarding of transport characteristic (layer protocol) information.
+       An FC can be in only one ForwardingDomain (FD).
+       The FC is a forwarding entity.
+       At a low level of the recursion, a FC represents a cross-connection within an NE. It may also represent a fragment of a cross-connection under certain circumstances.
+       The FC object can be used to represent many different structures including point-to-point (P2P), point-to-multipoint (P2MP), rooted-multipoint (RMP) and multipoint-to-multipoint (MP2MP) bridge and selector structures for linear, ring or mesh protection schemes.
+       When applied to media, the FC represents the ability for a flow/wave (potentially containing information), to be propagated between FcPorts.
+       The existence of a FC instance is independent of the presence (or absence) of a flow/wave (and any information encoded within it) where flow/wave covers the progressing of any analogue or digital (packet/frame etc.) structure.
+       A flow/wave cannot propagate in the absence of a FC instance.";
+  }
+
+  grouping fc-port {
+    leaf-list logical-termination-point {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+      }
+      max-elements 2;
+      description
+        "The FcPort may be associated with more than one LTP when the FcPort is bidirectional and the LTPs are unidirectional.
+         Multiple LTP
+         - Bidirectional FcPort to two Uni-directional LTPs
+         Zero LTP
+         - BreakBeforeMake transition
+         - Planned LTP not yet in place
+         - Off-network LTP referenced through other mechanism.";
+    }
+    leaf role {
+      type port-role;
+      description
+        "Each FcPort of the FC has an assigned role (e.g., working, protection, protected, symmetric, hub, spoke, leaf, root) in the context of the FC with respect to the FC function.
+         The role is fixed by the referenced FcSpec.";
+    }
+    leaf fc-port-direction {
+      type port-direction;
+      description
+        "The orientation of the defined flow at the FcPort.";
+    }
+    leaf is-protection-lock-out {
+      if-feature "fcportisprotectionlockout";
+      type boolean;
+      description
+        "The resource is configured to temporarily not be available for use in the protection scheme(s) it is part of.
+         This overrides all other protection control states including forced.
+         If the item is locked out, then it cannot be used under any circumstances.
+         Note: Only relevant when part of a protection scheme.";
+    }
+    leaf selection-priority {
+      type int64;
+      description
+        "The preference priority of the resource in the protection scheme for a particular FC.
+         The lower the value the higher the priority.
+         A lower value of selection priority is preferred
+         If two resources have the same value they are of equal priority.
+         There is no preference between equal priorities.
+         If a resource with the lowest value selection priority fails,, then the next lowest value available (may be the same value) is picked.
+         Hence on failure of the current resource the next best available will be selected.
+         If there are several equal values, the choice is essentially arbitrary.
+         If the scheme is revertive then when a resource of higher priority than the currently selected resource recovers it will be selected.
+         This is equivalent to working/protection but allows for all static scheme types with n:m capability.
+         In simple schemes 0 = working and 1 = protecting.
+         If selection priority of an FcPort is increased in value and the FC is currently selecting this FcPort then if another FcPort of a lower selection priority value is available, the wait to restore process will come into action as if the other FcPort had just become available.
+         If selection priority of a FcPort is changed and the FC is not currently selecting this FcPort but is selecting an item that is now of a higher numeric value than the changed FcPort then the wait to restore process will come into action as if the other FcPort had just become available.";
+    }
+    leaf is-internal-port {
+      type boolean;
+      config false;
+      description
+        "The FcPort is not exposed and cannot have associated LTPs.
+         This form of FcPort is used to enable chaining of FcSwitches or FcRoutes in complex network protection scenarios.";
+    }
+    leaf-list fc-route-feeds-fc-port-egress {
+      type string;
+      description
+        "Identifies which route(s) currently actively forward to the FcPort to exit the FC to an LTP (or for an internal FcPort to propagate to the next internal switch/route).";
+    }
+    leaf-list fc-port {
+      type leafref {
+        path "/core-model:control-construct/core-model:forwarding-domain/core-model:fc/core-model:fc-port/core-model:local-id";
+      }
+      max-elements 2;
+      description
+        "An FcPort may have a direct association to another FcPort where there is a transition from one domain to another but where there has been no termination.";
+    }
+    leaf-list port-of-internal-fc {
+      type leafref {
+        path "/core-model:control-construct/core-model:forwarding-domain/core-model:fc/core-model:fc-port/core-model:local-id";
+      }
+      description
+        "none";
+    }
+    uses local-class;
+    description
+      "The association of the FC to LTPs is always made via FcPorts.
+       In the case of media the association between FCs is made via their FcPorts and the association of an FC to the physical Pin is made via the FcPort.
+       The FcPort class models the access to the FC function.
+       The traffic forwarding between the associated FcPorts of the FC depends upon the type of FC and may be associated with FcSwitch object instances.
+       In cases where there is resilience, the FcPort may convey the resilience role of the access to the FC.
+       It can represent a protected (resilient/reliable) point or a protecting (unreliable working/main or protection/spare) point.
+       The FcPort replaces the Protection Unit of a traditional protection model (e.g., ITU-T).
+       The ForwardingConstruct can be considered as a component and the FcPort as a Port on that component.";
+  }
+
+  grouping layer-protocol {
+    leaf layer-protocol-name {
+      type layer-protocol-name-type;
+      description
+        "Indicate the specific layer-protocol described by the LayerProtocol entity.";
+    }
+    leaf configured-client-capacity {
+      type string;
+      description
+        "Provides a summarized view of the client capacity that is configurable for use.
+         Note the client LTP association should provide all necessary detail hence this attribute is questionable.";
+    }
+    leaf lp-direction {
+      type termination-direction;
+      description
+        "The overall directionality of the LP.
+         - A BIDIRECTIONAL LP will have some SINK and/or SOURCE flows.
+         - A SINK LP can only contain elements with SINK flows or CONTRA_DIRECTION_SOURCE flows
+         - A SOURCE LP can only contain SOURCE flows or CONTRA_DIRECTION_SINK flows";
+    }
+    leaf termination-state {
+      type termination-state;
+      description
+        "Indicates whether the layer is terminated and if so how.";
+    }
+    leaf-list configuration-and-switch-control {
+      type string;
+      description
+        "A switch controller external to the LayerProtocol.
+         The controller will coordinate one or more switches in one or more FCs related to the LayerProtocol";
+    }
+    leaf is-protection-lock-out {
+      type boolean;
+      description
+        "The resource is configured to temporarily not be available for use in the protection scheme(s) it is part of.
+         This overrides all other protection control states including forced.
+         If the item is locked out, then it cannot be used under any circumstances.
+         Note: Only relevant when part of a protection scheme.";
+    }
+    leaf fc-blocks-signal-to-lp {
+      type string;
+      description
+        "Indicates whether the associated FC is blocking signal to/from the LTP.";
+    }
+    uses local-class;
+    description
+      "The projection of an LTP into each transport layer is represented by a LayerProtocol (LP) instance. A LayerProtocol instance can be used for controlling termination and monitoring functionality.
+       It can also be used for controlling the adaptation (i.e. aggregation, encapsulation and/or multiplexing of client signal), tandem connection monitoring, traffic conditioning and/or shaping functionality at an intermediate point along a connection.
+       Where the client – server relationship is fixed 1:1 and immutable, the layers can be encapsulated in a single LTP instance. Where there is a n:1 relationship between client and server, the layers must be split over two separate instances of LTP. ";
+  }
+
+  grouping logical-termination-point {
+    leaf-list server-ltp {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+      }
+      description
+        "References contained LTPs representing servers of this LTP in an inverse multiplexing configuration (e.g. VCAT).";
+    }
+    leaf-list client-ltp {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+      }
+      description
+        "References contained LTPs representing client traffic of this LTP for normal cases of multiplexing.";
+    }
+    list layer-protocol {
+      key "local-id";
+      min-elements 1;
+      uses layer-protocol;
+      description
+        "Ordered list of LayerProtocols that this LTP is comprised of where the first entry in the list is the lowest server layer (e.g. physical).";
+    }
+    leaf connected-ltp {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+      }
+      description
+        "Applicable in a simple context where two LTPs are associated via a non-adjustable enabled forwarding.
+         Reduces clutter removing the need for two additional LTPs and an FC with a pair of FcPorts.";
+    }
+    leaf peer-ltp {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+      }
+      description
+        "References contained LTPs representing the reversal of orientation of flow where two LTPs are associated via a non-adjustable enabled forwarding and where the referenced LTP is fully dependent on this LTP.";
+    }
+    leaf-list physical-port-reference {
+      type leafref {
+        path "/core-model:control-construct/core-model:equipment/core-model:uuid";
+        require-instance true;
+      }
+      description
+        "One or more text labels for the unmodeled physical port associated with the LTP.
+         In many cases there is no associated physical port.";
+    }
+    leaf-list ltp-in-other-view {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+      }
+      description
+        "References one or more LTPs in other views that represent this LTP.
+         The referencing LTP is the provider of capability.";
+    }
+    leaf ltp-direction {
+      type termination-direction;
+      description
+        "The overall directionality of the LTP.
+         - A BIDIRECTIONAL LTP must have at least some LPs that are BIDIRECTIONAL but may also have some SINK and/or SOURCE LPs.
+         - A SINK LTP can only contain SINK LPs
+         - A SOURCE LTP can only contain SOURCE LPs";
+    }
+    leaf transfer-capacity-pac {
+      type string;
+      description
+        "The LTP has as an inherent capacity derived from underlying capability.
+         The capacity of a particular LTP may be dependent upon other uses of resource in the device and hence it may vary over time.
+         The capacity of a Link is dependent upon the capacity of the LTPs at its ends.
+         An LTP may be an abstraction and virtualization of a subset of the underlying capability offered in a view or may be directly reflecting the underlying realization.";
+    }
+    leaf-list fd-rule-group {
+      type leafref {
+        path "/core-model:control-construct/core-model:forwarding-domain/core-model:uuid";
+      }
+      description
+        "An LTP can reference FD rules that the FD that aggregates it also references so that the rules can then apply to the LTP.";
+    }
+    list embedded-clock {
+      key "local-id";
+      uses clock;
+      description
+        "none";
+    }
+    leaf supporting-pc {
+      type string;
+      description
+        "The functionality supporting this entity.";
+    }
+    uses global-class;
+    description
+      "The LogicalTerminationPoint (LTP) class encapsulates the termination and adaptation functions of one or more transport layers represented by instances of LayerProtocol.
+       The encapsulated transport layers have a simple fixed 1:1 client-server relationship defined by association end ordering.
+       The structure of LTP supports all transport protocols including analogue, circuit and packet forms.";
+  }
+
+  grouping fd-port {
+    leaf-list logical-termination-point {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+      }
+      max-elements 2;
+      description
+        "An instance of FD is associated with zero or more LTP objects.
+         The LTPs that bound the FD provide capacity for forwarding.
+         For asymmetric FDs, the association to the LTP is via the FdPort.";
+    }
+    leaf role {
+      type port-role;
+      description
+        "Each FdPort of the FD has a role (e.g., symmetric, hub, spoke, leaf, root) in the context of the FD with respect to the FD capability. ";
+    }
+    leaf fd-port-direction {
+      type port-direction;
+      description
+        "The orientation of the defined flow at the FdPort.";
+    }
+    leaf-list fc-port {
+      type leafref {
+        path "/core-model:control-construct/core-model:forwarding-domain/core-model:fc/core-model:fc-port/core-model:local-id";
+      }
+      description
+        "Where an FD is asymmetric and hence has FdPorts and where that FD and supports FCs, appropriate FdPorts of that FD support the corresponding FcPorts.";
+    }
+    leaf-list fd-port {
+      type leafref {
+        path "/core-model:control-construct/core-model:forwarding-domain/core-model:fd-port/core-model:local-id";
+      }
+      max-elements 2;
+      description
+        "An FdPort may have a direct association to another FdPort where there is a transition from one domain to another but where there has been no termination.";
+    }
+    uses local-class;
+    description
+      "The association of the FD to LTPs may be direct for symmetric FDs and may be via FdPort for asymmetric FDs.
+       The FdPort class models the role of the access to the FD function.
+       The capability to set up FCs between the associated FdPorts of the FD depends upon the type of FD. It is asymmetry in this capability that brings the need for FdPort.
+       The FD can be considered as a component and the FdPort as a Port on that component.";
+  }
+
+  feature forwardingconstructisprotectionlockout {
+    description
+      "none";
+  }
+
+  feature fcportisprotectionlockout {
+    description
+      "none";
+  }
+
+  /****************************************
+   * package associations
+   **************************************/ 
+  /****************************************
+   * package core-foundation-model
+   **************************************/ 
+  /****************************************
+   * package super-classes-and-common-packages
+   **************************************/ 
+  /****************************************
+   * grouping statements for object classes
+   **************************************/ 
+
+  grouping name {
+    list name {
+      key "value-name";
+      uses name-and-value;
+      description
+        "List of names.";
+    }
+    description
+      "Name: A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity.";
+  }
+
+  grouping global-class {
+    container external-managed-id {
+      uses external-managed-universal-id;
+      description
+        "A list of external managed universal identifiers, set by an external tool. There must not be any function implemented on the ControlConstruct itself next to updating the list on request and storing it persitenly. ";
+    }
+    leaf local-id {
+      type string;
+      description
+        "An identifier that is unique in the context of some scope that is less than the global scope.
+         (This should be considered in the context of Identifier: A property of an entity/role with a value that is unique within an identifier space, where the identifier space is itself unique, and immutable. The identifier therefore represents the identity of the entity/role. An identifier carries no semantics with respect to the purpose of the entity.)";
+    }
+    leaf uuid {
+      type universal-id;
+      description
+        "UUID: An identifier that is universally unique
+         (This should be considered in the context of Identifier: A property of an entity/role with a value that is unique within an identifier space, where the identifier space is itself globally unique, and immutable. An identifier carries no semantics with respect to the purpose or state of the entity)
+         The uuid should be treated as opaque by the user.";
+    }
+    uses name;
+    uses label;
+    uses extension;
+    uses state-pac;
+    uses address;
+    description
+      "Represents a type of thing (an Entity) that has instances which can exist in their own right (independently of any others).
+       Entity: Has identity, defined boundary, properties, functionality and lifecycle in a global context.
+       (This should be considered in the context of a Class: (usage) The representation of a thing that may be an entity or an inseparable Entity Feature).";
+  }
+
+  grouping local-class {
+    leaf local-id {
+      type string;
+      description
+        "An identifier that is unique in the context of some scope that is less than the global scope.
+         (This should be considered in the context of Identifier: A property of an entity/role with a value that is unique within an identifier space, where the identifier space is itself unique, and immutable. The identifier therefore represents the identity of the entity/role. An identifier carries no semantics with respect to the purpose of the entity.)";
+    }
+    uses name;
+    uses label;
+    uses extension;
+    uses state-pac;
+    uses address;
+    description
+      "A LocalClass represents a Feature of an Entity. It is inseparable from a GlobalClass but is a distinct feature of that GlobalClass such that the instances of LocalClass are able to have associations to other instances.
+       Feature of an Entity: An inseparable, externally distinguishable part of an entity.
+       The mandatory LocalId of the LocalClass instance is unique in the context of the GlobalClass from which it is inseparable.
+       (This should be considered in the context of a Class: (usage) The representation of a thing that may be an entity or an inseparable feature of an entity.)
+      ";
+  }
+
+  grouping label {
+    list label {
+      key "value-name";
+      uses name-and-value;
+      description
+        "List of labels.";
+    }
+    description
+      "A property of an entity with a value that is not expected to be unique and is allowed to change. A label carries no semantics with respect to the purpose of the entity and has no effect on the entity behavior or state.";
+  }
+
+  grouping extension {
+    list extension {
+      key "value-name";
+      uses name-and-value;
+      description
+        "List of simple name-value extensions.";
+    }
+    description
+      "Extension provides an opportunity to define properties not declared in the class that extend the class enabling a realization with simple ad-hoc extension of standard classes to be conformant.";
+  }
+
+  grouping universal-id-authority {
+    leaf uuid {
+      type universal-id;
+      description
+        "The UUID for the UUID authority.";
+    }
+
+    description
+      "Represents the authority that controls the allocation of UUIDs.";
+  }
+
+  grouping name-and-value-authority {
+    leaf uuid {
+      type universal-id;
+      description
+        "The UUID for the NameAndValueAuthority.";
+    }
+    description
+      "Represents the authority that controls the legal values for the names and values of a name/value attribute.";
+  }
+
+  grouping conditional-package {
+    uses extension;
+    uses label;
+    description
+      "The base class for conditional packages.";
+  }
+
+  grouping address {
+    leaf-list address {
+      type dt-address;
+      description
+        "One or more descriptions of the location.";
+    }
+    description
+      "Provides an opportunity to state the location of the entity via one or more hierarchies of narrowing contexts.";
+  }
+
+  /****************************************
+   * package assocations
+   **************************************/ 
+  /****************************************
+   * package state-model
+   **************************************/ 
+  /****************************************
+   * grouping statements for object classes
+   **************************************/ 
+
+  grouping state-pac {
+    leaf operational-state {
+      type operational-state;
+      config false;
+      description
+        "The operational state is used to indicate whether or not the resource is installed and working.";
+    }
+    leaf administrative-control {
+      type administrative-control;
+      description
+        "The administrativeControl state provides control of the availability of specific resources without modification to the provisioning of those resources.
+         The value is the current control target. The actual administrativeState may or may not be at target.";
+    }
+    leaf administrative-state {
+      type administrative-state;
+      config false;
+      description
+        "Shows whether or not the client has permission to use or has a prohibition against using the resource.
+         The administrative state expresses usage permissions for specific resources without modification to the provisioning of those resources.";
+    }
+    leaf lifecycle-state {
+      type lifecycle-state;
+      description
+        "Used to track the planned deployment, allocation to clients and withdrawal of resources.";
+    }
+    description
+      "Provides general state attributes.";
+  }
+
+  /****************************************
+   * package state-machines
+   **************************************/ 
+  /****************************************
+   * package core-physical-model
+   **************************************/ 
+  /****************************************
+   * package rule-models
+   **************************************/ 
+  /****************************************
+   * package fru-non-fru-rules
+   **************************************/ 
+  /****************************************
+   * grouping statements for object classes
+   **************************************/ 
+
+  grouping field-replaceable {
+    list equipment-non-fru {
+      key "uuid";
+      uses non-field-replaceable;
+      description
+        "none";
+    }
+    list holder {
+      key "local-id";
+      uses holder;
+      description
+        "none";
+    }
+    container holder-address {
+      uses holder;
+      description
+        "none";
+    }
+    uses equipment;
+    description
+      "A rule class (an abstract specialization of Equipment) that represents an equipment that can be replaced in the field.
+       May plug in to a holder in another equipment (if not stand-alone).
+       Realization could use an FRU Boolean on Equipment.";
+  }
+
+  grouping non-field-replaceable {
+    uses equipment;
+    description
+      "A rule class (an abstract specialization of Equipment) that represents an equipment that cannot be replaced in the field.
+       Is simply a subordinate part of an FRU (or another NFRU – where there must be an FRU at the top of the hierarchy).
+       Does not have any exposed holders (any associated holders are assumed to belong to the containing FRU).
+       Does not have any connectors (any associated connectors are assumed to belong to the containing FRU).
+      ";
+  }
+
+  /****************************************
+   * package connector-rules
+   **************************************/ 
+  /****************************************
+   * grouping statements for object classes
+   **************************************/ 
+
+  grouping connector-on-equipment-for-holder {
+    leaf connector-in-holder {
+      type string;
+      description
+        "The equipment connector is plugged into the referenced holder connector.";
+    }
+    uses connector;
+    description
+      "A rule class (an abstract specialization of Connector) that represents a connector on an equipment that is intended to mate with a connector in a holder.";
+  }
+
+  /****************************************
+   * package equipment-detail
+   **************************************/ 
+  /****************************************
+   * grouping statements for object classes
+   **************************************/ 
+  /****************************************
+   * package dynamic-details
+   **************************************/ 
+
+  grouping function-enablers {
+    leaf power-state {
+      type string;
+      description
+        "The state of the power being supplied to the equipment.
+         Note that this attribute summarizes the power state.
+         Full details on the actual power system would be provided from a number of PC instances representing the relevant parts of the Power function (e.g. different voltage supplies).";
+    }
+    description
+      "Represents the dynamic aspects of the properties that relate to the motive force that directly enable functionality to emerge from the equipment.";
+  }
+
+  grouping mechanical-functions {
+    leaf rotation-speed {
+      type string;
+      description
+        "none";
+    }
+    description
+      "Represents the dynamic aspects of the mechanical functions of the equipment.";
+  }
+
+  grouping physical-properties {
+    leaf temperature {
+      type string;
+      description
+        "none";
+    }
+    description
+      "Represents the dynamic aspects of the physical environmental properties of the equipment.";
+  }
+
+  grouping location {
+    leaf equipment-location {
+      type dt-address;
+      description
+        "none";
+    }
+    leaf geographical-location {
+      type dt-address;
+      description
+        "none";
+    }
+    description
+      "Represents where the equipment is.";
+  }
+
+  /****************************************
+   * package invariant-details
+   **************************************/ 
+
+  grouping equipment-structure {
+    leaf category {
+      type equipment-category;
+      description
+        "This attribute provides the identifier for a category of equipments regarded as having particular shared characteristics.";
+    }
+    description
+      "Represents the form of the equipment.";
+  }
+
+  grouping equipment-instance {
+    leaf manufacture-date {
+      type yang:date-and-time;
+      description
+        "This attribute represents the date on which this instance is manufactured.";
+    }
+    leaf serial-number {
+      type string;
+      description
+        "This attribute represents the serial number of this instance.";
+    }
+    leaf asset-instance-identifier {
+      type string;
+      description
+        "This attribute represents the asset identifier of this instance from the manufacturer's perspective.";
+    }
+    description
+      "Represents the per instance invariant properties of the equipment.";
+  }
+
+  grouping equipment-type {
+    leaf description {
+      type string;
+      description
+        "Text describing the type of Equipment.";
+    }
+    leaf model-identifier {
+      type string;
+      description
+        "This attribute identifies the model of the equipment.";
+    }
+    leaf part-type-identifier {
+      type string;
+      description
+        "This attribute identifies the part type of the equipment.";
+    }
+    leaf type-name {
+      type string;
+      description
+        "This attribute identifies the type of the equipment.";
+    }
+    leaf version {
+      type string;
+      description
+        "This attribute identifies the version of the equipment.";
+    }
+    description
+      "Represents the invariant properties of the equipment that define and characterize the type.";
+  }
+
+  grouping holder-structure {
+    leaf holder-category {
+      type holder-category;
+      description
+        "none";
+    }
+    leaf is-captive {
+      type boolean;
+      description
+        "none";
+    }
+    leaf is-guided {
+      type boolean;
+      description
+        "This attribute indicates whether the holder has guides that constrain the position of the equipment in the holder or not.";
+    }
+    leaf is-quantised-space {
+      type boolean;
+      description
+        "none";
+    }
+    description
+      "Represents the form of the holder.";
+  }
+
+  grouping manufactured-thing {
+    container manufacturer-properties {
+      uses manufacturer-properties;
+      description
+        "none";
+    }
+    container equipment-type {
+      uses equipment-type;
+      description
+        "none";
+    }
+    container equipment-instance {
+      uses equipment-instance;
+      description
+        "none";
+    }
+    container operator-augmented-equipment-type {
+      uses operator-augmented-equipment-type;
+      description
+        "none";
+    }
+    container operator-augmented-equipment-instance {
+      uses operator-augmented-equipment-instance;
+      description
+        "none";
+    }
+    description
+      "Collects all invariant aspects of a manufactured thing.";
+  }
+
+  grouping manufacturer-properties {
+    leaf manufacturer-identifier {
+      type string;
+      description
+        "none";
+    }
+    leaf manufacturer-name {
+      type string;
+      description
+        "none";
+    }
+    description
+      "Represents the properties of the manufacturer.";
+  }
+
+  grouping mechanical-features {
+    description
+      "Represents the invariant characteristics of dynamic mechanical features of a physical thing.";
+  }
+
+  grouping operator-augmented-equipment-type {
+    leaf asset-type-identifier {
+      type string;
+      description
+        "none";
+    }
+    description
+      "Represents the invariant properties of the equipment asset allocated by the operator that define and characterize the type.";
+  }
+
+  grouping physical-characteristics {
+    leaf weight-characeristics {
+      type string;
+      description
+        "none";
+    }
+    leaf fire-characteristics {
+      type string;
+      description
+        "none";
+    }
+    leaf materials {
+      type string;
+      description
+        "none";
+    }
+    description
+      "Represents the invariant physical characteristics (including composition and physical robustness) of the type.";
+  }
+
+  grouping environmental-rating {
+    container thermal-rating {
+      uses thermal-rating;
+      description
+        "This attribute represents the thermal characteristics (preferred maximum/minimum, absolute maximum/minimum etc) that the entity can tolerate.";
+    }
+    container power-rating {
+      uses power-rating;
+      description
+        "This attribute represents the power chracteristics (peak and mean per power source) of the entity.
+         For an Equipment this is the power consumption.
+         For a Holder this is the power that can be conveyed.";
+    }
+    leaf humidity-rating {
+      type string;
+      description
+        "This attribute represents the humidity characteristics (preferred maximum/minimum, absolute maximum/minimum etc.) that the entity can tolerate.";
+    }
+    description
+      "Represents the invariant physical operational boundaries for the equipment/holder type.";
+  }
+
+  grouping position {
+    leaf relative-position {
+      type string;
+      description
+        "none";
+    }
+    description
+      "Represents the invariant relative position of the holder (with respect to some frame of reference in an equipment) or connector on an equipment or pin in a connector.";
+  }
+
+  grouping spatial-properties-of-type {
+    leaf height {
+      type string;
+      description
+        "none";
+    }
+    leaf width {
+      type string;
+      description
+        "none";
+    }
+    leaf length {
+      type string;
+      description
+        "none";
+    }
+    description
+      "Represents the basic invariant spatial properties of a physical thing.";
+  }
+
+  grouping swappability {
+    leaf is-hot-swappable {
+      type boolean;
+      default "true";
+      description
+        "none";
+    }
+    description
+      "Represents the degree of field replacement that is possible for the equipment type.";
+  }
+
+  grouping operator-augmented-equipment-instance {
+    leaf asset-instance-identifier {
+      type string;
+      description
+        "This attribute represents the asset identifier of this instance from the operator's perspective.";
+    }
+    description
+      "Represents the invariant properties of the equipment asset allocated by the operator that define and characterize the type.";
+  }
+
+  /****************************************
+   * package pattern-classes
+   **************************************/ 
+
+  grouping cable-details {
+    container spatial-properties-of-type {
+      uses spatial-properties-of-type;
+      description
+        "none";
+    }
+    container physical-characteristics {
+      uses physical-characteristics;
+      description
+        "none";
+    }
+    container manufactured-thing {
+      uses manufactured-thing;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  grouping connector-details {
+    container position {
+      uses position;
+      description
+        "none";
+    }
+    container mechanical-features {
+      uses mechanical-features;
+      description
+        "none";
+    }
+    container manufactured-thing {
+      uses manufactured-thing;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  grouping equipment-detail {
+    container location {
+      uses location;
+      description
+        "none";
+    }
+    container structure {
+      uses equipment-structure;
+      description
+        "none";
+    }
+    container swappability {
+      uses swappability;
+      description
+        "none";
+    }
+    container physical-properties {
+      uses physical-properties;
+      description
+        "none";
+    }
+    container function-enablers {
+      uses function-enablers;
+      description
+        "none";
+    }
+    container mechanical-functions {
+      uses mechanical-functions;
+      description
+        "none";
+    }
+    container physical-characteristics {
+      uses physical-characteristics;
+      description
+        "none";
+    }
+    container mechanical-features {
+      uses mechanical-features;
+      description
+        "none";
+    }
+    container spatial-properties-of-type {
+      uses spatial-properties-of-type;
+      description
+        "none";
+    }
+    container environmental-rating {
+      uses environmental-rating;
+      description
+        "none";
+    }
+    container manufactured-thing {
+      uses manufactured-thing;
+      description
+        "none";
+    }
+    uses local-class;
+    description
+      "none";
+  }
+
+  grouping holder-details {
+    container spatial-properties-of-type {
+      uses spatial-properties-of-type;
+      description
+        "none";
+    }
+    container environmental-rating {
+      uses environmental-rating;
+      description
+        "none";
+    }
+    container position {
+      uses position;
+      description
+        "none";
+    }
+    container holder-structure {
+      uses holder-structure;
+      description
+        "none";
+    }
+    uses local-class;
+    description
+      "none";
+  }
+
+  /****************************************
+   * package data-types
+   **************************************/ 
+
+  grouping thermal-rating {
+    leaf thermal-rating-name {
+      type string;
+      description
+        "Name of the rating property, e.g. Absolute.";
+    }
+    leaf maximum-temperature {
+      type decimal64 {
+        fraction-digits 3;
+      }
+      description
+        "The maximum temperature in Celsius.";
+    }
+    leaf minimum-temperature {
+      type decimal64 {
+        fraction-digits 3;
+      }
+      description
+        "The minimum temperature in Celsius.";
+    }
+    description
+      "A thermal rating value range.";
+  }
+
+  grouping power-rating {
+    leaf power-rating-name {
+      type string;
+      description
+        "Name of the rating property, e.g. Absolute.";
+    }
+    leaf power-rating-value {
+      type string;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  /****************************************
+   * package equipment-pattern-structure
+   **************************************/ 
+  /****************************************
+   * grouping statements for object classes
+   **************************************/ 
+
+  grouping connector {
+    leaf connector {
+      type string;
+      description
+        "The Connector that is attached to this Connector so as to join the Equipment/Cable with this Connector to another Equipment/Cable.
+         This may provide physical support and/or allow signal flow.";
+    }
+    leaf orientation {
+      type connector-and-pin-orientation;
+      description
+        "The physical orientation of the connector, such as whether it is a male, or female, or neutral structure.";
+    }
+    leaf pin-layout {
+      type string;
+      description
+        "none";
+    }
+    leaf connector-type {
+      type string;
+      description
+        "The type of the connector.";
+    }
+    leaf role {
+      type string;
+      description
+        "The purpose of the Connector in the physical space and the functional space.";
+    }
+    uses local-class;
+    description
+      "Represents a connector that may be fully exposed (e.g. to plug in a cable or on the end of a cable) or partially exposed (e.g. backplane to plug in another piece of equipment such as a module).
+       A physical port on the Equipment. A place where signals produced by the functionality of the Equipment may be accessed.";
+  }
+
+  grouping equipment {
+    list connector {
+      key "local-id";
+      uses connector;
+      description
+        "A Connector on the Equipment.";
+    }
+    list contained-holder {
+      key "local-id";
+      uses holder;
+      description
+        "References the Holder in an Equipment that is available to take other Equipments.
+         For example:
+         - Slot in a sub-rack
+         - Slot in a Field Replaceable Unit that can take a small form-factor pluggable.";
+    }
+    leaf is-field-replaceable {
+      type boolean;
+      default "true";
+      config false;
+      description
+        "Indicates whether or not the equipment can be removed and replaced 'in the field' (i.e. in a deployment) by normal operations personnel.";
+    }
+    leaf-list function-block {
+      type string;
+      description
+        "none";
+    }
+    list expected-equipment {
+      key "local-id";
+      uses expected-equipment;
+      description
+        "none";
+    }
+    container actual-equipment {
+      uses actual-equipment;
+      description
+        "none";
+    }
+    leaf equipment-functional-boundary {
+      type string;
+      description
+        "none";
+    }
+    uses global-class;
+    description
+      "Represents any relevant physical thing.
+       Can be either field replaceable or not field replaceable.
+       Note: The model is currently constrained to inside plant.";
+  }
+
+  grouping holder {
+    leaf occupying-fru {
+      type leafref {
+        path "/core-model:control-construct/core-model:equipment/core-model:uuid";
+      }
+      description
+        "The FRU that is occupying the holder.
+         A holder may be unoccupied.
+         An FRU may occupy more hat one holder (using or blocking are intentionally not distinguished here).";
+    }
+    leaf holder-location {
+      type dt-address;
+      description
+        "The relative position of the holder in the context of its containing equipment along with the position of that containing Equipment (and further recursion).";
+    }
+    container expected-holder {
+      uses expected-holder;
+      description
+        "none";
+    }
+    container actual-holder {
+      uses actual-holder;
+      description
+        "none";
+    }
+    uses local-class;
+    description
+      "Represents a space in an equipment in which another equipment can be fitted in the field.";
+  }
+
+  /****************************************
+   * package data-types
+   **************************************/ 
+
+  typedef connector-and-pin-orientation {
+    type identityref {
+      base CONNECTOR_AND_PIN_ORIENTATION;
+    }
+    description
+      "Most connector schemes are asymmetric such that there are two orientations of the connector where a mating is only possible between two connectors of different orientations.
+       A multi-pin connector may have a mix of pin orientations. In this case, it is expected that the dominant orientation of pin is chosen for the connector orientation.";
+  }
+
+  typedef equipment-category {
+    type identityref {
+      base EQUIPMENT_CATEGORY;
+    }
+    description
+      "The form of equipment.";
+  }
+
+  typedef holder-category {
+    type identityref {
+      base HOLDER_CATEGORY;
+    }
+    description
+      "The form of holder.";
+  }
+
+  /****************************************
+   * package expected-and-actual
+   **************************************/ 
+  /****************************************
+   * grouping statements for object classes
+   **************************************/ 
+
+  grouping actual-holder {
+    uses holder-details;
+    description
+      "A holder in the ActualEquipment.";
+  }
+
+  grouping expected-holder {
+    uses holder-details;
+    description
+      "A definition of a holder expected in the ActualEquipment (i.e. an ActualHolder) as part of the constraints provided by the ExpectedEquipment.";
+  }
+
+  grouping actual-equipment {
+    uses equipment-detail;
+    description
+      "The equipment that is actually present in the physical network.
+       It will expose all dynamic properties and some critical static properties.";
+  }
+
+  grouping expected-equipment {
+    uses equipment-detail;
+    description
+      "A definition of the restrictions on the equipment that is expected to be present in the physical network at a particular 'place'.
+       The expected equipment will state the type and may constrain any other invariant properties.
+       It may also provide desired ranges for dynamic properties.";
+  }
+
+  /****************************************
+   * package connector-and-pin
+   **************************************/ 
+  /****************************************
+   * grouping statements for object classes
+   **************************************/ 
+
+  grouping signal-ref-pt {
+    container logical-termination-point {
+      uses logical-termination-point;
+      description
+        "none";
+    }
+    list elemental-signals {
+      min-elements 1;
+      uses elemental-signals;
+      description
+        "none";
+    }
+    description
+      "A single coherent signal as processed by a single LTP.";
+  }
+
+  grouping signal-ref-pt-group {
+    description
+      "A conceptual access for a group of signals (where that group of signals cannot be separated).
+       A physical indivisible group of signals.";
+  }
+
+  grouping elemental-signals {
+    description
+      "The elemental (sub-atomic) parts of an 'indivisible' signal where processing in the LTP is required to extract the elemental signals.";
+  }
+
+  /****************************************
+   * package general-controller-model
+   **************************************/ 
+  /****************************************
+   * package associations
+   **************************************/ 
+  /****************************************
+   * grouping statements for object classes
+   **************************************/ 
+
+  container control-construct {
+    presence "Enables SDN";
+    uses control-construct;
+    description
+      "none";
+  }
+
+  grouping control-construct {
+    leaf-list top-level-equipment {
+      type leafref {
+        path "/core-model:control-construct/core-model:equipment/core-model:uuid";
+      }
+      description
+        "none";
+    }
+    list equipment {
+      key "uuid";
+      uses equipment;
+      description
+        "none";
+    }
+    list logical-termination-point {
+      key "uuid";
+      uses logical-termination-point;
+      description
+        "none";
+    }
+    list forwarding-domain {
+      key "uuid";
+      uses forwarding-domain;
+      description
+        "none";
+    }
+    container profile-collection {
+      uses profile-collection;
+      description
+        "none";
+    }
+    uses global-class;
+    description
+      "Represents control capability/functionality.
+       ControlConstructs communicate with other ControlConstructs through ControlPorts about things within the related ConstraintDomains.
+       The ControlConstruct applies to all Control/Management cases including:
+       - the controller in the Network/Managed Element e.g. an SNMP agent).
+       - an SDN Controller.
+       - an EMS.
+       - an NMS.
+       This specific model follows a subset of the Component-System Pattern.
+       Root element for controller southbound APIs.";
+  }
+
+  grouping profile-collection {
+    list profile {
+      key "uuid";
+      uses profile;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  grouping profile {
+    leaf profile-name {
+      type profile-name-type;
+      description
+        "none";
+    }
+    uses global-class;
+    description
+      "none";
+  }
+
+  grouping control-port {
+    container logical-termination-point {
+      uses logical-termination-point;
+      description
+        "The LTP through which the control messaging/signaling flows.";
+    }
+    leaf provider-role {
+      type string;
+      description
+        "Properties relevant when the ControlPort is exposing the ControlConstruct as a provider of capability.";
+    }
+    leaf user-role {
+      type string;
+      description
+        "Properties relevant when the ControlPort is exposing the ControlConstruct as a user of capability.";
+    }
+    uses global-class;
+    description
+      "The access to the ControlConstruct following the normal Component-Port pattern (i.e., the functions of a component are accessed via ports).
+       Is assumed to usually be bidirectional.";
+  }
+
+  /****************************************
+   * package interfaces
+   **************************************/ 
+
+  rpc apply-system-structure-state-defined-by-constraint {
+    description
+      "none";
+    input {
+      leaf input-constraint-structure {
+        type string;
+        description
+          "none";
+      }
+    }
+    output {
+      leaf output-constraint-structure {
+        type string;
+        description
+          "none";
+      }
+    }
+  }
+
+  rpc retrieve-system-structure-defined-by-constraint {
+    description
+      "none";
+    input {
+      leaf input-constraint-structure {
+        type string;
+        description
+          "none";
+      }
+    }
+    output {
+      leaf output-constraint-structure {
+        type string;
+        description
+          "none";
+      }
+    }
+  }
+
+  /****************************************
+   * package core-software-model
+   **************************************/ 
+  /****************************************
+   * grouping statements for object classes
+   **************************************/ 
+  /****************************************
+   * package file-system
+   **************************************/ 
+
+  grouping file {
+    leaf size {
+      type string;
+      description
+        "The size of the File, in bytes.";
+    }
+    leaf last-modify-time {
+      type yang:date-and-time;
+      description
+        "The date time that the File was last modified.";
+    }
+    leaf checksum {
+      type string;
+      description
+        "A checksum that can be used to validate the contents of the File (in case of corruption or malicious changes) using a hashing algorithm like MD5 or SHA1.";
+    }
+    uses file-system-entry;
+    description
+      "A File is a data structure used to store information (user data, commands, software etc.) in a computer system. Note that in this CIM class, we are only storing the metadata associated with the File, not the actual contents of the File.";
+  }
+
+  grouping file-system {
+    list file-system-entry {
+      uses file-system-entry;
+      description
+        "The root FileSystem entries, which can be Files or Directories.";
+    }
+    description
+      "A FileSystem organizes the data on a storage system so that it can be easily created, updated and accessed. It manages the Directories and also the metadata for the Files.";
+  }
+
+  grouping file-system-entry {
+    leaf is-read-only {
+      type boolean;
+      description
+        "If the File contents can be modified or not.";
+    }
+    leaf is-hidden {
+      type boolean;
+      description
+        "If the File is hidden by the FileSystem.";
+    }
+    leaf path-name {
+      type string;
+      description
+        "The full pathname of the entry, back to the root Directory.";
+    }
+    leaf local-name {
+      type string;
+      description
+        "The name of the entry in its Directory.";
+    }
+    leaf create-date {
+      type yang:date-and-time;
+      description
+        "The date that the entry was created.";
+    }
+    description
+      "FileSystemEntry is an abstraction of File and Directory, useful when there is a need to reference both classes. It also allows for an easy representation of a hierarchical filesystem.";
+  }
+
+  grouping symbolic-link {
+    container file-system-entry {
+      uses file-system-entry;
+      description
+        "The FileSystemEntry that this SymbolicLink refers to.";
+    }
+    uses file;
+    description
+      "A SymbolicLink is a File that contains a path reference to a File or a Directory.";
+  }
+
+  grouping directory {
+    list file-system-entry {
+      uses file-system-entry;
+      description
+        "Directory entry, which can be a File or another Directory.";
+    }
+    uses file-system-entry;
+    description
+      "A Directory is a collection of Files and other Directories. Because a Directory can contain other Directories, this allows a hierarchical file system to be represented.";
+  }
+
+  /****************************************
+   * package running-software
+   **************************************/ 
+
+  grouping installed-software-component {
+    leaf name {
+      type string;
+      description
+        "The name of the installed component as returned by the operating system.";
+    }
+    leaf version {
+      type string;
+      description
+        "The version of the installed component as returned by the operating system.";
+    }
+    leaf serial-number {
+      type string;
+      description
+        "As part of software licensing, a serial number may be available for the installation.";
+    }
+    container installation-file {
+      uses file;
+      description
+        "If available, the File that the installation was from.";
+    }
+//    leaf-list child-installed-software-component {
+//      type leafref {
+//        path "/core-model:installed-software-component/core-model:child-installed-software-component/core-model:serial-number";
+//      }
+//      description
+//        "References to any child installations.";
+//    }
+    list installed-file-system-entry {
+      uses file-system-entry;
+      description
+        "References to any Directories or Files created or used by the installation. Note that installations may share files. So installation 1 may create key.dll in a common area, and installation 2 would create this if it wasn’t present. Because it is already present, installation 2 just references the file. Now if installation 1 is uninstalled, key.dll is not removed as there is still a reference to it.";
+    }
+    description
+      "InstalledSoftwareComponent is part of the software inventory. It represents an application or an application suite or an application (feature) option. It is the unit of installation. Note that this is operating system dependent. For example, Microsoft DOS 3.3 didn’t have an installation manager.";
+  }
+
+  grouping running-software-process {
+    leaf process-id {
+      type string;
+      description
+        "The identifier provided by the operating system.";
+    }
+    leaf priority {
+      type string;
+      description
+        "The process priority which is used by a multi-tasking operating system to assign resource allocations for the different running software processes.";
+    }
+    leaf invoking-user {
+      type string;
+      description
+        "The username of the account that invoked the process.";
+    }
+    leaf invoking-command {
+      type string;
+      description
+        "The command string that invoked the process.";
+    }
+    leaf time-invoked {
+      type yang:date-and-time;
+      description
+        "The date time when the process was invoked.";
+    }
+    leaf run-state {
+      type string;
+      description
+        "The current run state. A software process may be actively running or suspended (or some other state supported by the operating system).";
+    }
+    leaf name {
+      type string;
+      description
+        "The name of the process as assigned by the operating system.";
+    }
+    leaf description {
+      type string;
+      description
+        "The description of the process as assigned by the operating system.";
+    }
+    container executable {
+      uses file;
+      description
+        "A reference to the executable file (invoked via the invokingCommand). Note that the invoking command may not list the full file path.";
+    }
+    leaf-list child-software-process {
+      type string;
+      description
+        "References to a software process’s subprocesses and threads.";
+    }
+    list open-file {
+      uses file;
+      description
+        "References to any files opened and/or locked by the running process.";
+    }
+    description
+      "This is the unit of software execution. It could be a running application or a thread (the smallest level of software execution).";
+  }
+
+  grouping running-operating-system {
+    list running-software-process {
+      uses running-software-process;
+      description
+        "The software processes running under this operating system.";
+    }
+    list running-container-engine {
+      uses running-container-engine;
+      description
+        "The running container engines supported by the running operating system.";
+    }
+    leaf-list running-host-os-vmm {
+      type string;
+      description
+        "The host OS VMMs running under this operating system.";
+    }
+    uses running-software-process;
+    description
+      "An operating system is a running software process that enables software applications to utilize the computer’s hardware.";
+  }
+
+  grouping running-software-application {
+    uses running-software-process;
+    description
+      "This covers generic software processes that don’t have a special subclass (operating system, virtual machine and container special cases have their own specific subclasses).";
+  }
+
+  /****************************************
+   * package software-container
+   **************************************/ 
+
+  grouping running-container {
+    leaf container-boundary {
+      type string;
+      description
+        "The constraints defining the boundary of the Container.";
+    }
+    uses running-software-process;
+    description
+      "A container that has been activated by its container engine and hence can provide and consume resources.";
+  }
+
+  grouping running-container-engine {
+    list running-container {
+      uses running-container;
+      description
+        "The containers running in this container engine.";
+    }
+    uses running-software-process;
+    description
+      "A software process that abstracts running applications from the operating system. It provides some level of isolation, but not as much as a hypervisor.";
+  }
+
+  /****************************************
+   * package associations
+   **************************************/ 
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/ethernet-container-2-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/ethernet-container-2-0.yang
new file mode 100644
index 0000000..1f163f5
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/ethernet-container-2-0.yang
@@ -0,0 +1,1955 @@
+module ethernet-container-2-0 {
+  yang-version 1.1;
+  namespace "urn:onf:yang:ethernet-container-2-0";
+  prefix ethernet-container;
+
+  import ietf-yang-types {
+    prefix yang;
+  }
+  import core-model-1-4 {
+    prefix core-model;
+  }
+
+  organization
+    "openBackhaul.com proposal to Open Networking Foundation (ONF)";
+  contact
+    "WG Web : https://github.com/openBackhaul/Overview
+     WG List: Thorsten.Heinze@openBackhaul.com
+     Editor : Thorsten Heinze
+     Email  : Thorsten.Heinze@openBackhaul.com";
+  description
+    "Technology specific amendment to the LayerProtocol class of the ONF Core IM for a transport resource for Ethernet.
+
+     Copyright 2019 openBackhaul.com
+
+     Licensed under the Apache License, Version 2.0 (the 'License');
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+     http://www.apache.org/licenses/LICENSE-2.0
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an 'AS IS' BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.";
+
+  revision 2020-01-21 {
+    description
+      "Model for the Transport SDN Pilot at Telefonica Germany
+       Please view https://github.com/openBackhaul/ethernetContainer/issues for changes.";
+    reference
+      "https://github.com/openBackhaul/ethernetContainer/tree/tsp: Model definition
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+  }
+  revision 2019-11-23 {
+    description
+      "Model for the Transport SDN Pilot at Telefonica Germany
+       Please view https://github.com/openBackhaul/ethernetContainer/issues for changes.";
+    reference
+      "https://github.com/openBackhaul/ethernetContainer/tree/tsp: Model definition
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+  }
+  revision 2019-06-14 {
+    description
+      "Model for the Transport SDN Pilot at Telefonica Germany
+       Please view https://github.com/openBackhaul/ethernetContainer/issues for changes.";
+    reference
+      "https://github.com/openBackhaul/ethernetContainer/tree/tsp: Model definition
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+  }
+
+  identity LAYER_PROTOCOL_NAME_TYPE_ETHERNET_CONTAINER_LAYER {
+    base core-model:LAYER_PROTOCOL_NAME_TYPE;
+    description
+      "none";
+  }
+
+  augment "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol" {
+    when "derived-from-or-self(./core-model:layer-protocol-name, 'ethernet-container:LAYER_PROTOCOL_NAME_TYPE_ETHERNET_CONTAINER_LAYER')";
+    uses ethernet-container-lp-spec;
+    description
+      "none";
+  }
+
+  /****************************************
+   * package notifications
+   **************************************/ 
+
+  notification object-creation-notification {
+    uses object-creation-notification;
+    description
+      "none";
+  }
+
+  grouping object-creation-notification {
+    leaf counter {
+      type int64;
+      default "-1";
+      config false;
+      description
+        "Counts object creation notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf object-type {
+      type string;
+      default "Type of created object not specified.";
+      config false;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  notification object-deletion-notification {
+    uses object-deletion-notification;
+    description
+      "none";
+  }
+
+  grouping object-deletion-notification {
+    leaf counter {
+      type int64;
+      default "-1";
+      config false;
+      description
+        "Counts object deletion notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  notification attribute-value-changed-notification {
+    uses attribute-value-changed-notification;
+    description
+      "none";
+  }
+
+  grouping attribute-value-changed-notification {
+    leaf counter {
+      type int64;
+      default "-1";
+      config false;
+      description
+        "Counts attribute value changed notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf attribute-name {
+      type string;
+      default "Attribute name not specified.";
+      config false;
+      description
+        "Name of the attribute that has been changed.";
+    }
+    leaf new-value {
+      type string;
+      default "New value not specified.";
+      config false;
+      description
+        "Attribute value converted to a string (xml, json, ...)";
+    }
+    description
+      "none";
+  }
+
+  notification problem-notification {
+    uses problem-notification;
+    description
+      "none";
+  }
+
+  grouping problem-notification {
+    leaf counter {
+      type int64;
+      default "-1";
+      config false;
+      description
+        "Counts problem notifications";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf problem {
+      type string;
+      default "Problem name not specified.";
+      config false;
+      description
+        "Name of the problem according to supportedAlarmList";
+    }
+    leaf severity {
+      type severity-type;
+      default "SEVERITY_TYPE_WARNING";
+      config false;
+      description
+        "Severity of the problem according to problemKindSeverity";
+    }
+    description
+      "none";
+  }
+
+  /****************************************
+   * grouping statements for object classes
+   **************************************/ 
+  /****************************************
+   * package super-classes
+   **************************************/ 
+
+  grouping current-problem {
+    leaf sequence-number {
+      type int16;
+      config false;
+      description
+        "Unique sequence number of the current problem object.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "Time when the alarm was raised.";
+    }
+    leaf problem-severity {
+      type severity-type;
+      default "SEVERITY_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "Severity of the alarm.";
+    }
+    description
+      "none";
+  }
+
+  grouping current-performance {
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "The timestamp associated with when the current data was collected.";
+    }
+    leaf suspect-interval-flag {
+      type boolean;
+      default "false";
+      config false;
+      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.";
+    }
+    leaf elapsed-time {
+      type int64;
+      units "s";
+      default "-1";
+      config false;
+      description
+        "Number of seconds that elapsed since the last reset of the counter.";
+    }
+    leaf scanner-id {
+      type string;
+      default "Scanner ID not defined.";
+      config false;
+      description
+        "none";
+    }
+    leaf granularity-period {
+      type granularity-period-type;
+      config false;
+      description
+        "Time period between reset of the underlying counter.";
+    }
+    description
+      "none";
+  }
+
+  grouping historical-performance {
+    leaf suspect-interval-flag {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "This attribute indicates that the data collected during the interval is suspect.";
+    }
+    leaf history-data-id {
+      type string;
+      default "History Data ID not defined.";
+      config false;
+      description
+        "none";
+    }
+    leaf granularity-period {
+      type granularity-period-type;
+      config false;
+      description
+        "Time period between reset of the underlying counter.";
+    }
+    leaf period-end-time {
+      type yang:date-and-time;
+      config false;
+      description
+        "Time when the counter values have been recorded and the counter reset.";
+    }
+    description
+      "none";
+  }
+
+  grouping ethernet-container-lp-spec {
+    container ethernet-container-pac {
+      uses ethernet-container-pac;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  grouping ethernet-container-pac {
+    container ethernet-container-capability {
+      config false;
+      uses ethernet-container-capability;
+      description
+        "none";
+    }
+    container ethernet-container-configuration {
+      uses ethernet-container-configuration;
+      description
+        "none";
+    }
+    container ethernet-container-status {
+      config false;
+      uses ethernet-container-status;
+      description
+        "none";
+    }
+    container ethernet-container-current-problems {
+      config false;
+      uses ethernet-container-current-problems;
+      description
+        "none";
+    }
+    container ethernet-container-current-performance {
+      config false;
+      uses ethernet-container-current-performance;
+      description
+        "none";
+    }
+    container ethernet-container-historical-performances {
+      config false;
+      uses ethernet-container-historical-performances;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  grouping ethernet-container-capability {
+    list available-queue-list {
+      key "queue-name";
+      config false;
+      min-elements 1;
+      max-elements 8;
+      uses available-queue-type;
+      description
+        "List of queues, which are available at the physical interface.";
+    }
+    leaf explicit-congestion-notification-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Explicit Congestion Notification is available at this queue.";
+    }
+    leaf ingress-policing-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = This interface supports policing.";
+    }
+    leaf egress-shaping-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = This interface supports shaping.";
+    }
+    leaf information-rate-min {
+      type int32;
+      units "kbit/s";
+      default "-1";
+      config false;
+      description
+        "Only relevant if (egressShapingIsAvail==1): Minimum configurable throuput in kbit/s.";
+    }
+    leaf information-rate-max {
+      type int32;
+      units "kbit/s";
+      default "-1";
+      config false;
+      description
+        "Only relevant if (egressShapingIsAvail==1): Maximum configurable throuput in kbit/s.";
+    }
+    leaf burst-size-min {
+      type int16;
+      units "kByte";
+      default "-1";
+      config false;
+      description
+        "Only relevant if (egressShapingIsAvail==1): Minimum configurable value for the number of kBytes, which could be sent in a single burst.";
+    }
+    leaf burst-size-max {
+      type int16;
+      units "kByte";
+      default "-1";
+      config false;
+      description
+        "Only relevant if (egressShapingIsAvail==1): Maximum configurable value for the number of kBytes, which could be sent in a single burst.";
+    }
+    leaf bundling-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "This attribute has to be set on 'true', if the device allows combining resources from several air interfaces for transporting this Ethernet container.";
+    }
+    leaf bundling-group-size-max {
+      type int8;
+      default "-1";
+      config false;
+      description
+        "802.3 according to 30.11.1.1.6 aLocalPAFCapacity and ITU-T Rec. G.998.3 Appendix II aGroupCapacity. No Mbit/s value, but number of Ethernet Segments that can be aggregated for transporting this Ethernet Container. Reasonable values are between1 and 32.";
+    }
+    leaf support-of-management-frames-without-preamble-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "802.3. 1 = Management frames with suppressed preamble are also accepted.";
+    }
+    list supported-header-compression-kind-list {
+      key "header-compression-name";
+      config false;
+      min-elements 1;
+      uses header-compression-kind;
+      description
+        "Lists the kinds of header compression, which are supported by the device.";
+    }
+    leaf fec-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "802.3 according to 30.5.1.1.15 aFECAbility, 45.2.1.92.1 BASE-R FEC ability and 45.2.3.37 10GBASE-PR and 10/1GBASE-PRX FEC ability register and ITU-T Rec. G.998.3 Appendix II aFECSupported. 1 = Indicates that an optional Forward Error Correction (FEC) is supported.";
+    }
+    leaf fec-word-size-max {
+      type int16;
+      units "Byte";
+      default "-1";
+      config false;
+      description
+        "ITU-T Rec. G.998.3 Appendix II aFECWordSize. Indicates maximum supported Forward Error Correction (FEC) code word size in Bytes. Expected values between 20 and 255.";
+    }
+    leaf-list supported-fec-redundancy-size-list {
+      type fec-redundancy-size-type;
+      config false;
+      min-elements 1;
+      description
+        "ITU-T Rec. G.998.3 Appendix II aFECRedundancySize. Indicates maximum supported Forward Error Correction (FEC) redundancy word size.";
+    }
+    leaf-list supported-fec-interleaver-kind-list {
+      type fec-interleaver-kind-type;
+      config false;
+      min-elements 1;
+      description
+        "ITU-T Rec. G.998.3 Appendix II aFECInterleaverType. Supported kinds of Forward Error Correction (FEC) interleaver";
+    }
+    leaf-list supported-fec-interleaver-depth-list {
+      type fec-interleaver-depth-type;
+      config false;
+      min-elements 1;
+      description
+        "ITU-T Rec. G.998.3 Appendix II aFECInterleaverDepth. Indicates the supported depths of the Forward Error Correction (FEC) interleaver.";
+    }
+    leaf encryption-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "Shall be marked 'true', if Ethernet payload encryption is available.";
+    }
+    leaf admin-shut-down-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Manual switching on and off of the interface without deleting it (underlying OSI network layers are also not affected) is available.";
+    }
+    leaf-list supported-loop-back-kind-list {
+      type loop-back-type;
+      config false;
+      min-elements 1;
+      max-elements 3;
+      description
+        "List of supported kinds of looping back.";
+    }
+    leaf maintenance-timer-range {
+      type string;
+      default "Range of the maintenance timer not yet defined.";
+      config false;
+      description
+        "Available time periods for maintenance configurations to be described. Concrete values shall be separated by commas (e.g. '10, 60, 360'). Ranges shall be expressed as two values separated by a minus (e.g. '10-360').";
+    }
+    leaf statistics-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Continuous statistics counters are available.";
+    }
+    leaf-list supported-alarm-list {
+      type string;
+      config false;
+      min-elements 2;
+      description
+        "Available alarms to be listed. Mandatory:'framingIsFaulty' and 'containerIsDown'. Further alarms might be added by the vendor.";
+    }
+    leaf performance-monitoring-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Collection and aggregation of performance values is available.";
+    }
+    description
+      "none";
+  }
+
+  grouping ethernet-container-configuration {
+    leaf interface-name {
+      type string;
+      default "Interface name not yet defined.";
+      description
+        "Description of the interface, could be a name, could be a number. Free text field to be filled by the operator.";
+    }
+    leaf interface-is-on {
+      type boolean;
+      default "false";
+      description
+        "Only relevant if (adminShutDownIsAvail==1). 1 = Activation of the interface. 0 = De-activation of the interface without deleting it (underlying OSI network layers are not affected).";
+    }
+    list queue-behavior-list {
+      key "queue-name";
+      min-elements 1;
+      max-elements 8;
+      uses queue-behavior-type;
+      description
+        "Defines scheduling and dropping behavior of all queues.";
+    }
+    leaf explicit-congestion-notification-is-on {
+      type boolean;
+      default "false";
+      description
+        "1 = Explicit Congestion Notification is activitated at this queue.";
+    }
+    leaf ingress-policing-profile {
+      type leafref {
+        path "/core-model:control-construct/core-model:profile-collection/core-model:profile/core-model:uuid";
+        require-instance false;
+      }
+      description
+        "Reference to the policing profile, which is active on this interface. Attribute to point to an instance of Profile with profileName=='PROFILE_NAME_TYPE_POLICING_PROFILE'.";
+    }
+    leaf egress-shaping-is-on {
+      type boolean;
+      default "false";
+      description
+        "1 = Shaping on the egress is activated.";
+    }
+    leaf maximum-information-rate {
+      type int32;
+      units "kbit/s";
+      default "-1";
+      description
+        "Only relevant if (egressShapingIsAvail==1): Limits the throughput on the egress.";
+    }
+    leaf maximum-burst-size {
+      type int16;
+      units "kByte";
+      default "-1";
+      description
+        "Only relevant if (egressShapingIsAvail==1): Limits the number of kBytes, which are sent in a single burst.";
+    }
+    leaf bundling-is-on {
+      type boolean;
+      default "false";
+      description
+        "802.3 according to 30.11.1.1.5 aPAFAdminState and 45.2.3.26.3 PAF enable. 1 = Algorithm for bundling Ethernet segments is activated (, even if only a single Structure would be associated).";
+    }
+    leaf header-compression-kind {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol/ethernet-container:ethernet-container-pac/ethernet-container:ethernet-container-capability/ethernet-container:supported-header-compression-kind-list/ethernet-container:header-compression-name";
+        require-instance false;
+      }
+      must 'boolean(/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol/ethernet-container:ethernet-container-pac/ethernet-container:ethernet-container-capability/ethernet-container:supported-header-compression-kind-list[header-compression-name=current()])';
+      description
+        "Defines the kind of header compression to be used.";
+    }
+    leaf fec-is-on {
+      type boolean;
+      default "false";
+      description
+        "802.3 according to 30.5.1.1.16 aFECmode, 45.2.1.93.1 FEC enable and 45.2.3.38.2 10 Gb/s FEC Enable and ITU-T Rec. G.998.3 Appendix II aFECAdminState. Only relevant if (fecIsAvail==1). 1 = Activation of the Forward Error Correction (FEC).";
+    }
+    leaf fec-word-size {
+      type int16;
+      units "Byte";
+      default "-1";
+      description
+        "ITU-T Rec. G.998.3 Appendix II aFECWordSize. Only relevant if (fecIsSupported==1). Defining the Forward Error Correction (FEC) code word size in Bytes. Expected values between 20 and 255.";
+    }
+    leaf fec-redundancy-size {
+      type fec-redundancy-size-type;
+      default "FEC_REDUNDANCY_SIZE_TYPE_NOT_YET_DEFINED";
+      description
+        "ITU-T Rec. G.998.3 Appendix II aFECRedundancySize. Only relevant if (fecIsSupported==1). Defining the Forward Error Correction (FEC) redundancy word size.";
+    }
+    leaf fec-interleaver-kind {
+      type fec-interleaver-kind-type;
+      default "FEC_INTERLEAVER_KIND_TYPE_NOT_YET_DEFINED";
+      description
+        "ITU-T Rec. G.998.3 Appendix II aFECInterleaverType. Only relevant if (fecIsSupported==1). Defining the kind of Forward Error Correction (FEC) interleaver.";
+    }
+    leaf fec-interleaver-depth {
+      type fec-interleaver-depth-type;
+      default "FEC_INTERLEAVER_DEPTH_TYPE_NOT_YET_DEFINED";
+      description
+        "ITU-T Rec. G.998.3 Appendix II aFECInterleaverDepth. Only relevant if (fecIsSupported==1). Defining the depth of Forward Error Correction (FEC) interleaver.";
+    }
+    leaf encryption-is-on {
+      type boolean;
+      default "false";
+      description
+        "Activates encryption of the Ethernet payload.";
+    }
+    leaf cryptographic-key {
+      type string;
+      default "Cryptographic key not yet defined.";
+      description
+        "Key for transforming plaintext into cipher text data.";
+    }
+    leaf loop-back-kind-on {
+      type loop-back-type;
+      default "LOOP_BACK_TYPE_NOT_YET_DEFINED";
+      description
+        "Maintenance Feature. Configuration of a loop back of TDM time slots on this interface.";
+    }
+    leaf maintenance-timer {
+      type int32;
+      units "s";
+      default "-1";
+      description
+        "Time of existence of any maintenance configuration. 0 = maintenance timer is switched off. Valid values are defined in *Capability::maintenanceTimerRange.";
+    }
+    leaf statistics-is-on {
+      type boolean;
+      default "false";
+      description
+        "Only relevant if (statisticsIsAvail==1). 1 = Continuous statistics counters are switched on.";
+    }
+    list problem-kind-severity-list {
+      key "problem-kind-name";
+      min-elements 2;
+      uses problem-kind-severity-type;
+      description
+        "Severity of the problem to be configured.";
+    }
+    leaf performance-monitoring-is-on {
+      type boolean;
+      default "false";
+      description
+        "Only relevant if (performanceMonitoringIsAvail==1). 1 = Collection and aggregation of performance values is switched on.";
+    }
+    description
+      "Serving Structures are identified by LogicalTerminationPoint::_serverLtpRefList. If (bundlingIsAvail==1), multiplicity might be *. If (bundlingIsAvail==0), multiplicity must be 0..1. It is assumed that there is just one Ethernet segment per Structure.";
+  }
+
+  grouping ethernet-container-status {
+    leaf interface-status {
+      type interface-status-type;
+      default "INTERFACE_STATUS_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "Operational status of the interface.";
+    }
+    leaf bundling-is-up {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "802.3 and ITU-T Rec. G.998.3 Appendix II aGroupStatus. 1 = Algorithm for bundling Ethernet segments is operative (, even if only a single Structure would be associated).";
+    }
+    leaf remote-site-is-faulty {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "802.3. 1 = remote fault condition detected.";
+    }
+    leaf loop-back-kind-up {
+      type loop-back-type;
+      default "LOOP_BACK_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "The currently active (not just configured) type of loop back.";
+    }
+    leaf statistics-is-up {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Statistics are currently counted";
+    }
+    leaf performance-monitoring-is-up {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Performance values are currently collected and aggregated.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "The timestamp associated with when the statistic values were read/retrieved.";
+    }
+    leaf last-10-sec-data-input-rate {
+      type int32;
+      units "kbit/s";
+      default "-1";
+      config false;
+      description
+        "Data receive rate over the last 10 second interval in kbit/s.";
+    }
+    leaf last-10-sec-data-output-rate {
+      type int32;
+      units "kbit/s";
+      default "-1";
+      config false;
+      description
+        "Data transmit rate over the last 10 second interval in kbit/s.";
+    }
+    leaf total-bytes-input {
+      type uint64;
+      units "Byte";
+      default "0";
+      config false;
+      description
+        "Received data volume in Byte.";
+    }
+    leaf total-bytes-output {
+      type uint64;
+      units "Byte";
+      default "0";
+      config false;
+      description
+        "Sent data volume in Byte.";
+    }
+    leaf forwarded-bytes-input {
+      type uint64;
+      units "Byte";
+      default "0";
+      config false;
+      description
+        "Number of received Bytes, for which the device was not their final destination and for which the device attempted to find a route to forward them to that final destination.";
+    }
+    leaf forwarded-bytes-output {
+      type uint64;
+      units "Byte";
+      default "0";
+      config false;
+      description
+        "Number of Bytes, for which the device was not their final destination and for which it was successful in finding a path to their final destination.";
+    }
+    description
+      "none";
+  }
+
+  grouping ethernet-container-current-problems {
+    list current-problem-list {
+      key "sequence-number";
+      config false;
+      uses container-current-problem-type;
+      description
+        "none";
+    }
+    leaf number-of-current-problems {
+      type int8;
+      default "-1";
+      config false;
+      description
+        "Number of alarms, which are currently active on this interface.";
+    }
+    leaf time-of-latest-change {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "Date and time when the list of alarms has been changed for the last time.";
+    }
+    description
+      "none";
+  }
+
+  grouping ethernet-container-current-performance {
+    list current-performance-data-list {
+      key "granularity-period";
+      config false;
+      min-elements 1;
+      max-elements 2;
+      uses container-current-performance-type;
+      description
+        "none";
+    }
+    leaf number-of-current-performance-sets {
+      type int8;
+      default "-1";
+      config false;
+      description
+        "Number of sets of current performance values, which are provided in the list.";
+    }
+    description
+      "Aggregated performance information of the Ethernet container at a particular moment.";
+  }
+
+  grouping ethernet-container-historical-performances {
+    list historical-performance-data-list {
+      key "granularity-period period-end-time";
+      config false;
+      uses container-historical-performance-type;
+      description
+        "none";
+    }
+    leaf number-of-historical-performance-sets {
+      type int16;
+      default "-1";
+      config false;
+      description
+        "Number of sets of historical performance values, which are provided in the list.";
+    }
+    leaf time-of-latest-change {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "Date and time when the list of sets of historical performance values has been changed for the last time (e.g. new one added or existing one deleted).";
+    }
+    description
+      "Aggregated performance information of the Ethernet container for a pre-defined measurement interval.";
+  }
+
+  grouping header-compression-kind {
+    leaf header-compression-name {
+      type string;
+      config false;
+      description
+        "none";
+    }
+    leaf header-compression-mode {
+      type header-compression-mode-type;
+      default "HEADER_COMPRESSION_MODE_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "Defines the way of configuring the header compression.";
+    }
+    leaf-list compressed-protocol-layer-list {
+      type protocol-layer-type;
+      config false;
+      min-elements 1;
+      description
+        "Only relevant if (headerCompressionMode==PROTOCOL_BASED). List of protocol layers that get compressed with this kind of header compression.";
+    }
+    leaf-list mpls-payload-kind-list {
+      type mpls-payload-kind-type;
+      config false;
+      min-elements 1;
+      description
+        "Defines how the header bytes inside the MPLS header has to be interpreted.";
+    }
+    leaf compressed-header-length {
+      type int16;
+      units "Byte";
+      default "-1";
+      config false;
+      description
+        "Only relevant if (headerCompressionMode==LENGTH_BASED). Number of Bytes of header information that get compressed.";
+    }
+    description
+      "none";
+  }
+
+  /****************************************
+   * typedef statements
+   **************************************/ 
+
+  typedef loop-back-type {
+    type identityref {
+      base LOOP_BACK_TYPE;
+    }
+    description
+      "none";
+  }
+
+  typedef header-compression-mode-type {
+    type identityref {
+      base HEADER_COMPRESSION_MODE_TYPE;
+    }
+    description
+      "none";
+  }
+
+  typedef protocol-layer-type {
+    type identityref {
+      base PROTOCOL_LAYER_TYPE;
+    }
+    description
+      "none";
+  }
+
+  typedef mpls-payload-kind-type {
+    type identityref {
+      base MPLS_PAYLOAD_KIND_TYPE;
+    }
+    description
+      "none";
+  }
+
+  typedef queue-name-type {
+    type identityref {
+      base QUEUE_NAME_TYPE;
+    }
+    description
+      "none";
+  }
+
+  typedef drop-precedence-type {
+    type identityref {
+      base DROP_PRECEDENCE_TYPE;
+    }
+    description
+      "none";
+  }
+
+  typedef dropping-behavior-kind-type {
+    type identityref {
+      base DROPPING_BEHAVIOR_KIND_TYPE;
+    }
+    description
+      "none";
+  }
+
+  typedef scheduler-kind-type {
+    type identityref {
+      base SCHEDULER_KIND_TYPE;
+    }
+    description
+      "none";
+  }
+
+  typedef fec-redundancy-size-type {
+    type identityref {
+      base FEC_REDUNDANCY_SIZE_TYPE;
+    }
+    description
+      "none";
+  }
+
+  typedef fec-interleaver-kind-type {
+    type identityref {
+      base FEC_INTERLEAVER_KIND_TYPE;
+    }
+    description
+      "none";
+  }
+
+  typedef fec-interleaver-depth-type {
+    type identityref {
+      base FEC_INTERLEAVER_DEPTH_TYPE;
+    }
+    description
+      "ITU-T Rec. G.998.3 Appendix II aFECInterleaverDepth";
+  }
+
+  /*********************************************
+   * grouping statements for complex data types
+   *******************************************/ 
+
+  identity LOOP_BACK_TYPE {
+    description
+      "none";
+  }
+
+  identity LOOP_BACK_TYPE_NONE {
+    base LOOP_BACK_TYPE;
+    description
+      "none";
+  }
+
+  identity LOOP_BACK_TYPE_BACK_TO_LOCAL {
+    base LOOP_BACK_TYPE;
+    description
+      "Returning the Ethernet frames of the local site on the outgoing interface back to the local site.";
+  }
+
+  identity LOOP_BACK_TYPE_BACK_TO_REMOTE {
+    base LOOP_BACK_TYPE;
+    description
+      "Returning the incoming Ethernet frames back to the remote site.";
+  }
+
+  identity LOOP_BACK_TYPE_NOT_YET_DEFINED {
+    base LOOP_BACK_TYPE;
+    description
+      "none";
+  }
+
+  identity HEADER_COMPRESSION_MODE_TYPE {
+    description
+      "none";
+  }
+
+  identity HEADER_COMPRESSION_MODE_TYPE_AUTO {
+    base HEADER_COMPRESSION_MODE_TYPE;
+    description
+      "The header compression algorithm determines the optimum compression.";
+  }
+
+  identity HEADER_COMPRESSION_MODE_TYPE_PROTOCOL_BASED {
+    base HEADER_COMPRESSION_MODE_TYPE;
+    description
+      "Predefined protocol layers are to be compressed.";
+  }
+
+  identity HEADER_COMPRESSION_MODE_TYPE_LENGTH_BASED {
+    base HEADER_COMPRESSION_MODE_TYPE;
+    description
+      "Predefined amount of header bytes are to be compressed.";
+  }
+
+  identity HEADER_COMPRESSION_MODE_TYPE_NOT_YET_DEFINED {
+    base HEADER_COMPRESSION_MODE_TYPE;
+    description
+      "none";
+  }
+
+  identity PROTOCOL_LAYER_TYPE {
+    description
+      "none";
+  }
+
+  identity PROTOCOL_LAYER_TYPE_NONE {
+    base PROTOCOL_LAYER_TYPE;
+    description
+      "none";
+  }
+
+  identity PROTOCOL_LAYER_TYPE_ETHERNET_MAC {
+    base PROTOCOL_LAYER_TYPE;
+    description
+      "none";
+  }
+
+  identity PROTOCOL_LAYER_TYPE_VLAN {
+    base PROTOCOL_LAYER_TYPE;
+    description
+      "none";
+  }
+
+  identity PROTOCOL_LAYER_TYPE_Q_IN_Q {
+    base PROTOCOL_LAYER_TYPE;
+    description
+      "none";
+  }
+
+  identity PROTOCOL_LAYER_TYPE_MPLS {
+    base PROTOCOL_LAYER_TYPE;
+    description
+      "none";
+  }
+
+  identity PROTOCOL_LAYER_TYPE_IPV4 {
+    base PROTOCOL_LAYER_TYPE;
+    description
+      "none";
+  }
+
+  identity PROTOCOL_LAYER_TYPE_IPV6 {
+    base PROTOCOL_LAYER_TYPE;
+    description
+      "none";
+  }
+
+  identity PROTOCOL_LAYER_TYPE_TCP {
+    base PROTOCOL_LAYER_TYPE;
+    description
+      "none";
+  }
+
+  identity PROTOCOL_LAYER_TYPE_UDP {
+    base PROTOCOL_LAYER_TYPE;
+    description
+      "none";
+  }
+
+  identity PROTOCOL_LAYER_TYPE_RTP {
+    base PROTOCOL_LAYER_TYPE;
+    description
+      "none";
+  }
+
+  identity PROTOCOL_LAYER_TYPE_GTP_U {
+    base PROTOCOL_LAYER_TYPE;
+    description
+      "none";
+  }
+
+  identity PROTOCOL_LAYER_TYPE_OTHERS {
+    base PROTOCOL_LAYER_TYPE;
+    description
+      "none";
+  }
+
+  identity PROTOCOL_LAYER_TYPE_NOT_YET_DEFINED {
+    base PROTOCOL_LAYER_TYPE;
+    description
+      "none";
+  }
+
+  identity MPLS_PAYLOAD_KIND_TYPE {
+    description
+      "none";
+  }
+
+  identity MPLS_PAYLOAD_KIND_TYPE_NONE {
+    base MPLS_PAYLOAD_KIND_TYPE;
+    description
+      "Parameter not required.";
+  }
+
+  identity MPLS_PAYLOAD_KIND_TYPE_AUTO {
+    base MPLS_PAYLOAD_KIND_TYPE;
+    description
+      "If the Control Word (CW) will be present, it would be Ethernet Over MPLS. OtherwiseI, it would be Pv4/IPv6.";
+  }
+
+  identity MPLS_PAYLOAD_KIND_TYPE_ETH_O_MPLS {
+    base MPLS_PAYLOAD_KIND_TYPE;
+    description
+      "Always Ethernet over MPLS ";
+  }
+
+  identity MPLS_PAYLOAD_KIND_TYPE_IP_O_MPLS {
+    base MPLS_PAYLOAD_KIND_TYPE;
+    description
+      "Always IPv4/IPv6 over MPLS";
+  }
+
+  identity MPLS_PAYLOAD_KIND_TYPE_NOT_YET_DEFINED {
+    base MPLS_PAYLOAD_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity QUEUE_NAME_TYPE {
+    description
+      "none";
+  }
+
+  identity QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE {
+    base QUEUE_NAME_TYPE;
+    description
+      "QueueNumber=0;";
+  }
+
+  identity QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE1 {
+    base QUEUE_NAME_TYPE;
+    description
+      "QueueNumber=1;";
+  }
+
+  identity QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE2 {
+    base QUEUE_NAME_TYPE;
+    description
+      "QueueNumber=2;";
+  }
+
+  identity QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE3 {
+    base QUEUE_NAME_TYPE;
+    description
+      "QueueNumber=3;";
+  }
+
+  identity QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE4 {
+    base QUEUE_NAME_TYPE;
+    description
+      "QueueNumber=4;";
+  }
+
+  identity QUEUE_NAME_TYPE_EXPEDITED_FORWARDING_QUEUE {
+    base QUEUE_NAME_TYPE;
+    description
+      "QueueNumber=5;";
+  }
+
+  identity QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE6 {
+    base QUEUE_NAME_TYPE;
+    description
+      "QueueNumber=6;";
+  }
+
+  identity QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE7 {
+    base QUEUE_NAME_TYPE;
+    description
+      "QueueNumber=7;";
+  }
+
+  identity QUEUE_NAME_TYPE_QUEUENAME_NOT_YET_DEFINED {
+    base QUEUE_NAME_TYPE;
+    description
+      "none";
+  }
+
+  identity DROP_PRECEDENCE_TYPE {
+    description
+      "none";
+  }
+
+  identity DROP_PRECEDENCE_TYPE_ALL {
+    base DROP_PRECEDENCE_TYPE;
+    description
+      "If all drop precedence are affected. This includes the case of drop precedences are not implemented.";
+  }
+
+  identity DROP_PRECEDENCE_TYPE_LOW {
+    base DROP_PRECEDENCE_TYPE;
+    description
+      "Would be equal to GREEN.";
+  }
+
+  identity DROP_PRECEDENCE_TYPE_MEDIUM {
+    base DROP_PRECEDENCE_TYPE;
+    description
+      "Would be equal to YELLOW.";
+  }
+
+  identity DROP_PRECEDENCE_TYPE_HIGH {
+    base DROP_PRECEDENCE_TYPE;
+    description
+      "Would be equal to RED.";
+  }
+
+  identity DROP_PRECEDENCE_TYPE_NOT_YET_DEFINED {
+    base DROP_PRECEDENCE_TYPE;
+    description
+      "none";
+  }
+
+  identity DROPPING_BEHAVIOR_KIND_TYPE {
+    description
+      "none";
+  }
+
+  identity DROPPING_BEHAVIOR_KIND_TYPE_DROP_TAIL {
+    base DROPPING_BEHAVIOR_KIND_TYPE;
+    description
+      "When the queue is filled to capacity, newly arriving packets are discarded until there is room in the queue to accept new traffic.  Packets are not differentiated, i.e., all packets are treated identically.";
+  }
+
+  identity DROPPING_BEHAVIOR_KIND_TYPE_RED {
+    base DROPPING_BEHAVIOR_KIND_TYPE;
+    description
+      "Queue management based on Random Early Detection (RED).  RED drops packets based on a drop probability that is based on the average queue length, and settings of mininum and maximum queue thresholds.  On ECN-capable devices, packets may be marked instead of dropped to signal congestion to the sender.";
+  }
+
+  identity DROPPING_BEHAVIOR_KIND_TYPE_WRED {
+    base DROPPING_BEHAVIOR_KIND_TYPE;
+    description
+      "Queue management based on a variant of RED in which the packet drop probability is based on its traffic class.";
+  }
+
+  identity DROPPING_BEHAVIOR_KIND_TYPE_NOT_YET_DEFINED {
+    base DROPPING_BEHAVIOR_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity SCHEDULER_KIND_TYPE {
+    description
+      "none";
+  }
+
+  identity SCHEDULER_KIND_TYPE_STRICT {
+    base SCHEDULER_KIND_TYPE;
+    description
+      "Strict Priority";
+  }
+
+  identity SCHEDULER_KIND_TYPE_WFQ {
+    base SCHEDULER_KIND_TYPE;
+    description
+      "Weighted-Fair-Queuing";
+  }
+
+  identity SCHEDULER_KIND_TYPE_WRR {
+    base SCHEDULER_KIND_TYPE;
+    description
+      "Weighted Round Robin";
+  }
+
+  identity SCHEDULER_KIND_TYPE_DWRR {
+    base SCHEDULER_KIND_TYPE;
+    description
+      "Deficit Weighted Round Robin";
+  }
+
+  identity SCHEDULER_KIND_TYPE_NOT_YET_DEFINED {
+    base SCHEDULER_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity FEC_REDUNDANCY_SIZE_TYPE {
+    description
+      "none";
+  }
+
+  identity FEC_REDUNDANCY_SIZE_TYPE_2 {
+    base FEC_REDUNDANCY_SIZE_TYPE;
+    description
+      "none";
+  }
+
+  identity FEC_REDUNDANCY_SIZE_TYPE_4 {
+    base FEC_REDUNDANCY_SIZE_TYPE;
+    description
+      "none";
+  }
+
+  identity FEC_REDUNDANCY_SIZE_TYPE_8 {
+    base FEC_REDUNDANCY_SIZE_TYPE;
+    description
+      "none";
+  }
+
+  identity FEC_REDUNDANCY_SIZE_TYPE_16 {
+    base FEC_REDUNDANCY_SIZE_TYPE;
+    description
+      "none";
+  }
+
+  identity FEC_REDUNDANCY_SIZE_TYPE_20 {
+    base FEC_REDUNDANCY_SIZE_TYPE;
+    description
+      "none";
+  }
+
+  identity FEC_REDUNDANCY_SIZE_TYPE_NOT_YET_DEFINED {
+    base FEC_REDUNDANCY_SIZE_TYPE;
+    description
+      "none";
+  }
+
+  identity FEC_INTERLEAVER_KIND_TYPE {
+    description
+      "none";
+  }
+
+  identity FEC_INTERLEAVER_KIND_TYPE_NONE {
+    base FEC_INTERLEAVER_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity FEC_INTERLEAVER_KIND_TYPE_BLOCK {
+    base FEC_INTERLEAVER_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity FEC_INTERLEAVER_KIND_TYPE_CONVOLUTION {
+    base FEC_INTERLEAVER_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity FEC_INTERLEAVER_KIND_TYPE_NOT_YET_DEFINED {
+    base FEC_INTERLEAVER_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity FEC_INTERLEAVER_DEPTH_TYPE {
+    description
+      "none";
+  }
+
+  identity FEC_INTERLEAVER_DEPTH_TYPE_1 {
+    base FEC_INTERLEAVER_DEPTH_TYPE;
+    description
+      "none";
+  }
+
+  identity FEC_INTERLEAVER_DEPTH_TYPE_2 {
+    base FEC_INTERLEAVER_DEPTH_TYPE;
+    description
+      "none";
+  }
+
+  identity FEC_INTERLEAVER_DEPTH_TYPE_3 {
+    base FEC_INTERLEAVER_DEPTH_TYPE;
+    description
+      "none";
+  }
+
+  identity FEC_INTERLEAVER_DEPTH_TYPE_4 {
+    base FEC_INTERLEAVER_DEPTH_TYPE;
+    description
+      "none";
+  }
+
+  identity FEC_INTERLEAVER_DEPTH_TYPE_6 {
+    base FEC_INTERLEAVER_DEPTH_TYPE;
+    description
+      "none";
+  }
+
+  identity FEC_INTERLEAVER_DEPTH_TYPE_8 {
+    base FEC_INTERLEAVER_DEPTH_TYPE;
+    description
+      "none";
+  }
+
+  identity FEC_INTERLEAVER_DEPTH_TYPE_12 {
+    base FEC_INTERLEAVER_DEPTH_TYPE;
+    description
+      "none";
+  }
+
+  identity FEC_INTERLEAVER_DEPTH_TYPE_16 {
+    base FEC_INTERLEAVER_DEPTH_TYPE;
+    description
+      "none";
+  }
+
+  identity FEC_INTERLEAVER_DEPTH_TYPE_24 {
+    base FEC_INTERLEAVER_DEPTH_TYPE;
+    description
+      "none";
+  }
+
+  identity FEC_INTERLEAVER_DEPTH_TYPE_32 {
+    base FEC_INTERLEAVER_DEPTH_TYPE;
+    description
+      "none";
+  }
+
+  identity FEC_INTERLEAVER_DEPTH_TYPE_48 {
+    base FEC_INTERLEAVER_DEPTH_TYPE;
+    description
+      "none";
+  }
+
+  identity FEC_INTERLEAVER_DEPTH_TYPE_96 {
+    base FEC_INTERLEAVER_DEPTH_TYPE;
+    description
+      "none";
+  }
+
+  identity FEC_INTERLEAVER_DEPTH_TYPE_NOT_YET_DEFINED {
+    base FEC_INTERLEAVER_DEPTH_TYPE;
+    description
+      "none";
+  }
+
+  identity GRANULARITY_PERIOD_TYPE {
+    description
+      "none";
+  }
+
+  identity GRANULARITY_PERIOD_TYPE_UNKNOWN {
+    base GRANULARITY_PERIOD_TYPE;
+    description
+      "none";
+  }
+
+  identity GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN {
+    base GRANULARITY_PERIOD_TYPE;
+    description
+      "none";
+  }
+
+  identity GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS {
+    base GRANULARITY_PERIOD_TYPE;
+    description
+      "none";
+  }
+
+  identity GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED {
+    base GRANULARITY_PERIOD_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE {
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_NON_ALARMED {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_WARNING {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_MINOR {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_MAJOR {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_CRITICAL {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_NOT_YET_DEFINED {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity INTERFACE_STATUS_TYPE {
+    description
+      "none";
+  }
+
+  identity INTERFACE_STATUS_TYPE_UP {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Ready to pass packets.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_DOWN {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "The interface does not pass any packets.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_TESTING {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "In some test mode.  No operational packets can be passed.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_UNKNOWN {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Status cannot be determined for some reason.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_DORMANT {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Waiting for some external event.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_NOT_PRESENT {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Some component (typically hardware) is missing.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Down due to state of lower-layer interface(s).";
+  }
+
+  identity INTERFACE_STATUS_TYPE_ADMIN_DOWN {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Down due to configuration.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_NOT_YET_DEFINED {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "none";
+  }
+
+  /****************************************
+   * package super-types
+   **************************************/ 
+
+  typedef granularity-period-type {
+    type identityref {
+      base GRANULARITY_PERIOD_TYPE;
+    }
+    description
+      "The enumeration with the options for granularity period of the performance data.";
+  }
+
+  typedef severity-type {
+    type identityref {
+      base SEVERITY_TYPE;
+    }
+    description
+      "According to ITU-T M.3160";
+  }
+
+  typedef interface-status-type {
+    type identityref {
+      base INTERFACE_STATUS_TYPE;
+    }
+    description
+      "Current Interface Status";
+  }
+
+  grouping problem-kind-severity-type {
+    leaf problem-kind-name {
+      type string;
+      description
+        "Name of the alarm according to supportedAlarmList";
+    }
+    leaf problem-kind-severity {
+      type severity-type;
+      default "SEVERITY_TYPE_NOT_YET_DEFINED";
+      description
+        "Severity of this type of alarm.";
+    }
+    description
+      "none";
+  }
+
+  grouping available-queue-type {
+    leaf queue-name {
+      type queue-name-type;
+      config false;
+      description
+        "Name of the queue.";
+    }
+    leaf max-queue-depth {
+      type int32;
+      units "Byte";
+      default "-1";
+      config false;
+      description
+        "Maximum configurable depth of the queue in Byte. openconfig-qos-interfaces.yang";
+    }
+    leaf queue-depth-configuration-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Size of the individual queue is configurable (setting thresholdHigh of a WRED profile might be an alternative way of configuring the effective queue depth).";
+    }
+    leaf-list available-dropping-behavior-kind-list {
+      type dropping-behavior-kind-type;
+      config false;
+      min-elements 1;
+      max-elements 4;
+      description
+        "Lists the available types of behavior in case of congestions.";
+    }
+    leaf-list available-drop-precedence-kind-list {
+      type drop-precedence-type;
+      config false;
+      min-elements 1;
+      max-elements 3;
+      description
+        "Explicit list (ALL not to be used here) of drop precedences, which are available for this queue.";
+    }
+    leaf wred-profile-per-drop-precedence-is-available {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Separate WRED profiles can be defined for every drop precedence.";
+    }
+    leaf-list available-scheduling-kind-list {
+      type scheduler-kind-type;
+      config false;
+      min-elements 1;
+      max-elements 4;
+      description
+        "Lists the available types of scheduling.";
+    }
+    description
+      "none";
+  }
+
+  grouping wred-behavior-type {
+    leaf affected-drop-precedence {
+      type drop-precedence-type;
+      description
+        "Definition of the drop precedence, for which the WRED profile shall apply on.";
+    }
+    leaf affected-protocol {
+      type protocol-layer-type;
+      description
+        "Definition of the kind of protocol, for which the WRED profile shall apply on.";
+    }
+    leaf wred-profile {
+      type leafref {
+        path "/core-model:control-construct/core-model:profile-collection/core-model:profile/core-model:uuid";
+        require-instance false;
+      }
+      description
+        "Associates a WRED profile to the queue, respectively drop precedence. Attribute to point to an instance of Profile with profileName=='PROFILE_NAME_TYPE_WRED_PROFILE'.";
+    }
+    description
+      "none";
+  }
+
+  grouping queue-behavior-type {
+    leaf queue-name {
+      type queue-name-type;
+      description
+        "Name of the queue.";
+    }
+    leaf queue-depth {
+      type int32;
+      units "Byte";
+      default "-1";
+      description
+        "Only relevant if (queueDepthConfigurationIsAvail==1). Size of the queue in Byte.";
+    }
+    leaf dropping-behavior-kind {
+      type dropping-behavior-kind-type;
+      default "DROPPING_BEHAVIOR_KIND_TYPE_NOT_YET_DEFINED";
+      description
+        "Defines the behavior in case of congestions.";
+    }
+    list wred-behavior-list {
+      key "affected-drop-precedence affected-protocol";
+      uses wred-behavior-type;
+      description
+        "Only relevant if (droppingBehaviorKind==WRED).";
+    }
+    leaf scheduler-kind {
+      type scheduler-kind-type;
+      default "SCHEDULER_KIND_TYPE_NOT_YET_DEFINED";
+      description
+        "Type of scheduler to be used for this queue.";
+    }
+    leaf weighting {
+      type int8;
+      units "%";
+      default "-1";
+      description
+        "Only relevant if (schedulerKind==WFQ) OR (schedulerKind==DWRR) OR (schedulerKind==WRR). Serving rate for this weighted fair queueing queue as a percentage value.";
+    }
+    description
+      "none";
+  }
+
+  grouping container-current-problem-type {
+    leaf problem-name {
+      type string;
+      default "Problem name not specified.";
+      config false;
+      description
+        "Name of the alarm according to Container::ContainerCapability::supportedAlarms";
+    }
+    uses current-problem;
+    description
+      "none";
+  }
+
+  grouping queue-utilization-type {
+    leaf queue-name {
+      type queue-name-type;
+      config false;
+      description
+        "Name of the queue.";
+    }
+    leaf max-queue-length {
+      type int32;
+      units "Byte";
+      default "-1";
+      config false;
+      description
+        "Maximum observed queue length. openconfig-qos-interfaces.yang";
+    }
+    leaf avg-queue-length {
+      type int32;
+      units "Byte";
+      default "-1";
+      config false;
+      description
+        "Average observed queue length. openconfig-qos-interfaces.yang";
+    }
+    description
+      "none";
+  }
+
+  grouping container-performance-type {
+    leaf tx-ethernet-bytes-max-s {
+      type int32;
+      units "Bytes/s";
+      default "-1";
+      config false;
+      description
+        "Counts the number of Bytes of Ethernet traffic (before header compression) transmitted within a second and keeps the highest value within the measurement period. Field to be left blank for all types of TDM containers.";
+    }
+    leaf tx-ethernet-bytes-max-m {
+      type int64;
+      units "Bytes/min";
+      default "-1";
+      config false;
+      description
+        "Counts the number of Bytes of Ethernet traffic (before header compression) transmitted within a minute and keeps the highest value with in the measurement period. Field to be left blank for all types of TDM containers.";
+    }
+    leaf tx-ethernet-bytes-sum {
+      type int64;
+      units "Bytes";
+      default "-1";
+      config false;
+      description
+        "Total number of Bytes of Ethernet traffic (before header compression) transmitted (in direction out of the device) during the measurement period. Field to be left blank for all types of TDM containers.";
+    }
+    list queue-utilization-list {
+      key "queue-name";
+      config false;
+      max-elements 8;
+      uses queue-utilization-type;
+      description
+        "Utilization of the respective queue. openconfig-qos-interfaces.yang";
+    }
+    leaf fec-corrected-blocks {
+      type int32;
+      units "Blocks";
+      default "-1";
+      config false;
+      description
+        "802.3 according to 30.5.1.1.17 aFECCorrectedBlocks and 30.11.2.1.8 aPMEFECCorrectedBlocks and 45.2.1.94 10GBASE-R FEC corrected blocks counter. Counts received blocks that have been corrected by the Forward Error Correction (FEC) function.";
+    }
+    leaf fec-uncorrectable-blocks {
+      type int32;
+      units "Blocks";
+      default "-1";
+      config false;
+      description
+        "802.3 according to 30.5.1.1.18 aFECUncorrectableBlocks and 30.11.2.1.9 aPMEFECUncorrectableBlocks and 45.2.1.95 10GBASE-R FEC uncorrected blocks counter. Counts received blocks that could not been corrected by the Forward Error Correction (FEC) function.";
+    }
+    leaf time-period {
+      type int32;
+      units "s";
+      default "-1";
+      config false;
+      description
+        "Total length of the measurement period in seconds.";
+    }
+    description
+      "Consolidated performance information of the Container.";
+  }
+
+  grouping container-current-performance-type {
+    container performance-data {
+      config false;
+      uses container-performance-type;
+      description
+        "none";
+    }
+    uses current-performance;
+    description
+      "Turns performance information into current performance information by inheriting from OTN_CurrentData.";
+  }
+
+  grouping container-historical-performance-type {
+    container performance-data {
+      config false;
+      uses container-performance-type;
+      description
+        "none";
+    }
+    uses historical-performance;
+    description
+      "Turns performance information into historical performance information by inheriting from OTN_HistoryData.";
+  }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/hybrid-mw-structure-2-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/hybrid-mw-structure-2-0.yang
new file mode 100644
index 0000000..73d84d5
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/hybrid-mw-structure-2-0.yang
@@ -0,0 +1,945 @@
+module hybrid-mw-structure-2-0 {
+  yang-version 1.1;
+  namespace "urn:onf:yang:hybrid-mw-structure-2-0";
+  prefix hybrid-mw-structure;
+
+  import ietf-yang-types {
+    prefix yang;
+  }
+  import core-model-1-4 {
+    prefix core-model;
+  }
+
+  organization
+    "openBackhaul.com proposal to Open Networking Foundation (ONF)";
+  contact
+    "WG Web : https://github.com/openBackhaul/Overview
+     WG List: HybridMwStructure@openBackhaul.com
+     Editor : Thorsten Heinze
+     Email  : Thorsten.Heinze@openBackhaul.com";
+  description
+    "Technology specific interface definition for a hybrid microwave structure on a physical media
+
+     Copyright 2019 openBackhaul.com
+
+     Licensed under the Apache License, Version 2.0 (the 'License');
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+     http://www.apache.org/licenses/LICENSE-2.0
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an 'AS IS' BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.";
+
+  revision 2020-01-22 {
+    description
+      "Model for the Transport SDN Pilot at Telefonica Germany.
+       Please view https://github.com/openBackhaul/hybridMwStructure/issues for changes.";
+    reference
+      "https://github.com/openBackhaul/hybridMwStructure/tree/tsp: Model definition
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+  }
+  revision 2019-11-23 {
+    description
+      "Model for the Transport SDN Pilot at Telefonica Germany.
+       Please view https://github.com/openBackhaul/hybridMwStructure/issues for changes.";
+    reference
+      "https://github.com/openBackhaul/hybridMwStructure/tree/tsp: Model definition
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+  }
+  revision 2019-07-08 {
+    description
+      "Model for the Transport SDN Pilot at Telefonica Germany.
+       Please view https://github.com/openBackhaul/hybridMwStructure/issues for changes.";
+    reference
+      "https://github.com/openBackhaul/hybridMwStructure/tree/tsp: Model definition
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+  }
+
+  identity LAYER_PROTOCOL_NAME_TYPE_HYBRID_MW_STRUCTURE_LAYER {
+    base core-model:LAYER_PROTOCOL_NAME_TYPE;
+    description
+      "none";
+  }
+
+  augment "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol" {
+    when "derived-from-or-self(./core-model:layer-protocol-name, 'hybrid-mw-structure:LAYER_PROTOCOL_NAME_TYPE_HYBRID_MW_STRUCTURE_LAYER')";
+    uses hybrid-mw-structure-lp-spec;
+    description
+      "none";
+  }
+
+  /****************************************
+   * package notifications
+   **************************************/ 
+
+  notification object-creation-notification {
+    uses object-creation-notification;
+    description
+      "none";
+  }
+
+  grouping object-creation-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts object creation notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf object-type {
+      type string;
+      default "Type of created object not specified.";
+      config false;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  notification object-deletion-notification {
+    uses object-deletion-notification;
+    description
+      "none";
+  }
+
+  grouping object-deletion-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts object deletion notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  notification attribute-value-changed-notification {
+    uses attribute-value-changed-notification;
+    description
+      "none";
+  }
+
+  grouping attribute-value-changed-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts attribute value changed notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf attribute-name {
+      type string;
+      default "Attribute name not specified.";
+      config false;
+      description
+        "Name of the attribute that has been changed.";
+    }
+    leaf new-value {
+      type string;
+      default "New value not specified.";
+      config false;
+      description
+        "Attribute value converted to a string (xml, json, ...)";
+    }
+    description
+      "none";
+  }
+
+  notification problem-notification {
+    uses problem-notification;
+    description
+      "none";
+  }
+
+  grouping problem-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts problem notifications";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf problem {
+      type string;
+      default "Problem name not specified.";
+      config false;
+      description
+        "Name of the problem according to supportedAlarmList";
+    }
+    leaf severity {
+      type severity-type;
+      default "SEVERITY_TYPE_WARNING";
+      config false;
+      description
+        "Severity of the problem according to problemKindSeverity";
+    }
+    description
+      "none";
+  }
+
+  /****************************************
+   * grouping statements for object classes
+   **************************************/ 
+  /****************************************
+   * package super-classes
+   **************************************/ 
+
+  grouping current-problem {
+    leaf sequence-number {
+      type int16;
+      config false;
+      description
+        "Unique sequence number of the current problem object.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "Time when the alarm was raised.";
+    }
+    leaf problem-severity {
+      type severity-type;
+      default "SEVERITY_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "Severity of the alarm.";
+    }
+    description
+      "none";
+  }
+
+  grouping current-performance {
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "The timestamp associated with when the current data was collected.";
+    }
+    leaf suspect-interval-flag {
+      type boolean;
+      default "false";
+      config false;
+      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.";
+    }
+    leaf elapsed-time {
+      type int64;
+      units "s";
+      default "-1";
+      config false;
+      description
+        "Number of seconds that elapsed since the last reset of the counter.";
+    }
+    leaf scanner-id {
+      type string;
+      default "Scanner ID not defined.";
+      config false;
+      description
+        "none";
+    }
+    leaf granularity-period {
+      type granularity-period-type;
+      config false;
+      description
+        "Time period between reset of the underlying counter.";
+    }
+    description
+      "none";
+  }
+
+  grouping historical-performance {
+    leaf suspect-interval-flag {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "This attribute indicates that the data collected during the interval is suspect.";
+    }
+    leaf history-data-id {
+      type string;
+      default "History Data ID not defined.";
+      config false;
+      description
+        "none";
+    }
+    leaf granularity-period {
+      type granularity-period-type;
+      config false;
+      description
+        "Time period between reset of the underlying counter.";
+    }
+    leaf period-end-time {
+      type yang:date-and-time;
+      config false;
+      description
+        "Time when the counter values have been recorded and the counter reset.";
+    }
+    description
+      "none";
+  }
+
+  grouping hybrid-mw-structure-lp-spec {
+    container hybrid-mw-structure-pac {
+      uses hybrid-mw-structure-pac;
+      description
+        "none";
+    }
+    description
+      "The HybridMwStructureLpSpec and its attached classes MUST be provided on management interfaces of microwave devices, which are transporting TDM and Ethernet traffic.";
+  }
+
+  grouping hybrid-mw-structure-pac {
+    container hybrid-mw-structure-capability {
+      config false;
+      uses hybrid-mw-structure-capability;
+      description
+        "none";
+    }
+    container hybrid-mw-structure-configuration {
+      uses hybrid-mw-structure-configuration;
+      description
+        "none";
+    }
+    container hybrid-mw-structure-status {
+      config false;
+      uses hybrid-mw-structure-status;
+      description
+        "none";
+    }
+    container hybrid-mw-structure-current-problems {
+      config false;
+      uses hybrid-mw-structure-current-problems;
+      description
+        "none";
+    }
+    container hybrid-mw-structure-current-performance {
+      config false;
+      uses hybrid-mw-structure-current-performance;
+      description
+        "none";
+    }
+    container hybrid-mw-structure-historical-performances {
+      config false;
+      uses hybrid-mw-structure-historical-performances;
+      description
+        "none";
+    }
+    description
+      "The HybridMwStructure_Pac and its attached classes MUST be provided on management interfaces of microwave devices, which are transporting TDM and Ethernet traffic.";
+  }
+
+  grouping hybrid-mw-structure-capability {
+    list supported-tdm-structure-kind-list {
+      key "tdm-structure-name";
+      config false;
+      min-elements 1;
+      uses tdm-structure-kind;
+      description
+        "Lists the TDM frame types that are supported.";
+    }
+    leaf-list supported-alarm-list {
+      type string;
+      default "Supported alarms not yet defined.";
+      config false;
+      description
+        "Available alarms to be listed. Mandatory:none. Names are to be separated by commas. Further alarms might be added by the vendor.";
+    }
+    leaf performance-monitoring-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Collection and aggregation of performance values is available.";
+    }
+    description
+      "Describes the logical structuring of the physical capacity provided by a hybrid microwave device (TDM + Ethernet). Segmentation is available. TDM transport is available.";
+  }
+
+  grouping hybrid-mw-structure-configuration {
+    leaf tdm-structure-kind {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol/hybrid-mw-structure:hybrid-mw-structure-pac/hybrid-mw-structure:hybrid-mw-structure-capability/hybrid-mw-structure:supported-tdm-structure-kind-list/hybrid-mw-structure:tdm-structure-name";
+        require-instance false;
+      }
+      must 'boolean(/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol/hybrid-mw-structure:hybrid-mw-structure-pac/hybrid-mw-structure:hybrid-mw-structure-capability/hybrid-mw-structure:supported-tdm-structure-kind-list[tdm-structure-name=current()])';
+      description
+        "TDM frame to be applied.";
+    }
+    leaf number-of-tdm-segments-to-be-reserved {
+      type int8;
+      default "-1";
+      description
+        "Allows to configure the number of segments reserved for TDM frames of the type specified in HybridMwStructure::HybridMwStructureConfiguration::structureType";
+    }
+    list problem-kind-severity-list {
+      key "problem-kind-name";
+      uses problem-kind-severity-type;
+      description
+        "Severity of the type of problem to be configured.";
+    }
+    list g-826-threshold-cross-alarm-list {
+      key "g-826-value-kind granularity-period";
+      uses g-826-threshold-cross-alarm-type;
+      description
+        "List of G826 related threshold cross alarms to be configured.";
+    }
+    leaf clearing-threshold-cross-alarms-is-on {
+      type boolean;
+      default "false";
+      description
+        "Setting this bit is clearing all the currently active threshold cross alarms.";
+    }
+    leaf performance-monitoring-is-on {
+      type boolean;
+      default "false";
+      description
+        "Enables measurement, collection, storage and access to performance data.";
+    }
+    description
+      "none";
+  }
+
+  grouping hybrid-mw-structure-status {
+    list segment-status-list {
+      key "segment-status-type-id";
+      config false;
+      min-elements 1;
+      uses segment-status-type;
+      description
+        "Status of each segment (all TDM and one Ethernet). Multiplicity = HybridMwStructure::StructureConfiguration::tdmReservedNumberOfSegments + 1";
+    }
+    leaf performance-monitoring-is-up {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Performance values are currently collected and aggregated.";
+    }
+    description
+      "none";
+  }
+
+  grouping hybrid-mw-structure-current-problems {
+    list current-problem-list {
+      key "sequence-number";
+      config false;
+      uses structure-current-problem-type;
+      description
+        "none";
+    }
+    leaf number-of-current-problems {
+      type int8;
+      default "-1";
+      config false;
+      description
+        "Number of alarms, which are currently active on this interface.";
+    }
+    leaf time-of-latest-change {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "Date and time when the list of alarms has been changed for the last time.";
+    }
+    description
+      "none";
+  }
+
+  grouping hybrid-mw-structure-current-performance {
+    list current-performance-data-list {
+      key "granularity-period";
+      config false;
+      min-elements 1;
+      max-elements 2;
+      uses structure-current-performance-type;
+      description
+        "At least values of the counters, which are reset every 15 minutes, are to be provided. If available, the current values of the counters, which are reset every 24 hour, can be provided, too.";
+    }
+    leaf number-of-current-performance-sets {
+      type int8;
+      default "-1";
+      config false;
+      description
+        "Number of sets of current performance values, which are provided in the list.";
+    }
+    description
+      "Aggregated performance information of the structure of a hybrid microwave at a particular moment.";
+  }
+
+  grouping hybrid-mw-structure-historical-performances {
+    list historical-performance-data-list {
+      key "granularity-period period-end-time";
+      config false;
+      uses structure-historical-performance-type;
+      description
+        "none";
+    }
+    leaf number-of-historical-performance-sets {
+      type int16;
+      default "-1";
+      config false;
+      description
+        "Number of sets of historical performance values, which are provided in the list.";
+    }
+    leaf time-of-latest-change {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "Date and time when the list of sets of historical performance values has been changed for the last time (e.g. new one added or existing one deleted).";
+    }
+    description
+      "Aggregated performance information of the structure of a hybrid microwave for a pre-defined measurement interval.";
+  }
+
+  grouping tdm-structure-kind {
+    leaf tdm-structure-name {
+      type string;
+      config false;
+      description
+        "Names to be chosen from the following list: 'e1','t1','j1','e3','ds3','stm1','cpri1','cpri2','cpri3','cpri4','cpri5','cpri6' or 'cpri7'";
+    }
+    leaf tdm-segment-size {
+      type int32;
+      units "kbit/s";
+      default "-1";
+      config false;
+      description
+        "Size of the TDM segment in kbit/s. Values to be chosen from the following list: '2048','1544','34000','44736 ','155520','614400','1228800','2457600','3072000','4915200','6144000' or '9830400;";
+    }
+    leaf max-number-of-segments-reservable {
+      type int8;
+      units "segments";
+      default "-1";
+      config false;
+      description
+        "Device specific maximum number of segments (not depending on current air interface configuration) that can be reserved for this type of segment on a single air interface.";
+    }
+    description
+      "none";
+  }
+
+  /****************************************
+   * typedef statements
+   **************************************/ 
+
+  typedef g-826-type {
+    type identityref {
+      base G_826_TYPE;
+    }
+    description
+      "none";
+  }
+
+  /*********************************************
+   * grouping statements for complex data types
+   *******************************************/ 
+
+  identity G_826_TYPE {
+    description
+      "none";
+  }
+
+  identity G_826_TYPE_ES {
+    base G_826_TYPE;
+    description
+      "Errored Seconds. Threshold cross alarm will relate to TypeDefinitions::AirInterfacePerformanceType::es .";
+  }
+
+  identity G_826_TYPE_SES {
+    base G_826_TYPE;
+    description
+      "Severely Errored Seconds. Threshold cross alarm will relate to TypeDefinitions::AirInterfacePerformanceType::ses .";
+  }
+
+  identity G_826_TYPE_CSES {
+    base G_826_TYPE;
+    description
+      "Consecutive Severely Errored Seconds. Threshold cross alarm will relate to TypeDefinitions::AirInterfacePerformanceType::cses .";
+  }
+
+  identity G_826_TYPE_UAS {
+    base G_826_TYPE;
+    description
+      "Unavailable Seconds. Threshold cross alarm will relate to TypeDefinitions::AirInterfacePerformanceType::unavailability.";
+  }
+
+  identity G_826_TYPE_NOT_SPECIFIED {
+    base G_826_TYPE;
+    description
+      "none";
+  }
+
+  identity GRANULARITY_PERIOD_TYPE {
+    description
+      "none";
+  }
+
+  identity GRANULARITY_PERIOD_TYPE_UNKNOWN {
+    base GRANULARITY_PERIOD_TYPE;
+    description
+      "none";
+  }
+
+  identity GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN {
+    base GRANULARITY_PERIOD_TYPE;
+    description
+      "none";
+  }
+
+  identity GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS {
+    base GRANULARITY_PERIOD_TYPE;
+    description
+      "none";
+  }
+
+  identity GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED {
+    base GRANULARITY_PERIOD_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE {
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_NON_ALARMED {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_WARNING {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_MINOR {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_MAJOR {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_CRITICAL {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_NOT_YET_DEFINED {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity OPERATIONAL_STATE_TYPE {
+    description
+      "none";
+  }
+
+  identity OPERATIONAL_STATE_TYPE_ENABLED {
+    base OPERATIONAL_STATE_TYPE;
+    description
+      "none";
+  }
+
+  identity OPERATIONAL_STATE_TYPE_DISABLED {
+    base OPERATIONAL_STATE_TYPE;
+    description
+      "none";
+  }
+
+  identity OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED {
+    base OPERATIONAL_STATE_TYPE;
+    description
+      "none";
+  }
+
+  /****************************************
+   * package super-types
+   **************************************/ 
+
+  typedef granularity-period-type {
+    type identityref {
+      base GRANULARITY_PERIOD_TYPE;
+    }
+    description
+      "The enumeration with the options for granularity period of the performance data.";
+  }
+
+  typedef severity-type {
+    type identityref {
+      base SEVERITY_TYPE;
+    }
+    description
+      "According to ITU-T M.3160";
+  }
+
+  typedef operational-state-type {
+    type identityref {
+      base OPERATIONAL_STATE_TYPE;
+    }
+    description
+      "The list of valid operational states for the connection.";
+  }
+
+  grouping problem-kind-severity-type {
+    leaf problem-kind-name {
+      type string;
+      description
+        "Name of the alarm according to supportedAlarmList";
+    }
+    leaf problem-kind-severity {
+      type severity-type;
+      default "SEVERITY_TYPE_NOT_YET_DEFINED";
+      description
+        "Severity of this type of alarm.";
+    }
+    description
+      "none";
+  }
+
+  grouping g-826-threshold-cross-alarm-type {
+    leaf g-826-value-kind {
+      type g-826-type;
+      description
+        "Kind of performance value that shall be equipped with a threshold alarm.";
+    }
+    leaf alarm-raising-threshold {
+      type int32;
+      units "s";
+      default "-1";
+      description
+        "Number of events required for raising the threshold cross alarm.";
+    }
+    leaf alarm-clearing-threshold {
+      type int32;
+      units "s";
+      default "-1";
+      description
+        "Number of events required for clearing the threshold cross alarm.";
+    }
+    leaf granularity-period {
+      type granularity-period-type;
+      description
+        "Period of the performance data collection.";
+    }
+    description
+      "Allows defining a threshold cross alarm.\n";
+  }
+
+  grouping segment-status-type {
+    leaf segment-status-type-id {
+      type int16;
+      config false;
+      description
+        "none";
+    }
+    leaf segment-is-reserved-for-tdm {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "The number of segments, which is configured by Structure::StructureConfiguration::tdmReservedNumberOfSegements, has to be reserved for TDM. Starting from the lowest index value, these segments have to be marked with a 'true' in segmentIsReservedForTdm.\n";
+    }
+    leaf operational-status {
+      type operational-state-type;
+      default "OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "Current operational status of each segment.";
+    }
+    description
+      "none";
+  }
+
+  grouping structure-current-problem-type {
+    leaf problem-name {
+      type string;
+      default "Problem name not specified.";
+      config false;
+      description
+        "Name of the alarm according to Structure::StructureCapability::supportedAlarms";
+    }
+    uses current-problem;
+    description
+      "none";
+  }
+
+  grouping structure-performance-type {
+    leaf time-period {
+      type int32;
+      units "s";
+      default "-1";
+      config false;
+      description
+        "Total length of the measurement period in seconds.";
+    }
+    leaf es {
+      type int32;
+      units "s";
+      default "-1";
+      config false;
+      description
+        "Number of errored seconds. 1+0: Same value as for single air interface. 1+1 and Diversity: Value representing the combined signals.";
+    }
+    leaf ses {
+      type int32;
+      units "s";
+      default "-1";
+      config false;
+      description
+        "Number of severely errored seconds. 1+0: Same value as for single air interface. 1+1 and Diversity: Value representing the combined signals.";
+    }
+    leaf cses {
+      type int32;
+      units "s";
+      default "-1";
+      config false;
+      description
+        "Number of consecutive severely errored seconds. 1+0: Same value as for single air interface. 1+1 and Diversity: Value representing the combined signals.";
+    }
+    leaf unavailability {
+      type int32;
+      units "s";
+      default "-1";
+      config false;
+      description
+        "Total time of unavailability in seconds. 1+0: Same value as for single air interface. 1+1 and Diversity: Value representing the combined signals.";
+    }
+    leaf rx-level-min {
+      type int8;
+      units "dBm";
+      default "99";
+      config false;
+      description
+        "Minimum receive level. 1+0: Same value as for single air interface. 1+1: Value representing the combined signals. Diversity: To be left on default value.";
+    }
+    leaf rx-level-max {
+      type int8;
+      units "dBm";
+      default "99";
+      config false;
+      description
+        "Maximum receive level. 1+0: Same value as for single air interface. 1+1: Value representing the combined signals. Diversity: To be left on default value.";
+    }
+    leaf rx-level-avg {
+      type int8;
+      units "dBm";
+      default "99";
+      config false;
+      description
+        "Averaged receive level. 1+0: Same value as for single air interface. 1+1: Value representing the combined signals. Diversity: To be left on default value.";
+    }
+    description
+      "Consolidated performance information of the Structure.";
+  }
+
+  grouping structure-current-performance-type {
+    container performance-data {
+      config false;
+      uses structure-performance-type;
+      description
+        "none";
+    }
+    uses current-performance;
+    description
+      "Turns performance information into current performance information by inheriting from OTN_CurrentData.";
+  }
+
+  grouping structure-historical-performance-type {
+    container performance-data {
+      config false;
+      uses structure-performance-type;
+      description
+        "none";
+    }
+    uses historical-performance;
+    description
+      "Turns performance information into historical performance information by inheriting from OTN_HistoryData.";
+  }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/ietf-yang-types.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/ietf-yang-types.yang
new file mode 100644
index 0000000..20a3ef0
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/ietf-yang-types.yang
@@ -0,0 +1,435 @@
+module ietf-yang-types {
+
+  namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types";
+  prefix "yang";
+
+  organization
+   "IETF NETMOD (NETCONF Data Modeling Language) Working Group";
+
+  contact
+   "WG Web:   <http://tools.ietf.org/wg/netmod/>
+    WG List:  <mailto:netmod@ietf.org>
+    WG Chair: David Kessens
+              <mailto:david.kessens@nsn.com>
+    WG Chair: Juergen Schoenwaelder
+              <mailto:j.schoenwaelder@jacobs-university.de>
+    Editor:   Juergen Schoenwaelder
+              <mailto:j.schoenwaelder@jacobs-university.de>";
+
+  description
+   "This module contains a collection of generally useful derived
+    YANG data types.
+    Copyright (c) 2013 IETF Trust and the persons identified as
+    authors of the code.  All rights reserved.
+    Redistribution and use in source and binary forms, with or
+    without modification, is permitted pursuant to, and subject
+    to the license terms contained in, the Simplified BSD License
+    set forth in Section 4.c of the IETF Trust's Legal Provisions
+    Relating to IETF Documents
+    (http://trustee.ietf.org/license-info).
+    This version of this YANG module is part of RFC 6991; see
+    the RFC itself for full legal notices.";
+
+  revision 2013-07-15 {
+    description
+     "This revision adds the following new data types:
+      - yang-identifier
+      - hex-string
+      - uuid
+      - dotted-quad";
+    reference
+     "RFC 6991: Common YANG Data Types";
+  }
+
+  revision 2010-09-24 {
+    description
+     "Initial revision.";
+    reference
+     "RFC 6021: Common YANG Data Types";
+  }
+
+  /*** collection of counter and gauge types ***/
+
+  typedef counter32 {
+    type uint32;
+    description
+     "The counter32 type represents a non-negative integer
+      that monotonically increases until it reaches a
+      maximum value of 2^32-1 (4294967295 decimal), when it
+      wraps around and starts increasing again from zero.
+      Counters have no defined 'initial' value, and thus, a
+      single value of a counter has (in general) no information
+      content.  Discontinuities in the monotonically increasing
+      value normally occur at re-initialization of the
+      management system, and at other times as specified in the
+      description of a schema node using this type.  If such
+      other times can occur, for example, the creation of
+      a schema node of type counter32 at times other than
+      re-initialization, then a corresponding schema node
+      should be defined, with an appropriate type, to indicate
+      the last discontinuity.
+      The counter32 type should not be used for configuration
+      schema nodes.  A default statement SHOULD NOT be used in
+      combination with the type counter32.
+      In the value set and its semantics, this type is equivalent
+      to the Counter32 type of the SMIv2.";
+    reference
+     "RFC 2578: Structure of Management Information Version 2
+                (SMIv2)";
+  }
+
+  typedef zero-based-counter32 {
+    type yang:counter32;
+    default "0";
+    description
+     "The zero-based-counter32 type represents a counter32
+      that has the defined 'initial' value zero.
+      A schema node of this type will be set to zero (0) on creation
+      and will thereafter increase monotonically until it reaches
+      a maximum value of 2^32-1 (4294967295 decimal), when it
+      wraps around and starts increasing again from zero.
+      Provided that an application discovers a new schema node
+      of this type within the minimum time to wrap, it can use the
+      'initial' value as a delta.  It is important for a management
+      station to be aware of this minimum time and the actual time
+      between polls, and to discard data if the actual time is too
+      long or there is no defined minimum time.
+      In the value set and its semantics, this type is equivalent
+      to the ZeroBasedCounter32 textual convention of the SMIv2.";
+    reference
+      "RFC 4502: Remote Network Monitoring Management Information
+                 Base Version 2";
+  }
+
+  typedef counter64 {
+    type uint64;
+    description
+     "The counter64 type represents a non-negative integer
+      that monotonically increases until it reaches a
+      maximum value of 2^64-1 (18446744073709551615 decimal),
+      when it wraps around and starts increasing again from zero.
+      Counters have no defined 'initial' value, and thus, a
+      single value of a counter has (in general) no information
+      content.  Discontinuities in the monotonically increasing
+      value normally occur at re-initialization of the
+      management system, and at other times as specified in the
+      description of a schema node using this type.  If such
+      other times can occur, for example, the creation of
+      a schema node of type counter64 at times other than
+      re-initialization, then a corresponding schema node
+      should be defined, with an appropriate type, to indicate
+      the last discontinuity.
+      The counter64 type should not be used for configuration
+      schema nodes.  A default statement SHOULD NOT be used in
+      combination with the type counter64.
+      In the value set and its semantics, this type is equivalent
+      to the Counter64 type of the SMIv2.";
+    reference
+     "RFC 2578: Structure of Management Information Version 2
+                (SMIv2)";
+  }
+
+  typedef zero-based-counter64 {
+    type yang:counter64;
+    default "0";
+    description
+     "The zero-based-counter64 type represents a counter64 that
+      has the defined 'initial' value zero.
+      A schema node of this type will be set to zero (0) on creation
+      and will thereafter increase monotonically until it reaches
+      a maximum value of 2^64-1 (18446744073709551615 decimal),
+      when it wraps around and starts increasing again from zero.
+      Provided that an application discovers a new schema node
+      of this type within the minimum time to wrap, it can use the
+      'initial' value as a delta.  It is important for a management
+      station to be aware of this minimum time and the actual time
+      between polls, and to discard data if the actual time is too
+      long or there is no defined minimum time.
+      In the value set and its semantics, this type is equivalent
+      to the ZeroBasedCounter64 textual convention of the SMIv2.";
+    reference
+     "RFC 2856: Textual Conventions for Additional High Capacity
+                Data Types";
+  }
+
+  typedef gauge32 {
+    type uint32;
+    description
+     "The gauge32 type represents a non-negative integer, which
+      may increase or decrease, but shall never exceed a maximum
+      value, nor fall below a minimum value.  The maximum value
+      cannot be greater than 2^32-1 (4294967295 decimal), and
+      the minimum value cannot be smaller than 0.  The value of
+      a gauge32 has its maximum value whenever the information
+      being modeled is greater than or equal to its maximum
+      value, and has its minimum value whenever the information
+      being modeled is smaller than or equal to its minimum value.
+      If the information being modeled subsequently decreases
+      below (increases above) the maximum (minimum) value, the
+      gauge32 also decreases (increases).
+      In the value set and its semantics, this type is equivalent
+      to the Gauge32 type of the SMIv2.";
+    reference
+     "RFC 2578: Structure of Management Information Version 2
+                (SMIv2)";
+  }
+
+  typedef gauge64 {
+    type uint64;
+    description
+     "The gauge64 type represents a non-negative integer, which
+      may increase or decrease, but shall never exceed a maximum
+      value, nor fall below a minimum value.  The maximum value
+      cannot be greater than 2^64-1 (18446744073709551615), and
+      the minimum value cannot be smaller than 0.  The value of
+      a gauge64 has its maximum value whenever the information
+      being modeled is greater than or equal to its maximum
+      value, and has its minimum value whenever the information
+      being modeled is smaller than or equal to its minimum value.
+      If the information being modeled subsequently decreases
+      below (increases above) the maximum (minimum) value, the
+      gauge64 also decreases (increases).
+      In the value set and its semantics, this type is equivalent
+      to the CounterBasedGauge64 SMIv2 textual convention defined
+      in RFC 2856";
+    reference
+     "RFC 2856: Textual Conventions for Additional High Capacity
+                Data Types";
+  }
+
+  /*** collection of identifier-related types ***/
+
+  typedef object-identifier {
+    type string {
+      pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))'
+            + '(\.(0|([1-9]\d*)))*';
+    }
+    description
+     "The object-identifier type represents administratively
+      assigned names in a registration-hierarchical-name tree.
+      Values of this type are denoted as a sequence of numerical
+      non-negative sub-identifier values.  Each sub-identifier
+      value MUST NOT exceed 2^32-1 (4294967295).  Sub-identifiers
+      are separated by single dots and without any intermediate
+      whitespace.
+      The ASN.1 standard restricts the value space of the first
+      sub-identifier to 0, 1, or 2.  Furthermore, the value space
+      of the second sub-identifier is restricted to the range
+      0 to 39 if the first sub-identifier is 0 or 1.  Finally,
+      the ASN.1 standard requires that an object identifier
+      has always at least two sub-identifiers.  The pattern
+      captures these restrictions.
+      Although the number of sub-identifiers is not limited,
+      module designers should realize that there may be
+      implementations that stick with the SMIv2 limit of 128
+      sub-identifiers.
+      This type is a superset of the SMIv2 OBJECT IDENTIFIER type
+      since it is not restricted to 128 sub-identifiers.  Hence,
+      this type SHOULD NOT be used to represent the SMIv2 OBJECT
+      IDENTIFIER type; the object-identifier-128 type SHOULD be
+      used instead.";
+    reference
+     "ISO9834-1: Information technology -- Open Systems
+      Interconnection -- Procedures for the operation of OSI
+      Registration Authorities: General procedures and top
+      arcs of the ASN.1 Object Identifier tree";
+  }
+
+  typedef object-identifier-128 {
+    type object-identifier {
+      pattern '\d*(\.\d*){1,127}';
+    }
+    description
+     "This type represents object-identifiers restricted to 128
+      sub-identifiers.
+      In the value set and its semantics, this type is equivalent
+      to the OBJECT IDENTIFIER type of the SMIv2.";
+    reference
+     "RFC 2578: Structure of Management Information Version 2
+                (SMIv2)";
+  }
+
+  typedef yang-identifier {
+    type string {
+      length "1..max";
+      pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*';
+      pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*';
+    }
+    description
+      "A YANG identifier string as defined by the 'identifier'
+       rule in Section 12 of RFC 6020.  An identifier must
+       start with an alphabetic character or an underscore
+       followed by an arbitrary sequence of alphabetic or
+       numeric characters, underscores, hyphens, or dots.
+       A YANG identifier MUST NOT start with any possible
+       combination of the lowercase or uppercase character
+       sequence 'xml'.";
+    reference
+      "RFC 6020: YANG - A Data Modeling Language for the Network
+                 Configuration Protocol (NETCONF)";
+  }
+
+  /*** collection of types related to date and time***/
+
+  typedef date-and-time {
+    type string {
+      pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?'
+            + '(Z|[\+\-]\d{2}:\d{2})';
+    }
+    description
+     "The date-and-time type is a profile of the ISO 8601
+      standard for representation of dates and times using the
+      Gregorian calendar.  The profile is defined by the
+      date-time production in Section 5.6 of RFC 3339.
+      The date-and-time type is compatible with the dateTime XML
+      schema type with the following notable exceptions:
+      (a) The date-and-time type does not allow negative years.
+      (b) The date-and-time time-offset -00:00 indicates an unknown
+          time zone (see RFC 3339) while -00:00 and +00:00 and Z
+          all represent the same time zone in dateTime.
+      (c) The canonical format (see below) of data-and-time values
+          differs from the canonical format used by the dateTime XML
+          schema type, which requires all times to be in UTC using
+          the time-offset 'Z'.
+      This type is not equivalent to the DateAndTime textual
+      convention of the SMIv2 since RFC 3339 uses a different
+      separator between full-date and full-time and provides
+      higher resolution of time-secfrac.
+      The canonical format for date-and-time values with a known time
+      zone uses a numeric time zone offset that is calculated using
+      the device's configured known offset to UTC time.  A change of
+      the device's offset to UTC time will cause date-and-time values
+      to change accordingly.  Such changes might happen periodically
+      in case a server follows automatically daylight saving time
+      (DST) time zone offset changes.  The canonical format for
+      date-and-time values with an unknown time zone (usually
+      referring to the notion of local time) uses the time-offset
+      -00:00.";
+    reference
+     "RFC 3339: Date and Time on the Internet: Timestamps
+      RFC 2579: Textual Conventions for SMIv2
+      XSD-TYPES: XML Schema Part 2: Datatypes Second Edition";
+  }
+
+  typedef timeticks {
+    type uint32;
+    description
+     "The timeticks type represents a non-negative integer that
+      represents the time, modulo 2^32 (4294967296 decimal), in
+      hundredths of a second between two epochs.  When a schema
+      node is defined that uses this type, the description of
+      the schema node identifies both of the reference epochs.
+      In the value set and its semantics, this type is equivalent
+      to the TimeTicks type of the SMIv2.";
+    reference
+     "RFC 2578: Structure of Management Information Version 2
+                (SMIv2)";
+  }
+
+  typedef timestamp {
+    type yang:timeticks;
+    description
+     "The timestamp type represents the value of an associated
+      timeticks schema node at which a specific occurrence
+      happened.  The specific occurrence must be defined in the
+      description of any schema node defined using this type.  When
+      the specific occurrence occurred prior to the last time the
+      associated timeticks attribute was zero, then the timestamp
+      value is zero.  Note that this requires all timestamp values
+      to be reset to zero when the value of the associated timeticks
+      attribute reaches 497+ days and wraps around to zero.
+      The associated timeticks schema node must be specified
+      in the description of any schema node using this type.
+      In the value set and its semantics, this type is equivalent
+      to the TimeStamp textual convention of the SMIv2.";
+    reference
+     "RFC 2579: Textual Conventions for SMIv2";
+  }
+
+  /*** collection of generic address types ***/
+
+  typedef phys-address {
+    type string {
+      pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?';
+    }
+
+    description
+     "Represents media- or physical-level addresses represented
+      as a sequence octets, each octet represented by two hexadecimal
+      numbers.  Octets are separated by colons.  The canonical
+      representation uses lowercase characters.
+      In the value set and its semantics, this type is equivalent
+      to the PhysAddress textual convention of the SMIv2.";
+    reference
+     "RFC 2579: Textual Conventions for SMIv2";
+  }
+
+  typedef mac-address {
+    type string {
+      pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}';
+    }
+    description
+     "The mac-address type represents an IEEE 802 MAC address.
+      The canonical representation uses lowercase characters.
+      In the value set and its semantics, this type is equivalent
+      to the MacAddress textual convention of the SMIv2.";
+    reference
+     "IEEE 802: IEEE Standard for Local and Metropolitan Area
+                Networks: Overview and Architecture
+      RFC 2579: Textual Conventions for SMIv2";
+  }
+
+  /*** collection of XML-specific types ***/
+
+  typedef xpath1.0 {
+    type string;
+    description
+     "This type represents an XPATH 1.0 expression.
+      When a schema node is defined that uses this type, the
+      description of the schema node MUST specify the XPath
+      context in which the XPath expression is evaluated.";
+    reference
+     "XPATH: XML Path Language (XPath) Version 1.0";
+  }
+
+  /*** collection of string types ***/
+
+  typedef hex-string {
+    type string {
+      pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?';
+    }
+    description
+     "A hexadecimal string with octets represented as hex digits
+      separated by colons.  The canonical representation uses
+      lowercase characters.";
+  }
+
+  typedef uuid {
+    type string {
+      pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-'
+            + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}';
+    }
+    description
+     "A Universally Unique IDentifier in the string representation
+      defined in RFC 4122.  The canonical representation uses
+      lowercase characters.
+      The following is an example of a UUID in string representation:
+      f81d4fae-7dec-11d0-a765-00a0c91e6bf6
+      ";
+    reference
+     "RFC 4122: A Universally Unique IDentifier (UUID) URN
+                Namespace";
+  }
+
+  typedef dotted-quad {
+    type string {
+      pattern
+        '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'
+      + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';
+    }
+    description
+      "An unsigned 32-bit number expressed in the dotted-quad
+       notation, i.e., four octets written as decimal numbers
+       and separated with the '.' (full stop) character.";
+  }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/ip-interface-1-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/ip-interface-1-0.yang
new file mode 100644
index 0000000..b3b86e2
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/ip-interface-1-0.yang
@@ -0,0 +1,1198 @@
+module ip-interface-1-0 {
+  yang-version 1.1;
+  namespace "urn:onf:yang:ip-interface-1-0";
+  prefix ip-interface;
+
+  import ietf-yang-types {
+    prefix yang;
+  }
+  import core-model-1-4 {
+    prefix core-model;
+  }
+
+  organization
+    "openBackhaul.com proposal to Open Networking Foundation (ONF)";
+  contact
+    "WG Web : https://github.com/openBackhaul/Overview
+     WG List: Thorsten.Heinze@openBackhaul.com
+     Editor : Thorsten Heinze
+     Email  : Thorsten.Heinze@openBackhaul.com";
+  description
+    "Technology specific amendment to the LayerProtocol class for an IPv4 interface according to IETF RFC 791.
+
+     Copyright 2019 openBackhaul.com
+
+     Licensed under the Apache License, Version 2.0 (the 'License');
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+     http://www.apache.org/licenses/LICENSE-2.0
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an 'AS IS' BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.";
+
+  revision 2020-01-24 {
+    description
+      "Model for the Transport SDN Pilot at Telefonica Germany
+       Please view https://github.com/openBackhaul/ipInterface/issues for changes.";
+    reference
+      "https://github.com/openBackhaul/ipInterface/tree/tsp: Model definition
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+  }
+  revision 2019-07-09 {
+    description
+      "Model for the Transport SDN Pilot at Telefonica Germany
+       Please view https://github.com/openBackhaul/ipInterface/issues for changes.";
+    reference
+      "https://github.com/openBackhaul/ipInterface/tree/tsp: Model definition
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+  }
+
+  identity LAYER_PROTOCOL_NAME_TYPE_IP_LAYER {
+    base core-model:LAYER_PROTOCOL_NAME_TYPE;
+    description
+      "none";
+  }
+
+  augment "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol" {
+    when "derived-from-or-self(./core-model:layer-protocol-name, 'ip-interface:LAYER_PROTOCOL_NAME_TYPE_IP_LAYER')";
+    uses ip-interface-lp-spec;
+    description
+      "none";
+  }
+
+  /****************************************
+   * package notifications
+   **************************************/ 
+
+  notification object-creation-notification {
+    uses object-creation-notification;
+    description
+      "none";
+  }
+
+  grouping object-creation-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts object creation notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf object-type {
+      type string;
+      default "Type of created object not specified.";
+      config false;
+      description
+        "Type of created object not specified.";
+    }
+    description
+      "To be sent when a new MW_AirInterface_Pac, MW_AirInterfaceDiversity_Pac, MW_Structure_Pac, MW_PureEthernetStructure_Pac, MW_HybridMwStructure_Pac, MW_Container_Pac, MW_EthernetContainer_Pac or MW_TdmContainer_Pac has to be instancieted in the controller.";
+  }
+
+  notification object-deletion-notification {
+    uses object-deletion-notification;
+    description
+      "none";
+  }
+
+  grouping object-deletion-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts object deletion notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    description
+      "To be sent when a new MW_AirInterface_Pac, MW_AirInterfaceDiversity_Pac, MW_Structure_Pac, MW_PureEthernetStructure_Pac, MW_HybridMwStructure_Pac, MW_Container_Pac, MW_EthernetContainer_Pac or MW_TdmContainer_Pac instance has to be deleted in the controller.";
+  }
+
+  notification attribute-value-changed-notification {
+    uses attribute-value-changed-notification;
+    description
+      "none";
+  }
+
+  grouping attribute-value-changed-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts attribute value changed notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf attribute-name {
+      type string;
+      default "Attribute name not specified.";
+      config false;
+      description
+        "Name of the attribute that has been changed.";
+    }
+    leaf new-value {
+      type string;
+      default "New value not specified.";
+      config false;
+      description
+        "Attribute value converted to a string (xml, json, ...)";
+    }
+    description
+      "To be sent when an attribute has changed and one or more controllers have to update their data.";
+  }
+
+  notification problem-notification {
+    uses problem-notification;
+    description
+      "none";
+  }
+
+  grouping problem-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts problem notifications";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf problem {
+      type string;
+      default "Problem name not specified.";
+      config false;
+      description
+        "Name of the problem according to supportedAlarmList";
+    }
+    leaf severity {
+      type severity-type;
+      default "SEVERITY_TYPE_WARNING";
+      config false;
+      description
+        "Severity of the problem according to problemKindSeverity";
+    }
+    description
+      "To be sent when a problem occurs at a MW_AirInterface_Pac, MW_AirInterfaceDiversity_Pac, MW_Structure_Pac, MW_PureEthernetStructure_Pac, MW_HybridMwStructure_Pac, MW_Container_Pac, MW_EthernetContainer_Pac or MW_TdmContainer_Pac.";
+  }
+
+  /****************************************
+   * grouping statements for object classes
+   **************************************/ 
+  /****************************************
+   * package super-classes
+   **************************************/ 
+
+  grouping current-problem {
+    leaf sequence-number {
+      type int16;
+      config false;
+      description
+        "Unique sequence number of the current problem object.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "Time when the alarm was raised.";
+    }
+    leaf problem-severity {
+      type severity-type;
+      default "SEVERITY_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  grouping ip-interface-lp-spec {
+    container ip-interface-pac {
+      uses ip-interface-pac;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  grouping ip-interface-pac {
+    container ip-interface-capability {
+      config false;
+      uses ip-interface-capability;
+      description
+        "none";
+    }
+    container ip-interface-configuration {
+      uses ip-interface-configuration;
+      description
+        "none";
+    }
+    container ip-interface-status {
+      config false;
+      uses ip-interface-status;
+      description
+        "none";
+    }
+    container ip-interface-current-problems {
+      config false;
+      uses ip-interface-current-problems;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  grouping ip-interface-capability {
+    leaf maximum-number-of-ip-v-4-addresses {
+      type int16;
+      default "-1";
+      config false;
+      description
+        "Maximum number of IP addresses at this IP interface (translates into maximum multiplicity of IpInterfaceConfiguration::fixedIpV4AddressList)";
+    }
+    leaf dhcp-client-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Interface is able to operate as a DHCP client.";
+    }
+    leaf fixed-default-gateway-configuration-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Default route per IP Interface can be configuered, 0 if multiple Default routes are not supported";
+    }
+    leaf maximum-transmission-unit-min {
+      type int16;
+      units "Byte";
+      default "-1";
+      config false;
+      description
+        "Minimum layer 3 MTU size configurable.";
+    }
+    leaf maximum-transmission-unit-max {
+      type int16;
+      units "Byte";
+      default "-1";
+      config false;
+      description
+        "Maximum layer 3 MTU size configurable.";
+    }
+    leaf ip-v-6-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = interface supports IPv6 (even if not yet supported by this information model).";
+    }
+    leaf arp-proxy-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Interface is able to forward ARP requests.";
+    }
+    leaf ingress-policing-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Shaping on the ingress is available at this interface.";
+    }
+    leaf egress-shaping-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = This interface supports shaping.";
+    }
+    leaf information-rate-min {
+      type int32;
+      units "kbit/s";
+      default "-1";
+      config false;
+      description
+        "Only relevant if (egressShapingIsAvail==1): Minimum configurable throuput in kbit/s.";
+    }
+    leaf information-rate-max {
+      type int32;
+      units "kbit/s";
+      default "-1";
+      config false;
+      description
+        "Only relevant if (egressShapingIsAvail==1): Maximum configurable throuput in kbit/s.";
+    }
+    leaf burst-size-min {
+      type int16;
+      units "kByte";
+      default "-1";
+      config false;
+      description
+        "Only relevant if (egressShapingIsAvail==1): Minimum configurable value for the number of kBytes, which could be sent in a single burst.";
+    }
+    leaf burst-size-max {
+      type int16;
+      units "kByte";
+      default "-1";
+      config false;
+      description
+        "Only relevant if (egressShapingIsAvail==1): Maximum configurable value for the number of kBytes, which could be sent in a single burst.";
+    }
+    leaf vpn-binding-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Interface supports being part of a Virtual Private Network.";
+    }
+    leaf admin-shut-down-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Manual switching on and off of the interface without deleting it (underlying OSI network layers are also not affected) is available.";
+    }
+    leaf-list supported-loop-back-kind-list {
+      type loop-back-type;
+      config false;
+      min-elements 1;
+      max-elements 3;
+      description
+        "List of supported kinds of looping back.";
+    }
+    leaf maintenance-timer-range {
+      type string;
+      default "Range of the maintenance timer not yet defined.";
+      config false;
+      description
+        "Available time periods for maintenance configurations to be described. Concrete values shall be separated by commas (e.g. '10, 60, 360'). Ranges shall be expressed as two values separated by a minus (e.g. '10-360').";
+    }
+    leaf statistics-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Statistics collection and aggregation is supported on this interface.";
+    }
+    leaf-list supported-alarm-list {
+      type string;
+      config false;
+      min-elements 2;
+      description
+        "Available alarms to be listed. Mandatory: 'IpInterfaceDown' and 'MtuMissmatch'. Further alarms might be added by the device vendors.";
+    }
+    description
+      "none";
+  }
+
+  grouping ip-interface-configuration {
+    leaf interface-name {
+      type string;
+      default "Interface name not yet defined.";
+      description
+        "Description of the interface, could be a name, could be a number. Free text field to be filled by the operator.";
+    }
+    leaf interface-is-on {
+      type boolean;
+      default "false";
+      description
+        "Only relevant if (adminShutDownIsAvail==1). 1 = Activation of the interface. 0 = De-activation of the interface without deleting it (underlying OSI network layers are not affected).";
+    }
+    leaf dhcp-client-is-on {
+      type boolean;
+      default "false";
+      description
+        "Only relevant if (dhcpClientIsAvail==1). 1 = Activation of a DHCP client on the interface.";
+    }
+    list fixed-ip-v-4-address-list {
+      key "fixed-ip-v-4-address fixed-ip-v-4-address-prefix-length";
+      min-elements 1;
+      uses ip-v-4-address-type;
+      description
+        "Only relevant if (dhcpClientIsOn==0). Secondary IP addresses.";
+    }
+    leaf maximum-transmission-unit-ip {
+      type int16;
+      units "Byte";
+      default "-1";
+      description
+        "Layer 3 maximum transmission unit size in Byte. The MTU describes the maximum IP packet size that can be put into the Ethernet frame before sending";
+    }
+    leaf arp-proxy {
+      type arp-proxy-type;
+      default "ARP_PROXY_TYPE_NOT_YET_DEFINED";
+      description
+        "openconfig-if-ip. Only relevant if (arpProxyIsAvail == 1). If set to a value different from 'DISABLE', the local system should respond to ARP requests that are for target addresses other than those that are configured on the local subinterface using its own MAC address as the target hardware address. If configured to 'REMOTE_ONLY', replies are only sent when the target address falls outside the locally configured subnets on the interface. If configured to 'ALL', all requests regardless of their target address are answered.";
+    }
+    leaf ingress-policing-profile {
+      type leafref {
+        path "/core-model:control-construct/core-model:profile-collection/core-model:profile/core-model:uuid";
+        require-instance false;
+      }
+      description
+        "Only relevant if (ingressPolicingIsAvail ==1). Reference to the definition of a policing profile. Attribute to point to an instance of Profile with profileName=='PROFILE_NAME_TYPE_POLICING_PROFILE'.";
+    }
+    leaf egress-shaping-is-on {
+      type boolean;
+      default "false";
+      description
+        "1 = Shaping on the egress is activated.";
+    }
+    leaf maximum-information-rate {
+      type int32;
+      units "kbit/s";
+      default "-1";
+      description
+        "Only relevant if (egressShapingIsAvail==1): Limits the throughput on the egress.";
+    }
+    leaf maximum-burst-size {
+      type int16;
+      units "kByte";
+      default "-1";
+      description
+        "Only relevant if (egressShapingIsAvail==1): Limits the number of kBytes, which are sent in a single burst.";
+    }
+    leaf l-3vpn-profile {
+      type leafref {
+        path "/core-model:control-construct/core-model:profile-collection/core-model:profile/core-model:uuid";
+        require-instance false;
+      }
+      description
+        "Reference to the definition of a Virtual Private Network, to which this interface belongs to. Attribute to point to an instance of Profile with profileName=='PROFILE_NAME_TYPE_L3VPN_PROFILE'.";
+    }
+    leaf qos-profile {
+      type leafref {
+        path "/core-model:control-construct/core-model:profile-collection/core-model:profile/core-model:uuid";
+        require-instance false;
+      }
+      description
+        "Reference to the definition of the QoS profile, which shall be applied on this interface. Attribute to point to an instance of Profile with profileName=='PROFILE_NAME_TYPE_QOS_PROFILE'.";
+    }
+    leaf loop-back-kind-on {
+      type loop-back-type;
+      default "LOOP_BACK_TYPE_NOT_YET_DEFINED";
+      description
+        "Maintenance Feature. Configuration of a loop back of Ethernet frames on this interface.";
+    }
+    leaf maintenance-timer {
+      type int32;
+      units "s";
+      default "-1";
+      description
+        "Time of existence of any maintenance configuration. Valid values are defined in *Capability::maintenanceTimerRange.";
+    }
+    leaf statistics-is-on {
+      type boolean;
+      default "false";
+      description
+        "Only relevant if (FlowStatisticsIsAvail==1). 1 = Collection and aggregation of statistics is switched on.";
+    }
+    list problem-kind-severity-list {
+      key "problem-kind-name";
+      uses problem-kind-severity-type;
+      description
+        "Severity of each entry of the SupportedAlarmList to be configured.";
+    }
+    description
+      "none";
+  }
+
+  grouping ip-interface-status {
+    leaf interface-status {
+      type interface-status-type;
+      default "INTERFACE_STATUS_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "Operational status of the interface.";
+    }
+    list ip-v-4-address-cur-list {
+      key "fixed-ip-v-4-address fixed-ip-v-4-address-prefix-length";
+      config false;
+      min-elements 1;
+      uses ip-v-4-address-type;
+      description
+        "IPv4 address, which is currently active on this interface. The format is IPv4.";
+    }
+    leaf ip-address-origin {
+      type ip-address-origin-type;
+      default "IP_ADDRESS_ORIGIN_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "openconfig-if-ip. Describes the origin of the currently active IP address information, e.g. statically configured, assigned by DHCP, etc..";
+    }
+    list neighbor-list {
+      key "neighbor-mac-address";
+      config false;
+      uses neighbor-type;
+      description
+        "openconfig-if-ip. Current IP and MAC addresses of the remote site of the IP link.";
+    }
+    leaf vpn-binding-is-up {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Binding to a VPN definition is currently effective.";
+    }
+    leaf loop-back-kind-up {
+      type loop-back-type;
+      default "LOOP_BACK_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "The currently active (not just configured) type of looping back of the air interface header shall be expressed here. The received header is returned to the remote site.";
+    }
+    leaf statistics-is-up {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Statistics are currently counted";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "The timestamp associated with when the current data was collected.";
+    }
+    leaf last-10-sec-data-input-rate {
+      type int32;
+      units "kbit/s";
+      default "-1";
+      config false;
+      description
+        "Data receive rate over the last 10 second interval in kbit/s.";
+    }
+    leaf last-10-sec-data-output-rate {
+      type int32;
+      units "kbit/s";
+      default "-1";
+      config false;
+      description
+        "Data transmit rate over the last 10 second interval in kbit/s.";
+    }
+    leaf last-10-sec-packet-input-rate {
+      type int32;
+      units "packet/s";
+      default "-1";
+      config false;
+      description
+        "Packet receive rate over the last 10 second interval.";
+    }
+    leaf last-10-sec-packet-output-rate {
+      type int32;
+      units "packet/s";
+      default "-1";
+      config false;
+      description
+        "Packet transmit rate over the last 10 second interval.";
+    }
+    leaf data-volume-input {
+      type int32;
+      units "kByte";
+      default "-1";
+      config false;
+      description
+        "Received data volume in kByte.";
+    }
+    leaf data-volume-output {
+      type int32;
+      units "kByte";
+      default "-1";
+      config false;
+      description
+        "Sent data volume in kByte.";
+    }
+    leaf total-packets-input {
+      type int64;
+      units "packets";
+      default "-1";
+      config false;
+      description
+        "The total number of IP packets received for the specified address family, including those received in error";
+    }
+    leaf total-packets-output {
+      type int64;
+      units "packets";
+      default "-1";
+      config false;
+      description
+        "The total number of IP packets for the specified address family that the device supplied to the lower layers for transmission.This includes packets generated locally and those forwarded by the device.";
+    }
+    leaf forwarded-data-volume-input {
+      type int32;
+      units "kByte";
+      default "-1";
+      config false;
+      description
+        "The number of octets received in input IP packets for the specified address family for which the device was not their final IP destination and for which the device attempted to find a route to forward them to that final destination.\n";
+    }
+    leaf forwarded-data-volume-output {
+      type int32;
+      units "kByte";
+      default "-1";
+      config false;
+      description
+        "The number of octets in packets for which this entity was not their final IP destination and for which it was successful in finding a path to their final destination.\n";
+    }
+    leaf forwarded-packets-input {
+      type int64;
+      units "packets";
+      default "-1";
+      config false;
+      description
+        "The number of input packets for which the device was not their final IP destination and for which the device attempted to find a route to forward them to that final destination.";
+    }
+    leaf forwarded-packets-output {
+      type int64;
+      units "packets";
+      default "-1";
+      config false;
+      description
+        "The number of packets for which this entity was not their final IP destination and for which it was successful in finding a path to their final destination. ";
+    }
+    leaf unicast-packets-input {
+      type int64;
+      units "packets";
+      default "-1";
+      config false;
+      description
+        "Total number of received unicast packets.";
+    }
+    leaf unicast-packets-output {
+      type int64;
+      units "packets";
+      default "-1";
+      config false;
+      description
+        "Total number of sent unicast packets.";
+    }
+    leaf multicast-packets-input {
+      type int32;
+      units "packets";
+      default "-1";
+      config false;
+      description
+        "Total number of received multicast packets.";
+    }
+    leaf multicast-packets-output {
+      type int32;
+      units "packets";
+      default "-1";
+      config false;
+      description
+        "Total number of sent multicast packets.";
+    }
+    leaf broadcast-packets-input {
+      type int32;
+      units "packets";
+      default "-1";
+      config false;
+      description
+        "Total number of received broadcast packets.";
+    }
+    leaf broadcast-packets-output {
+      type int32;
+      units "packets";
+      default "-1";
+      config false;
+      description
+        "Total number of sent broadcast packets.";
+    }
+    leaf fragmented-packets-input {
+      type int32;
+      units "packets";
+      default "-1";
+      config false;
+      description
+        "Total number of received fragmented packets.";
+    }
+    leaf errored-packets-input {
+      type int32;
+      units "packets";
+      default "-1";
+      config false;
+      description
+        "Total number of received errored packets.";
+    }
+    leaf errored-packets-output {
+      type int32;
+      units "packets";
+      default "-1";
+      config false;
+      description
+        "Number of IP packets for the specified address family locally generated and discarded due to errors, including no route found to the IP destination.";
+    }
+    leaf dropped-packets-input {
+      type int32;
+      units "packets";
+      default "-1";
+      config false;
+      description
+        "Total number of packets dropped at the receiver. The number of input IP packets for the specified address family, for which no problems were encountered to prevent their continued processing, but were discarded (e.g., for lack of buffer space).";
+    }
+    leaf dropped-packets-output {
+      type int32;
+      units "packets";
+      default "-1";
+      config false;
+      description
+        "The number of output IP packets for the specified address family for which no problem was encountered to prevent their transmission to their destination, but were discarded (e.g., for lack of buffer space).";
+    }
+    description
+      "none";
+  }
+
+  grouping ip-interface-current-problems {
+    list current-problem-list {
+      key "sequence-number";
+      config false;
+      uses ip-interface-current-problem-type;
+      description
+        "none";
+    }
+    leaf number-of-current-problems {
+      type int8;
+      default "-1";
+      config false;
+      description
+        "Number of alarms, which are currently active on this interface.";
+    }
+    leaf time-of-latest-change {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "Date and time when the list of alarms has been changed for the last time.";
+    }
+    description
+      "none";
+  }
+
+  /****************************************
+   * typedef statements
+   **************************************/ 
+
+  typedef loop-back-type {
+    type identityref {
+      base LOOP_BACK_TYPE;
+    }
+    description
+      "none";
+  }
+
+  typedef arp-proxy-type {
+    type identityref {
+      base ARP_PROXY_TYPE;
+    }
+    description
+      "openconfig-if-ip. ";
+  }
+
+  typedef ip-address-origin-type {
+    type identityref {
+      base IP_ADDRESS_ORIGIN_TYPE;
+    }
+    description
+      "openconfig-if-ip. The origin of the interface's own IP address.";
+  }
+
+  typedef neighbor-origin-type {
+    type identityref {
+      base NEIGHBOR_ORIGIN_TYPE;
+    }
+    description
+      "openconfig-if-ip. The origin of a neighbor entry.";
+  }
+
+  /*********************************************
+   * grouping statements for complex data types
+   *******************************************/ 
+
+  identity LOOP_BACK_TYPE {
+    description
+      "none";
+  }
+
+  identity LOOP_BACK_TYPE_NONE {
+    base LOOP_BACK_TYPE;
+    description
+      "none";
+  }
+
+  identity LOOP_BACK_TYPE_BACK_TO_LOCAL {
+    base LOOP_BACK_TYPE;
+    description
+      "Returning Ethernet frames of the local site on the Ethernet MAC interface back to the local site.";
+  }
+
+  identity LOOP_BACK_TYPE_BACK_TO_REMOTE {
+    base LOOP_BACK_TYPE;
+    description
+      "Returning Ethernet frames of the remote site on the Ethernet MAC interface back to the remote site.";
+  }
+
+  identity LOOP_BACK_TYPE_NOT_YET_DEFINED {
+    base LOOP_BACK_TYPE;
+    description
+      "none";
+  }
+
+  identity ARP_PROXY_TYPE {
+    description
+      "none";
+  }
+
+  identity ARP_PROXY_TYPE_DISABLE {
+    base ARP_PROXY_TYPE;
+    description
+      "The system should not respond to ARP requests that do not specify an IP address configured on the local subinterface as the target address.";
+  }
+
+  identity ARP_PROXY_TYPE_REMOTE_ONLY {
+    base ARP_PROXY_TYPE;
+    description
+      "The system responds to ARP requests only when the sender and target IP addresses are in different subnets.";
+  }
+
+  identity ARP_PROXY_TYPE_ALL {
+    base ARP_PROXY_TYPE;
+    description
+      "The system responds to ARP requests where the sender and target IP addresses are in different subnets, as well as those where they are in the same subnet.";
+  }
+
+  identity ARP_PROXY_TYPE_NOT_YET_DEFINED {
+    base ARP_PROXY_TYPE;
+    description
+      "none";
+  }
+
+  identity IP_ADDRESS_ORIGIN_TYPE {
+    description
+      "none";
+  }
+
+  identity IP_ADDRESS_ORIGIN_TYPE_OTHER {
+    base IP_ADDRESS_ORIGIN_TYPE;
+    description
+      "None of the following.";
+  }
+
+  identity IP_ADDRESS_ORIGIN_TYPE_STATIC {
+    base IP_ADDRESS_ORIGIN_TYPE;
+    description
+      "Indicates that the address has been statically configured - for example, using NETCONF or a Command Line Interface.";
+  }
+
+  identity IP_ADDRESS_ORIGIN_TYPE_DHCP {
+    base IP_ADDRESS_ORIGIN_TYPE;
+    description
+      "Indicates an address that has been assigned to this system by a DHCP server.";
+  }
+
+  identity IP_ADDRESS_ORIGIN_TYPE_LINK_LAYER {
+    base IP_ADDRESS_ORIGIN_TYPE;
+    description
+      "Indicates an address created by IPv6 stateless autoconfiguration that embeds a link-layer address in its interface identifier.";
+  }
+
+  identity IP_ADDRESS_ORIGIN_TYPE_RANDOM {
+    base IP_ADDRESS_ORIGIN_TYPE;
+    description
+      "Indicates an address chosen by the system at random, e.g., an IPv4 address within 169.254/16, an RFC 4941 temporary address, or an RFC 7217 semantically opaque address.";
+  }
+
+  identity IP_ADDRESS_ORIGIN_TYPE_NOT_YET_DEFINED {
+    base IP_ADDRESS_ORIGIN_TYPE;
+    description
+      "none";
+  }
+
+  identity NEIGHBOR_ORIGIN_TYPE {
+    description
+      "none";
+  }
+
+  identity NEIGHBOR_ORIGIN_TYPE_OTHER {
+    base NEIGHBOR_ORIGIN_TYPE;
+    description
+      "None of the following.";
+  }
+
+  identity NEIGHBOR_ORIGIN_TYPE_STATIC {
+    base NEIGHBOR_ORIGIN_TYPE;
+    description
+      "Indicates that the mapping has been statically configured - for example, using NETCONF or a Command Line Interface.";
+  }
+
+  identity NEIGHBOR_ORIGIN_TYPE_DYNAMIC {
+    base NEIGHBOR_ORIGIN_TYPE;
+    description
+      "Indicates that the mapping has been dynamically resolved using, e.g., IPv4 ARP.";
+  }
+
+  identity NEIGHBOR_ORIGIN_TYPE_NOT_YET_DEFINED {
+    base NEIGHBOR_ORIGIN_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE {
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_NON-ALARMED {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_WARNING {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_MAJOR {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_MINOR {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_CRITICAL {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_NOT_YET_DEFINED {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity INTERFACE_STATUS_TYPE {
+    description
+      "none";
+  }
+
+  identity INTERFACE_STATUS_TYPE_UP {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Ready to pass packets.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_DOWN {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "The interface does not pass any packets.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_TESTING {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "In some test mode.  No operational packets can be passed.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_UNKNOWN {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Status cannot be determined for some reason.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_DORMANT {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Waiting for some external event.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_NOT_PRESENT {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Some component (typically hardware) is missing.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Down due to state of lower-layer interface(s).";
+  }
+
+  identity INTERFACE_STATUS_TYPE_ADMIN_DOWN {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Down due to configuration.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_NOT_YET_DEFINED {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "none";
+  }
+
+  /****************************************
+   * package super-types
+   **************************************/ 
+
+  typedef severity-type {
+    type identityref {
+      base SEVERITY_TYPE;
+    }
+    description
+      "none";
+  }
+
+  typedef interface-status-type {
+    type identityref {
+      base INTERFACE_STATUS_TYPE;
+    }
+    description
+      "Current Operational Interface Status";
+  }
+
+  grouping problem-kind-severity-type {
+    leaf problem-kind-name {
+      type string;
+      description
+        "Name of the alarm according to SupportedAlarmList";
+    }
+    leaf problem-kind-severity {
+      type severity-type;
+      description
+        "Severity of this type of alarm.";
+    }
+    description
+      "none";
+  }
+
+  grouping ip-v-4-address-type {
+    leaf fixed-ip-v-4-address {
+      type string;
+      description
+        "IPv4 address fixed assigned to this interface. The format is e.g. 172.168.0.5";
+    }
+    leaf fixed-ip-v-4-address-prefix-length {
+      type int8;
+      description
+        "Fixed assigned routing prefix (sub network) length (e.g. for 198.51.100.0/24 the fixedIpV4AddressPrefixLength would be 24).\n";
+    }
+    leaf fixed-default-gateway-ip-v-4-address {
+      type string;
+      default "0.0.0.0";
+      description
+        "Only relevant if ( (dhcpClientIsOn==0) AND (fixedDefaultGatewayConfigurationIsAvail==1) ). Fixed assigned IPv4 address of the default gateway.";
+    }
+    description
+      "none";
+  }
+
+  grouping neighbor-type {
+    leaf neighbor-mac-address {
+      type string;
+      config false;
+      description
+        "MAC address of the neighbor node. The format is e.g. 00:80:41:ae:fd:7e";
+    }
+    leaf neighbor-ip-v-4-address-list {
+      type string;
+      default "0.0.0.0";
+      config false;
+      description
+        "IPv4 address of the neighbor node. The format is IPv4, e.g. 172.168.0.5";
+    }
+    leaf neighbor-origin {
+      type neighbor-origin-type;
+      config false;
+      description
+        "The origin of a neighbor entry.";
+    }
+    description
+      "openconfig-if-ip. Neighbor entries are analagous to static ARP entries, i.e. they create a correspondence between IP and link-layer addresses.";
+  }
+
+  grouping ip-interface-current-problem-type {
+    leaf problem-name {
+      type string;
+      default "NOT_YET_DEFINED";
+      description
+        "Name of the alarm according to SupportedAlarmList";
+    }
+    uses current-problem;
+    description
+      "none";
+  }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/l-3vpn-profile-1-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/l-3vpn-profile-1-0.yang
new file mode 100644
index 0000000..b5682c9
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/l-3vpn-profile-1-0.yang
@@ -0,0 +1,499 @@
+module l-3vpn-profile-1-0 {
+  yang-version 1.1;
+  namespace "urn:onf:yang:l-3vpn-profile-1-0";
+  prefix l-3vpn-profile;
+
+  import ietf-yang-types {
+    prefix yang;
+  }
+  import core-model-1-4 {
+    prefix core-model;
+  }
+
+  organization
+    "openBackhaul.com proposal to Open Networking Foundation (ONF)";
+  contact
+    "WG Web : https://github.com/openBackhaul/Overview
+     WG List: L3vpnProfile@openBackhaul.com
+     Editor : Thorsten Heinze
+     Email  : Thorsten.Heinze@openBackhaul.com";
+  description
+    "Technology specific profile definition for Layer 3 Virtual Private Networks
+
+     Copyright 2019 openBackhaul.com
+
+     Licensed under the Apache License, Version 2.0 (the 'License');
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+     http://www.apache.org/licenses/LICENSE-2.0
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an 'AS IS' BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.";
+
+  revision 2020-01-27 {
+    description
+      "Model for the Transport SDN Pilot at Telefonica Germany.
+       Please view https://github.com/openBackhaul/l3vpnProfile/issues for changes.";
+    reference
+      "https://github.com/openBackhaul/l3vpnProfile/tree/tsp: Model definition
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+  }
+  revision 2019-07-12 {
+    description
+      "Model for the Transport SDN Pilot at Telefonica Germany.
+       Please view https://github.com/openBackhaul/l3vpnProfile/issues for changes.";
+    reference
+      "https://github.com/openBackhaul/l3vpnProfile/tree/tsp: Model definition
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+  }
+
+  identity PROFILE_NAME_TYPE_L3VPN_PROFILE {
+    base core-model:PROFILE_NAME_TYPE;
+    description
+      "none";
+  }
+
+  augment "/core-model:control-construct/core-model:profile-collection/core-model:profile" {
+    when "derived-from-or-self(./core-model:profile-name, 'l-3vpn-profile:PROFILE_NAME_TYPE_L3VPN_PROFILE')";
+    uses l-3vpn-profile-spec;
+    description
+      "none";
+  }
+
+  /****************************************
+   * package notifications
+   **************************************/ 
+
+  notification object-creation-notification {
+    uses object-creation-notification;
+    description
+      "none";
+  }
+
+  grouping object-creation-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts object creation notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:profile-collection/core-model:profile/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf object-type {
+      type string;
+      default "Type of created object not specified.";
+      config false;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  notification object-deletion-notification {
+    uses object-deletion-notification;
+    description
+      "none";
+  }
+
+  grouping object-deletion-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts object deletion notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:profile-collection/core-model:profile/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  /****************************************
+   * grouping statements for object classes
+   **************************************/ 
+
+  grouping l-3vpn-profile-spec {
+    container l-3vpn-pac {
+      uses l-3vpn-pac;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  grouping l-3vpn-pac {
+    container l-3vpn-capability {
+      config false;
+      uses l-3vpn-capability;
+      description
+        "none";
+    }
+    container l-3vpn-configuration {
+      config false;
+      uses l-3vpn-configuration;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  grouping l-3vpn-capability {
+    leaf profile-naming-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = There is a free text field available for naming the profile.";
+    }
+    leaf l-3vpn-based-on-ip-v-6-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Virtual Private Networks based on IP v6 addresses is available at the device.";
+    }
+    description
+      "none";
+  }
+
+  grouping l-3vpn-configuration {
+    leaf profile-name {
+      type string;
+      default "Name of profile not yet defined.";
+      description
+        "Identifier of the profile. Could be a name, could be a number. Free text field to be filled by the operator.";
+    }
+    leaf l-3vpn-description {
+      type string;
+      default "VPN description not yet defined.";
+      description
+        "Short description of the VPN.";
+    }
+    list l-3vpn-configuration-list {
+      key "label-mode";
+      min-elements 1;
+      max-elements 2;
+      uses l-3vpn-configuration-type;
+      description
+        "L3 VPN instance Configuration.";
+    }
+    description
+      "none";
+  }
+
+  /****************************************
+   * typedef statements
+   **************************************/ 
+
+  typedef label-mode-type {
+    type identityref {
+      base LABEL_MODE_TYPE;
+    }
+    description
+      "none";
+  }
+
+  typedef device-identifier-kind-type {
+    type identityref {
+      base DEVICE_IDENTIFIER_KIND_TYPE;
+    }
+    description
+      "none";
+  }
+
+  typedef address-family-type {
+    type identityref {
+      base ADDRESS_FAMILY_TYPE;
+    }
+    description
+      "Address family of the VRF IPv4/IPV6.";
+  }
+
+  typedef route-pritority-type {
+    type identityref {
+      base ROUTE_PRITORITY_TYPE;
+    }
+    description
+      "The priority of the Route";
+  }
+
+  typedef route-state-type {
+    type identityref {
+      base ROUTE_STATE_TYPE;
+    }
+    description
+      "The state of the route as per the routing table. It is a combination of the one or more of the following states: ADV, NOADV,ACTIVE, INACTIVE, RELIED.";
+  }
+
+  typedef route-flag-type {
+    type identityref {
+      base ROUTE_FLAG_TYPE;
+    }
+    description
+      "Indicates the route flag, that is, Route Flags in the heading of the routing table displayed. It is a combination of one or more of the following flags: D and,R Meaning of each of the flag is availble under corresponding flag value.";
+  }
+
+  /*********************************************
+   * grouping statements for complex data types
+   *******************************************/ 
+
+  identity LABEL_MODE_TYPE {
+    description
+      "none";
+  }
+
+  identity LABEL_MODE_TYPE_PER_INSTANCE {
+    base LABEL_MODE_TYPE;
+    description
+      "Labels are assigned to VPN instances in one label per instance mode, that is, all routes in a VPN instance are assigned with the same label.";
+  }
+
+  identity LABEL_MODE_TYPE_PER_ROUTE {
+    base LABEL_MODE_TYPE;
+    description
+      "Labels are assigned to routes in the 'one label per route' mode, that is, each route is assigned with one label.";
+  }
+
+  identity DEVICE_IDENTIFIER_KIND_TYPE {
+    description
+      "none";
+  }
+
+  identity DEVICE_IDENTIFIER_KIND_TYPE_LOOP_BACK_IP_ADDRESS {
+    base DEVICE_IDENTIFIER_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity DEVICE_IDENTIFIER_KIND_TYPE_AS_NUMBER {
+    base DEVICE_IDENTIFIER_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity DEVICE_IDENTIFIER_KIND_TYPE_NOT_YET_DEFINED {
+    base DEVICE_IDENTIFIER_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity ADDRESS_FAMILY_TYPE {
+    description
+      "none";
+  }
+
+  identity ADDRESS_FAMILY_TYPE_IPV4-FAMILY {
+    base ADDRESS_FAMILY_TYPE;
+    description
+      "none";
+  }
+
+  identity ADDRESS_FAMILY_TYPE_IPV6-FAMILY {
+    base ADDRESS_FAMILY_TYPE;
+    description
+      "none";
+  }
+
+  identity ADDRESS_FAMILY_TYPE_UNKNOWN {
+    base ADDRESS_FAMILY_TYPE;
+    description
+      "none";
+  }
+
+  identity ADDRESS_FAMILY_TYPE_NOT_YET_DEFINED {
+    base ADDRESS_FAMILY_TYPE;
+    description
+      "none";
+  }
+
+  identity ROUTE_PRITORITY_TYPE {
+    description
+      "none";
+  }
+
+  identity ROUTE_PRITORITY_TYPE_CRITICAL {
+    base ROUTE_PRITORITY_TYPE;
+    description
+      "Highest protocol priority.";
+  }
+
+  identity ROUTE_PRITORITY_TYPE_HIGH {
+    base ROUTE_PRITORITY_TYPE;
+    description
+      "High protocol priority";
+  }
+
+  identity ROUTE_PRITORITY_TYPE_MEDIUM {
+    base ROUTE_PRITORITY_TYPE;
+    description
+      "Medium protocol priority.";
+  }
+
+  identity ROUTE_PRITORITY_TYPE_LOW {
+    base ROUTE_PRITORITY_TYPE;
+    description
+      "Low protocol priority.";
+  }
+
+  identity ROUTE_STATE_TYPE {
+    description
+      "none";
+  }
+
+  identity ROUTE_STATE_TYPE_ACTIVE_ADV {
+    base ROUTE_STATE_TYPE;
+    description
+      "The route state is active and advertised.";
+  }
+
+  identity ROUTE_STATE_TYPE_ACTIVE_NOADV {
+    base ROUTE_STATE_TYPE;
+    description
+      "The route state is active and not advertised.";
+  }
+
+  identity ROUTE_STATE_TYPE_ACTIVE_ADV_RELIED {
+    base ROUTE_STATE_TYPE;
+    description
+      "The route state is active, advertised, and relied.";
+  }
+
+  identity ROUTE_STATE_TYPE_ACTIVE_NOADV_RELIED {
+    base ROUTE_STATE_TYPE;
+    description
+      "The route state is active, not advertised, and relied.";
+  }
+
+  identity ROUTE_STATE_TYPE_INVALID_NOADV {
+    base ROUTE_STATE_TYPE;
+    description
+      "The route state is invalid and not advertised.";
+  }
+
+  identity ROUTE_STATE_TYPE_INACTIVE_NOADV {
+    base ROUTE_STATE_TYPE;
+    description
+      "The route state is inactive and not advertised.";
+  }
+
+  identity ROUTE_FLAG_TYPE {
+    description
+      "none";
+  }
+
+  identity ROUTE_FLAG_TYPE_D {
+    base ROUTE_FLAG_TYPE;
+    description
+      "A route is advertised to the Forwarding Information Base table.";
+  }
+
+  identity ROUTE_FLAG_TYPE_RD {
+    base ROUTE_FLAG_TYPE;
+    description
+      "A route is an iterated route and needs to be advertised to the FIB table.";
+  }
+
+  identity ROUTE_FLAG_TYPE_R {
+    base ROUTE_FLAG_TYPE;
+    description
+      "A route is an iterated route.";
+  }
+
+  grouping route-distinguisher-and-target-type {
+    leaf vpn-number {
+      type uint32;
+      description
+        "Identifier of the VPN, which is unique in the entire network";
+    }
+    leaf device-identifier-kind {
+      type device-identifier-kind-type;
+      default "DEVICE_IDENTIFIER_KIND_TYPE_NOT_YET_DEFINED";
+      description
+        "none";
+    }
+    leaf loop-back-ip-address {
+      type string;
+      default "-1.-1.-1.-1";
+      description
+        "Only relevant if (deviceIdentifierKind==LOOP_BACK_IP_ADDRESS). Loop back address of the device.";
+    }
+    leaf as-number {
+      type uint32;
+      default "0";
+      description
+        "Only relevant if (deviceIdentifierKind==AS_NUMBER). Autonomous System number of the device.";
+    }
+    description
+      "none";
+  }
+
+  grouping l-3vpn-configuration-type {
+    leaf label-mode {
+      type label-mode-type;
+      description
+        "Label model used by the VPN.";
+    }
+    container route-distinguisher {
+      uses route-distinguisher-and-target-type;
+      description
+        "The route distinguisher that should be used for the local VRF or VSI instance when it is signalled via BGP.";
+    }
+    list route-target-import-list {
+      key "vpn-number";
+      min-elements 1;
+      uses route-distinguisher-and-target-type;
+      description
+        "Route targets that will be imported to this VPN ";
+    }
+    list route-target-export-list {
+      key "vpn-number";
+      min-elements 1;
+      uses route-distinguisher-and-target-type;
+      description
+        "Route targets that will be tagged to outgoing routes";
+    }
+    leaf address-family {
+      type address-family-type;
+      default "ADDRESS_FAMILY_TYPE_NOT_YET_DEFINED";
+      description
+        "Address family type for the VPN instance is created for";
+    }
+    description
+      "L3 VPN instance configuration information.";
+  }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/ltp-augment-1-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/ltp-augment-1-0.yang
new file mode 100644
index 0000000..a1aae58
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/ltp-augment-1-0.yang
@@ -0,0 +1,102 @@
+module ltp-augment-1-0 {
+  yang-version 1.1;
+  namespace "urn:onf:yang:ltp-augment-1-0";
+  prefix ltp-augment;
+
+  import ietf-yang-types {
+    prefix yang;
+  }
+  import core-model-1-4 {
+    prefix core-model;
+  }
+
+  organization 
+     "openBackhaul.com proposal to Open Networking Foundation (ONF)";
+  contact
+    "WG Web : https://github.com/openBackhaul/Overview
+    WG List: LtpAugment@openBackhaul.com
+    Editor : Thorsten Heinze
+    Email  : Thorsten.Heinze@openBackhaul.com";
+  description
+    "Copyright 2019 openBackhaul.com
+
+    Licensed under the Apache License, Version 2.0 (the 'License');
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+    http://www.apache.org/licenses/LICENSE-2.0
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an 'AS IS' BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.";
+
+  revision 2020-07-30 {
+    description 
+      "Model for the Transport SDN Pilot at Telefonica Germany.
+      Please view https://github.com/openBackhaul/ltpAugment/issues for changes.";
+    reference 
+      "https://github.com/openBackhaul/ltpAugment/tree/tsp: Model definition
+      https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+  }
+
+  augment "/core-model:control-construct/core-model:logical-termination-point"{
+    uses ltp-augment-spec;
+    description
+      "none";
+  }
+
+  /****************************************
+  * grouping statements for object classes
+  **************************************/ 
+    grouping ltp-augment-spec {
+      container ltp-augment-pac {
+        uses ltp-augment-pac;
+        description
+          "none";
+      }
+      description
+        "none";
+    }
+
+    grouping ltp-augment-pac {
+      container ltp-augment-configuration {
+        uses ltp-augment-configuration;
+        description
+          "none";
+      }
+      description
+        "none";
+    }
+
+    grouping ltp-augment-configuration {
+      leaf-list equipment {
+        type leafref {
+          path "/core-model:control-construct/core-model:equipment/core-model:uuid";
+          require-instance false;
+        }
+        config false;
+        description
+          "Equipment, which determines the characteristics of this interface (LTP).";
+      }
+      leaf connector {
+        type leafref {
+          path "/core-model:control-construct/core-model:equipment/core-model:connector/core-model:local-id";
+          require-instance false;
+        }
+        config false;
+        description
+          "Connector, where this interface (LTP) can be physically connected.";
+      }
+      description  
+        "none";
+    }
+
+  /****************************************
+  * typedef statements
+  **************************************/ 
+
+  /*********************************************
+  * grouping statements for complex data types
+  *******************************************/ 
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/mac-fc-1-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/mac-fc-1-0.yang
new file mode 100644
index 0000000..cbe692c
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/mac-fc-1-0.yang
@@ -0,0 +1,569 @@
+module mac-fc-1-0 {
+  yang-version 1.1;
+  namespace "urn:onf:yang:mac-fc-1-0";
+  prefix mac-fc;
+
+  import ietf-yang-types {
+    prefix yang;
+  }
+  import core-model-1-4 {
+    prefix core-model;
+  }
+
+  organization
+    "openBackhaul.com proposal to Open Networking Foundation (ONF)";
+  contact
+    "WG Web : https://github.com/openBackhaul/Overview
+     WG List: MacFc@openBackhaul.com
+     Editor : Thorsten Heinze
+     Email  : Thorsten.Heinze@openBackhaul.com";
+  description
+    "Technology specific amendment to the ForwardingConstruct class for documenting entries in the MAC forwarding table according to IEEE 802.1 .
+
+     Copyright 2019 openBackhaul.com
+
+     Licensed under the Apache License, Version 2.0 (the 'License');
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+     http://www.apache.org/licenses/LICENSE-2.0
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an 'AS IS' BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.";
+
+  revision 2020-08-26 {
+    description
+      "Model for the Transport SDN Pilot at Telefonica Germany
+       Please view https://github.com/openBackhaul/macFc/issues for changes.";
+    reference
+      "https://github.com/openBackhaul/macFc/tree/tsp: Model definition
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+  }
+
+  identity LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER {
+    base core-model:LAYER_PROTOCOL_NAME_TYPE;
+    description
+      "none";
+  }
+
+  augment "/core-model:control-construct/core-model:forwarding-domain/core-model:fc" {
+    when "derived-from-or-self(./core-model:layer-protocol-name, 'mac-fc:LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER')";
+    uses mac-fc-spec;
+    description
+      "none";
+  }
+
+  /****************************************
+   * package notifications
+   **************************************/ 
+
+  notification object-creation-notification {
+    uses object-creation-notification;
+    description
+      "none";
+  }
+
+  grouping object-creation-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts object creation notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:forwarding-domain/core-model:fc/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf object-type {
+      type string;
+      default "Type of created object not specified.";
+      config false;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  notification object-deletion-notification {
+    uses object-deletion-notification;
+    description
+      "none";
+  }
+
+  grouping object-deletion-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts object deletion notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:forwarding-domain/core-model:fc/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  notification attribute-value-changed-notification {
+    uses attribute-value-changed-notification;
+    description
+      "none";
+  }
+
+  grouping attribute-value-changed-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts attribute value changed notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:forwarding-domain/core-model:fc/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf attribute-name {
+      type string;
+      default "Attribute name not specified.";
+      config false;
+      description
+        "Name of the attribute that has been changed.";
+    }
+    leaf new-value {
+      type string;
+      default "New value not specified.";
+      config false;
+      description
+        "Attribute value converted to a string (xml, json, ...)";
+    }
+    description
+      "To be sent when an attribute has changed and one or more controllers have to update their data.";
+  }
+
+  notification problem-notification {
+    uses problem-notification;
+    description
+      "none";
+  }
+
+  grouping problem-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts problem notifications";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:forwarding-domain/core-model:fc/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf problem {
+      type string;
+      default "Problem name not specified.";
+      config false;
+      description
+        "Name of the problem according to *Capability::supportedAlarmList";
+    }
+    leaf severity {
+      type severity-type;
+      default "SEVERITY_TYPE_WARNING";
+      config false;
+      description
+        "Severity of the problem according to *Configuration::problemSeverityList";
+    }
+    description
+      "none";
+  }
+
+  /****************************************
+   * grouping statements for object classes
+   **************************************/ 
+  /****************************************
+   * package super-classes
+   **************************************/ 
+
+  grouping current-problem {
+    leaf sequence-number {
+      type int16;
+      config false;
+      description
+        "Unique sequence number of the current problem object.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf problem-severity {
+      type severity-type;
+      default "SEVERITY_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "Severity of the alarm.";
+    }
+    description
+      "none";
+  }
+
+  grouping mac-fc-spec {
+    container mac-fc-pac {
+      uses mac-fc-pac;
+      description
+        "none";
+    }
+    description
+      "Represents an entry into the MAC forwarding table. Name in ieee802-dot1q-bridge.yang: filtering-entry.";
+  }
+
+  grouping mac-fc-pac {
+    container mac-fc-capability {
+      config false;
+      uses mac-fc-capability;
+      description
+        "none";
+    }
+    container mac-fc-configuration {
+      uses mac-fc-configuration;
+      description
+        "none";
+    }
+    container mac-fc-status {
+      config false;
+      uses mac-fc-status;
+      description
+        "none";
+    }
+    container mac-fc-current-problems {
+      config false;
+      uses mac-fc-current-problems;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  grouping mac-fc-capability {
+    leaf admin-shut-down-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "true = Manual switching on and off of the forwarding construct without deleting it (underlying OSI network layers are also not affected) is available.";
+    }
+    leaf-list supported-alarm-list {
+      type string;
+      default "Supported Alarms not yet defined.";
+      config false;
+      description
+        "Available alarms to be listed.";
+    }
+    description
+      "none";
+  }
+
+  grouping mac-fc-configuration {
+    leaf fc-name {
+      type string;
+      default "FC name not yet defined.";
+      description
+        "Name of the ForwardingConstruct. Free text field to be filled by the operator.";
+    }
+    leaf fc-is-on {
+      type boolean;
+      default "false";
+      description
+        "Only effective if (adminShutDownIsAvail==true). true = Activation of the forwarding of frames. false = De-activation of the ForwardingConstruct without deleting it (underlying OSI network layers are not affected).";
+    }
+    leaf database-id {
+      type int32;
+      default "-1";
+      description
+        "The identity of the Filtering Database. Name in ieee802-dot1q-bridge.yang: database-id.";
+    }
+    leaf mac-address {
+      type string;
+      default "00:00:00:00:00:00";
+      description
+        "Configuration of a MAC address (unicast, multicast, broadcast), for which the device has forwarding and/or filtering information.";
+    }
+    leaf entry-kind {
+      type entry-kind-type;
+      default "ENTRY_KIND_TYPE_NOT_YET_DEFINED";
+      description
+        "The type of filtering entry. Whether static or dynamic. Static entries can be created, deleted, and retrieved. However, dynamic entries can only be deleted or retrieved by the management entity. Consequently, a Bridge is not required to accept a command that can alter the dynamic entries except delete a dynamic entry. Name in ieee802-dot1q-bridge.yang: entry-type.";
+    }
+    list problem-kind-severity-list {
+      key "problem-kind-name";
+      uses problem-kind-severity-type;
+      description
+        "Severity of the problem to be configured.";
+    }
+    description
+      "none";
+  }
+
+  grouping mac-fc-status {
+    leaf fc-status {
+      type fc-status-type;
+      default "FC_STATUS_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "The status of this entry. Name in ieee802-dot1q-bridge.yang: status.";
+    }
+    description
+      "none";
+  }
+
+  grouping mac-fc-current-problems {
+    list current-problem-list {
+      key "sequence-number";
+      config false;
+      uses mac-fc-current-problem-type;
+      description
+        "none";
+    }
+    leaf number-of-current-problems {
+      type int8;
+      default "-1";
+      config false;
+      description
+        "Number of alarms, which are currently active on this interface.";
+    }
+    leaf time-of-latest-change {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "Date and time when the list of alarms has been changed for the last time.";
+    }
+    description
+      "none";
+  }
+
+  /****************************************
+   * typedef statements
+   **************************************/ 
+
+  typedef entry-kind-type {
+    type identityref {
+      base ENTRY_KIND_TYPE;
+    }
+    description
+      "none";
+  }
+
+  typedef fc-status-type {
+    type identityref {
+      base FC_STATUS_TYPE;
+    }
+    description
+      "none";
+  }
+
+  /*********************************************
+   * grouping statements for complex data types
+   *******************************************/ 
+
+  identity ENTRY_KIND_TYPE {
+    description
+      "none";
+  }
+
+  identity ENTRY_KIND_TYPE_STATIC {
+    base ENTRY_KIND_TYPE;
+    description
+      "Static entries can be created, deleted, and retrieved. Name in ieee802-dot1q-bridge.yang: static.";
+  }
+
+  identity ENTRY_KIND_TYPE_DYNAMIC {
+    base ENTRY_KIND_TYPE;
+    description
+      "Dynamic/learnt entries can only be deleted or retrieved. Name in ieee802-dot1q-bridge.yang: dynamic.";
+  }
+
+  identity ENTRY_KIND_TYPE_NOT_YET_DEFINED {
+    base ENTRY_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity FC_STATUS_TYPE {
+    description
+      "none";
+  }
+
+  identity FC_STATUS_TYPE_OTHER {
+    base FC_STATUS_TYPE;
+    description
+      "None of the following. This may include the case where some other object is being used to determine if and how frames addressed to the value of the corresponding instance of 'address' are being forwarded. Name in ieee802-dot1q-bridge.yang: other.";
+  }
+
+  identity FC_STATUS_TYPE_INVALID {
+    base FC_STATUS_TYPE;
+    description
+      "This entry is no longer valid (e.g., it was learned but has since aged out), but has not yet been flushed from the table. Name in ieee802-dot1q-bridge.yang: invalid.";
+  }
+
+  identity FC_STATUS_TYPE_LEARNED {
+    base FC_STATUS_TYPE;
+    description
+      "The value of the corresponding instance of the port node was learned and is being used. Name in ieee802-dot1q-bridge.yang: learned.";
+  }
+
+  identity FC_STATUS_TYPE_SELF {
+    base FC_STATUS_TYPE;
+    description
+      "The value of the corresponding instance of the address node representing one of the devices address. Name in ieee802-dot1q-bridge.yang: self.";
+  }
+
+  identity FC_STATUS_TYPE_MANAGEMENT {
+    base FC_STATUS_TYPE;
+    description
+      "The value of the corresponding instance of address node that is also the value of an existing instance. Name in ieee802-dot1q-bridge.yang: mgmt.";
+  }
+
+  identity FC_STATUS_TYPE_NOT_YET_DEFINED {
+    base FC_STATUS_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE {
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_NON_ALARMED {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_WARNING {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_MINOR {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_MAJOR {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_CRITICAL {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_NOT_YET_DEFINED {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  /****************************************
+   * package super-types
+   **************************************/ 
+
+  typedef severity-type {
+    type identityref {
+      base SEVERITY_TYPE;
+    }
+    description
+      "According to ITU-T M.3160";
+  }
+
+  grouping problem-kind-severity-type {
+    leaf problem-kind-name {
+      type string;
+      description
+        "Name of the alarm according to supportedAlarmList";
+    }
+    leaf problem-kind-severity {
+      type severity-type;
+      default "SEVERITY_TYPE_NOT_YET_DEFINED";
+      description
+        "Severity of this type of alarm.";
+    }
+    description
+      "none";
+  }
+
+  grouping mac-fc-current-problem-type {
+    leaf problem-name {
+      type string;
+      default "Problem name not specified.";
+      config false;
+      description
+        "Name of the alarm according to *Capability::supportedAlarmList.";
+    }
+    uses current-problem;
+    description
+      "none";
+  }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/mac-fd-1-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/mac-fd-1-0.yang
new file mode 100644
index 0000000..9347f03
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/mac-fd-1-0.yang
@@ -0,0 +1,585 @@
+module mac-fd-1-0 {
+  yang-version 1.1;
+  namespace "urn:onf:yang:mac-fd-1-0";
+  prefix mac-fd;
+
+  import ietf-yang-types {
+    prefix yang;
+  }
+  import core-model-1-4 {
+    prefix core-model;
+  }
+
+  organization
+    "openBackhaul.com proposal to Open Networking Foundation (ONF)";
+  contact
+    "WG Web : https://github.com/openBackhaul/Overview
+     WG List: MacFd@openBackhaul.com
+     Editor : Thorsten Heinze
+     Email  : Thorsten.Heinze@openBackhaul.com";
+  description
+    "Technology specific amendment to the ForwardingDomain class for documenting potential forwarding (Ethernet Switch) according to IEEE 802.1 .
+
+     Copyright 2019 openBackhaul.com
+
+     Licensed under the Apache License, Version 2.0 (the 'License');
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+     http://www.apache.org/licenses/LICENSE-2.0
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an 'AS IS' BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.";
+
+  revision 2020-08-26 {
+    description
+      "Model for the Transport SDN Pilot at Telefonica Germany.
+       Please view https://github.com/openBackhaul/macFd/issues for changes.";
+    reference
+      "https://github.com/openBackhaul/macFd/tree/tsp: Model definition
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+  }
+
+  identity LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER {
+    base core-model:LAYER_PROTOCOL_NAME_TYPE;
+    description
+      "none";
+  }
+
+  augment "/core-model:control-construct/core-model:forwarding-domain" {
+    when "derived-from-or-self(./core-model:layer-protocol-name, 'vlan-fd:LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER')";
+    uses mac-fd-spec;
+    description
+      "none";
+  }
+
+  /****************************************
+   * package notifications
+   **************************************/ 
+
+  notification object-creation-notification {
+    uses object-creation-notification;
+    description
+      "none";
+  }
+
+  grouping object-creation-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts object creation notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:forwarding-domain/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf object-type {
+      type string;
+      default "Type of created object not specified.";
+      config false;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  notification object-deletion-notification {
+    uses object-deletion-notification;
+    description
+      "none";
+  }
+
+  grouping object-deletion-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts object deletion notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:forwarding-domain/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  notification attribute-value-changed-notification {
+    uses attribute-value-changed-notification;
+    description
+      "none";
+  }
+
+  grouping attribute-value-changed-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts attribute value changed notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:forwarding-domain/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf attribute-name {
+      type string;
+      default "Attribute name not specified.";
+      config false;
+      description
+        "Name of the attribute that has been changed.";
+    }
+    leaf new-value {
+      type string;
+      default "New value not specified.";
+      config false;
+      description
+        "Attribute value converted to a string (xml, json, ...)";
+    }
+    description
+      "To be sent when an attribute has changed and one or more controllers have to update their data.";
+  }
+
+  notification problem-notification {
+    uses problem-notification;
+    description
+      "none";
+  }
+
+  grouping problem-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts problem notifications";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:forwarding-domain/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf problem {
+      type string;
+      default "Problem name not specified.";
+      config false;
+      description
+        "Name of the problem according to *Capability::supportedAlarmList";
+    }
+    leaf severity {
+      type severity-type;
+      default "SEVERITY_TYPE_WARNING";
+      config false;
+      description
+        "Severity of the problem according to *Configuration::problemSeverityList";
+    }
+    description
+      "none";
+  }
+
+  /****************************************
+   * grouping statements for object classes
+   **************************************/ 
+  /****************************************
+   * package super-classes
+   **************************************/ 
+
+  grouping current-problem {
+    leaf sequence-number {
+      type int16;
+      config false;
+      description
+        "Unique sequence number of the current problem object.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf problem-severity {
+      type severity-type;
+      default "SEVERITY_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "Severity of the alarm.";
+    }
+    description
+      "none";
+  }
+
+  grouping mac-fd-spec {
+    container mac-fd-pac {
+      uses mac-fd-pac;
+      description
+        "none";
+    }
+    description
+      "The database that holds static and learned entries describing the MAC forwarding. Name in ieee802-dot1q-bridge.yang: filtering-database.";
+  }
+
+  grouping mac-fd-pac {
+    container mac-fd-capability {
+      config false;
+      uses mac-fd-capability;
+      description
+        "none";
+    }
+    container mac-fd-configuration {
+      uses mac-fd-configuration;
+      description
+        "none";
+    }
+    container mac-fd-status {
+      config false;
+      uses mac-fd-status;
+      description
+        "none";
+    }
+    container mac-fd-current-problems {
+      config false;
+      uses mac-fd-current-problems;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  grouping mac-fd-capability {
+    leaf maximum-number-of-entries {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "The maximum number of entries that can be held in the FDB. Name in ieee802-dot1q-bridge.yang: size.";
+    }
+    leaf admin-shut-down-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "true = Manual switching on and off of the forwarding domain without deleting it (underlying OSI network layers are also not affected) is available.";
+    }
+    leaf maintenance-timer-range {
+      type string;
+      default "Range of the maintenance timer not yet defined.";
+      config false;
+      description
+        "Available time periods for maintenance configurations to be described. Concrete values shall be separated by commas (e.g. '10, 60, 360'). Ranges shall be expressed as two values separated by a minus (e.g. '10-360').";
+    }
+    leaf-list supported-alarm-list {
+      type string;
+      default "Supported Alarms Not Yet Defined";
+      config false;
+      description
+        "Available alarms to be listed.";
+    }
+    description
+      "none";
+  }
+
+  grouping mac-fd-configuration {
+    leaf fd-name {
+      type string;
+      default "Forwarding Domain name not yet defined.";
+      description
+        "Name of the ForwardingDomain. Free text field to be filled by the operator.";
+    }
+    leaf fd-is-on {
+      type boolean;
+      default "false";
+      description
+        "Only effective if (adminShutDownIsAvail==true). true = Activation of the ForwardingDomain. false = De-activation of the ForwardingDomain without deleting it (underlying OSI network layers are not affected).";
+    }
+    leaf mac-address {
+      type string;
+      default "00:00:00:00:00:00";
+      description
+        "Configuration of the MAC address of a switch or virtual switch, which is defined by some VLAN.";
+    }
+    leaf aging-time {
+      type int32;
+      units "s";
+      default "-1";
+      description
+        "The timeout period (10..10,000,000) in seconds for aging out dynamically-learned forwarding information. Name in ieee802-dot1q-bridge.yang: aging-time.";
+    }
+    leaf maintenance-timer {
+      type int32;
+      units "s";
+      default "-1";
+      description
+        "Time of existence of any maintenance configuration. false = maintenance timer is switched off. Valid values are defined in *Capability::maintenanceTimerRange.";
+    }
+    list problem-kind-severity-list {
+      key "problem-kind-name";
+      uses problem-kind-severity-type;
+      description
+        "Severity of each entry of the SupportedAlarmList to be configured.";
+    }
+    description
+      "none";
+  }
+
+  grouping mac-fd-status {
+    leaf mac-address-cur {
+      type string;
+      default "00:00:00:00:00:00";
+      config false;
+      description
+        "MAC address assigned to a switch or virtual switch, which is defined by some VLAN.";
+    }
+    leaf number-of-static-entries-cur {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "The number of Static Filtering entries currently in the FDB. Name in ieee802-dot1q-bridge.yang: static-entries.";
+    }
+    leaf number-of-dynamic-entries-cur {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "The number of Dynamic Filtering entries currently in the FDB. Name in ieee802-dot1q-bridge.yang: dynamic-entries.";
+    }
+    leaf number-of-mac-registrations-cur {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "The number of MAC Address Registration entries currently in the FDB. Name in ieee802-dot1q-bridge.yang: mac-address-registration-entries.";
+    }
+    leaf fd-status {
+      type fd-status-type;
+      default "FD_STATUS_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "Operational status of the forwarding domain.";
+    }
+    description
+      "none";
+  }
+
+  grouping mac-fd-current-problems {
+    list current-problem-list {
+      key "sequence-number";
+      config false;
+      uses mac-fd-current-problem-type;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  /****************************************
+   * typedef statements
+   **************************************/ 
+  /*********************************************
+   * grouping statements for complex data types
+   *******************************************/ 
+
+  identity SEVERITY_TYPE {
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_NON_ALARMED {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_WARNING {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_MINOR {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_MAJOR {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_CRITICAL {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_NOT_YET_DEFINED {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity FD_STATUS_TYPE {
+    description
+      "none";
+  }
+
+  identity FD_STATUS_TYPE_UP {
+    base FD_STATUS_TYPE;
+    description
+      "Ready to pass packets.";
+  }
+
+  identity FD_STATUS_TYPE_DOWN {
+    base FD_STATUS_TYPE;
+    description
+      "The interface does not pass any packets.";
+  }
+
+  identity FD_STATUS_TYPE_TESTING {
+    base FD_STATUS_TYPE;
+    description
+      "In some test mode.  No operational packets can be passed.";
+  }
+
+  identity FD_STATUS_TYPE_UNKNOWN {
+    base FD_STATUS_TYPE;
+    description
+      "Status cannot be determined for some reason.";
+  }
+
+  identity FD_STATUS_TYPE_DORMANT {
+    base FD_STATUS_TYPE;
+    description
+      "Waiting for some external event.";
+  }
+
+  identity FD_STATUS_TYPE_NOT_PRESENT {
+    base FD_STATUS_TYPE;
+    description
+      "Some component (typically hardware) is missing.";
+  }
+
+  identity FD_STATUS_TYPE_LOWER_LAYER_DOWN {
+    base FD_STATUS_TYPE;
+    description
+      "Down due to state of lower-layer interface(s).";
+  }
+
+  identity FD_STATUS_TYPE_ADMIN_DOWN {
+    base FD_STATUS_TYPE;
+    description
+      "Down due to configuration.";
+  }
+
+  identity FD_STATUS_TYPE_NOT_YET_DEFINED {
+    base FD_STATUS_TYPE;
+    description
+      "none";
+  }
+
+  /****************************************
+   * package super-types
+   **************************************/ 
+
+  typedef severity-type {
+    type identityref {
+      base SEVERITY_TYPE;
+    }
+    description
+      "none";
+  }
+
+  typedef fd-status-type {
+    type identityref {
+      base FD_STATUS_TYPE;
+    }
+    description
+      "Current Status of the Forwarding Domain";
+  }
+
+  grouping problem-kind-severity-type {
+    leaf problem-kind-name {
+      type string;
+      description
+        "Name of the alarm according to SupportedAlarmList";
+    }
+    leaf problem-kind-severity {
+      type severity-type;
+      default "SEVERITY_TYPE_NOT_YET_DEFINED";
+      description
+        "Severity of this type of alarm.";
+    }
+    description
+      "none";
+  }
+
+  grouping mac-fd-current-problem-type {
+    leaf problem-name {
+      type string;
+      default "Problem name not specified.";
+      config false;
+      description
+        "Name of the alarm according to SupportedAlarmList";
+    }
+    uses current-problem;
+    description
+      "none";
+  }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/mac-interface-1-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/mac-interface-1-0.yang
new file mode 100644
index 0000000..be46b24
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/mac-interface-1-0.yang
@@ -0,0 +1,1479 @@
+module mac-interface-1-0 {
+  yang-version 1.1;
+  namespace "urn:onf:yang:mac-interface-1-0";
+  prefix mac-interface;
+
+  import ietf-yang-types {
+    prefix yang;
+  }
+  import core-model-1-4 {
+    prefix core-model;
+  }
+
+  organization
+    "openBackhaul.com proposal to Open Networking Foundation (ONF)";
+  contact
+    "WG Web : https://github.com/openBackhaul/Overview
+     WG List: MacInterface@openBackhaul.com
+     Editor : Thorsten Heinze
+     Email  : Thorsten.Heinze@openBackhaul.com";
+  description
+    "Technology specific interface definition for Ethernet MAC interfaces according to IEEE 802.1
+
+     Copyright 2019 openBackhaul.com
+
+     Licensed under the Apache License, Version 2.0 (the 'License');
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+     http://www.apache.org/licenses/LICENSE-2.0
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an 'AS IS' BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.";
+
+  revision 2020-01-23 {
+    description
+      "Model for the Transport SDN Pilot at Telefonica Germany.
+       Please view https://github.com/openBackhaul/macInterface/issues for changes.";
+    reference
+      "https://github.com/openBackhaul/macInterface/tree/tsp: Model definition
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+  }
+  revision 2019-07-11 {
+    description
+      "Model for the Transport SDN Pilot at Telefonica Germany.
+       Please view https://github.com/openBackhaul/macInterface/issues for changes.";
+    reference
+      "https://github.com/openBackhaul/macInterface/tree/tsp: Model definition
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+  }
+
+  identity LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER {
+    base core-model:LAYER_PROTOCOL_NAME_TYPE;
+    description
+      "none";
+  }
+
+  augment "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol" {
+    when "derived-from-or-self(./core-model:layer-protocol-name, 'mac-interface:LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER')";
+    uses mac-interface-lp-spec;
+    description
+      "none";
+  }
+
+  /****************************************
+   * package notifications
+   **************************************/ 
+
+  notification object-creation-notification {
+    uses object-creation-notification;
+    description
+      "none";
+  }
+
+  grouping object-creation-notification {
+    leaf counter {
+      type int64;
+      default "-1";
+      config false;
+      description
+        "Counts object creation notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf object-type {
+      type string;
+      default "Type of created object not specified.";
+      config false;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  notification object-deletion-notification {
+    uses object-deletion-notification;
+    description
+      "none";
+  }
+
+  grouping object-deletion-notification {
+    leaf counter {
+      type int64;
+      default "-1";
+      config false;
+      description
+        "Counts object deletion notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  notification attribute-value-changed-notification {
+    uses attribute-value-changed-notification;
+    description
+      "none";
+  }
+
+  grouping attribute-value-changed-notification {
+    leaf counter {
+      type int64;
+      default "-1";
+      config false;
+      description
+        "Counts attribute value changed notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf attribute-name {
+      type string;
+      default "Attribute name not specified.";
+      config false;
+      description
+        "Name of the attribute that has been changed.";
+    }
+    leaf new-value {
+      type string;
+      default "New value not specified.";
+      config false;
+      description
+        "Attribute value converted to a string (xml, json, ...)";
+    }
+    description
+      "none";
+  }
+
+  notification problem-notification {
+    uses problem-notification;
+    description
+      "none";
+  }
+
+  grouping problem-notification {
+    leaf counter {
+      type int64;
+      default "-1";
+      config false;
+      description
+        "Counts problem notifications";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf problem {
+      type string;
+      default "Problem name not specified.";
+      config false;
+      description
+        "Name of the problem according to supportedAlarmList";
+    }
+    leaf severity {
+      type severity-type;
+      default "SEVERITY_TYPE_WARNING";
+      config false;
+      description
+        "Severity of the problem according to problemKindSeverity";
+    }
+    description
+      "none";
+  }
+
+  /****************************************
+   * grouping statements for object classes
+   **************************************/ 
+  /****************************************
+   * package super-classes
+   **************************************/ 
+
+  grouping current-problem {
+    leaf sequence-number {
+      type int16;
+      config false;
+      description
+        "Unique sequence number of the current problem object.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "Time when the alarm was raised.";
+    }
+    leaf problem-severity {
+      type severity-type;
+      default "SEVERITY_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "Severity of the alarm.";
+    }
+    description
+      "none";
+  }
+
+  grouping current-performance {
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "The timestamp associated with when the current data was collected.";
+    }
+    leaf suspect-interval-flag {
+      type boolean;
+      default "false";
+      config false;
+      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.";
+    }
+    leaf elapsed-time {
+      type int64;
+      units "s";
+      default "-1";
+      config false;
+      description
+        "Number of seconds that elapsed since the last reset of the counter.";
+    }
+    leaf scanner-id {
+      type string;
+      default "Scanner ID not defined.";
+      config false;
+      description
+        "none";
+    }
+    leaf granularity-period {
+      type granularity-period-type;
+      config false;
+      description
+        "Time period between reset of the underlying counter.";
+    }
+    description
+      "none";
+  }
+
+  grouping historical-performance {
+    leaf suspect-interval-flag {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "This attribute indicates that the data collected during the interval is suspect.";
+    }
+    leaf history-data-id {
+      type string;
+      default "History Data ID not defined.";
+      config false;
+      description
+        "none";
+    }
+    leaf granularity-period {
+      type granularity-period-type;
+      config false;
+      description
+        "Time period between reset of the underlying counter.";
+    }
+    leaf period-end-time {
+      type yang:date-and-time;
+      config false;
+      description
+        "Time when the counter values have been recorded and the counter reset.";
+    }
+    description
+      "none";
+  }
+
+  grouping mac-interface-lp-spec {
+    container mac-interface-pac {
+      uses mac-interface-pac;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  grouping mac-interface-pac {
+    container mac-interface-capability {
+      config false;
+      uses mac-interface-capability;
+      description
+        "none";
+    }
+    container mac-interface-configuration {
+      uses mac-interface-configuration;
+      description
+        "none";
+    }
+    container mac-interface-status {
+      config false;
+      uses mac-interface-status;
+      description
+        "none";
+    }
+    container mac-interface-current-problems {
+      config false;
+      uses mac-interface-current-problems;
+      description
+        "none";
+    }
+    container mac-interface-current-performance {
+      config false;
+      uses mac-interface-current-performance;
+      description
+        "none";
+    }
+    container mac-interface-historical-peformances {
+      config false;
+      uses mac-interface-historical-peformances;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  grouping mac-interface-capability {
+    leaf hardware-mac-address {
+      type string;
+      default "00:00:00:00:00:00";
+      config false;
+      description
+        "Hardware MAC address of the interface.";
+    }
+    leaf mac-address-configuration-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Device supports overwriting the hardware MAC address.";
+    }
+    leaf maximum-frame-size-min {
+      type int16;
+      units "s";
+      default "-1";
+      config false;
+      description
+        "Minimum configurable value of the maximum Ethernet frame size in Byte.";
+    }
+    leaf maximum-frame-size-max {
+      type int16;
+      units "s";
+      default "-1";
+      config false;
+      description
+        "Maximum configurable value of the maximum Ethernet frame size in Byte.";
+    }
+    leaf-list supported-frame-format-list {
+      type frame-format-type;
+      config false;
+      min-elements 1;
+      description
+        "List of supported Ethernet frame formats";
+    }
+    leaf-list supported-flow-control-mode-list {
+      type flow-control-mode-type;
+      config false;
+      min-elements 1;
+      max-elements 5;
+      description
+        "List of potential configurations of the Flow Control.";
+    }
+    leaf link-loss-forwarding-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Sending a Link Loss message in case of link failure is supported by the device.";
+    }
+    leaf broadcast-frame-suppression-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Interface is supporting limiting the maximum share of broadcast frames.";
+    }
+    leaf loop-port-shut-down-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Device is supporting automated shut down of ports, which are affected by an Ethernet loop.";
+    }
+    leaf loop-detection-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Device is supporting a feature for detecting Ethernet loops on this interface.";
+    }
+    leaf admin-shut-down-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Manual switching on and off of the interface without deleting it (underlying OSI network layers are also not affected) is available.";
+    }
+    leaf-list supported-loop-back-kind-list {
+      type loop-back-type;
+      config false;
+      min-elements 1;
+      max-elements 3;
+      description
+        "List of supported kinds of looping back.";
+    }
+    leaf maintenance-timer-range {
+      type string;
+      default "Range of the maintenance timer not yet defined.";
+      config false;
+      description
+        "Available time periods for maintenance configurations to be described. Concrete values shall be separated by commas (e.g. '10, 60, 360'). Ranges shall be expressed as two values separated by a minus (e.g. '10-360').";
+    }
+    leaf statistics-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Continuous statistics counters are available.";
+    }
+    leaf-list supported-alarm-list {
+      type string;
+      config false;
+      min-elements 2;
+      description
+        "Available alarms to be listed. Mandatory: 'MacInterfaceDown' and 'FrameSizeMissmatch'. Further alarms might be added by the device vendors.";
+    }
+    leaf performance-monitoring-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Collection and aggregation of performance values is available.";
+    }
+    description
+      "none";
+  }
+
+  grouping mac-interface-configuration {
+    leaf interface-name {
+      type string;
+      default "Interface name not yet defined.";
+      description
+        "Description of the interface, could be a name, could be a number. Free text field to be filled by the operator.";
+    }
+    leaf interface-is-on {
+      type boolean;
+      default "false";
+      description
+        "Only relevant if (adminShutDownIsAvail==1). 1 = Activation of the interface. 0 = De-activation of the interface without deleting it (underlying OSI network layers are not affected).";
+    }
+    leaf mac-address-configuration-is-on {
+      type boolean;
+      default "false";
+      description
+        "Only relevant if (macAddressConfigurationIsAvail==1). 1 = Activates overwriting the hardware MAC address by MacInterfaceConfiguration::configuredMacAddress.";
+    }
+    leaf configured-mac-address {
+      type string;
+      default "00:00:00:00:00:00";
+      description
+        "Only relevant if (macAddressConfigurationIsAvail==1 AND macAddressConfigurationIsOn==1). Overwriting the hardware MAC address with the configured value.";
+    }
+    leaf maximum-frame-size {
+      type int16;
+      units "Byte";
+      default "-1";
+      description
+        "This value describes the maximum size of the Ethernet frame (in Byte) before sending.";
+    }
+    leaf fragmentation-allowed {
+      type fragmentation-type;
+      default "FRAGMENTATION_TYPE_NOT_YET_DEFINED";
+      description
+        "none";
+    }
+    leaf transmitted-frame-format {
+      type frame-format-type;
+      default "FRAME_FORMAT_TYPE_NOT_YET_DEFINED";
+      description
+        "Configuration of the format of the transmitted Ethernet frames.";
+    }
+    leaf flow-control-mode {
+      type flow-control-mode-type;
+      default "FLOW_CONTROL_MODE_TYPE_NOT_YET_DEFINED";
+      description
+        "Configures the mode of operation of Flow Control according to IEEE 802.3x on this interface.";
+    }
+    leaf link-loss-forwarding-is-on {
+      type boolean;
+      default "false";
+      description
+        "1 = Sending a Link Loss message in case of link failure is activated.";
+    }
+    leaf link-loss-forwarding-delay {
+      type int8;
+      units "100ms";
+      default "-1";
+      description
+        "Delay (in 100ms steps) between a detected link failure and sending of a Link Loss message. In case of 1+1 hot stand by protection of a microwave, make sure configured value is higher than 5 (500ms).";
+    }
+    leaf broadcast-frame-suppression-is-on {
+      type boolean;
+      default "false";
+      description
+        "1 = Limiting the share of broadcast frames is activated.";
+    }
+    leaf maximum-share-of-broadcast-frames {
+      type int8;
+      units "%";
+      default "-1";
+      description
+        "Threshold for Broadcast frames becoming discarded in %. Value range from 0 to 100.";
+    }
+    leaf loop-port-shut-down-is-on {
+      type boolean;
+      default "false";
+      description
+        "1 = Feature for automated shut down in case of an Ethernet loop is activated on this interface.";
+    }
+    leaf loop-detection-is-on {
+      type boolean;
+      default "false";
+      description
+        "Maintenance Feature. 1 = Checking for Ethernet loops on this interface is currently switched on.";
+    }
+    leaf loop-back-kind-on {
+      type loop-back-type;
+      default "LOOP_BACK_TYPE_NOT_YET_DEFINED";
+      description
+        "Maintenance Feature. Configuration of a loop back of Ethernet frames on this interface.";
+    }
+    leaf maintenance-timer {
+      type int32;
+      units "s";
+      default "-1";
+      description
+        "Time of existence of any maintenance configuration. 0 = maintenance timer is switched off. Valid values are defined in *Capability::maintenanceTimerRange.";
+    }
+    leaf statistics-is-on {
+      type boolean;
+      default "false";
+      description
+        "Only relevant if (statisticsIsAvail==1). 1 = Continuous statistics counters are switched on.";
+    }
+    list problem-kind-severity-list {
+      key "problem-kind-name";
+      min-elements 2;
+      uses problem-kind-severity-type;
+      description
+        "Severity of each entry of the SupportedAlarmList to be configured.";
+    }
+    leaf performance-monitoring-is-on {
+      type boolean;
+      default "false";
+      description
+        "Only relevant if (performanceMonitoringIsAvail==1). 1 = Collection and aggregation of performance values is switched on.";
+    }
+    description
+      "none";
+  }
+
+  grouping mac-interface-status {
+    leaf interface-status {
+      type interface-status-type;
+      default "INTERFACE_STATUS_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "Operational status of the interface.";
+    }
+    leaf mac-address-cur {
+      type string;
+      default "00:00:00:00:00:00";
+      config false;
+      description
+        "If (macAddressConfigurationIsAvail==0), maxAddressCur = MacInterfaceCapability::hardwareMacAddress. If (macAddressConfigurationIsAvail==1 AND macAddressConfigurationIsOn==1), maxAddressCur = MacInterfaceConfiguration::configuredMacAddress.";
+    }
+    leaf received-ethernet-frame-format-cur {
+      type frame-format-type;
+      default "FRAME_FORMAT_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "Ethernet frame format of the currently received frames.";
+    }
+    leaf flow-control-mode-cur {
+      type flow-control-mode-type;
+      default "FLOW_CONTROL_MODE_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "Currently operative mode (none, send, receive, both) of operation of the Flow Control according to IEEE 802.3x on this interface.";
+    }
+    leaf loop-detection-result {
+      type loop-detection-result-type;
+      default "LOOP_DETECTION_RESULT_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "Result of the Ethernet loop detection feature.";
+    }
+    leaf loop-back-kind-up {
+      type loop-back-type;
+      default "LOOP_BACK_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "The currently active (not just configured) type of loop back.";
+    }
+    leaf statistics-is-up {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Statistics are currently collected and aggregated.";
+    }
+    leaf performance-monitoring-is-up {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Performance values are currently collected and aggregated.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "The timestamp associated with when the statistic values were read/retrieved.";
+    }
+    leaf last-10-sec-frame-input-rate {
+      type int32;
+      units "frame/s";
+      default "-1";
+      config false;
+      description
+        "Frame receive rate at this MAC interface over the last 10 second interval.";
+    }
+    leaf last-10-sec-frame-output-rate {
+      type int32;
+      units "frame/s";
+      default "-1";
+      config false;
+      description
+        "Frame transmit rate at this MAC interface over the last 10 second interval.";
+    }
+    leaf total-frames-input {
+      type int64;
+      units "frame";
+      default "-1";
+      config false;
+      description
+        "The total number of Ethernet frames received at this MAC interface, including those received in error";
+    }
+    leaf total-frames-output {
+      type int64;
+      units "frame";
+      default "-1";
+      config false;
+      description
+        "The total number of Ethernet frames sent from this MAC interface.";
+    }
+    leaf forwarded-frames-input {
+      type int64;
+      units "frame";
+      default "-1";
+      config false;
+      description
+        "Number of input frames, for which the device was not their final destination and for which the device attempted to find a route to forward them to that final destination.";
+    }
+    leaf forwarded-frames-output {
+      type int64;
+      units "frame";
+      default "-1";
+      config false;
+      description
+        "Number of frames, for which the device was not their final destination and for which it was successful in finding a path to their final destination. ";
+    }
+    leaf unicast-frames-input {
+      type int64;
+      units "frame";
+      default "-1";
+      config false;
+      description
+        "Total number of received unicast frames.";
+    }
+    leaf unicast-frames-output {
+      type int64;
+      units "frame";
+      default "-1";
+      config false;
+      description
+        "Total number of sent unicast frames.";
+    }
+    leaf multicast-frames-input {
+      type int32;
+      units "frame";
+      default "-1";
+      config false;
+      description
+        "Total number of received multicast frames.";
+    }
+    leaf multicast-frames-output {
+      type int32;
+      units "frame";
+      default "-1";
+      config false;
+      description
+        "Total number of sent multicast frames.";
+    }
+    leaf broadcast-frames-input {
+      type int32;
+      units "frame";
+      default "-1";
+      config false;
+      description
+        "Total number of received broadcast frames.";
+    }
+    leaf broadcast-frames-output {
+      type int32;
+      units "frame";
+      default "-1";
+      config false;
+      description
+        "Total number of sent broadcast frames.";
+    }
+    leaf fragmented-frames-input {
+      type int32;
+      units "frame";
+      default "-1";
+      config false;
+      description
+        "Total number of received fragmented frames.";
+    }
+    leaf errored-frames-input {
+      type int32;
+      units "frame";
+      default "-1";
+      config false;
+      description
+        "Total number of received errored frames.";
+    }
+    leaf errored-frames-output {
+      type int32;
+      units "frame";
+      default "-1";
+      config false;
+      description
+        "Number of Ethernet frames, which were locally generated and discarded due to errors, including no route found to the destination.";
+    }
+    leaf dropped-frames-input {
+      type int32;
+      units "frame";
+      default "-1";
+      config false;
+      description
+        "Total number of Ethernet frames dropped at the receiver. The number of input Ethernet frames, for which no problems were encountered to prevent their continued processing, but were discarded (e.g., for lack of buffer space).";
+    }
+    leaf dropped-frames-output {
+      type int32;
+      units "frame";
+      default "-1";
+      config false;
+      description
+        "The number of output Ethernet frames, for which no problem was encountered to prevent their transmission to their destination, but were discarded (e.g., for lack of buffer space).";
+    }
+    description
+      "none";
+  }
+
+  grouping mac-interface-current-problems {
+    list current-problem-list {
+      key "sequence-number";
+      config false;
+      uses mac-interface-current-problem-type;
+      description
+        "none";
+    }
+    leaf number-of-current-problems {
+      type int8;
+      default "-1";
+      config false;
+      description
+        "Number of alarms, which are currently active on this interface.";
+    }
+    leaf time-of-latest-change {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "Date and time when the list of alarms has been changed for the last time.";
+    }
+    description
+      "none";
+  }
+
+  grouping mac-interface-current-performance {
+    list current-performance-data-list {
+      key "granularity-period";
+      config false;
+      min-elements 1;
+      max-elements 2;
+      uses mac-interface-current-performance-type;
+      description
+        "none";
+    }
+    leaf number-of-current-performance-sets {
+      type int8;
+      default "-1";
+      config false;
+      description
+        "Number of sets of current performance values, which are provided in the list.";
+    }
+    description
+      "none";
+  }
+
+  grouping mac-interface-historical-peformances {
+    list historical-performace-data-list {
+      key "granularity-period period-end-time";
+      config false;
+      uses mac-interface-historical-performance-type;
+      description
+        "none";
+    }
+    leaf number-of-historical-performance-sets {
+      type int16;
+      default "-1";
+      config false;
+      description
+        "Number of sets of historical performance values, which are provided in the list.";
+    }
+    leaf time-of-latest-change {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "Date and time when the list of sets of historical performance values has been changed for the last time (e.g. new one added or existing one deleted).";
+    }
+    description
+      "none";
+  }
+
+  /****************************************
+   * typedef statements
+   **************************************/ 
+
+  typedef loop-back-type {
+    type identityref {
+      base LOOP_BACK_TYPE;
+    }
+    description
+      "none";
+  }
+
+  typedef fragmentation-type {
+    type identityref {
+      base FRAGMENTATION_TYPE;
+    }
+    description
+      "none";
+  }
+
+  typedef frame-format-type {
+    type identityref {
+      base FRAME_FORMAT_TYPE;
+    }
+    description
+      "none";
+  }
+
+  typedef flow-control-mode-type {
+    type identityref {
+      base FLOW_CONTROL_MODE_TYPE;
+    }
+    description
+      "none";
+  }
+
+  typedef loop-detection-result-type {
+    type identityref {
+      base LOOP_DETECTION_RESULT_TYPE;
+    }
+    description
+      "none";
+  }
+
+  /*********************************************
+   * grouping statements for complex data types
+   *******************************************/ 
+
+  identity LOOP_BACK_TYPE {
+    description
+      "none";
+  }
+
+  identity LOOP_BACK_TYPE_NONE {
+    base LOOP_BACK_TYPE;
+    description
+      "none";
+  }
+
+  identity LOOP_BACK_TYPE_BACK_TO_LOCAL {
+    base LOOP_BACK_TYPE;
+    description
+      "Returning Ethernet frames of the local site on the Ethernet MAC interface back to the local site.";
+  }
+
+  identity LOOP_BACK_TYPE_BACK_TO_REMOTE {
+    base LOOP_BACK_TYPE;
+    description
+      "Returning Ethernet frames of the remote site on the Ethernet MAC interface back to the remote site.";
+  }
+
+  identity LOOP_BACK_TYPE_NOT_YET_DEFINED {
+    base LOOP_BACK_TYPE;
+    description
+      "none";
+  }
+
+  identity FRAGMENTATION_TYPE {
+    description
+      "none";
+  }
+
+  identity FRAGMENTATION_TYPE_DISABLE {
+    base FRAGMENTATION_TYPE;
+    description
+      "none";
+  }
+
+  identity FRAGMENTATION_TYPE_ENABLE_256_BYTE {
+    base FRAGMENTATION_TYPE;
+    description
+      "none";
+  }
+
+  identity FRAGMENTATION_TYPE_ENABLE_512_BYTE {
+    base FRAGMENTATION_TYPE;
+    description
+      "none";
+  }
+
+  identity FRAGMENTATION_TYPE_NOT_YET_DEFINED {
+    base FRAGMENTATION_TYPE;
+    description
+      "none";
+  }
+
+  identity FRAME_FORMAT_TYPE {
+    description
+      "none";
+  }
+
+  identity FRAME_FORMAT_TYPE_ETHERNET_2 {
+    base FRAME_FORMAT_TYPE;
+    description
+      "none";
+  }
+
+  identity FRAME_FORMAT_TYPE_802.2_SNAP {
+    base FRAME_FORMAT_TYPE;
+    description
+      "none";
+  }
+
+  identity FRAME_FORMAT_TYPE_802.2_LLC {
+    base FRAME_FORMAT_TYPE;
+    description
+      "none";
+  }
+
+  identity FRAME_FORMAT_TYPE_802.3 {
+    base FRAME_FORMAT_TYPE;
+    description
+      "none";
+  }
+
+  identity FRAME_FORMAT_TYPE_NOT_YET_DEFINED {
+    base FRAME_FORMAT_TYPE;
+    description
+      "none";
+  }
+
+  identity FLOW_CONTROL_MODE_TYPE {
+    description
+      "none";
+  }
+
+  identity FLOW_CONTROL_MODE_TYPE_NONE {
+    base FLOW_CONTROL_MODE_TYPE;
+    description
+      "Flow Control is switched off.";
+  }
+
+  identity FLOW_CONTROL_MODE_TYPE_SEND_ONLY {
+    base FLOW_CONTROL_MODE_TYPE;
+    description
+      "Only sending of pause frames according to IEEE 802.3x (Ethernet Flow Control).";
+  }
+
+  identity FLOW_CONTROL_MODE_TYPE_RECEIVE_ONLY {
+    base FLOW_CONTROL_MODE_TYPE;
+    description
+      "Only listening for incoming pause frames according to IEEE 802.3x (Ethernet Flow Control).";
+  }
+
+  identity FLOW_CONTROL_MODE_TYPE_SEND_AND_RECEIVE {
+    base FLOW_CONTROL_MODE_TYPE;
+    description
+      "Sending and listening for pause frames according to IEEE 802.3x (Ethernet Flow Control).";
+  }
+
+  identity FLOW_CONTROL_MODE_TYPE_AUTO_NEGOTIATION {
+    base FLOW_CONTROL_MODE_TYPE;
+    description
+      "none";
+  }
+
+  identity FLOW_CONTROL_MODE_TYPE_NOT_YET_DEFINED {
+    base FLOW_CONTROL_MODE_TYPE;
+    description
+      "none";
+  }
+
+  identity LOOP_DETECTION_RESULT_TYPE {
+    description
+      "none";
+  }
+
+  identity LOOP_DETECTION_RESULT_TYPE_LOOP_DETECTED {
+    base LOOP_DETECTION_RESULT_TYPE;
+    description
+      "none";
+  }
+
+  identity LOOP_DETECTION_RESULT_TYPE_NO_LOOP_DETECTED {
+    base LOOP_DETECTION_RESULT_TYPE;
+    description
+      "none";
+  }
+
+  identity LOOP_DETECTION_RESULT_TYPE_DETECTION_SWITCHED_OFF {
+    base LOOP_DETECTION_RESULT_TYPE;
+    description
+      "none";
+  }
+
+  identity LOOP_DETECTION_RESULT_TYPE_NOT_YET_DEFINED {
+    base LOOP_DETECTION_RESULT_TYPE;
+    description
+      "none";
+  }
+
+  identity GRANULARITY_PERIOD_TYPE {
+    description
+      "none";
+  }
+
+  identity GRANULARITY_PERIOD_TYPE_UNKNOWN {
+    base GRANULARITY_PERIOD_TYPE;
+    description
+      "none";
+  }
+
+  identity GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN {
+    base GRANULARITY_PERIOD_TYPE;
+    description
+      "none";
+  }
+
+  identity GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS {
+    base GRANULARITY_PERIOD_TYPE;
+    description
+      "none";
+  }
+
+  identity GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED {
+    base GRANULARITY_PERIOD_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE {
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_NON-ALARMED {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_WARNING {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_MAJOR {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_MINOR {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_CRITICAL {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_NOT_YET_DEFINED {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity INTERFACE_STATUS_TYPE {
+    description
+      "none";
+  }
+
+  identity INTERFACE_STATUS_TYPE_UP {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Ready to pass packets.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_DOWN {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "The interface does not pass any packets.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_SHUT_DUE_LOOP {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Only relevant if (loopPortShutDownIsAvail==1) AND (loopPortShutDownIsOn==1). 1 = port has been automatically shut down, because an Ethernet loop has been detected on this interface.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_TESTING {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "In some test mode.  No operational packets can be passed.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_UNKNOWN {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Status cannot be determined for some reason.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_DORMANT {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Waiting for some external event.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_NOT_PRESENT {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Some component (typically hardware) is missing.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Down due to state of lower-layer interface(s).";
+  }
+
+  identity INTERFACE_STATUS_TYPE_ADMIN_DOWN {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Down due to configuration.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_NOT_YET_DEFINED {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "none";
+  }
+
+  /****************************************
+   * package super-types
+   **************************************/ 
+
+  typedef granularity-period-type {
+    type identityref {
+      base GRANULARITY_PERIOD_TYPE;
+    }
+    description
+      "The enumeration with the options for granularity period of the performance data.";
+  }
+
+  typedef severity-type {
+    type identityref {
+      base SEVERITY_TYPE;
+    }
+    description
+      "none";
+  }
+
+  typedef interface-status-type {
+    type identityref {
+      base INTERFACE_STATUS_TYPE;
+    }
+    description
+      "Current Interface Status";
+  }
+
+  grouping problem-kind-severity-type {
+    leaf problem-kind-name {
+      type string;
+      description
+        "Name of the alarm according to SupportedAlarmList";
+    }
+    leaf problem-kind-severity {
+      type severity-type;
+      default "SEVERITY_TYPE_NOT_YET_DEFINED";
+      description
+        "Severity of this type of alarm.";
+    }
+    description
+      "none";
+  }
+
+  grouping mac-interface-current-problem-type {
+    leaf problem-name {
+      type string;
+      default "NOT_YET_DEFINED";
+      description
+        "Name of the alarm according to SupportedAlarmList";
+    }
+    uses current-problem;
+    description
+      "none";
+  }
+
+  grouping mac-interface-performance-type {
+    leaf mac-control-frames-ingress {
+      type int32;
+      units "frame";
+      default "-1";
+      config false;
+      description
+        "MAC layer control frames received on the interface.";
+    }
+    leaf mac-pause-frames-ingress {
+      type int32;
+      units "frame";
+      default "-1";
+      config false;
+      description
+        "MAC layer Pause frames received on the interface.";
+    }
+    leaf oversized-frames-ingress {
+      type int32;
+      units "frame";
+      default "-1";
+      config false;
+      description
+        "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed.";
+    }
+    leaf undersized-frames-ingress {
+      type int32;
+      units "frame";
+      default "-1";
+      config false;
+      description
+        "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed.";
+    }
+    leaf jabber-frames-ingres {
+      type int32;
+      units "frame";
+      default "-1";
+      config false;
+      description
+        "Number of jabber frames received on the interface.  Jabber frames are typically defined as oversize frames which also have a bad CRC.  Implementations may use slightly different definitions of what constitutes a jabber frame.  Often indicative of a NIC hardware problem.";
+    }
+    leaf fragmented-frames-ingress {
+      type int64;
+      units "frame";
+      default "-1";
+      config false;
+      description
+        "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error).";
+    }
+    leaf tagged-frames-ingress {
+      type int64;
+      units "frame";
+      default "-1";
+      config false;
+      description
+        "Number of 802.1q tagged frames received on the interface.";
+    }
+    leaf mac-control-frames-egress {
+      type int32;
+      units "frame";
+      default "-1";
+      config false;
+      description
+        "MAC layer control frames sent on the interface.";
+    }
+    leaf mac-pause-frames-egress {
+      type int32;
+      units "frame";
+      default "-1";
+      config false;
+      description
+        "MAC layer Pause frames sent on the interface.";
+    }
+    leaf tagged-frames-egress {
+      type int64;
+      units "frame";
+      default "-1";
+      config false;
+      description
+        "Number of 802.1q tagged frames sent on the interface.";
+    }
+    leaf frames-of-64-byte {
+      type int64;
+      units "frame";
+      default "-1";
+      config false;
+      description
+        "Number of packets (including bad packets) received that were 64 bytes in length (excluding framing bits but including FCS bytes).";
+    }
+    leaf frames-of-65-to-127-byte {
+      type int64;
+      units "frame";
+      default "-1";
+      config false;
+      description
+        "Number of good and bad packets received that were between 65 and 127 bytes in length (excluding framing bits but including FCS bytes).";
+    }
+    leaf frames-of-128-to-255-byte {
+      type int64;
+      units "frame";
+      default "-1";
+      config false;
+      description
+        "Number of good and bad packets received that were between 128 and 255 bytes in length inclusive (excluding framing bits but including FCS bytes).";
+    }
+    leaf frames-of-256-to-511-byte {
+      type int64;
+      units "frame";
+      default "-1";
+      config false;
+      description
+        "Number of good and bad packets received that were between 256 and 511 bytes in length inclusive (excluding framing bits but including FCS bytes).";
+    }
+    leaf frames-of-512-to-1023-byte {
+      type int64;
+      units "frame";
+      default "-1";
+      config false;
+      description
+        "Number of good and bad packets received that were between 512 and 1023 bytes in length inclusive (excluding framing bits but including FCS bytes).";
+    }
+    leaf frames-of-1024-to-1518-byte {
+      type int64;
+      units "frame";
+      default "-1";
+      config false;
+      description
+        "Number of good and bad packets received that were between 1024 and 1518 bytes in length inclusive (excluding framing bits but including FCS bytes).";
+    }
+    description
+      "none";
+  }
+
+  grouping mac-interface-current-performance-type {
+    container performance-data {
+      config false;
+      uses mac-interface-performance-type;
+      description
+        "none";
+    }
+    uses current-performance;
+    description
+      "none";
+  }
+
+  grouping mac-interface-historical-performance-type {
+    container performance-data {
+      config false;
+      uses mac-interface-performance-type;
+      description
+        "none";
+    }
+    uses historical-performance;
+    description
+      "none";
+  }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/pure-ethernet-structure-2-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/pure-ethernet-structure-2-0.yang
new file mode 100644
index 0000000..14d8124
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/pure-ethernet-structure-2-0.yang
@@ -0,0 +1,888 @@
+module pure-ethernet-structure-2-0 {
+  yang-version 1.1;
+  namespace "urn:onf:yang:pure-ethernet-structure-2-0";
+  prefix pure-ethernet-structure;
+
+  import ietf-yang-types {
+    prefix yang;
+  }
+  import core-model-1-4 {
+    prefix core-model;
+  }
+
+  organization
+    "openBackhaul.com proposal to Open Networking Foundation (ONF)";
+  contact
+    "WG Web : https://github.com/openBackhaul/Overview
+     WG List: PureEthernetStructure@openBackhaul.com
+     Editor : Thorsten Heinze
+     Email  : Thorsten.Heinze@openBackhaul.com";
+  description
+    "Technology specific interface definition for a pure Ethernet structure on a physical media
+
+     Copyright 2019 openBackhaul.com
+
+     Licensed under the Apache License, Version 2.0 (the 'License');
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+     http://www.apache.org/licenses/LICENSE-2.0
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an 'AS IS' BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.";
+
+  revision 2020-01-22 {
+    description
+      "Model for the Transport SDN Pilot at Telefonica Germany.
+       Please view https://github.com/openBackhaul/pureEthernetStructure/issues for changes.";
+    reference
+      "https://github.com/openBackhaul/pureEthernetStructure/tree/tsp: Model definition
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+  }
+  revision 2019-11-23 {
+    description
+      "Model for the Transport SDN Pilot at Telefonica Germany.
+       Please view https://github.com/openBackhaul/pureEthernetStructure/issues for changes.";
+    reference
+      "https://github.com/openBackhaul/pureEthernetStructure/tree/tsp: Model definition
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+  }
+  revision 2019-07-08 {
+    description
+      "Model for the Transport SDN Pilot at Telefonica Germany.
+       Please view https://github.com/openBackhaul/pureEthernetStructure/issues for changes.";
+    reference
+      "https://github.com/openBackhaul/pureEthernetStructure/tree/tsp: Model definition
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+  }
+
+  identity LAYER_PROTOCOL_NAME_TYPE_PURE_ETHERNET_STRUCTURE_LAYER {
+    base core-model:LAYER_PROTOCOL_NAME_TYPE;
+    description
+      "none";
+  }
+
+  augment "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol" {
+    when "derived-from-or-self(./core-model:layer-protocol-name, 'pure-ethernet-structure:LAYER_PROTOCOL_NAME_TYPE_PURE_ETHERNET_STRUCTURE_LAYER')";
+    uses pure-ethernet-structure-lp-spec;
+    description
+      "none";
+  }
+
+  /****************************************
+   * package notifications
+   **************************************/ 
+
+  notification object-creation-notification {
+    uses object-creation-notification;
+    description
+      "none";
+  }
+
+  grouping object-creation-notification {
+    leaf counter {
+      type int64;
+      default "-1";
+      config false;
+      description
+        "Counts object creation notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf object-type {
+      type string;
+      default "Type of created object not specified.";
+      config false;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  notification object-deletion-notification {
+    uses object-deletion-notification;
+    description
+      "none";
+  }
+
+  grouping object-deletion-notification {
+    leaf counter {
+      type int64;
+      default "-1";
+      config false;
+      description
+        "Counts object deletion notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  notification attribute-value-changed-notification {
+    uses attribute-value-changed-notification;
+    description
+      "none";
+  }
+
+  grouping attribute-value-changed-notification {
+    leaf counter {
+      type int64;
+      default "-1";
+      config false;
+      description
+        "Counts attribute value changed notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf attribute-name {
+      type string;
+      default "Attribute name not specified.";
+      config false;
+      description
+        "Name of the attribute that has been changed.";
+    }
+    leaf new-value {
+      type string;
+      default "New value not specified.";
+      config false;
+      description
+        "Attribute value converted to a string (xml, json, ...)";
+    }
+    description
+      "none";
+  }
+
+  notification problem-notification {
+    uses problem-notification;
+    description
+      "none";
+  }
+
+  grouping problem-notification {
+    leaf counter {
+      type int64;
+      default "-1";
+      config false;
+      description
+        "Counts problem notifications";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf problem {
+      type string;
+      default "Problem name not specified.";
+      config false;
+      description
+        "Name of the problem according to supportedAlarmList";
+    }
+    leaf severity {
+      type severity-type;
+      default "SEVERITY_TYPE_WARNING";
+      config false;
+      description
+        "Severity of the problem according to problemKindSeverity";
+    }
+    description
+      "none";
+  }
+
+  /****************************************
+   * grouping statements for object classes
+   **************************************/ 
+  /****************************************
+   * package super-classes
+   **************************************/ 
+
+  grouping current-problem {
+    leaf sequence-number {
+      type int16;
+      config false;
+      description
+        "Unique sequence number of the current problem object.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "Time when the alarm was raised.";
+    }
+    leaf problem-severity {
+      type severity-type;
+      default "SEVERITY_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "Severity of the alarm.";
+    }
+    description
+      "none";
+  }
+
+  grouping current-performance {
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "The timestamp associated with when the current data was collected.";
+    }
+    leaf suspect-interval-flag {
+      type boolean;
+      default "false";
+      config false;
+      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.";
+    }
+    leaf elapsed-time {
+      type int64;
+      units "s";
+      default "-1";
+      config false;
+      description
+        "Number of seconds that elapsed since the last reset of the counter.";
+    }
+    leaf scanner-id {
+      type string;
+      default "Scanner ID not defined.";
+      config false;
+      description
+        "none";
+    }
+    leaf granularity-period {
+      type granularity-period-type;
+      config false;
+      description
+        "Time period between reset of the underlying counter.";
+    }
+    description
+      "none";
+  }
+
+  grouping historical-performance {
+    leaf suspect-interval-flag {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "This attribute indicates that the data collected during the interval is suspect.";
+    }
+    leaf history-data-id {
+      type string;
+      default "History Data ID not defined.";
+      config false;
+      description
+        "none";
+    }
+    leaf granularity-period {
+      type granularity-period-type;
+      config false;
+      description
+        "Time period between reset of the underlying counter.";
+    }
+    leaf period-end-time {
+      type yang:date-and-time;
+      config false;
+      description
+        "Time when the counter values have been recorded and the counter reset.";
+    }
+    description
+      "none";
+  }
+
+  grouping pure-ethernet-structure-lp-spec {
+    container pure-ethernet-structure-pac {
+      uses pure-ethernet-structure-pac;
+      description
+        "none";
+    }
+    description
+      "The PureEthernetStructureLpSpec and its attached classes MUST be provided on management interfaces of routers, switches and microwave devices, which are transporting exclusively Ethernet traffic.";
+  }
+
+  grouping pure-ethernet-structure-pac {
+    container pure-ethernet-structure-capability {
+      config false;
+      uses pure-ethernet-structure-capability;
+      description
+        "none";
+    }
+    container pure-ethernet-structure-configuration {
+      uses pure-ethernet-structure-configuration;
+      description
+        "none";
+    }
+    container pure-ethernet-structure-status {
+      config false;
+      uses pure-ethernet-structure-status;
+      description
+        "none";
+    }
+    container pure-ethernet-structure-current-problems {
+      config false;
+      uses pure-ethernet-structure-current-problems;
+      description
+        "none";
+    }
+    container pure-ethernet-structure-current-performance {
+      config false;
+      uses pure-ethernet-structure-current-performance;
+      description
+        "none";
+    }
+    container pure-ethernet-structure-historical-performances {
+      config false;
+      uses pure-ethernet-structure-historical-performances;
+      description
+        "none";
+    }
+    description
+      "The pureEthernetStructure_Pac and its attached classes MUST be provided on management interfaces of microwave devices, which are transporting Ethernet traffic only.";
+  }
+
+  grouping pure-ethernet-structure-capability {
+    leaf-list supported-alarm-list {
+      type string;
+      default "Supported alarms not yet defined.";
+      config false;
+      description
+        "Available alarms to be listed. Mandatory:none. Names are to be separated by commas. Further alarms might be added by the vendor.";
+    }
+    leaf performance-monitoring-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Collection and aggregation of performance values is available.";
+    }
+    description
+      "Describes the logical structuring of the physical capacity provided by a pure Ethernet microwave device. Segmentation is not available. No fixed segment size. No TDM transport.";
+  }
+
+  grouping pure-ethernet-structure-configuration {
+    list problem-kind-severity-list {
+      key "problem-kind-name";
+      uses problem-kind-severity-type;
+      description
+        "Severity of the type of problem to be configured.";
+    }
+    list g-826-threshold-cross-alarm-list {
+      key "g-826-value-kind granularity-period";
+      uses g-826-threshold-cross-alarm-type;
+      description
+        "List of G826 related threshold cross alarms to be configured.";
+    }
+    leaf clearing-threshold-cross-alarms-is-on {
+      type boolean;
+      default "false";
+      description
+        "Setting this bit is clearing all the currently active threshold cross alarms.";
+    }
+    leaf performance-monitoring-is-on {
+      type boolean;
+      default "false";
+      description
+        "Enables measurement, collection, storage and access to performance data.";
+    }
+    description
+      "none";
+  }
+
+  grouping pure-ethernet-structure-status {
+    list segment-status-list {
+      key "segment-status-type-id";
+      config false;
+      min-elements 1;
+      uses segment-status-type;
+      description
+        "Status of the Ethernet transport segment. Always just one segment.";
+    }
+    leaf performance-monitoring-is-up {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Performance values are currently collected and aggregated.";
+    }
+    description
+      "none";
+  }
+
+  grouping pure-ethernet-structure-current-problems {
+    list current-problem-list {
+      key "sequence-number";
+      config false;
+      uses structure-current-problem-type;
+      description
+        "none";
+    }
+    leaf number-of-current-problems {
+      type int8;
+      default "-1";
+      config false;
+      description
+        "Number of alarms, which are currently active on this interface.";
+    }
+    leaf time-of-latest-change {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "Date and time when the list of alarms has been changed for the last time.";
+    }
+    description
+      "none";
+  }
+
+  grouping pure-ethernet-structure-current-performance {
+    list current-performance-data-list {
+      key "granularity-period";
+      config false;
+      min-elements 1;
+      max-elements 2;
+      uses structure-current-performance-type;
+      description
+        "At least values of the counters, which are reset every 15 minutes, are to be provided. If available, the current values of the counters, which are reset every 24 hour, can be provided, too.";
+    }
+    leaf number-of-current-performance-sets {
+      type int8;
+      default "-1";
+      config false;
+      description
+        "Number of sets of current performance values, which are provided in the list.";
+    }
+    description
+      "Aggregated performance information of the structure of an pure Ethernet microwave at a particular moment.";
+  }
+
+  grouping pure-ethernet-structure-historical-performances {
+    list historical-performance-data-list {
+      key "granularity-period period-end-time";
+      config false;
+      uses structure-historical-performance-type;
+      description
+        "none";
+    }
+    leaf number-of-historical-performance-sets {
+      type int16;
+      default "-1";
+      config false;
+      description
+        "Number of sets of historical performance values, which are provided in the list.";
+    }
+    leaf time-of-latest-change {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "Date and time when the list of sets of historical performance values has been changed for the last time (e.g. new one added or existing one deleted).";
+    }
+    description
+      "Aggregated performance information of the structure of an pure Ethernet microwave for a pre-defined measurement interval.";
+  }
+
+  /****************************************
+   * typedef statements
+   **************************************/ 
+
+  typedef g-826-type {
+    type identityref {
+      base G_826_TYPE;
+    }
+    description
+      "none";
+  }
+
+  /*********************************************
+   * grouping statements for complex data types
+   *******************************************/ 
+
+  identity G_826_TYPE {
+    description
+      "none";
+  }
+
+  identity G_826_TYPE_ES {
+    base G_826_TYPE;
+    description
+      "Errored Seconds. Threshold cross alarm will relate to TypeDefinitions::AirInterfacePerformanceType::es .";
+  }
+
+  identity G_826_TYPE_SES {
+    base G_826_TYPE;
+    description
+      "Severely Errored Seconds. Threshold cross alarm will relate to TypeDefinitions::AirInterfacePerformanceType::ses .";
+  }
+
+  identity G_826_TYPE_CSES {
+    base G_826_TYPE;
+    description
+      "Consecutive Severely Errored Seconds. Threshold cross alarm will relate to TypeDefinitions::AirInterfacePerformanceType::cses .";
+  }
+
+  identity G_826_TYPE_UAS {
+    base G_826_TYPE;
+    description
+      "Unavailable Seconds. Threshold cross alarm will relate to TypeDefinitions::AirInterfacePerformanceType::unavailability.";
+  }
+
+  identity G_826_TYPE_NOT_SPECIFIED {
+    base G_826_TYPE;
+    description
+      "none";
+  }
+
+  identity GRANULARITY_PERIOD_TYPE {
+    description
+      "none";
+  }
+
+  identity GRANULARITY_PERIOD_TYPE_UNKNOWN {
+    base GRANULARITY_PERIOD_TYPE;
+    description
+      "none";
+  }
+
+  identity GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN {
+    base GRANULARITY_PERIOD_TYPE;
+    description
+      "none";
+  }
+
+  identity GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS {
+    base GRANULARITY_PERIOD_TYPE;
+    description
+      "none";
+  }
+
+  identity GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED {
+    base GRANULARITY_PERIOD_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE {
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_NON_ALARMED {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_WARNING {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_MINOR {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_MAJOR {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_CRITICAL {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_NOT_YET_DEFINED {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity OPERATIONAL_STATE_TYPE {
+    description
+      "none";
+  }
+
+  identity OPERATIONAL_STATE_TYPE_ENABLED {
+    base OPERATIONAL_STATE_TYPE;
+    description
+      "none";
+  }
+
+  identity OPERATIONAL_STATE_TYPE_DISABLED {
+    base OPERATIONAL_STATE_TYPE;
+    description
+      "none";
+  }
+
+  identity OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED {
+    base OPERATIONAL_STATE_TYPE;
+    description
+      "none";
+  }
+
+  /****************************************
+   * package super-types
+   **************************************/ 
+
+  typedef granularity-period-type {
+    type identityref {
+      base GRANULARITY_PERIOD_TYPE;
+    }
+    description
+      "The enumeration with the options for granularity period of the performance data.";
+  }
+
+  typedef severity-type {
+    type identityref {
+      base SEVERITY_TYPE;
+    }
+    description
+      "According to ITU-T M.3160";
+  }
+
+  typedef operational-state-type {
+    type identityref {
+      base OPERATIONAL_STATE_TYPE;
+    }
+    description
+      "The list of valid operational states for the connection.";
+  }
+
+  grouping problem-kind-severity-type {
+    leaf problem-kind-name {
+      type string;
+      description
+        "Name of the alarm according to supportedAlarmList";
+    }
+    leaf problem-kind-severity {
+      type severity-type;
+      default "SEVERITY_TYPE_NOT_YET_DEFINED";
+      description
+        "Severity of this type of alarm.";
+    }
+    description
+      "none";
+  }
+
+  grouping g-826-threshold-cross-alarm-type {
+    leaf g-826-value-kind {
+      type g-826-type;
+      description
+        "Kind of performance value that shall be equipped with a threshold alarm.";
+    }
+    leaf alarm-raising-threshold {
+      type int32;
+      units "s";
+      default "-1";
+      description
+        "Number of events required for raising the threshold cross alarm.";
+    }
+    leaf alarm-clearing-threshold {
+      type int32;
+      units "s";
+      default "-1";
+      description
+        "Number of events required for clearing the threshold cross alarm.";
+    }
+    leaf granularity-period {
+      type granularity-period-type;
+      description
+        "Period of the performance data collection.";
+    }
+    description
+      "Allows defining a threshold cross alarm.\n";
+  }
+
+  grouping segment-status-type {
+    leaf segment-status-type-id {
+      type int16;
+      config false;
+      description
+        "none";
+    }
+    leaf operational-status {
+      type operational-state-type;
+      default "OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "Current operational status of each segment.";
+    }
+    description
+      "none";
+  }
+
+  grouping structure-current-problem-type {
+    leaf problem-name {
+      type string;
+      default "Problem name not specified.";
+      config false;
+      description
+        "Name of the alarm according to Structure::StructureCapability::supportedAlarms";
+    }
+    uses current-problem;
+    description
+      "none";
+  }
+
+  grouping structure-performance-type {
+    leaf time-period {
+      type int32;
+      units "s";
+      default "-1";
+      config false;
+      description
+        "Total length of the measurement period in seconds.";
+    }
+    leaf es {
+      type int32;
+      units "s";
+      default "-1";
+      config false;
+      description
+        "Number of errored seconds. 1+0: Same value as for single air interface. 1+1 and Diversity: Value representing the combined signals.";
+    }
+    leaf ses {
+      type int32;
+      units "s";
+      default "-1";
+      config false;
+      description
+        "Number of severely errored seconds. 1+0: Same value as for single air interface. 1+1 and Diversity: Value representing the combined signals.";
+    }
+    leaf cses {
+      type int32;
+      units "s";
+      default "-1";
+      config false;
+      description
+        "Number of consecutive severely errored seconds. 1+0: Same value as for single air interface. 1+1 and Diversity: Value representing the combined signals.";
+    }
+    leaf unavailability {
+      type int32;
+      units "s";
+      default "-1";
+      config false;
+      description
+        "Total time of unavailability in seconds. 1+0: Same value as for single air interface. 1+1 and Diversity: Value representing the combined signals.";
+    }
+    leaf rx-level-min {
+      type int8;
+      units "dBm";
+      default "99";
+      config false;
+      description
+        "Minimum receive level. 1+0: Same value as for single air interface. 1+1: Value representing the combined signals. Diversity: To be left on default value.";
+    }
+    leaf rx-level-max {
+      type int8;
+      units "dBm";
+      default "99";
+      config false;
+      description
+        "Maximum receive level. 1+0: Same value as for single air interface. 1+1: Value representing the combined signals. Diversity: To be left on default value.";
+    }
+    leaf rx-level-avg {
+      type int8;
+      units "dBm";
+      default "99";
+      config false;
+      description
+        "Averaged receive level. 1+0: Same value as for single air interface. 1+1: Value representing the combined signals. Diversity: To be left on default value.";
+    }
+    description
+      "Consolidated performance information of the Structure.";
+  }
+
+  grouping structure-current-performance-type {
+    container performance-data {
+      config false;
+      uses structure-performance-type;
+      description
+        "none";
+    }
+    uses current-performance;
+    description
+      "Turns performance information into current performance information by inheriting from OTN_CurrentData.";
+  }
+
+  grouping structure-historical-performance-type {
+    container performance-data {
+      config false;
+      uses structure-performance-type;
+      description
+        "none";
+    }
+    uses historical-performance;
+    description
+      "Turns performance information into historical performance information by inheriting from OTN_HistoryData.";
+  }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/qos-profile-1-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/qos-profile-1-0.yang
new file mode 100644
index 0000000..7dd05d0
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/qos-profile-1-0.yang
@@ -0,0 +1,534 @@
+module qos-profile-1-0 {
+  yang-version 1.1;
+  namespace "urn:onf:yang:qos-profile-1-0";
+  prefix qos-profile;
+
+  import ietf-yang-types {
+    prefix yang;
+  }
+  import core-model-1-4 {
+    prefix core-model;
+  }
+
+  organization
+    "openBackhaul.com proposal to Open Networking Foundation (ONF)";
+  contact
+    "WG Web : https://github.com/openBackhaul/Overview
+     WG List: QosProfile@openBackhaul.com
+     Editor : Thorsten Heinze
+     Email  : Thorsten.Heinze@openBackhaul.com";
+  description
+    "Copyright 2019 openBackhaul.com
+
+     Licensed under the Apache License, Version 2.0 (the 'License');
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+     http://www.apache.org/licenses/LICENSE-2.0
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an 'AS IS' BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.";
+
+  revision 2020-01-24 {
+    description
+      "Model for the Transport SDN Pilot at Telefonica Germany.
+       Please view https://github.com/openBackhaul/qosProfile/issues for changes.";
+    reference
+      "https://github.com/openBackhaul/qosProfile/tree/tsp: Model definition
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+  }
+  revision 2019-07-12 {
+    description
+      "Model for the Transport SDN Pilot at Telefonica Germany.
+       Please view https://github.com/openBackhaul/qosProfile/issues for changes.";
+    reference
+      "https://github.com/openBackhaul/qosProfile/tree/tsp: Model definition
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+  }
+
+  identity PROFILE_NAME_TYPE_QOS_PROFILE {
+    base core-model:PROFILE_NAME_TYPE;
+    description
+      "none";
+  }
+
+  augment "/core-model:control-construct/core-model:profile-collection/core-model:profile" {
+    when "derived-from-or-self(./core-model:profile-name, 'qos-profile:PROFILE_NAME_TYPE_QOS_PROFILE')";
+    uses qos-profile-spec;
+    description
+      "none";
+  }
+
+  /****************************************
+   * package notifications
+   **************************************/ 
+
+  notification object-creation-notification {
+    uses object-creation-notification;
+    description
+      "none";
+  }
+
+  grouping object-creation-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts object creation notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:profile-collection/core-model:profile/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf object-type {
+      type string;
+      default "Type of created object not specified.";
+      config false;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  notification object-deletion-notification {
+    uses object-deletion-notification;
+    description
+      "none";
+  }
+
+  grouping object-deletion-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts object deletion notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:profile-collection/core-model:profile/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  /****************************************
+   * grouping statements for object classes
+   **************************************/ 
+
+  grouping qos-profile-spec {
+    container qos-profile-pac {
+      uses qos-profile-pac;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  grouping qos-profile-pac {
+    container qos-profile-capability {
+      config false;
+      uses qos-profile-capability;
+      description
+        "none";
+    }
+    container qos-profile-configuration {
+      config false;
+      uses qos-profile-configuration;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  grouping qos-profile-capability {
+    leaf profile-naming-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = There is a free text field available for naming the profile.";
+    }
+    leaf-list available-queue-list {
+      type queue-name-type;
+      config false;
+      min-elements 1;
+      max-elements 8;
+      description
+        "List of queues, which are available at the physical interface.";
+    }
+    leaf drop-precedence-at-be-queue-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Configuration of the drop precedence is available at the best effort queue.";
+    }
+    leaf drop-precedence-at-af-queues-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Configuration of the drop precedence is available at the assured forwarding queues.";
+    }
+    leaf drop-precedence-at-prio-queues-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Configuration of the drop precedence is available at the priority queues.";
+    }
+    leaf available-qos-profile-kind-list {
+      type qos-profile-kind-type;
+      default "QOS_PROFILE_KIND_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "List of header information that are supported to be base of the QoS definition.";
+    }
+    description
+      "none";
+  }
+
+  grouping qos-profile-configuration {
+    leaf profile-name {
+      type string;
+      default "Name of profile not yet defined.";
+      description
+        "Identifier of the profile. Could be a name, could be a number. Free text field to be filled by the operator.";
+    }
+    leaf qos-profile-kind {
+      type qos-profile-kind-type;
+      default "QOS_PROFILE_KIND_TYPE_NOT_YET_DEFINED";
+      description
+        "Defines whether the sorting into queues is done based on VLAN, MPLS or IP header information.";
+    }
+    list ingress-8021p-to-per-hop-behavior-mapping-list {
+      key "queue-name drop-precedence-inside-queue";
+      min-elements 8;
+      max-elements 8;
+      uses per-hop-behavior-type;
+      description
+        "Only relevant when qosProfileKind == IEEE8021P. Associates the value of the three p-bits of the VLAN header with a per hop behavior at the physical interface. First entry in the list [0] relates to p-bit value '0'. Last entry in the list [7] relates to p-bit value '7'.";
+    }
+    list ingress-exp-to-per-hop-behavior-mapping-list {
+      key "queue-name drop-precedence-inside-queue";
+      min-elements 8;
+      max-elements 8;
+      uses per-hop-behavior-type;
+      description
+        "Only relevant when qosProfileKind == MPLS_EXP. Associates the value of the three p-bits of the MPLS header with a per hop behavior at the physical interface. First entry in the list [0] relates to p-bit value '0'. Last entry in the list [7] relates to p-bit value '7'.";
+    }
+    list ingress-ip-dscp-to-per-hop-behavior-mapping-list {
+      key "queue-name drop-precedence-inside-queue";
+      min-elements 64;
+      max-elements 64;
+      uses per-hop-behavior-type;
+      description
+        "Only relevant when qosProfileKind == IP_DSCP. Associates the value of the 8 dscp bits of the IP header with a per hop behavior at the physical interface. First entry in the list [0] relates to dscp value '0'. Last entry in the list [63] relates to dscp value '63'.";
+    }
+    leaf writing-per-hop-behavior-into-8021p-is-on {
+      type boolean;
+      default "false";
+      description
+        "1 = Original content of 802.1p bits is overwritten with local per hop behavior.";
+    }
+    list egress-per-hop-behavior-to-8021p-mapping-list {
+      key "mapping-number";
+      max-elements 24;
+      uses egress-per-hop-behavior-to-priority-bits-mapping-type;
+      description
+        "Only relevant if (writingPerHopBehaviorInto8021pIsOn==1). Translates (queue and drop precedence) into values of the three p-bits of the VLAN header.";
+    }
+    leaf writing-per-hop-behavior-into-mpls-exp-is-on {
+      type boolean;
+      default "false";
+      description
+        "1 = Original content of MPLS EXP bits is overwritten with local per hop behavior.";
+    }
+    list egress-per-hop-behavior-to-mpls-exp-mapping-list {
+      key "mapping-number";
+      max-elements 24;
+      uses egress-per-hop-behavior-to-priority-bits-mapping-type;
+      description
+        "Only relevant if (writingPerHopBehaviorIntoMplsExpIsOn==1). Translates (queue and drop precedence) into values of the three p-bits of the MPLS header.";
+    }
+    leaf writing-per-hop-behavior-into-ip-dscp-is-on {
+      type boolean;
+      default "false";
+      description
+        "1 = Original content of IP DSCP bits is overwritten with local per hop behavior.";
+    }
+    list egress-per-hop-behavior-to-ip-dscp-mapping-list {
+      key "mapping-number";
+      max-elements 24;
+      uses egress-per-hop-behavior-to-priority-bits-mapping-type;
+      description
+        "Only relevant if (writingPerHopBehaviorIntoIpDscpIsOn==1). Translates (queue and drop precedence) into values of the six dscp bits of the IP header.";
+    }
+    description
+      "Defines the profile that will be used for mapping between header information and queues (next hop behavior).";
+  }
+
+  /****************************************
+   * typedef statements
+   **************************************/ 
+
+  typedef severity-type {
+    type identityref {
+      base SEVERITY_TYPE;
+    }
+    description
+      "none";
+  }
+
+  typedef qos-profile-kind-type {
+    type identityref {
+      base QOS_PROFILE_KIND_TYPE;
+    }
+    description
+      "none";
+  }
+
+  typedef queue-name-type {
+    type identityref {
+      base QUEUE_NAME_TYPE;
+    }
+    description
+      "none";
+  }
+
+  typedef drop-precedence-type {
+    type identityref {
+      base DROP_PRECEDENCE_TYPE;
+    }
+    description
+      "none";
+  }
+
+  /*********************************************
+   * grouping statements for complex data types
+   *******************************************/ 
+
+  identity SEVERITY_TYPE {
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_NON-ALARMED {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_WARNING {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_MAJOR {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_MINOR {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity QOS_PROFILE_KIND_TYPE {
+    description
+      "none";
+  }
+
+  identity QOS_PROFILE_KIND_TYPE_NONE {
+    base QOS_PROFILE_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity QOS_PROFILE_KIND_TYPE_IEEE8021P {
+    base QOS_PROFILE_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity QOS_PROFILE_KIND_TYPE_MPLS_EXP {
+    base QOS_PROFILE_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity QOS_PROFILE_KIND_TYPE_IP_DSCP {
+    base QOS_PROFILE_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity QOS_PROFILE_KIND_TYPE_NOT_YET_DEFINED {
+    base QOS_PROFILE_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity QUEUE_NAME_TYPE {
+    description
+      "none";
+  }
+
+  identity QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE {
+    base QUEUE_NAME_TYPE;
+    description
+      "Queue 0.";
+  }
+
+  identity QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE1 {
+    base QUEUE_NAME_TYPE;
+    description
+      "Queue 1.";
+  }
+
+  identity QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE2 {
+    base QUEUE_NAME_TYPE;
+    description
+      "Queue 2.";
+  }
+
+  identity QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE3 {
+    base QUEUE_NAME_TYPE;
+    description
+      "Queue 3.";
+  }
+
+  identity QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE4 {
+    base QUEUE_NAME_TYPE;
+    description
+      "Queue 4.";
+  }
+
+  identity QUEUE_NAME_TYPE_EXPEDITED_FORWARDING_QUEUE {
+    base QUEUE_NAME_TYPE;
+    description
+      "Queue 5.";
+  }
+
+  identity QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE6 {
+    base QUEUE_NAME_TYPE;
+    description
+      "Queue 6.";
+  }
+
+  identity QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE7 {
+    base QUEUE_NAME_TYPE;
+    description
+      "Queue 7.";
+  }
+
+  identity QUEUE_NAME_TYPE_NOT_YET_DEFINED {
+    base QUEUE_NAME_TYPE;
+    description
+      "none";
+  }
+
+  identity DROP_PRECEDENCE_TYPE {
+    description
+      "none";
+  }
+
+  identity DROP_PRECEDENCE_TYPE_NONE {
+    base DROP_PRECEDENCE_TYPE;
+    description
+      "none";
+  }
+
+  identity DROP_PRECEDENCE_TYPE_LOW {
+    base DROP_PRECEDENCE_TYPE;
+    description
+      "Would be equal to GREEN.";
+  }
+
+  identity DROP_PRECEDENCE_TYPE_MEDIUM {
+    base DROP_PRECEDENCE_TYPE;
+    description
+      "Would be equal to YELLOW.";
+  }
+
+  identity DROP_PRECEDENCE_TYPE_HIGH {
+    base DROP_PRECEDENCE_TYPE;
+    description
+      "Would be equal to RED.";
+  }
+
+  identity DROP_PRECEDENCE_TYPE_NOT_YET_DEFINED {
+    base DROP_PRECEDENCE_TYPE;
+    description
+      "none";
+  }
+
+  grouping per-hop-behavior-type {
+    leaf queue-name {
+      type queue-name-type;
+      description
+        "Name of the queue.";
+    }
+    leaf drop-precedence-inside-queue {
+      type drop-precedence-type;
+      description
+        "(if dropPrecedenceAt*QueueIsAvail for the referenced queue == 0) default value shall be kept and configuration attempts shall be ignored.";
+    }
+    description
+      "none";
+  }
+
+  grouping egress-per-hop-behavior-to-priority-bits-mapping-type {
+    leaf mapping-number {
+      type int16;
+      description
+        "none";
+    }
+    container per-hop-behavior {
+      uses per-hop-behavior-type;
+      description
+        "Per hop behavior, which is to be translated into a p-bit entry in the VLAN, MPLS or IP header.";
+    }
+    leaf value-of-priority-bits {
+      type int8;
+      default "-1";
+      description
+        "Associated value of the three, three or six p-bits of the VLAN, MPLS or IP header.";
+    }
+    description
+      "none";
+  }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/tdm-container-2-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/tdm-container-2-0.yang
new file mode 100644
index 0000000..efe0637
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/tdm-container-2-0.yang
@@ -0,0 +1,899 @@
+module tdm-container-2-0 {
+  yang-version 1.1;
+  namespace "urn:onf:yang:tdm-container-2-0";
+  prefix tdm-container;
+
+  import ietf-yang-types {
+    prefix yang;
+  }
+  import core-model-1-4 {
+    prefix core-model;
+  }
+
+  organization
+    "openBackhaul.com proposal to Open Networking Foundation (ONF)";
+  contact
+    "WG Web : https://github.com/openBackhaul/Overview
+     WG List: TdmContainer@openBackhaul.com
+     Editor : Thorsten Heinze
+     Email  : Thorsten.Heinze@openBackhaul.com";
+  description
+    "This model is a technology specific amendment to the LayerProtocol class of the ONF Core IM for managing TDM interfaces (e.g. E1, STM-1).
+
+     Copyright 2019 openBackhaul.com
+
+     Licensed under the Apache License, Version 2.0 (the 'License');
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+     http://www.apache.org/licenses/LICENSE-2.0
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an 'AS IS' BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.";
+
+  revision 2020-01-23 {
+    description
+      "Model for the Transport SDN Pilot at Telefonica Germany.
+       Please view https://github.com/openBackhaul/tdmContainer/issues for changes.";
+    reference
+      "https://github.com/openBackhaul/tdmContainer/tree/tsp: Model definition
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+  }
+  revision 2019-11-23 {
+    description
+      "Model for the Transport SDN Pilot at Telefonica Germany.
+       Please view https://github.com/openBackhaul/tdmContainer/issues for changes.";
+    reference
+      "https://github.com/openBackhaul/tdmContainer/tree/tsp: Model definition
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+  }
+  revision 2019-07-05 {
+    description
+      "Model for the Transport SDN Pilot at Telefonica Germany.
+       Please view https://github.com/openBackhaul/tdmContainer/issues for changes.";
+    reference
+      "https://github.com/openBackhaul/tdmContainer/tree/tsp: Model definition
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+  }
+
+  identity LAYER_PROTOCOL_NAME_TYPE_TDM_CONTAINER_LAYER {
+    base core-model:LAYER_PROTOCOL_NAME_TYPE;
+    description
+      "none";
+  }
+
+  augment "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol" {
+    when "derived-from-or-self(./core-model:layer-protocol-name, 'tdm-container:LAYER_PROTOCOL_NAME_TYPE_TDM_CONTAINER_LAYER')";
+    uses tdm-container-lp-spec;
+    description
+      "none";
+  }
+
+  /****************************************
+   * package notifications
+   **************************************/ 
+
+  notification object-creation-notification {
+    uses object-creation-notification;
+    description
+      "none";
+  }
+
+  grouping object-creation-notification {
+    leaf counter {
+      type int64;
+      default "-1";
+      config false;
+      description
+        "Counts object creation notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf object-type {
+      type string;
+      default "Type of created object not specified.";
+      config false;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  notification object-deletion-notification {
+    uses object-deletion-notification;
+    description
+      "none";
+  }
+
+  grouping object-deletion-notification {
+    leaf counter {
+      type int64;
+      default "-1";
+      config false;
+      description
+        "Counts object deletion notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  notification attribute-value-changed-notification {
+    uses attribute-value-changed-notification;
+    description
+      "none";
+  }
+
+  grouping attribute-value-changed-notification {
+    leaf counter {
+      type int64;
+      default "-1";
+      config false;
+      description
+        "Counts attribute value changed notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf attribute-name {
+      type string;
+      default "Attribute name not specified.";
+      config false;
+      description
+        "Name of the attribute that has been changed.";
+    }
+    leaf new-value {
+      type string;
+      default "New value not specified.";
+      config false;
+      description
+        "Attribute value converted to a string (xml, json, ...)";
+    }
+    description
+      "none";
+  }
+
+  notification problem-notification {
+    uses problem-notification;
+    description
+      "none";
+  }
+
+  grouping problem-notification {
+    leaf counter {
+      type int64;
+      default "-1";
+      config false;
+      description
+        "Counts problem notifications";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf problem {
+      type string;
+      default "Problem name not specified.";
+      config false;
+      description
+        "Name of the problem according to supportedAlarmList";
+    }
+    leaf severity {
+      type severity-type;
+      default "SEVERITY_TYPE_WARNING";
+      config false;
+      description
+        "Severity of the problem according to problemKindSeverity";
+    }
+    description
+      "none";
+  }
+
+  /****************************************
+   * grouping statements for object classes
+   **************************************/ 
+  /****************************************
+   * package super-classes
+   **************************************/ 
+
+  grouping current-problem {
+    leaf sequence-number {
+      type int16;
+      config false;
+      description
+        "Unique sequence number of the current problem object.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "Time when the alarm was raised.";
+    }
+    leaf problem-severity {
+      type severity-type;
+      default "SEVERITY_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "Severity of the alarm.";
+    }
+    description
+      "none";
+  }
+
+  grouping current-performance {
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "The timestamp associated with when the current data was collected.";
+    }
+    leaf suspect-interval-flag {
+      type boolean;
+      default "false";
+      config false;
+      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.";
+    }
+    leaf elapsed-time {
+      type int64;
+      units "s";
+      default "-1";
+      config false;
+      description
+        "Number of seconds that elapsed since the last reset of the counter.";
+    }
+    leaf scanner-id {
+      type string;
+      default "Scanner ID not defined.";
+      config false;
+      description
+        "none";
+    }
+    leaf granularity-period {
+      type granularity-period-type;
+      config false;
+      description
+        "Time period between reset of the underlying counter.";
+    }
+    description
+      "none";
+  }
+
+  grouping historical-performance {
+    leaf suspect-interval-flag {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "This attribute indicates that the data collected during the interval is suspect.";
+    }
+    leaf history-data-id {
+      type string;
+      default "History Data ID not defined.";
+      config false;
+      description
+        "none";
+    }
+    leaf granularity-period {
+      type granularity-period-type;
+      config false;
+      description
+        "Time period between reset of the underlying counter.";
+    }
+    leaf period-end-time {
+      type yang:date-and-time;
+      config false;
+      description
+        "Time when the counter values have been recorded and the counter reset.";
+    }
+    description
+      "none";
+  }
+
+  grouping tdm-container-lp-spec {
+    container tdm-container-pac {
+      uses tdm-container-pac;
+      description
+        "none";
+    }
+    description
+      "The TdmContainerLpSpec and its attached classes MUST be provided on management interfaces of microwave devices, which are transporting TDM traffic.";
+  }
+
+  grouping tdm-container-pac {
+    container tdm-container-capability {
+      config false;
+      uses tdm-container-capability;
+      description
+        "none";
+    }
+    container tdm-container-configuration {
+      uses tdm-container-configuration;
+      description
+        "none";
+    }
+    container tdm-container-status {
+      config false;
+      uses tdm-container-status;
+      description
+        "none";
+    }
+    container tdm-container-current-problems {
+      config false;
+      uses tdm-container-current-problems;
+      description
+        "none";
+    }
+    container tdm-container-current-performance {
+      config false;
+      uses tdm-container-current-performance;
+      description
+        "none";
+    }
+    container tdm-container-historical-performances {
+      config false;
+      uses tdm-container-historical-performances;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  grouping tdm-container-capability {
+    list supported-tdm-container-kind-list {
+      key "tdm-container-name";
+      config false;
+      min-elements 1;
+      uses tdm-container-kind;
+      description
+        "Lists the TDM containers that are supported.";
+    }
+    leaf admin-shut-down-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Manual switching on and off of the interface without deleting it (underlying OSI network layers are also not affected) is available.";
+    }
+    leaf-list supported-loop-back-kind-list {
+      type loop-back-type;
+      config false;
+      min-elements 1;
+      max-elements 3;
+      description
+        "List of supported kinds of looping back.";
+    }
+    leaf maintenance-timer-range {
+      type string;
+      default "Range of the maintenance timer not yet defined.";
+      config false;
+      description
+        "Available time periods for maintenance configurations to be described. Concrete values shall be separated by commas (e.g. '10, 60, 360'). Ranges shall be expressed as two values separated by a minus (e.g. '10-360').";
+    }
+    leaf-list supported-alarm-list {
+      type string;
+      config false;
+      min-elements 2;
+      description
+        "Available alarms to be listed. Mandatory:'framingIsFaulty' and 'containerIsDown'. Further alarms might be added by the vendor.";
+    }
+    leaf performance-monitoring-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Collection and aggregation of performance values is available.";
+    }
+    description
+      "none";
+  }
+
+  grouping tdm-container-configuration {
+    leaf interface-name {
+      type string;
+      default "Interface name not yet defined.";
+      description
+        "Description of the interface, could be a name, could be a number. Free text field to be filled by the operator.";
+    }
+    leaf interface-is-on {
+      type boolean;
+      default "false";
+      description
+        "Only relevant if (adminShutDownIsAvail==1). 1 = Activation of the interface. 0 = De-activation of the interface without deleting it (underlying OSI network layers are not affected).";
+    }
+    leaf tdm-container-kind {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol/tdm-container:tdm-container-pac/tdm-container:tdm-container-capability/tdm-container:supported-tdm-container-kind-list/tdm-container:tdm-container-name";
+        require-instance false;
+      }
+      must 'boolean(/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol/tdm-container:tdm-container-pac/tdm-container:tdm-container-capability/tdm-container:supported-tdm-container-kind-list[tdm-container-name=current()])';
+      description
+        "Type of TDM container.";
+    }
+    leaf segment-number {
+      type int16;
+      default "-1";
+      description
+        "Serving TDM structure is identified by LogicalTerminationPoint::_serverLtpRefList (Multiplicity = 1; One segment per TDM container). Serving Segment is identified by segmentID attribute. Type of segment must match type of container.";
+    }
+    leaf loop-back-kind-on {
+      type loop-back-type;
+      default "LOOP_BACK_TYPE_NOT_YET_DEFINED";
+      description
+        "Maintenance Feature. Configuration of a loop back of TDM time slots on this interface.";
+    }
+    leaf maintenance-timer {
+      type int32;
+      units "s";
+      default "-1";
+      description
+        "Time of existence of any maintenance configuration. 0 = maintenance timer is switched off. Valid values are defined in *Capability::maintenanceTimerRange.";
+    }
+    list problem-kind-severity-list {
+      key "problem-kind-name";
+      min-elements 2;
+      uses problem-kind-severity-type;
+      description
+        "Severity of the problem to be configured.";
+    }
+    leaf performance-monitoring-is-on {
+      type boolean;
+      default "false";
+      description
+        "Enables measurement, collection, storage and access to performance data.";
+    }
+    description
+      "none";
+  }
+
+  grouping tdm-container-status {
+    leaf interface-status {
+      type interface-status-type;
+      default "INTERFACE_STATUS_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "Operational status of the interface.";
+    }
+    leaf loop-back-kind-up {
+      type loop-back-type;
+      default "LOOP_BACK_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "The currently active (not just configured) type of loop back.";
+    }
+    leaf statistics-is-up {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Statistics are currently collected and aggregated.";
+    }
+    leaf performance-monitoring-is-up {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Performance values are currently collected and aggregated.";
+    }
+    description
+      "none";
+  }
+
+  grouping tdm-container-current-problems {
+    list current-problem-list {
+      key "sequence-number";
+      config false;
+      uses container-current-problem-type;
+      description
+        "none";
+    }
+    leaf number-of-current-problems {
+      type int8;
+      default "-1";
+      config false;
+      description
+        "Number of alarms, which are currently active on this interface.";
+    }
+    leaf time-of-latest-change {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "Date and time when the list of alarms has been changed for the last time.";
+    }
+    description
+      "none";
+  }
+
+  grouping tdm-container-current-performance {
+    list current-performance-data-list {
+      key "granularity-period";
+      config false;
+      min-elements 1;
+      max-elements 2;
+      uses container-current-performance-type;
+      description
+        "At least values of the counters, which are reset every 15 minutes, are to be provided. If available, the current values of the counters, which are reset every 24 hour, can be provided, too.";
+    }
+    leaf number-of-current-performance-sets {
+      type int8;
+      default "-1";
+      config false;
+      description
+        "Number of sets of current performance values, which are provided in the list.";
+    }
+    description
+      "Aggregated performance information of the TDM container at a particular moment.";
+  }
+
+  grouping tdm-container-historical-performances {
+    list historical-performance-data-list {
+      key "granularity-period period-end-time";
+      config false;
+      uses container-historical-performance-type;
+      description
+        "none";
+    }
+    leaf number-of-historical-performance-sets {
+      type int16;
+      default "-1";
+      config false;
+      description
+        "Number of sets of historical performance values, which are provided in the list.";
+    }
+    leaf time-of-latest-change {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "Date and time when the list of sets of historical performance values has been changed for the last time (e.g. new one added or existing one deleted).";
+    }
+    description
+      "Aggregated performance information of the TDM container for a pre-defined measurement interval.";
+  }
+
+  grouping tdm-container-kind {
+    leaf tdm-container-name {
+      type string;
+      config false;
+      description
+        "Names to be chosen from the following list: 'e1','t1','j1','e3','t3','stm1','cpri1','cpri2','cpri3','cpri4','cpri5','cpri6' or 'cpri7'";
+    }
+    leaf tdm-container-size {
+      type int32;
+      units "kbit/s";
+      default "-1";
+      config false;
+      description
+        "Capacity required for transporting this type of container (in kbit/s). Values to be chosen from the following list: '2048','1544','34000','44736 ','155520','614400','1228800','2457600','3072000','4915200','6144000' or '9830400;";
+    }
+    description
+      "none";
+  }
+
+  /****************************************
+   * typedef statements
+   **************************************/ 
+
+  typedef loop-back-type {
+    type identityref {
+      base LOOP_BACK_TYPE;
+    }
+    description
+      "none";
+  }
+
+  typedef container-performance-type {
+    type string;
+    description
+      "none";
+  }
+
+  /*********************************************
+   * grouping statements for complex data types
+   *******************************************/ 
+
+  identity LOOP_BACK_TYPE {
+    description
+      "none";
+  }
+
+  identity LOOP_BACK_TYPE_NONE {
+    base LOOP_BACK_TYPE;
+    description
+      "none";
+  }
+
+  identity LOOP_BACK_TYPE_BACK_TO_LOCAL {
+    base LOOP_BACK_TYPE;
+    description
+      "Returning the TDM time slots of the local site on the outgoing interface back to the local site.";
+  }
+
+  identity LOOP_BACK_TYPE_BACK_TO_REMOTE {
+    base LOOP_BACK_TYPE;
+    description
+      "Returning the incoming TDM time slots back to the remote site.";
+  }
+
+  identity LOOP_BACK_TYPE_NOT_YET_DEFINED {
+    base LOOP_BACK_TYPE;
+    description
+      "none";
+  }
+
+  identity GRANULARITY_PERIOD_TYPE {
+    description
+      "none";
+  }
+
+  identity GRANULARITY_PERIOD_TYPE_UNKNOWN {
+    base GRANULARITY_PERIOD_TYPE;
+    description
+      "none";
+  }
+
+  identity GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN {
+    base GRANULARITY_PERIOD_TYPE;
+    description
+      "none";
+  }
+
+  identity GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS {
+    base GRANULARITY_PERIOD_TYPE;
+    description
+      "none";
+  }
+
+  identity GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED {
+    base GRANULARITY_PERIOD_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE {
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_NON_ALARMED {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_WARNING {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_MINOR {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_MAJOR {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_CRITICAL {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_NOT_YET_DEFINED {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity INTERFACE_STATUS_TYPE {
+    description
+      "none";
+  }
+
+  identity INTERFACE_STATUS_TYPE_UP {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Ready to pass packets.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_DOWN {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "The interface does not pass any packets.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_TESTING {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "In some test mode.  No operational packets can be passed.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_UNKNOWN {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Status cannot be determined for some reason.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_DORMANT {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Waiting for some external event.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_NOT_PRESENT {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Some component (typically hardware) is missing.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Down due to state of lower-layer interface(s).";
+  }
+
+  identity INTERFACE_STATUS_TYPE_ADMIN_DOWN {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Down due to configuration.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_NOT_YET_DEFINED {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "none";
+  }
+
+  /****************************************
+   * package super-types
+   **************************************/ 
+
+  typedef granularity-period-type {
+    type identityref {
+      base GRANULARITY_PERIOD_TYPE;
+    }
+    description
+      "The enumeration with the options for granularity period of the performance data.";
+  }
+
+  typedef severity-type {
+    type identityref {
+      base SEVERITY_TYPE;
+    }
+    description
+      "According to ITU-T M.3160";
+  }
+
+  typedef interface-status-type {
+    type identityref {
+      base INTERFACE_STATUS_TYPE;
+    }
+    description
+      "Current Interface Status";
+  }
+
+  grouping problem-kind-severity-type {
+    leaf problem-kind-name {
+      type string;
+      description
+        "Name of the alarm according to supportedAlarmList";
+    }
+    leaf problem-kind-severity {
+      type severity-type;
+      default "SEVERITY_TYPE_NOT_YET_DEFINED";
+      description
+        "Severity of this type of alarm.";
+    }
+    description
+      "none";
+  }
+
+  grouping container-current-problem-type {
+    leaf problem-name {
+      type string;
+      default "Problem name not specified.";
+      config false;
+      description
+        "Name of the alarm according to Container::ContainerCapability::supportedAlarms";
+    }
+    uses current-problem;
+    description
+      "none";
+  }
+
+  grouping container-current-performance-type {
+    leaf performance-data {
+      type container-performance-type;
+      config false;
+      description
+        "none";
+    }
+    uses current-performance;
+    description
+      "Turns performance information into current performance information by inheriting from OTN_CurrentData.";
+  }
+
+  grouping container-historical-performance-type {
+    leaf performance-data {
+      type container-performance-type;
+      config false;
+      description
+        "none";
+    }
+    uses historical-performance;
+    description
+      "Turns performance information into historical performance information by inheriting from OTN_HistoryData.";
+  }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/vlan-fc-1-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/vlan-fc-1-0.yang
new file mode 100644
index 0000000..5b6cf7b
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/vlan-fc-1-0.yang
@@ -0,0 +1,523 @@
+module vlan-fc-1-0 {
+  yang-version 1.1;
+  namespace "urn:onf:yang:vlan-fc-1-0";
+  prefix vlan-fc;
+
+  import ietf-yang-types {
+    prefix yang;
+  }
+  import core-model-1-4 {
+    prefix core-model;
+  }
+
+  organization
+    "openBackhaul.com proposal to Open Networking Foundation (ONF)";
+  contact
+    "WG Web : https://github.com/openBackhaul/Overview
+     WG List: VlanFc@openBackhaul.com
+     Editor : Thorsten Heinze
+     Email  : Thorsten.Heinze@openBackhaul.com";
+  description
+    "Technology specific Forwarding Construct for VLANs according to IEEE 802.1Q-2018.
+
+     Copyright 2019 openBackhaul.com
+
+     Licensed under the Apache License, Version 2.0 (the 'License');
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+     http://www.apache.org/licenses/LICENSE-2.0
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an 'AS IS' BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.";
+
+  revision 2020-08-26 {
+    description
+      "Model for the Transport SDN Pilot at Telefonica Germany
+       Please view https://github.com/openBackhaul/vlanFc/issues for changes.";
+    reference
+      "https://github.com/openBackhaul/vlanFc/tree/tsp: Model definition
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+  }
+  revision 2019-08-19 {
+    description
+      "Model for the Transport SDN Pilot at Telefonica Germany.
+       Please view https://github.com/openBackhaul/vlanFd/issues for changes.";
+    reference
+      "https://github.com/openBackhaul/vlanFc/tree/tsp: Model definition
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+  }
+
+  identity LAYER_PROTOCOL_NAME_TYPE_VLAN_LAYER {
+    base core-model:LAYER_PROTOCOL_NAME_TYPE;
+    description
+      "none";
+  }
+
+  augment "/core-model:control-construct/core-model:forwarding-domain/core-model:fc" {
+    when "derived-from-or-self(./core-model:layer-protocol-name, 'vlan-fc:LAYER_PROTOCOL_NAME_TYPE_VLAN_LAYER')";
+    uses vlan-fc-spec;
+    description
+      "none";
+  }
+
+  /****************************************
+   * package notifications
+   **************************************/ 
+
+  notification object-creation-notification {
+    uses object-creation-notification;
+    description
+      "none";
+  }
+
+  grouping object-creation-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts object creation notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:forwarding-domain/core-model:fc/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf object-type {
+      type string;
+      default "Type of created object not specified.";
+      config false;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  notification object-deletion-notification {
+    uses object-deletion-notification;
+    description
+      "none";
+  }
+
+  grouping object-deletion-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts object deletion notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:forwarding-domain/core-model:fc/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  notification attribute-value-changed-notification {
+    uses attribute-value-changed-notification;
+    description
+      "none";
+  }
+
+  grouping attribute-value-changed-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts attribute value changed notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:forwarding-domain/core-model:fc/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf attribute-name {
+      type string;
+      default "Attribute name not specified.";
+      config false;
+      description
+        "Name of the attribute that has been changed.";
+    }
+    leaf new-value {
+      type string;
+      default "New value not specified.";
+      config false;
+      description
+        "Attribute value converted to a string (xml, json, ...)";
+    }
+    description
+      "To be sent when an attribute has changed and one or more controllers have to update their data.";
+  }
+
+  notification problem-notification {
+    uses problem-notification;
+    description
+      "none";
+  }
+
+  grouping problem-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts problem notifications";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:forwarding-domain/core-model:fc/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf problem {
+      type string;
+      default "Problem name not specified.";
+      config false;
+      description
+        "Name of the problem according to *Capability::supportedAlarmList";
+    }
+    leaf severity {
+      type severity-type;
+      default "SEVERITY_TYPE_WARNING";
+      config false;
+      description
+        "Severity of the problem according to VlanFc::VlanFcConfiguration::problemSeverityList";
+    }
+    description
+      "none";
+  }
+
+  /****************************************
+   * grouping statements for object classes
+   **************************************/ 
+  /****************************************
+   * package super-classes
+   **************************************/ 
+
+  grouping current-problem {
+    leaf sequence-number {
+      type int16;
+      config false;
+      description
+        "Unique sequence number of the current problem object.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf problem-severity {
+      type severity-type;
+      default "SEVERITY_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "Severity of the alarm.";
+    }
+    description
+      "none";
+  }
+
+  grouping vlan-fc-spec {
+    container vlan-fc-pac {
+      uses vlan-fc-pac;
+      description
+        "none";
+    }
+    description
+      "Represents the VLAN, which is configured on the C-VLAN or S-VLAN Component. Name in ieee802-dot1q-bridge.yang: vlan.";
+  }
+
+  grouping vlan-fc-pac {
+    container vlan-fc-capability {
+      config false;
+      uses vlan-fc-capability;
+      description
+        "none";
+    }
+    container vlan-fc-configuration {
+      uses vlan-fc-configuration;
+      description
+        "none";
+    }
+    container vlan-fc-current-problems {
+      config false;
+      uses vlan-fc-current-problems;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  grouping vlan-fc-capability {
+    leaf-list supported-sub-layer-protocol-name-list {
+      type sub-layer-protocol-name-type;
+      default "SUB_LAYER_PROTOCOL_NAME_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "Lists the supported kinds of Components (implicitly defines the Ethertypes of the VLAN headers, which can be forwarded).";
+    }
+    leaf admin-shut-down-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "true = Manual switching on and off of the forwarding construct without deleting it (underlying OSI network layers are also not affected) is available.";
+    }
+    leaf-list supported-alarm-list {
+      type string;
+      default "Supported Alarms not yet defined.";
+      config false;
+      description
+        "Available alarms to be listed.";
+    }
+    description
+      "none";
+  }
+
+  grouping vlan-fc-configuration {
+    leaf fc-name {
+      type string;
+      default "Interface name not yet defined.";
+      description
+        "Description of the VLAN, could be a name, could be a number. Free text of up to 32 letters to be filled by the operator. Name in ieee802-dot1q-bridge.yang: name.";
+    }
+    leaf fc-is-on {
+      type boolean;
+      default "false";
+      description
+        "Only effective if (adminShutDownIsAvail==true). true = Activation of the forwarding of frames with this VLAN ID. false = De-activation of the ForwardingConstruct without deleting it (underlying OSI network layers are not affected).";
+    }
+    leaf sub-layer-protocol-name {
+      type sub-layer-protocol-name-type;
+      default "SUB_LAYER_PROTOCOL_NAME_TYPE_NOT_YET_DEFINED";
+      description
+        "Type of VLAN (e.g. C-VLAN, S-VLAN), respectively Ethertype, which is forwarded.";
+    }
+    leaf vlan-id {
+      type int64;
+      default "-1";
+      description
+        "The VLAN ID, which identifies the frames to be forwarded. Range '1..4094 | 4096..4294967295'. Name in ieee802-dot1q-bridge.yang: vid.";
+    }
+    list problem-kind-severity-list {
+      key "problem-kind-name";
+      uses problem-kind-severity-type;
+      description
+        "Severity of the problem to be configured.";
+    }
+    description
+      "none";
+  }
+
+  grouping vlan-fc-current-problems {
+    list current-problem-list {
+      key "sequence-number";
+      config false;
+      uses vlan-fc-current-problem-type;
+      description
+        "none";
+    }
+    leaf number-of-current-problems {
+      type int8;
+      default "-1";
+      config false;
+      description
+        "Number of alarms, which are currently active on this interface.";
+    }
+    leaf time-of-latest-change {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "Date and time when the list of alarms has been changed for the last time.";
+    }
+    description
+      "none";
+  }
+
+  /****************************************
+   * typedef statements
+   **************************************/ 
+
+  typedef sub-layer-protocol-name-type {
+    type identityref {
+      base SUB_LAYER_PROTOCOL_NAME_TYPE;
+    }
+    description
+      "Represents the type of Component. Name in ieee802-dot1q-bridge.yang: type-of-component.";
+  }
+
+  /*********************************************
+   * grouping statements for complex data types
+   *******************************************/ 
+
+  identity SUB_LAYER_PROTOCOL_NAME_TYPE {
+    description
+      "none";
+  }
+
+  identity SUB_LAYER_PROTOCOL_NAME_TYPE_C_VLAN_COMPONENT {
+    base SUB_LAYER_PROTOCOL_NAME_TYPE;
+    description
+      "Base identity for a C-VLAN component. Name in ieee802-dot1q-bridge.yang: c-vlan-component.";
+  }
+
+  identity SUB_LAYER_PROTOCOL_NAME_TYPE_S_VLAN_COMPONENT {
+    base SUB_LAYER_PROTOCOL_NAME_TYPE;
+    description
+      "Base identity for a S-VLAN component. Name in ieee802-dot1q-bridge.yang: s-vlan-component.";
+  }
+
+  identity SUB_LAYER_PROTOCOL_NAME_TYPE_D_BRIDGE_COMPONENT {
+    base SUB_LAYER_PROTOCOL_NAME_TYPE;
+    description
+      "Base identity for a VLAN unaware component. Name in ieee802-dot1q-bridge.yang: d-bridge-component.";
+  }
+
+  identity SUB_LAYER_PROTOCOL_NAME_TYPE_EDGE_RELAY_COMPONENT {
+    base SUB_LAYER_PROTOCOL_NAME_TYPE;
+    description
+      "Base identity for an EVB station ER component. Name in ieee802-dot1q-bridge.yang: edge-relay-component. ";
+  }
+
+  identity SUB_LAYER_PROTOCOL_NAME_TYPE_NOT_YET_DEFINED {
+    base SUB_LAYER_PROTOCOL_NAME_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE {
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_NON_ALARMED {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_WARNING {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_MINOR {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_MAJOR {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_CRITICAL {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_NOT_YET_DEFINED {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  /****************************************
+   * package super-types
+   **************************************/ 
+
+  typedef severity-type {
+    type identityref {
+      base SEVERITY_TYPE;
+    }
+    description
+      "According to ITU-T M.3160";
+  }
+
+  grouping problem-kind-severity-type {
+    leaf problem-kind-name {
+      type string;
+      description
+        "Name of the alarm according to supportedAlarmList";
+    }
+    leaf problem-kind-severity {
+      type severity-type;
+      default "SEVERITY_TYPE_NOT_YET_DEFINED";
+      description
+        "Severity of this type of alarm.";
+    }
+    description
+      "none";
+  }
+
+  grouping vlan-fc-current-problem-type {
+    leaf problem-name {
+      type string;
+      default "Problem name not specified.";
+      config false;
+      description
+        "Name of the alarm according to VlanFc::VlanFcCapability::supportedAlarmList.";
+    }
+    uses current-problem;
+    description
+      "none";
+  }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/vlan-fd-1-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/vlan-fd-1-0.yang
new file mode 100644
index 0000000..b3d67ee
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/vlan-fd-1-0.yang
@@ -0,0 +1,836 @@
+module vlan-fd-1-0 {
+  yang-version 1.1;
+  namespace "urn:onf:yang:vlan-fd-1-0";
+  prefix vlan-fd;
+
+  import ietf-yang-types {
+    prefix yang;
+  }
+  import core-model-1-4 {
+    prefix core-model;
+  }
+  import vlan-interface-1-0 {
+    prefix vlan-interface;
+  }
+
+  organization
+    "openBackhaul.com proposal to Open Networking Foundation (ONF)";
+  contact
+    "WG Web : https://github.com/openBackhaul/Overview
+     WG List: VlanFd@openBackhaul.com
+     Editor : Thorsten Heinze
+     Email  : Thorsten.Heinze@openBackhaul.com";
+  description
+    "Technology specific Forwarding Domain for VLAN Components according to IEEE 802.1Q-2018.
+
+     Copyright 2019 openBackhaul.com
+
+     Licensed under the Apache License, Version 2.0 (the 'License');
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+     http://www.apache.org/licenses/LICENSE-2.0
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an 'AS IS' BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.";
+
+  revision 2020-08-26 {
+    description
+      "Model for the Transport SDN Pilot at Telefonica Germany.
+       Please view https://github.com/openBackhaul/vlanFd/issues for changes.";
+    reference
+      "https://github.com/openBackhaul/vlanFd/tree/tsp: Model definition
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+  }
+  revision 2019-08-19 {
+    description
+      "Model for the Transport SDN Pilot at Telefonica Germany.
+       Please view https://github.com/openBackhaul/vlanFd/issues for changes.";
+    reference
+      "https://github.com/openBackhaul/vlanFd/tree/tsp: Model definition
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+  }
+
+  identity LAYER_PROTOCOL_NAME_TYPE_VLAN_LAYER {
+    base core-model:LAYER_PROTOCOL_NAME_TYPE;
+    description
+      "none";
+  }
+
+  augment "/core-model:control-construct/core-model:forwarding-domain" {
+    when "derived-from-or-self(./core-model:layer-protocol-name, 'vlan-interface:LAYER_PROTOCOL_NAME_TYPE_VLAN_LAYER')";
+    uses vlan-fd-spec;
+    description
+      "none";
+  }
+
+  /****************************************
+   * package notifications
+   **************************************/ 
+
+  notification object-creation-notification {
+    uses object-creation-notification;
+    description
+      "none";
+  }
+
+  grouping object-creation-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts object creation notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:forwarding-domain/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf object-type {
+      type string;
+      default "Type of created object not specified.";
+      config false;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  notification object-deletion-notification {
+    uses object-deletion-notification;
+    description
+      "none";
+  }
+
+  grouping object-deletion-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts object deletion notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:forwarding-domain/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  notification attribute-value-changed-notification {
+    uses attribute-value-changed-notification;
+    description
+      "none";
+  }
+
+  grouping attribute-value-changed-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts attribute value changed notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:forwarding-domain/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf attribute-name {
+      type string;
+      default "Attribute name not specified.";
+      config false;
+      description
+        "Name of the attribute that has been changed.";
+    }
+    leaf new-value {
+      type string;
+      default "New value not specified.";
+      config false;
+      description
+        "Attribute value converted to a string (xml, json, ...)";
+    }
+    description
+      "To be sent when an attribute has changed and one or more controllers have to update their data.";
+  }
+
+  notification problem-notification {
+    uses problem-notification;
+    description
+      "none";
+  }
+
+  grouping problem-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts problem notifications";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:forwarding-domain/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf problem {
+      type string;
+      default "Problem name not specified.";
+      config false;
+      description
+        "Name of the problem according to *Capability::supportedAlarmList";
+    }
+    leaf severity {
+      type severity-type;
+      default "SEVERITY_TYPE_WARNING";
+      config false;
+      description
+        "Severity of the problem according to *Configuration::problemSeverityList";
+    }
+    description
+      "none";
+  }
+
+  /****************************************
+   * grouping statements for object classes
+   **************************************/ 
+  /****************************************
+   * package super-classes
+   **************************************/ 
+
+  grouping current-problem {
+    leaf sequence-number {
+      type int16;
+      config false;
+      description
+        "Unique sequence number of the current problem object.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf problem-severity {
+      type severity-type;
+      default "SEVERITY_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "Severity of the alarm.";
+    }
+    description
+      "none";
+  }
+
+  grouping vlan-fd-spec {
+    container vlan-fd-pac {
+      uses vlan-fd-pac;
+      description
+        "none";
+    }
+    description
+      "The set of components associated with a given Bridge. For example, - A TPMR is associated with a single VLAN unaware component. - A Customer VLAN Bridge is associated with a single VLAN aware component. - A Provider Bridge is associated with a single S-VLAN component and zero or more C-VLAN components. Name in ieee802-dot1q-bridge.yang: component.";
+  }
+
+  grouping vlan-fd-pac {
+    container vlan-fd-capability {
+      config false;
+      uses vlan-fd-capability;
+      description
+        "none";
+    }
+    container vlan-fd-configuration {
+      uses vlan-fd-configuration;
+      description
+        "none";
+    }
+    container vlan-fd-status {
+      config false;
+      uses vlan-fd-status;
+      description
+        "none";
+    }
+    container vlan-fd-current-problems {
+      config false;
+      uses vlan-fd-current-problems;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  grouping vlan-fd-capability {
+    leaf-list supported-sub-layer-protocol-name-list {
+      type sub-layer-protocol-name-type;
+      default "SUB_LAYER_PROTOCOL_NAME_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "Lists the supported kinds of Components. ";
+    }
+    leaf component-id {
+      type int32;
+      config false;
+      description
+        "Unique identifier for a particular Bridge component within the system. Name in ieee802-dot1q-bridge.yang: id.";
+    }
+    leaf extended-filtering-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "true = Component can perform filtering on individual multicast addresses controlled by MMRP (Multiple MAC Registration Protocol). Name in ieee802-dot1q-bridge.yang: extended-filtering.";
+    }
+    leaf traffic-classes-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "true = Component can map the Priority values into multiple traffic classes (there is more than one traffic class at the device). Name in ieee802-dot1q-bridge.yang: traffic-classes.";
+    }
+    leaf static-entries-on-individual-ports-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "true = Static entries per port are available. Name in ieee802-dot1q-bridge.yang: static-entry-individual-port.";
+    }
+    leaf independent-vlan-learning-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "true = Component supports Independent VLAN Learning (IVL). Name in ieee802-dot1q-bridge.yang: ivl-capable.";
+    }
+    leaf shared-vlan-learning-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "true = Component supports Shared VLAN Learning (SVL). Name in ieee802-dot1q-bridge.yang: svl-capable.";
+    }
+    leaf hybrid-vlan-learning-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "true = Component supports both Independent and Shared VLAN Learning simultaneously. Name in ieee802-dot1q-bridge.yang: hybrid-capable.";
+    }
+    leaf configurable-port-vlan-id-tagging-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "true = Component supports setting the egress status (VLAN-tagged or Untagged) on each port. Name in ieee802-dot1q-bridge.yang: configurable-pvid-tagging.";
+    }
+    leaf multiple-local-bridges-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "true = Can support multiple local Bridges, outside the scope of 802.1Q defined VLANs. Name in ieee802-dot1q-bridge.yang: local-vlan-capable.";
+    }
+    leaf supported-version {
+      type int16;
+      default "-1";
+      config false;
+      description
+        "The version number supported. Name in ieee802-dot1q-bridge.yang: version.";
+    }
+    leaf maximum-number-of-vlan-ids {
+      type int16;
+      default "-1";
+      config false;
+      description
+        "The maximum number of VLAN IDs supported. Name in ieee802-dot1q-bridge.yang: max-vids.";
+    }
+    leaf overriding-default-port-vlan-id-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "true = Component supports overridding the default PVID on each port. Name in ieee802-dot1q-bridge.yang: override-default-pvid.";
+    }
+    leaf protocol-frame-format {
+      type protocol-frame-format-type;
+      config false;
+      description
+        "Only effective if (portAndProtocolBasedVlanIsAvail==true). The data-link encapsulation format or the detagged_frame_type in a Protocol Template. Name in ieee802-dot1q-bridge.yang: protocol-template.";
+    }
+    leaf maximum-number-of-msti {
+      type int16;
+      default "-1";
+      config false;
+      description
+        "Maximum number of Multiple Spanning Tree Instances (MSTIs) supported within an MST region (i.e., the number of spanning tree instances that can be supported in addition to the CIST), for MST Bridges. For SST Bridges, this parameter may be either omitted or reported as 0.  Name in ieee802-dot1q-bridge.yang: max-msti.";
+    }
+    leaf admin-shut-down-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "true = Manual switching on and off of the forwarding domain without deleting it (underlying OSI network layers are also not affected) is available.";
+    }
+    leaf maintenance-timer-range {
+      type string;
+      default "Range of the maintenance timer not yet defined.";
+      config false;
+      description
+        "Available time periods for maintenance configurations to be described. Concrete values shall be separated by commas (e.g. '10, 60, 360'). Ranges shall be expressed as two values separated by a minus (e.g. '10-360').";
+    }
+    leaf-list supported-alarm-list {
+      type string;
+      default "Supported Alarms Not Yet Defined";
+      config false;
+      description
+        "Available alarms to be listed.";
+    }
+    description
+      "none";
+  }
+
+  grouping vlan-fd-configuration {
+    leaf fd-name {
+      type string;
+      default "Forwarding Domain name not yet defined.";
+      description
+        "The name of the Component. Free text field to be filled by the operator. Name in ieee802-dot1q-bridge.yang: name.";
+    }
+    leaf fd-is-on {
+      type boolean;
+      default "false";
+      description
+        "Only effective if (adminShutDownIsAvail==true). true = Activation of the Component. false = De-activation of the forwarding domain without deleting it (underlying OSI network layers are not affected).";
+    }
+    leaf sub-layer-protocol-name {
+      type sub-layer-protocol-name-type;
+      default "SUB_LAYER_PROTOCOL_NAME_TYPE_NOT_YET_DEFINED";
+      description
+        "The type of Component used to classify a particular Bridge component within a Bridge system comprising multiple components. Name in ieee802-dot1q-bridge.yang: type.\n";
+    }
+    leaf mac-address {
+      type string;
+      default "00:00:00:00:00:00";
+      description
+        "Unique EUI-48 Universally Administered MAC address configured on a Bridge Component. Name in ieee802-dot1q-bridge.yang: address.";
+    }
+    leaf traffic-classes-is-on {
+      type boolean;
+      default "false";
+      description
+        "Only effective if (trafficClassesIsAvail==true). true = Traffic Classes are enabled on this Bridge Component. false = Bridge Component operates with a single priority level for all traffic. Name in ieee802-dot1q-bridge.yang: traffic-class-enabled.";
+    }
+    list protocol-group-list {
+      key "db-index";
+      uses protocol-group-type;
+      description
+        "Only effective if (portAndProtocolBasedVlanIsAvail==true). List of the protocol group database entries. Name in ieee802-dot1q-bridge.yang: protocol-group-database.";
+    }
+    leaf maintenance-timer {
+      type int32;
+      units "s";
+      default "-1";
+      description
+        "Time of existence of any maintenance configuration. 0 = maintenance timer is switched off. Valid values are defined in *Capability::maintenanceTimerRange.";
+    }
+    list problem-kind-severity-list {
+      key "problem-kind-name";
+      uses problem-kind-severity-type;
+      description
+        "Severity of each entry of the SupportedAlarmList to be configured.";
+    }
+    description
+      "none";
+  }
+
+  grouping vlan-fd-status {
+    leaf mac-address-cur {
+      type string;
+      default "00:00:00:00:00:00";
+      config false;
+      description
+        "Unique EUI-48 Universally Administered MAC address assigned to a Bridge Component. Name in ieee802-dot1q-bridge.yang: address.";
+    }
+    leaf number-of-ports-cur {
+      type int16;
+      default "-1";
+      config false;
+      description
+        "Number of Bridge Ports associated with the Bridge Component. Values between 1 and 4095. Name in ieee802-dot1q-bridge.yang: ports.";
+    }
+    leaf number-of-static-vlan-registrations-cur {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "The number of Static VLAN Registration entries currently in the FDB. Name in ieee802-dot1q-bridge.yang: static-vlan-registration-entries.";
+    }
+    leaf number-of-dynamic-vlan-registrations-cur {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "The number of Dynamic VLAN Registration entries currently in the FDB. Name in ieee802-dot1q-bridge.yang: static-vlan-registration-entries.";
+    }
+    leaf fd-status {
+      type fd-status-type;
+      default "FD_STATUS_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "Operational status of the forwarding domain.";
+    }
+    description
+      "none";
+  }
+
+  grouping vlan-fd-current-problems {
+    list current-problem-list {
+      key "sequence-number";
+      config false;
+      uses vlan-fd-current-problem-type;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  /****************************************
+   * typedef statements
+   **************************************/ 
+
+  typedef sub-layer-protocol-name-type {
+    type identityref {
+      base SUB_LAYER_PROTOCOL_NAME_TYPE;
+    }
+    description
+      "Represents the type of Component. Name in ieee802-dot1q-bridge.yang: type-of-component.";
+  }
+
+  typedef protocol-frame-format-type {
+    type identityref {
+      base PROTOCOL_FRAME_FORMAT_TYPE;
+    }
+    description
+      "A value representing the frame format to be matched. Name in ieee802-dot1q-bridge.yang: protocol-frame-format-type.";
+  }
+
+  /*********************************************
+   * grouping statements for complex data types
+   *******************************************/ 
+
+  identity SUB_LAYER_PROTOCOL_NAME_TYPE {
+    description
+      "none";
+  }
+
+  identity SUB_LAYER_PROTOCOL_NAME_TYPE_C_VLAN_COMPONENT {
+    base SUB_LAYER_PROTOCOL_NAME_TYPE;
+    description
+      "c-vlan-component. Base identity for a C-VLAN component. Name in ieee802-dot1q-bridge.yang: c-vlan-component.";
+  }
+
+  identity SUB_LAYER_PROTOCOL_NAME_TYPE_S_VLAN_COMPONENT {
+    base SUB_LAYER_PROTOCOL_NAME_TYPE;
+    description
+      "s-vlan-component. Base identity for a S-VLAN component. Name in ieee802-dot1q-bridge.yang: s-vlan-component.";
+  }
+
+  identity SUB_LAYER_PROTOCOL_NAME_TYPE_D_BRIDGE_COMPONENT {
+    base SUB_LAYER_PROTOCOL_NAME_TYPE;
+    description
+      "d-bridge-component. Base identity for a VLAN unaware component. Name in ieee802-dot1q-bridge.yang: d-bridge-component.";
+  }
+
+  identity SUB_LAYER_PROTOCOL_NAME_TYPE_EDGE_RELAY_COMPONENT {
+    base SUB_LAYER_PROTOCOL_NAME_TYPE;
+    description
+      "edge-relay-component. Base identity for an EVB station ER component. Name in ieee802-dot1q-bridge.yang: edge-relay-component. ";
+  }
+
+  identity SUB_LAYER_PROTOCOL_NAME_TYPE_NOT_YET_DEFINED {
+    base SUB_LAYER_PROTOCOL_NAME_TYPE;
+    description
+      "none";
+  }
+
+  identity PROTOCOL_FRAME_FORMAT_TYPE {
+    description
+      "none";
+  }
+
+  identity PROTOCOL_FRAME_FORMAT_TYPE_ETHERNET {
+    base PROTOCOL_FRAME_FORMAT_TYPE;
+    description
+      "Ethernet frame format. Name in ieee802-dot1q-bridge.yang: Ethernet.";
+  }
+
+  identity PROTOCOL_FRAME_FORMAT_TYPE_RFC1042 {
+    base PROTOCOL_FRAME_FORMAT_TYPE;
+    description
+      "RFC 1042 frame format. Name in ieee802-dot1q-bridge.yang: rfc1042.";
+  }
+
+  identity PROTOCOL_FRAME_FORMAT_TYPE_SNAP8021H_ {
+    base PROTOCOL_FRAME_FORMAT_TYPE;
+    description
+      "SNAP 802.1H frame format. Name in ieee802-dot1q-bridge.yang: snap8021H.";
+  }
+
+  identity PROTOCOL_FRAME_FORMAT_TYPE_SNAP_OTHER {
+    base PROTOCOL_FRAME_FORMAT_TYPE;
+    description
+      "Other SNAP frame format. Name in ieee802-dot1q-bridge.yang: snapOther.";
+  }
+
+  identity PROTOCOL_FRAME_FORMAT_TYPE_LLC_OTHER {
+    base PROTOCOL_FRAME_FORMAT_TYPE;
+    description
+      "Other LLC frame format. Name in ieee802-dot1q-bridge.yang: llcOther.";
+  }
+
+  identity PROTOCOL_FRAME_FORMAT_TYPE_NOT_YET_DEFINED {
+    base PROTOCOL_FRAME_FORMAT_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE {
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_NON_ALARMED {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_WARNING {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_MINOR {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_MAJOR {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_CRITICAL {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_NOT_YET_DEFINED {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity FD_STATUS_TYPE {
+    description
+      "none";
+  }
+
+  identity FD_STATUS_TYPE_UP {
+    base FD_STATUS_TYPE;
+    description
+      "Ready to pass packets.";
+  }
+
+  identity FD_STATUS_TYPE_DOWN {
+    base FD_STATUS_TYPE;
+    description
+      "The interface does not pass any packets.";
+  }
+
+  identity FD_STATUS_TYPE_TESTING {
+    base FD_STATUS_TYPE;
+    description
+      "In some test mode.  No operational packets can be passed.";
+  }
+
+  identity FD_STATUS_TYPE_UNKNOWN {
+    base FD_STATUS_TYPE;
+    description
+      "Status cannot be determined for some reason.";
+  }
+
+  identity FD_STATUS_TYPE_DORMANT {
+    base FD_STATUS_TYPE;
+    description
+      "Waiting for some external event.";
+  }
+
+  identity FD_STATUS_TYPE_NOT_PRESENT {
+    base FD_STATUS_TYPE;
+    description
+      "Some component (typically hardware) is missing.";
+  }
+
+  identity FD_STATUS_TYPE_LOWER_LAYER_DOWN {
+    base FD_STATUS_TYPE;
+    description
+      "Down due to state of lower-layer interface(s).";
+  }
+
+  identity FD_STATUS_TYPE_ADMIN_DOWN {
+    base FD_STATUS_TYPE;
+    description
+      "Down due to configuration.";
+  }
+
+  identity FD_STATUS_TYPE_NOT_YET_DEFINED {
+    base FD_STATUS_TYPE;
+    description
+      "none";
+  }
+
+  /****************************************
+   * package super-types
+   **************************************/ 
+
+  typedef severity-type {
+    type identityref {
+      base SEVERITY_TYPE;
+    }
+    description
+      "none";
+  }
+
+  typedef fd-status-type {
+    type identityref {
+      base FD_STATUS_TYPE;
+    }
+    description
+      "Current Status of the Forwarding Domain";
+  }
+
+  grouping problem-kind-severity-type {
+    leaf problem-kind-name {
+      type string;
+      description
+        "Name of the alarm according to SupportedAlarmList";
+    }
+    leaf problem-kind-severity {
+      type severity-type;
+      default "SEVERITY_TYPE_NOT_YET_DEFINED";
+      description
+        "Severity of this type of alarm.";
+    }
+    description
+      "none";
+  }
+
+  grouping protocol-group-type {
+    leaf db-index {
+      type uint16;
+      description
+        "The protocol group database index. Name in ieee802-dot1q-bridge.yang: db-index.";
+    }
+    leaf protocol-group-id {
+      type int32;
+      default "-1";
+      description
+        "Designates a group of protocols in the Protocol Group Database. Name in ieee802-dot1q-bridge.yang: group-id.";
+    }
+    leaf protocol-frame-format {
+      type protocol-frame-format-type;
+      default "PROTOCOL_FRAME_FORMAT_TYPE_NOT_YET_DEFINED";
+      description
+        "The data-link encapsulation format or the detagged_frame_type in a Protocol Template. Name in ieee802-dot1q-bridge.yang: frame-format-type.";
+    }
+    leaf ethertype {
+      type string;
+      default "Ethertype not yet defined.";
+      description
+        "ethertype. Only relevant if (protocolFrameFormat==ETHERNET) OR (protocolFrameFormat==RFC1042) OR (protocolFrameFormat==SNAP8021H). Format containing the 16-bit IEEE 802 EtherType field. The EtherType value represented in the canonical order defined by IEEE 802. The canonical representation is using uppercase characters. Pattern '[0-9a-fA-F]{2}-[0-9a-fA-F]{2}'. Name in ieee802-dot1q-bridge.yang: ethertype.";
+    }
+    leaf protocol-id {
+      type string;
+      default "Protocol ID not yet defined.";
+      description
+        "Only effective if (protocolFrameFormat==SNAP_OTHER). Format containing the 40-bit protocol identifier (PID). The canonical representation is using uppercase characters. Pattern '[0-9a-fA-F]{2}(-[0-9a-fA-F]{2}){4}'. Name in ieee802-dot1q-bridge.yang: protocol-id.";
+    }
+    leaf-list llc-address {
+      type string;
+      default "LLC Address not yet defined.";
+      description
+        "Only effective if (protocolFrameFormat==LLC_OTHER). A pair of ISO/IEC 8802-2 DSAP and SSAP address field values, for matching frame formats of LLC_Other. The canonical representation is using uppercase characters. Pattern '[0-9a-fA-F]{2}-[0-9a-fA-F]{2}'. Name in ieee802-dot1q-bridge.yang: llc-address.";
+    }
+    description
+      "none";
+  }
+
+  grouping vlan-fd-current-problem-type {
+    leaf problem-name {
+      type string;
+      default "Problem name not specified.";
+      config false;
+      description
+        "Name of the alarm according to SupportedAlarmList";
+    }
+    uses current-problem;
+    description
+      "none";
+  }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/vlan-interface-1-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/vlan-interface-1-0.yang
new file mode 100644
index 0000000..48b292e
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/vlan-interface-1-0.yang
@@ -0,0 +1,1069 @@
+module vlan-interface-1-0 {
+  yang-version 1.1;
+  namespace "urn:onf:yang:vlan-interface-1-0";
+  prefix vlan-interface;
+
+  import ietf-yang-types {
+    prefix yang;
+  }
+  import core-model-1-4 {
+    prefix core-model;
+  }
+
+  organization
+    "openBackhaul.com proposal to Open Networking Foundation (ONF)";
+  contact
+    "WG Web : https://github.com/openBackhaul/Overview
+     WG List: VlanInterface@openBackhaul.com
+     Editor : Thorsten Heinze
+     Email  : Thorsten.Heinze@openBackhaul.com";
+  description
+    "Technology specific interface definition for VLAN interfaces according to IEEE 802.1Q-2018.
+
+     Copyright 2019 openBackhaul.com
+
+     Licensed under the Apache License, Version 2.0 (the 'License');
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+     http://www.apache.org/licenses/LICENSE-2.0
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an 'AS IS' BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.";
+
+  revision 2021-01-04 {
+    description
+      "Model for the Transport SDN Pilot at Telefonica Germany.
+       Please view https://github.com/openBackhaul/vlaninterface/issues for changes.";
+    reference
+      "https://github.com/openBackhaul/vlaninterface/tree/tsp: Model definition
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+  }
+  revision 2020-09-03 {
+    description
+      "Model for the Transport SDN Pilot at Telefonica Germany.
+       Please view https://github.com/openBackhaul/vlaninterface/issues for changes.";
+    reference
+      "https://github.com/openBackhaul/vlaninterface/tree/tsp: Model definition
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+  }
+
+  identity LAYER_PROTOCOL_NAME_TYPE_VLAN_LAYER {
+    base core-model:LAYER_PROTOCOL_NAME_TYPE;
+    description
+      "none";
+  }
+
+  augment "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol" {
+    when "derived-from-or-self(./core-model:layer-protocol-name, 'vlan-interface:LAYER_PROTOCOL_NAME_TYPE_VLAN_LAYER')";
+    uses vlan-interface-lp-spec;
+    description
+      "none";
+  }
+
+  /****************************************
+   * package notifications
+   **************************************/ 
+
+  notification object-creation-notification {
+    uses object-creation-notification;
+    description
+      "none";
+  }
+
+  grouping object-creation-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts object creation notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf object-type {
+      type string;
+      default "Type of created object not specified.";
+      config false;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  notification object-deletion-notification {
+    uses object-deletion-notification;
+    description
+      "none";
+  }
+
+  grouping object-deletion-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts object deletion notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  notification attribute-value-changed-notification {
+    uses attribute-value-changed-notification;
+    description
+      "none";
+  }
+
+  grouping attribute-value-changed-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts attribute value changed notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf attribute-name {
+      type string;
+      default "Attribute name not specified.";
+      config false;
+      description
+        "Name of the attribute that has been changed.";
+    }
+    leaf new-value {
+      type string;
+      default "New value not specified.";
+      config false;
+      description
+        "Attribute value converted to a string (xml, json, ...)";
+    }
+    description
+      "To be sent when an attribute has changed and one or more controllers have to update their data.";
+  }
+
+  /****************************************
+   * grouping statements for object classes
+   **************************************/ 
+
+  grouping vlan-interface-lp-spec {
+    container vlan-interface-pac {
+      uses vlan-interface-pac;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  grouping vlan-interface-pac {
+    container vlan-interface-capability {
+      config false;
+      uses vlan-interface-capability;
+      description
+        "none";
+    }
+    container vlan-interface-configuration {
+      uses vlan-interface-configuration;
+      description
+        "none";
+    }
+    container vlan-interface-status {
+      config false;
+      uses vlan-interface-status;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  grouping vlan-interface-capability {
+    leaf-list supported-sub-layer-protocol-name-list {
+      type sub-layer-protocol-name-type;
+      default "SUB_LAYER_PROTOCOL_NAME_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "Lists the supported kinds of components. ";
+    }
+    leaf-list supported-interface-kind-list {
+      type interface-kind-type;
+      default "INTERFACE_KIND_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "type-capabilties.";
+    }
+    leaf tagging-and-mvrp-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "capabilities::tagging. true = Interface supports tagging of frames and MVRP. ";
+    }
+    leaf configuring-ingress-tag-filtering-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "capabilities::tagging. true = Configuring ingressTagFiltering is available.";
+    }
+    leaf ingress-vlan-id-filtering-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "capabilities::ingress-filtering. true = Discarding ingress frames that are tagged with a VLAN ID, which is unknown to the interface, is available at the interface. false = Filtering happens only at the egress.";
+    }
+    leaf-list available-pcp-bits-interpretation-kind-list {
+      type pcp-bits-interpretation-kind-type;
+      default "PCP_BITS_INTERPRETATION_KIND_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "List of the available ways of translating the PCP bits of the ingress frames into Priority values.";
+    }
+    leaf configuring-pcp-bits-decoding-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "false = PCP-bits are decoded according to table 3 in chapter 6.9.3 of IEEE Std 802.1Q-2018; true = Device supports flexibly configuring the translation of PCP-bits values to Priority values and drop eligibility.";
+    }
+    leaf configuring-pcp-bits-encoding-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "false = PCP-bits are encoded according to table 2 in chapter 6.9.3 of IEEE Std 802.1Q-2018; true = Device supports flexibly configuring the translation of Priority values and drop eligibility to PCP-bits values.";
+    }
+    leaf drop-eligible-indicator-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "true = Decoding and encoding of the Drop Eligible Indicator (DEI) bit of the VLAN header is supported by the device.";
+    }
+    leaf number-of-available-priorities {
+      type int8;
+      default "-1";
+      config false;
+      description
+        "Number of Priority values, which are supported at the device (usually 8 (0-7)).";
+    }
+    leaf received-priority-overwriting-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "true = Device supports overwriting the Received Priority of the ingress frames with Regenerated Priority values.";
+    }
+    leaf vlan-id-translation-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "true = Translation of VLAN IDs is available at this interface.";
+    }
+    leaf egress-vlan-id-translation-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "true = Separate translation table for VLAN IDs of egress frames is available.";
+    }
+    leaf port-and-protocol-based-vlan-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "protocol-based-vlan-classification. true = Restricting forwarding of frames of specific VLANs on specific protocols at this interface is available. Name in ieee802-dot1q-bridge.yang: protocol-based-vlan-classification.";
+    }
+    leaf max-number-of-protocol-vlan-id-groupings {
+      type int16;
+      default "-1";
+      config false;
+      description
+        "max-vid-set-entries. Only meaningful if (portAndProtocolBasedVlanIsAvail==true) AND (subLayerProtocolName!=D_BRIDGE_COMPONENT). Maximum number of entries supported in the forwardedProtocolVidGroupingList at this interface. Name in ieee802-dot1q-bridge.yang: max-vid-set-entries.";
+    }
+    leaf service-access-priority-tagging-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "true = Adding a priority S-VLAN tag (no VID value) is available on this C_VLAN_BRIDGE_PORT.";
+    }
+    leaf configuring-service-access-priority-mapping-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "true = Freely configuring of the mapping of Priority values to the PCP-bits values of the amended priority S-VLAN tag (no VID value) is available on this C_VLAN_BRIDGE_PORT.";
+    }
+    leaf number-of-available-traffic-classes {
+      type int8;
+      default "-1";
+      config false;
+      description
+        "Number of Traffic Classes (queues), which are supported at the device (usually 8).";
+    }
+    leaf restricted-automated-vlan-registration-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "false = The automated registration and modification of VLANs by the Multiple Registration Protocol (MRP) can not be restricted to those VIDs that already had a static entry.";
+    }
+    leaf admin-shut-down-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "false = Manual switching on and off of the interface without deleting it (underlying OSI network layers are also not affected) is available.";
+    }
+    leaf statistics-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "true = Statistics collection and aggregation is supported on this interface.";
+    }
+    description
+      "none";
+  }
+
+  grouping vlan-interface-configuration {
+    leaf interface-name {
+      type string;
+      default "Interface name not yet defined.";
+      description
+        "Description of the interface, could be a name, could be a number. Free text field to be filled by the operator.";
+    }
+    leaf sub-layer-protocol-name {
+      type sub-layer-protocol-name-type;
+      default "SUB_LAYER_PROTOCOL_NAME_TYPE_NOT_YET_DEFINED";
+      description
+        "component-name. Used to reference configured component kind. Name in ieee802-dot1q-bridge.yang: component-name.";
+    }
+    leaf interface-kind {
+      type interface-kind-type;
+      default "INTERFACE_KIND_TYPE_NOT_YET_DEFINED";
+      description
+        "port-type. Indicates the capabilities of this port. Name in ieee802-dot1q-bridge.yang: port-type.";
+    }
+    leaf default-vlan-id {
+      type int64;
+      default "-1";
+      description
+        "pvid. Not effective if (subLayerProtocolName==D_BRIDGE_COMPONENT). Untagged frames on the ingress of this VlanInterface get amended by a VLAN header and its 12 VID-bits (VLAN ID) get filled with the default VLAN ID (1-4094). If a value between 4096 and 4294967295 gets assigned, then it represents a local VLAN. Name in ieee802-dot1q-bridge.yang: pvid.";
+    }
+    leaf default-priority {
+      type int8;
+      default "-1";
+      description
+        "default-priority. Untagged frames on the ingress of this VlanInterface get associated with this Priority value. Name in ieee802-dot1q-bridge.yang: default-priority.";
+    }
+    leaf ingress-tag-filtering {
+      type ingress-tag-filtering-type;
+      default "INGRESS_TAG_FILTERING_TYPE_NOT_YET_DEFINED";
+      description
+        "acceptable-frame. Only effective if (configuringIngressTagFilteringIsAvail==true) AND (subLayerProtocolName!=D_BRIDGE_COMPONENT). Defines the type of frame acceptable at this interface. Name in ieee802-dot1q-bridge.yang: acceptable-frame.";
+    }
+    leaf ingress-vlan-id-filtering-is-on {
+      type boolean;
+      default "false";
+      description
+        "enable-ingress-filtering. Only effective if (ingressVlanIdFilteringIsAvail==true) and (subLayerProtocolName!=D_BRIDGE_COMPONENT). true = Received frames with a VID that is unknown to the interface get discarded already at the ingress. Name in ieee802-dot1q-bridge.yang: enable-ingress-filtering.";
+    }
+    leaf pcp-bits-interpretation-kind {
+      type pcp-bits-interpretation-kind-type;
+      default "PCP_BITS_INTERPRETATION_KIND_TYPE_NOT_YET_DEFINED";
+      description
+        "pcp-selection. Defines how to decode and encode the values of the 3 Priority Code Point (PCP) bits of the VLAN header at this interface. Name in ieee802-dot1q-bridge.yang: pcp-selection.";
+    }
+    list pcp-bit-to-priority-mapping-list {
+      key "to-be-decoded-pcp-bits-value";
+      max-elements 8;
+      uses pcp-bits-to-priority-mapping-type;
+      description
+        "pcp-decoding-table. Only effective if (configuringPcpBitsDecodingIsAvail==true). Configurable decoding of the PCP-bits of the ingress VLAN header into Priority values and drop eligibility. This attribute is shortening the ieee802-dot1q-bridge.yang from a table to a list, because it allows only configuring the values for the way of PCP bit interpretation, which is actually chosen in pcpBitsInterpretationKind. Name in ieee802-dot1q-bridge.yang: pcp-decoding-table.";
+    }
+    list pcp-bits-encoding-mapping-list {
+      key "to-be-encoded-priority-value to-be-encoded-drop-eligibility";
+      max-elements 16;
+      uses priority-to-pcp-bits-mapping-type;
+      description
+        "pcp-encoding-table. Only effective if (configuringPcpBitsEncodingIsAvail==true). Configurable encoding of Priority value and drop eligibility into the PCP-bits of the ingress VLAN header. This attribute is shortening the ieee802-dot1q-bridge.yang from a table to a list, because it allows only configuring the values for the way of PCP bit interpretation, which is actually chosen in pcpBitsInterpretationKind. Name in ieee802-dot1q-bridge.yang: pcp-encoding-table.
+            ";
+    }
+    leaf drop-eligible-indicator-is-on {
+      type boolean;
+      default "false";
+      description
+        "use-dei. Only effective if (dropEligibleIndicatorIsAvail==true). true = The Drop Eligible Indicator (DEI) bit of ingress VLAN header is decoded into drop eligibility and vice versa for egress frames. Name in ieee802-dot1q-bridge.yang: use-dei.";
+    }
+    leaf drop-eligible-encoding-is-required {
+      type boolean;
+      default "false";
+      description
+        "drop-encoding. true = Queued frames, which have drop eligibility==true, get dropped, if the chosen pcpBitsInterpretationKind does not allow encoding the DEI bit set on true on the egress. Name in ieee802-dot1q-bridge.yang: drop-encoding.";
+    }
+    leaf received-priority-overwriting-is-on {
+      type boolean;
+      default "false";
+      description
+        "Only effective if (receivedPriorityOverwritingIsAvail==true). true = Overwriting the Received Priority value derived from the PCP-bits of the ingress frame with the Regenerated Priority values listed in ingressPriorityOverwritingTable is activated.";
+    }
+    list received-priority-overwriting-list {
+      key "to-be-overwritten-priority-value";
+      max-elements 8;
+      uses received-priority-overwriting-type;
+      description
+        "priority-regeneration. Only effective if (receivedPriorityOverwritingIsAvail==true) AND (receivedPriorityOverwritingIsOn==true). The Received Priority value derived from the PCP-bits of the ingress frame will be overwritten with the Regenerated Priority value from the list. Name in ieee802-dot1q-bridge.yang: priority-regeneration.";
+    }
+    leaf vlan-id-translation-is-on {
+      type boolean;
+      default "false";
+      description
+        "enable-vid-translation-table. Only effective if (vlanIdTranslationIsAvail==true) AND (subLayerProtocolName!=D_BRIDGE_COMPONENT). If (vlanIdTranslationIsOn==true) AND (egressVlanIdTranslationIsOn==true), the VLAN IDs of ingress frames get translated according to the mapping, which is defined in vidTranslationMapping. If (vlanIdTranslationIsOn==true) AND (egressVlanIdTranslationIsOn==false), the mapping, which is defined in vidTranslationMapping, is used for both ingress and egress frames. Name in ieee802-dot1q-bridge.yang: enable-vid-translation-table.";
+    }
+    list external-to-internal-vlan-id-mapping-list {
+      key "external-vlan-id";
+      uses external-to-internal-vlan-id-mapping-type;
+      description
+        "vid-translations. Only effective if (subLayerProtocolName!=D_BRIDGE_COMPONENT). If (vlanIdTranslationIsOn==true) AND (egressVlanIdTranslationIsOn==true), the VLAN IDs of ingress frames get translated according to this mapping. If (vlanIdTranslationIsOn==true) AND (egressVlanIdTranslationIsOn==false), the VLAN IDs of both ingress and egress frames get mapped according to this mapping. Name in ieee802-dot1q-bridge.yang: vid-translations.";
+    }
+    leaf egress-vlan-id-translation-is-on {
+      type boolean;
+      default "false";
+      description
+        "enable-egress-vid-translation-table. Only effective if (egressVlanIdTranslationIsAvail==true) AND (subLayerProtocolName!=D_BRIDGE_COMPONENT). true = The VLAN IDs of egress frames get translated according to the mapping, which is defined in egressVidTranslationMapping. Name in ieee802-dot1q-bridge.yang: enable-egress-vid-translation-table. References: 12.10.1.9 of IEEE Std 802.1Q-2018 and 6.9 of IEEE Std 802.1Q-2018.";
+    }
+    list internal-to-egress-vlan-id-mapping-list {
+      key "internal-vlan-id";
+      uses internal-to-egress-vlan-id-mapping-type;
+      description
+        "egress-vid-translations. Only effective if (subLayerProtocolName!=D_BRIDGE_COMPONENT) AND (egressVlanIdTranslationIsOn==true). The VLAN IDs of egress frames get translated according to this mapping. Name in ieee802-dot1q-bridge.yang: egress-vid-translations.";
+    }
+    list forwarded-protocol-vlan-id-grouping-list {
+      key "forwarded-protocol-group-id";
+      uses forwarded-protocol-vlan-id-grouping-type;
+      description
+        "protocol-group-vid-set. Only effective if (portAndProtocolBasedVlanIsOn==true). Associates lists of protocols with lists of VIDs to combinations, which are forwarded at this interface. Name in ieee802-dot1q-bridge.yang: protocol-group-vid-set.";
+    }
+    leaf service-access-priority-tagging-is-on {
+      type boolean;
+      default "false";
+      description
+        "service-access-priority-selection. Only effective if (serviceAccessPriorityTaggingIsAvail==true). true = Amending priority S-VLAN tags (no VID value) to egress frames at this C_VLAN_BRIDGE_PORT is activated. Name in ieee802-dot1q-bridge.yang: service-access-priority-selection.\n";
+    }
+    list service-access-priority-mapping-list {
+      key "c-vlan-priority-value";
+      max-elements 8;
+      uses service-access-priority-mapping-type;
+      description
+        "service-access-priority. Only effective if (serviceAccessPriorityTaggingIsOn==true) AND (configuringServiceAccessPriorityMappingIsAvail==true). The PCP-bits of the priority S-VLAN tag (no VID value), which is amended to the egress frames at this C_VLAN_BRIDGE_PORT, are generated according to this table from the Priority value. Name in ieee802-dot1q-bridge.yang: service-access-priority.";
+    }
+    list priority-to-traffic-class-mapping-list {
+      key "priority-value";
+      max-elements 8;
+      uses priority-to-traffic-class-mapping-type;
+      description
+        "traffic-class-map. Mapping of the Priority values into Traffic Classes (queues). This attribute is shortening the ieee802-dot1q-bridge.yang from a table to a list, because it allows only configuring the values for the number of traffic classes actually available at the device. Name in ieee802-dot1q-bridge.yang: traffic-class-map.
+            ";
+    }
+    leaf restricted-automated-vlan-registration-is-on {
+      type boolean;
+      default "false";
+      description
+        "enable-restricted-vlan-registration. Only effective if (restrictedAutomatedVlanRegistrationIsAvail==true) and (subLayerProtocolName!=D_BRIDGE_COMPONENT). true = Automated VLAN registration by the Multiple Registration Protocol (MRP) is restricted to those VIDs that already had a static entry. Name in ieee802-dot1q-bridge.yang: enable-restricted-vlan-registration.";
+    }
+    leaf admin-point-to-point {
+      type admin-point-to-point-type;
+      default "ADMIN_POINT_TO_POINT_TYPE_NOT_YET_DEFINED";
+      description
+        "admin-point-to-point. For a port running spanning tree, this object represents the administrative point-to-point status of the LAN segment attached to this port, using the enumeration values of IEEE Std 802.1AC. A value of forceTrue(1) indicates that this port should always be treated as if it is connected to a point-to-point link. A value of forceFalse(2) indicates that this port should be treated as having a shared media connection. A value of auto(3) indicates that this port is considered to have a point-to-point link if it is an Aggregator and all of its members are aggregatable, or if the MAC entity is configured for full duplex operation, either through auto-negotiation or by management means. Manipulating this object changes the underlying adminPointToPointMAC. Name in ieee802-dot1q-bridge.yang: admin-point-to-point.
+         *****Potentially, this attribute should be part of an STP/RSTP/MSTP Interface definition and be deleted here.";
+    }
+    leaf statistics-is-on {
+      type boolean;
+      default "false";
+      description
+        "Only effective if (statisticsIsAvail==true). true = Continuous statistics counters are switched on.";
+    }
+    description
+      "none";
+  }
+
+  grouping vlan-interface-status {
+    leaf interface-status {
+      type interface-status-type;
+      default "INTERFACE_STATUS_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "Operational status of the interface.";
+    }
+    leaf statistics-is-up {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "true = Statistics are currently counted";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf total-bytes-input {
+      type int64;
+      units "Byte";
+      default "-1";
+      config false;
+      description
+        "octets-rx. The total number of octets in all valid frames received. Name in ieee802-dot1q-bridge.yang: octets-rx.";
+    }
+    leaf total-frames-input {
+      type int64;
+      units "frame";
+      default "-1";
+      config false;
+      description
+        "frame-rx. Number of frames that have been received by this port from its segment. Name in ieee802-dot1q-bridge.yang: frame-rx.";
+    }
+    leaf total-bytes-output {
+      type int64;
+      units "Byte";
+      default "-1";
+      config false;
+      description
+        "octets-tx. The total number of octets that have been transmitted by this port to its segment. Name in ieee802-dot1q-bridge.yang: octets-tx.";
+    }
+    leaf total-frames-output {
+      type int64;
+      units "frame";
+      default "-1";
+      config false;
+      description
+        "frame-tx. The number of frames that have been transmitted by this port to its segment. Note that a frame transmitted on the interface corresponding to this port is only counted by this object if and only if it is for a protocol being processed by the local bridging function, including Bridge management frames. Name in ieee802-dot1q-bridge.yang: frame-tx.";
+    }
+    description
+      "none";
+  }
+
+  /****************************************
+   * typedef statements
+   **************************************/ 
+
+  typedef sub-layer-protocol-name-type {
+    type identityref {
+      base SUB_LAYER_PROTOCOL_NAME_TYPE;
+    }
+    description
+      "Represents the type of Component.";
+  }
+
+  typedef interface-kind-type {
+    type identityref {
+      base INTERFACE_KIND_TYPE;
+    }
+    description
+      "type-capabilties. The type of feature capabilities supported with port. Indicates the capabilities of this port. Name in ieee802-dot1q-bridge.yang:type-capabilties.";
+  }
+
+  typedef ingress-tag-filtering-type {
+    type identityref {
+      base INGRESS_TAG_FILTERING_TYPE;
+    }
+    description
+      "none";
+  }
+
+  typedef pcp-bits-interpretation-kind-type {
+    type identityref {
+      base PCP_BITS_INTERPRETATION_KIND_TYPE;
+    }
+    description
+      "pcp-selection-type. Ways of translating the PCP-bit values of the ingress frames into Priority values. Name in ieee802-dot1q-bridge.yang: pcp-selection-type. References: 12.6.2.5.3 of IEEE Std 802.1Q-2018 and 6.9.3 of IEEE Std 802.1Q-2018.";
+  }
+
+  typedef admin-point-to-point-type {
+    type identityref {
+      base ADMIN_POINT_TO_POINT_TYPE;
+    }
+    description
+      "admin-point-to-point";
+  }
+
+  /*********************************************
+   * grouping statements for complex data types
+   *******************************************/ 
+
+  identity SUB_LAYER_PROTOCOL_NAME_TYPE {
+    description
+      "none";
+  }
+
+  identity SUB_LAYER_PROTOCOL_NAME_TYPE_D_BRIDGE_COMPONENT {
+    base SUB_LAYER_PROTOCOL_NAME_TYPE;
+    description
+      "VLAN unaware component";
+  }
+
+  identity SUB_LAYER_PROTOCOL_NAME_TYPE_C_VLAN_COMPONENT {
+    base SUB_LAYER_PROTOCOL_NAME_TYPE;
+    description
+      "C-VLAN component";
+  }
+
+  identity SUB_LAYER_PROTOCOL_NAME_TYPE_S_VLAN_COMPONENT {
+    base SUB_LAYER_PROTOCOL_NAME_TYPE;
+    description
+      "S-VLAN component";
+  }
+
+  identity SUB_LAYER_PROTOCOL_NAME_TYPE_EDGE_RELAY_COMPONENT {
+    base SUB_LAYER_PROTOCOL_NAME_TYPE;
+    description
+      "EVB station ER component";
+  }
+
+  identity SUB_LAYER_PROTOCOL_NAME_TYPE_NOT_YET_DEFINED {
+    base SUB_LAYER_PROTOCOL_NAME_TYPE;
+    description
+      "none";
+  }
+
+  identity INTERFACE_KIND_TYPE {
+    description
+      "none";
+  }
+
+  identity INTERFACE_KIND_TYPE_D_BRIDGE_PORT {
+    base INTERFACE_KIND_TYPE;
+    description
+      "Indicates the port can be a VLAN-unaware member of an 802.1Q Bridge.";
+  }
+
+  identity INTERFACE_KIND_TYPE_C_VLAN_BRIDGE_PORT {
+    base INTERFACE_KIND_TYPE;
+    description
+      "Indicates the port can be a C-TAG aware port of an enterprise VLAN aware Bridge.";
+  }
+
+  identity INTERFACE_KIND_TYPE_CUSTOMER_EDGE_PORT {
+    base INTERFACE_KIND_TYPE;
+    description
+      "Indicates the port can be a C-TAG aware port of a Provider Bridge used for connections to the exterior of a PBN (Provider Bridged Network) or PBBN (Provider Backbone Bridged Network).";
+  }
+
+  identity INTERFACE_KIND_TYPE_PROVIDER_EDGE_PORT {
+    base INTERFACE_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity INTERFACE_KIND_TYPE_CUSTOMER_NETWORK_PORT {
+    base INTERFACE_KIND_TYPE;
+    description
+      "Indicates the port can be an S-TAG aware port of a Provider Bridge or Backbone Edge Bridge used for connections to the exterior of a PBN (Provider Bridged Network) or PBBN (Provider Backbone Bridged Network).";
+  }
+
+  identity INTERFACE_KIND_TYPE_PROVIDER_NETWORK_PORT {
+    base INTERFACE_KIND_TYPE;
+    description
+      "Indicates the port can be an S-TAG aware port of a Provider Bridge or Backbone Edge Bridge used for connections within a PBN (Provider Bridged Network) or PBBN (Provider Backbone Bridged Network).";
+  }
+
+  identity INTERFACE_KIND_TYPE_CUSTOMER_BACKBONE_PORT {
+    base INTERFACE_KIND_TYPE;
+    description
+      "Indicates the port can be a I-TAG aware port of a Backbone Edge Bridge's B-component.";
+  }
+
+  identity INTERFACE_KIND_TYPE_REMOTE_CUSTOMER_ACCESS_PORT {
+    base INTERFACE_KIND_TYPE;
+    description
+      "Indicates the port can be an S-TAG aware port of a Provider Bridge capable of providing Remote Customer Service Interfaces.";
+  }
+
+  identity INTERFACE_KIND_TYPE_VIRTUAL_INSTANCE_PORT {
+    base INTERFACE_KIND_TYPE;
+    description
+      "Indicates the port can be a virtual S-TAG aware port within a Backbone Edge Bridge's I-component which is responsible for handling S-tagged traffic for a specific backbone service instance.";
+  }
+
+  identity INTERFACE_KIND_TYPE_STATION_FACING_BRIDGE_PORT {
+    base INTERFACE_KIND_TYPE;
+    description
+      "Indicates the station-facing Bridge Port in a EVB Bridge.";
+  }
+
+  identity INTERFACE_KIND_TYPE_UPLINK_ACCESS_PORT {
+    base INTERFACE_KIND_TYPE;
+    description
+      "Indicates the uplink access port in an EVB Bridge or EVB station.";
+  }
+
+  identity INTERFACE_KIND_TYPE_UPLINK_RELAY_PORT {
+    base INTERFACE_KIND_TYPE;
+    description
+      "Indicates the uplink relay port in an EVB station.";
+  }
+
+  identity INTERFACE_KIND_TYPE_NOT_YET_DEFINED {
+    base INTERFACE_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity INGRESS_TAG_FILTERING_TYPE {
+    description
+      "none";
+  }
+
+  identity INGRESS_TAG_FILTERING_TYPE_UNTAGGED_AND_PRIORITY_FRAMES_ONLY {
+    base INGRESS_TAG_FILTERING_TYPE;
+    description
+      "admit-only-untagged-and-priority-tagged. Priority frames are frames with VLAN header, but VID==0.";
+  }
+
+  identity INGRESS_TAG_FILTERING_TYPE_VLAN_TAGGED_FRAMES_ONLY {
+    base INGRESS_TAG_FILTERING_TYPE;
+    description
+      "admit-only-VLAN-tagged-frames";
+  }
+
+  identity INGRESS_TAG_FILTERING_TYPE_ALL_FRAMES {
+    base INGRESS_TAG_FILTERING_TYPE;
+    description
+      "admit-all-frames ";
+  }
+
+  identity INGRESS_TAG_FILTERING_TYPE_NOT_YET_DEFINED {
+    base INGRESS_TAG_FILTERING_TYPE;
+    description
+      "none";
+  }
+
+  identity PCP_BITS_INTERPRETATION_KIND_TYPE {
+    description
+      "none";
+  }
+
+  identity PCP_BITS_INTERPRETATION_KIND_TYPE_8P0D {
+    base PCP_BITS_INTERPRETATION_KIND_TYPE;
+    description
+      "The 3 bits of the Priority Code Point (PCP) segment of the VLAN header are used to express 8 Priority values and 0 drop eligibility values.";
+  }
+
+  identity PCP_BITS_INTERPRETATION_KIND_TYPE_7P1D {
+    base PCP_BITS_INTERPRETATION_KIND_TYPE;
+    description
+      "The 3 bits of the Priority Code Point (PCP) segment of the VLAN header are used to express 7 Priority values and 1 drop eligibility values.";
+  }
+
+  identity PCP_BITS_INTERPRETATION_KIND_TYPE_6P2D {
+    base PCP_BITS_INTERPRETATION_KIND_TYPE;
+    description
+      "The 3 bits of the Priority Code Point (PCP) segment of the VLAN header are used to express 6 Priority values and 2 drop eligibility values.";
+  }
+
+  identity PCP_BITS_INTERPRETATION_KIND_TYPE_5P3D {
+    base PCP_BITS_INTERPRETATION_KIND_TYPE;
+    description
+      "The 3 bits of the Priority Code Point (PCP) segment of the VLAN header are used to express 5 Priority values and 3 drop eligibility values.";
+  }
+
+  identity PCP_BITS_INTERPRETATION_KIND_TYPE_NOT_YET_DEFINED {
+    base PCP_BITS_INTERPRETATION_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity ADMIN_POINT_TO_POINT_TYPE {
+    description
+      "none";
+  }
+
+  identity ADMIN_POINT_TO_POINT_TYPE_FORCE_TRUE {
+    base ADMIN_POINT_TO_POINT_TYPE;
+    description
+      "force-true. Indicates that this port should always be treated as if it is connected to a point-to-point link. Name in ieee802-dot1q-bridge.yang: force-true.";
+  }
+
+  identity ADMIN_POINT_TO_POINT_TYPE_FORCE_FALSE {
+    base ADMIN_POINT_TO_POINT_TYPE;
+    description
+      "force-false. Indicates that this port should be treated as having a shared media connection. Name in ieee802-dot1q-bridge.yang: force-false.";
+  }
+
+  identity ADMIN_POINT_TO_POINT_TYPE_AUTO {
+    base ADMIN_POINT_TO_POINT_TYPE;
+    description
+      "auto. Indicates that this port is considered to have a point-to-point link if it is an Aggregator and all of its members are aggregatable, or if the MAC entity is configured for full duplex operation, either through auto-negotiation or by management means. Name in ieee802-dot1q-bridge.yang: auto.";
+  }
+
+  identity ADMIN_POINT_TO_POINT_TYPE_NOT_YET_DEFINED {
+    base ADMIN_POINT_TO_POINT_TYPE;
+    description
+      "none";
+  }
+
+  identity INTERFACE_STATUS_TYPE {
+    description
+      "none";
+  }
+
+  identity INTERFACE_STATUS_TYPE_UP {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Ready to pass packets.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_DOWN {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "The interface does not pass any packets.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_TESTING {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "In some test mode.  No operational packets can be passed.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_UNKNOWN {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Status cannot be determined for some reason.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_DORMANT {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Waiting for some external event.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_NOT_PRESENT {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Some component (typically hardware) is missing.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Down due to state of lower-layer interface(s).";
+  }
+
+  identity INTERFACE_STATUS_TYPE_ADMIN_DOWN {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Down due to configuration.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_NOT_YET_DEFINED {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "none";
+  }
+
+  /****************************************
+   * package super-types
+   **************************************/ 
+
+  typedef interface-status-type {
+    type identityref {
+      base INTERFACE_STATUS_TYPE;
+    }
+    description
+      "Current Interface Status";
+  }
+
+  grouping pcp-bits-to-priority-mapping-type {
+    leaf to-be-decoded-pcp-bits-value {
+      type int8;
+      description
+        "priority-code-point. Value of the 3 Priority Code Point (PCP) bits of the VLAN header, which is to be interpreted into Priority and eligibility. Name in ieee802-dot1q-bridge.yang: priority-code-point.";
+    }
+    leaf associated-priority-value {
+      type int8;
+      default "-1";
+      description
+        "priority. Priority value associated to the value of the 3 Priority Code Point (PCP) bits of the VLAN header. Values from 0 to 7 (inclusive). Name in ieee802-dot1q-bridge.yang: priority.";
+    }
+    leaf associated-drop-eligibility {
+      type boolean;
+      default "false";
+      description
+        "drop-eligible. Drop eligibility associated to the value of the 3 Priority Code Point (PCP) bits of the VLAN header. Name in ieee802-dot1q-bridge.yang: drop-eligible.";
+    }
+    description
+      "priority-map. The Priority Code Point decoding mapping describes how to decode the PCP-bits of the ingress VLAN header into Priority value and drop eligibility. If no corresponding pcpBitToPriorityMappingType instance exists, the mapping of the respective pcpBitsValue shall follow the standard, which is defined in Table6-3 on page 143 of IEEE802.1Q-2018. Name in ieee802-dot1q-bridge.yang: priority-map.";
+  }
+
+  grouping priority-to-pcp-bits-mapping-type {
+    leaf to-be-encoded-priority-value {
+      type int8;
+      description
+        "priority. Priority value, which is to be encoded into a value of the 3 Priority Code Point (PCP) bits of the egress VLAN header. Name in ieee802-dot1q-bridge.yang: priority.";
+    }
+    leaf to-be-encoded-drop-eligibility {
+      type boolean;
+      description
+        "dei. Drop eligibility, which is to be encoded into a value of the 3 Priority Code Point (PCP) bits of the egress VLAN header. Name in ieee802-dot1q-bridge.yang: dei.";
+    }
+    leaf associated-pcp-bits-value {
+      type int8;
+      default "-1";
+      description
+        "priority-code-point. Value of the 3 Priority Code Point (PCP) bits of the egress VLAN header, which is to be associated with the Priority value and eligibility. Name in ieee802-dot1q-bridge.yang: priority-code-point.";
+    }
+    description
+      "priority-map. The Priority Code Point encoding mapping describes how to encode Priority value and drop eligibility into the PCP-bits of the egress VLAN header. If no corresponding PriorityToPcpBitsMappingType instance exists, the mapping of the respective Priority value shall follow the standard, which is defined in Table6-2 on page 143 of IEEE802.1Q-2018. Name in ieee802-dot1q-bridge.yang: priority-map.";
+  }
+
+  grouping received-priority-overwriting-type {
+    leaf to-be-overwritten-priority-value {
+      type int8;
+      description
+        "Received Priority value, which is to be overwritten by the Regenerated Priority value. ieee802-dot1q-bridge.yang is explicitly listing all values, and has been slightly shortened.";
+    }
+    leaf new-priority-value {
+      type int8;
+      default "-1";
+      description
+        "Regenerated Priority value, which is substituting the Received Priority value. ieee802-dot1q-bridge.yang is explicitly listing all values, and has been slightly shortened.";
+    }
+    description
+      "The priority regeneration table provides the ability to map incoming priority values on a per-Port basis, under management control. If no corresponding ReceivedPriorityOverwritingType instance exists, the Regenerated Priority value is the same as the Received Priority value. ";
+  }
+
+  grouping external-to-internal-vlan-id-mapping-type {
+    leaf external-vlan-id {
+      type int16;
+      description
+        "local-vid. VID of the frame as long as it is inside the interface. If ingress frame, this would be before translation. If egress frame (AND egressVidTranslationMapping not activated!), this would be after translation. Name in ieee802-dot1q-bridge.yang: local-vid.";
+    }
+    leaf internal-vlan-id {
+      type int16;
+      default "-1";
+      description
+        "relay-vid. VID of the frame as long as it is inside the bridge. If ingress frame, this would be after translation. If egress frame (AND egressVidTranslationMapping not activated!), this would be before translation. Name in ieee802-dot1q-bridge.yang: relay-vid.";
+    }
+    description
+      "vid-translations. To configure the VID Translation Table (6.9) associated with a Port. If no translation relationship is defined for some VID value, then it is assumed that the VID does not change. The translation relation applies on ingress and egress frames unless a separate egress translation relations are defined in egressVidTranslationMapping. Name in ieee802-dot1q-bridge.yang: vid-translations.\n";
+  }
+
+  grouping internal-to-egress-vlan-id-mapping-type {
+    leaf internal-vlan-id {
+      type int16;
+      description
+        "relay-vid. VID of the frame as long as it is inside the bridge, but before translating the VID and egress of the frame at this interface. Name in ieee802-dot1q-bridge.yang: relay-vid.";
+    }
+    leaf egress-vlan-id {
+      type int16;
+      default "-1";
+      description
+        "local-vid. VID of the egress frame after translating the VID. Name in ieee802-dot1q-bridge.yang: local-vid.";
+    }
+    description
+      "egress-vid-translationsType. To configure the Egress VID Translation Table (6.9) associated with a Port. If no translation relationship is defined for some VID value, then it is assumed that the VID does not change. Name in ieee802-dot1q-bridge.yang: egress-vid-translationsType.";
+  }
+
+  grouping forwarded-protocol-vlan-id-grouping-type {
+    leaf forwarded-protocol-group-id {
+      type int32;
+      description
+        "group-id. Bridge wide identifier of a group of protocols that shall be forwarded within the listed VLANs. Name in ieee802-dot1q-bridge.yang: group-id.";
+    }
+    leaf-list forwarded-vlan-id-list {
+      type int64;
+      default "-1";
+      description
+        "vid. List of VLANs that shall forward the protocols, which are consolidated unter the protocolGroupId. Name in ieee802-dot1q-bridge.yang: vid.";
+    }
+    description
+      "protocol-group-vid-set. Limits the forwarded frames of a list of VIDs to the protocols, which are consolidated under a specific group ID. The protocol group is to be defined on Bridge level. Name in ieee802-dot1q-bridge.yang: protocol-group-vid-set.";
+  }
+
+  grouping service-access-priority-mapping-type {
+    leaf c-vlan-priority-value {
+      type int8;
+      description
+        "C-VLAN Priority, which shall be translated into the associated S-VLAN Priority.  ieee802-dot1q-bridge.yang is explicitly listing all values, and has been slightly shortened.";
+    }
+    leaf s-vlan-pcp-bits-value {
+      type int8;
+      default "-1";
+      description
+        "S-VLAN Priority, which shall be associated with this C-VLAN Priority. ieee802-dot1q-bridge.yang is explicitly listing all values, and has been slightly shortened.";
+    }
+    description
+      "service-access-priority-table-grouping. Describes how the PCP-bits of the priority S-VLAN tag (no VID value) get derived from the Priority value. Name in ieee802-dot1q-bridge.yang: service-access-priority-table-grouping.";
+  }
+
+  grouping priority-to-traffic-class-mapping-type {
+    leaf priority-value {
+      type int8;
+      description
+        "priority. Priority value, which is to be mapped into a Traffic Class (queue). Values from 0 to 7 (inclusive). Name in ieee802-dot1q-bridge.yang: priority.";
+    }
+    leaf traffic-class-value {
+      type int8;
+      default "-1";
+      description
+        "traffic-class. Index of the Traffic Class (queue), which gets associated with the Priority Value. Values from 0 to 7 (inclusive). Name in ieee802-dot1q-bridge.yang: traffic-class.";
+    }
+    description
+      "traffic-class-table-grouping. If no corresponding PriorityToTrafficClassMappingType instance exists, the mapping of the respective Priority shall follow the standard, which is defined in Table 8-5 on page 198 of IEEE802.1Q-2018. This modeling is shortening the ieee802-dot1q-bridge.yang from a table to a list, because it allows only configuring the values for the number of traffic classes, which is actually available at the device. Name in ieee802-dot1q-bridge.yang: traffic-class-table-grouping.";
+  }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/wire-interface-2-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/wire-interface-2-0.yang
new file mode 100644
index 0000000..ada0ea8
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/wire-interface-2-0.yang
@@ -0,0 +1,1819 @@
+module wire-interface-2-0 {
+  yang-version 1.1;
+  namespace "urn:onf:yang:wire-interface-2-0";
+  prefix wire-interface;
+
+  import ietf-yang-types {
+    prefix yang;
+  }
+  import core-model-1-4 {
+    prefix core-model;
+  }
+
+  organization
+    "openBackhaul.com proposal to Open Networking Foundation (ONF)";
+  contact
+    "WG Web : https://github.com/openBackhaul/Overview
+     WG List: WireInterface@openBackhaul.com
+     Editor : Thorsten Heinze
+     Email  : Thorsten.Heinze@openBackhaul.com";
+  description
+    "This model is for vendor agnostic management of Ethernet PHY interfaces.
+     Supported: '10BASE5', 'FOIRL', '10BASE2', '10BROAD36', '10BASE-T', '10BASE-FP', '10BASE-FB', '10BASE-FL', '100BASE-T4', '100BASE-TX', '100BASE-BX10D', '100BASE-BX10U', '100BASE-FX', '100BASE-LX10', '100BASE-T2', '1000BASE-X', '1000BASE-BX10D', '1000BASE-BX10U', '1000BASE-LX', '1000BASE-LX10', '1000BASE-SX', '1000BASE-CX', '1000BASE-KX', '1000BASE-T', '10GBASE-X', '10GBASE-LX4', '10GBASE-KX4', '10GBASE-R', '10GBASE-ER', '10GBASE-LR', '10GBASE-SR', '10GBASE-LRM', '10GBASE-KR', '10GBASE-T', '10GBASE-PR-D1', '10GBASE-PR-D2', '10GBASE-PR-D3', '10GBASE-PR-D4', '10GBASE-PR-U1', '10GBASE-PR-U2', '10GBASE-PR-U3', '10GBASE-PR-U4', '40GBASE-R', '40GBASE-KR4', '40GBASE-CR4', '40GBASE-SR4', '4x10GBASE-SR', '40GBASE-LR4', '40GBASE-ER4', '40GBASE-FR', '100GBASE-R', '100GBASE-CR4', '100GBASE-KR4', '100GBASE-KP4', '100GBASE-CR10', '100GBASE-SR4', '100GBASE-SR10', '2x40GBASE-SR', '10x10GBASE-SR', '12x10GBASE-SR', '100GBASE-LR4', '100GBASE-ER4' and 'NOT_YET_DEFINED.
+     NOT supported: '2BASE-TL', '10PASS-TS', '1000BASE-PX10-D', '1000BASE-PX10-U', '1000BASE-PX20-D', '1000BASE-PX20-U', '1000BASE-PX30-D', '1000BASE-PX30-U', '1000BASE-PX40-D', '1000BASE-PX40-U', '10GBASE-W', '10GBASE-EW', '10GBASE-LW', '10GBASE-SW', '10/1GBASE-PRX-D1', '10/1GBASE-PRX-D2', '10/1GBASE-PRX-D3', '10/1GBASE-PRX-D4', '10/1GBASE-PRX-U1', '10/1GBASE-PRX-U2', '10/1GBASE-PRX-U3' and '10/1GBASE-PRX-U4'.
+
+     Copyright 2019 openBackhaul.com
+
+     Licensed under the Apache License, Version 2.0 (the 'License');
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+     http://www.apache.org/licenses/LICENSE-2.0
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an 'AS IS' BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.";
+
+  revision 2020-01-23 {
+    description
+      "Model for the Transport SDN Pilot at Telefonica Germany.
+       Please view https://github.com/openBackhaul/wireInterface/issues for changes.";
+    reference
+      "https://github.com/openBackhaul/wireInterface/tree/tsp: Model definition
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+  }
+  revision 2019-11-22 {
+    description
+      "Model for the Transport SDN Pilot at Telefonica Germany.
+       Please view https://github.com/openBackhaul/wireInterface/issues for changes.";
+    reference
+      "https://github.com/openBackhaul/wireInterface/tree/tsp: Model definition
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+  }
+  revision 2019-10-30 {
+    description
+      "Model for the Transport SDN Pilot at Telefonica Germany.
+       Please view https://github.com/openBackhaul/wireInterface/issues for changes.";
+    reference
+      "https://github.com/openBackhaul/wireInterface/tree/tsp: Model definition
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+  }
+  revision 2019-07-11 {
+    description
+      "Model for the Transport SDN Pilot at Telefonica Germany.
+       Please view https://github.com/openBackhaul/wireInterface/issues for changes.";
+    reference
+      "https://github.com/openBackhaul/wireInterface/tree/tsp: Model definition
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+  }
+
+  identity LAYER_PROTOCOL_NAME_TYPE_WIRE_LAYER {
+    base core-model:LAYER_PROTOCOL_NAME_TYPE;
+    description
+      "none";
+  }
+
+  augment "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol" {
+    when "derived-from-or-self(./core-model:layer-protocol-name, 'wire-interface:LAYER_PROTOCOL_NAME_TYPE_WIRE_LAYER')";
+    uses wire-interface-lp-spec;
+    description
+      "none";
+  }
+
+  /****************************************
+   * package notifications
+   **************************************/ 
+
+  notification object-creation-notification {
+    uses object-creation-notification;
+    description
+      "none";
+  }
+
+  grouping object-creation-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts object creation notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf object-type {
+      type string;
+      default "Type of created object not specified.";
+      config false;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  notification object-deletion-notification {
+    uses object-deletion-notification;
+    description
+      "none";
+  }
+
+  grouping object-deletion-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts object deletion notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  notification attribute-value-changed-notification {
+    uses attribute-value-changed-notification;
+    description
+      "none";
+  }
+
+  grouping attribute-value-changed-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts attribute value changed notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf attribute-name {
+      type string;
+      default "Attribute name not specified.";
+      config false;
+      description
+        "Name of the attribute that has been changed.";
+    }
+    leaf new-value {
+      type string;
+      default "New value not specified.";
+      config false;
+      description
+        "Attribute value converted to a string (xml, json, ...)";
+    }
+    description
+      "none";
+  }
+
+  notification problem-notification {
+    uses problem-notification;
+    description
+      "none";
+  }
+
+  grouping problem-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts problem notifications";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf problem {
+      type string;
+      default "Problem name not specified.";
+      config false;
+      description
+        "Name of the problem according to supportedAlarmList";
+    }
+    leaf severity {
+      type severity-type;
+      default "SEVERITY_TYPE_WARNING";
+      config false;
+      description
+        "Severity of the problem according to problemKindSeverity";
+    }
+    description
+      "none";
+  }
+
+  /****************************************
+   * grouping statements for object classes
+   **************************************/ 
+  /****************************************
+   * package super-classes
+   **************************************/ 
+
+  grouping current-problem {
+    leaf sequence-number {
+      type int16;
+      config false;
+      description
+        "Unique sequence number of the current problem object.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "Time when the alarm was raised";
+    }
+    leaf problem-severity {
+      type severity-type;
+      default "SEVERITY_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "Severity of the alarm.";
+    }
+    description
+      "none";
+  }
+
+  grouping current-performance {
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "The timestamp associated with when the current data was collected.";
+    }
+    leaf suspect-interval-flag {
+      type boolean;
+      default "false";
+      config false;
+      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.";
+    }
+    leaf elapsed-time {
+      type int64;
+      units "s";
+      default "-1";
+      config false;
+      description
+        "Number of seconds that elapsed since the last reset of the counter.";
+    }
+    leaf scanner-id {
+      type string;
+      default "Scanner ID not defined.";
+      config false;
+      description
+        "none";
+    }
+    leaf granularity-period {
+      type granularity-period-type;
+      config false;
+      description
+        "Time period between reset of the underlying counter.";
+    }
+    description
+      "none";
+  }
+
+  grouping historical-performance {
+    leaf suspect-interval-flag {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "This attribute indicates that the data collected during the interval is suspect.";
+    }
+    leaf history-data-id {
+      type string;
+      default "History Data ID not defined.";
+      config false;
+      description
+        "none";
+    }
+    leaf granularity-period {
+      type granularity-period-type;
+      config false;
+      description
+        "Time period between reset of the underlying counter.";
+    }
+    leaf period-end-time {
+      type yang:date-and-time;
+      config false;
+      description
+        "Time when the counter values have been recorded and the counter reset.";
+    }
+    description
+      "none";
+  }
+
+  grouping wire-interface-lp-spec {
+    container wire-interface-pac {
+      uses wire-interface-pac;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  grouping wire-interface-pac {
+    container wire-interface-capability {
+      config false;
+      uses wire-interface-capability;
+      description
+        "none";
+    }
+    container wire-interface-configuration {
+      uses wire-interface-configuration;
+      description
+        "none";
+    }
+    container wire-interface-status {
+      config false;
+      uses wire-interface-status;
+      description
+        "none";
+    }
+    container wire-interface-current-problems {
+      config false;
+      uses wire-interface-current-problems;
+      description
+        "none";
+    }
+    container wire-interface-current-performance {
+      config false;
+      uses wire-interface-current-performance;
+      description
+        "none";
+    }
+    container wire-interface-historical-performances {
+      config false;
+      uses wire-interface-historical-performances;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  grouping wire-interface-capability {
+    list supported-pmd-kind-list {
+      key "pmd-name";
+      config false;
+      min-elements 1;
+      uses pmd-kind;
+      description
+        "List of Physical Medium Dependent (PMD) that can be operated";
+    }
+    leaf auto-pmd-negotiation-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = device is supporting auto-negotiation";
+    }
+    leaf auto-negotiation-pmd-selection-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = device is supporting restricting auto-negotiation on a pre-defined list of PMDs";
+    }
+    leaf-list supported-signal-ordering-kind-list {
+      type signal-ordering-kind-type;
+      config false;
+      min-elements 1;
+      description
+        "Describes the different (e.g. MDI, MDI-X) ways of ordering the signals on the physical medium";
+    }
+    leaf auto-signal-ordering-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = there is a mechanism for automatically crossing over tx and rx implemented";
+    }
+    leaf configuration-of-rx-sync-preference-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Configuration of the behavior during the synchronization of transmitter and receiver is available. This attribute has nothing to do with clock signals.";
+    }
+    leaf mii-kind {
+      type mii-kind-type;
+      default "MII_KIND_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "Kind of Medium Independent Interface (MII) provided by this Medium Attachment Unit (MAU) (e.g. SFP, moldered port)";
+    }
+    leaf mdi-kind {
+      type mdi-kind-type;
+      default "MDI_KIND_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "Kind of Medium Dependent Interface (MDI) provided by this Medium Attachment Unit (MAU)";
+    }
+    leaf required-medium-kind {
+      type medium-kind-type;
+      default "MEDIUM_KIND_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "Kind of medium required for operating this Medium Attachment Unit (MAU), more like an information field";
+    }
+    leaf-list wavelength-min-list {
+      type int32;
+      units "pm";
+      default "-1";
+      config false;
+      max-elements 3;
+      description
+        "Source: SFF-8690. Minimum laser wavelength in pico meter, -1 = not applicable, 0 = not known, if (wavelengthMin==wavelengthMax): wavelength cannot be configured; multiplicity=0..3 for 10GBASE-LX4 according to 802.3 53.5. Value to be read from the EPROM of the SFP.";
+    }
+    leaf-list wavelength-max-list {
+      type int32;
+      units "pm";
+      default "-1";
+      config false;
+      max-elements 3;
+      description
+        "Source: SFF-8690. Maximum laser wavelength in pico meter, -1 = not applicable, 0 = not known, if (wavelengthMax==wavelengthMin): wavelength cannot be configured; multiplicity=0..3 for 10GBASE-LX4 according to 802.3 53.5. Value to be read from the EPROM of the SFP.";
+    }
+    leaf wavelength-grid-min {
+      type int32;
+      units "pm";
+      default "-1";
+      config false;
+      description
+        "Source: SFF-8690. Minimum grid spacing supported by the transceiver, -1 = not applicable, 0 = not known";
+    }
+    leaf short-reach-mode-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Indicates that Short Reach Mode for 10GBASE-T according to 802.3 45.2.1.64 is available";
+    }
+    leaf eee-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Indicates that Energy-Efficient Ethernet (EEE) is available at the device.";
+    }
+    leaf unidirectional-operation-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "Source: 802.3. 1 = Medium Attachment Unit (MAU) able to transmit from Media Independent Interface (MII) regardless of whether the MAU has determined that a valid link has been established, 0 = MAU able to transmit from MII only when the MAU has determined that a valid link has been established";
+    }
+    leaf rxlevel-low-threshold {
+      type int8;
+      units "dBm";
+      default "99";
+      config false;
+      description
+        "Threshold for alarming low RX levels. Value pre-defined by SFP manufacturer (SFF- 8472)";
+    }
+    leaf rxlevel-high-threshold {
+      type int8;
+      units "dBm";
+      default "99";
+      config false;
+      description
+        "Threshold for alarming high RX levels. Value pre-defined by SFP manufacturer (SFF- 8472)";
+    }
+    leaf temperature-low-threshold {
+      type int8;
+      units "Celsius";
+      default "-99";
+      config false;
+      description
+        "Threshold for alarming low temperature values. Value pre-defined by SFP manufacturer (SFF- 8472)
+         Might move to somewhere in the Physical Segment of the Core IM";
+    }
+    leaf temperature-high-threshold {
+      type int8;
+      units "Celsius";
+      default "-99";
+      config false;
+      description
+        "Threshold for alarming high temperature values. Value pre-defined by SFP manufacturer (SFF- 8472)
+         Might move to somewhere in the Physical Segment of the Core IM";
+    }
+    leaf configuration-of-number-of-bip-errors-per-ses-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = SET operation on the Line SES threshold defined by aLineSESThreshold in 30.8.1.1.11 of 802.3-2015 is available.";
+    }
+    leaf admin-shut-down-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Manual switching on and off of the interface without deleting it (underlying OSI network layers are also not affected) is available.";
+    }
+    leaf isolation-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Separation of the PHY from higher network layers is supported by the device. Maintenance feature. Source: 802.3. ";
+    }
+    leaf-list supported-loop-back-kind-list {
+      type loop-back-type;
+      config false;
+      min-elements 1;
+      max-elements 5;
+      description
+        "Source: 802.3 45.2.1.12.1 PMA remote loopback ability. List of supported kinds of looping back of header information to the remote site.";
+    }
+    leaf maintenance-timer-range {
+      type string;
+      default "Range of the maintenance timer not yet defined.";
+      config false;
+      description
+        "Available time periods for maintenance configurations (e.g. the loop back) to be described. Concrete values shall be separated by commas (e.g. '10, 60, 360'). Ranges shall be expressed as two values separated by a minus (e.g. '10-360').";
+    }
+    leaf-list supported-alarm-list {
+      type string;
+      config false;
+      min-elements 1;
+      description
+        "Available alarms to be listed. Mandatory: 'rxLos'. Optional: 'txFault', 'tempHigh', 'tempLow', 'rxLevelHigh', 'rxLevelLow', 'vccHigh', 'vccLow', 'txBiasHigh', 'txBiasLow', 'txPowerHigh', 'txPowerLow', 'laserTempHigh', 'laserTempLow', 'tecCurrentHigh', 'tecCurrentLow'. Further alarms might be added by the device.";
+    }
+    leaf performance-monitoring-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Collection and aggregation of performance values is available.";
+    }
+    description
+      "none";
+  }
+
+  grouping wire-interface-configuration {
+    leaf interface-name {
+      type string;
+      default "Interface name not yet defined.";
+      description
+        "Description of the interface, could be a name, could be a number. Free text field to be filled by the operator.";
+    }
+    leaf interface-is-on {
+      type boolean;
+      default "false";
+      description
+        "Source: 802.3 according 30.3.2.2.1 acPhyAdminControl. 1 = Activation of the interface (it gets powered and can be managed even if the transceiver is not yet transmitting or receiving). In case there is no Medium Attachment Unit (MAU) (e.g. no SFP in the cage) SETting (interfaceIsOn=1) must be ignored and GETing must return (interfaceIsOn=0)";
+    }
+    leaf remote-wire-interface-name {
+      type string;
+      default "Remote wire interface name not yet defined.";
+      description
+        "Text field for defining the wire interface this one is connected with. Ideally used for entering unique numbers or names for unambiguously identifying the connection within the network";
+    }
+    leaf-list transceiver-is-on-list {
+      type boolean;
+      default "false";
+      max-elements 11;
+      description
+        "Source: 802.3 45.2.1.8 PMD transmit disable register (Register 1.9). 1 = Activation of the transmitter and receiver (e.g. laser) of the PHY; transceiverIsOnList[0]:total interface; transceiverIsOnList[1..10] different lanes of a multilane Medium Attachment Unit (MAU)";
+    }
+    leaf auto-pmd-negotiation-is-on {
+      type boolean;
+      default "false";
+      description
+        "Only relevant if (autoPmdNegotiationIsAvail == 1). 1 = Auto-negotiation is switched on";
+    }
+    leaf fixed-pmd-kind {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol/wire-interface:wire-interface-pac/wire-interface:wire-interface-capability/wire-interface:supported-pmd-kind-list/wire-interface:pmd-name";
+        require-instance false;
+      }
+      must 'boolean(/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol/wire-interface:wire-interface-pac/wire-interface:wire-interface-capability/wire-interface:supported-pmd-kind-list[pmd-name=current()])';
+      description
+        "If (autoPmdNegotiationIsOn==0) : Configuration of the concrete kind of Physical Medium Dependent (PMD). If (autoNegotiationIsOn=1) value of this field becomes irrelevant";
+    }
+    leaf-list auto-negotiation-pmd-list {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol/wire-interface:wire-interface-pac/wire-interface:wire-interface-capability/wire-interface:supported-pmd-kind-list/wire-interface:pmd-name";
+        require-instance false;
+      }
+      must 'boolean(/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol/wire-interface:wire-interface-pac/wire-interface:wire-interface-capability/wire-interface:supported-pmd-kind-list[pmd-name=current()])';
+      description
+        "If (autoPmdNegotiationIsOn==1) AND (autoNegotiationPmdSelectionIsAvail==1), this list defines the selection of PMDs the automated negotiation process is allowed to choose from. If no entry, the automated negotiation process is allowed to choose from all available PMDs.";
+    }
+    leaf auto-signal-ordering-is-on {
+      type boolean;
+      default "false";
+      description
+        "Only relevant if (autoSignalOrderingIsAvail == 1). 1 = e.g. auto-MDI-X is switched on";
+    }
+    leaf fixed-signal-ordering-kind {
+      type signal-ordering-kind-type;
+      default "SIGNAL_ORDERING_KIND_TYPE_NOT_YET_DEFINED";
+      description
+        "If (autoSignalOrderingIsOn==0) configuration of the concrete kind of signal ordering on the media (e.g. MDI, or MDI-X). If (autoSignalOrderingIsOn=1) value of this field becomes irrelevant";
+    }
+    leaf-list wavelength-list {
+      type int32;
+      units "pm";
+      default "-1";
+      max-elements 3;
+      description
+        "Source: SFF-8690. Wavelength of the signal of laser in pico meter; multiplicity=0..3 for 10GBASE-LX4 according to 802.3 53.5";
+    }
+    leaf rx-sync-preference {
+      type rx-sync-preference-type;
+      default "RX_SYNC_PREFERENCE_TYPE_NOT_YET_DEFINED";
+      description
+        "Source: 802.3. Only relevant if (configurationOfRxSyncPreferenceIsAvail == 1). Configuration of the behavior during the negotiation of the wire interface (master), which is sending a continuous stream of symbols for the remote site (slave) to synchronize its receiver on it. This attribute is for synchronizing transmitter and receiver and has nothing to do with clock signals.";
+    }
+    leaf short-reach-mode-is-on {
+      type boolean;
+      default "false";
+      description
+        "Only relevant if (shortReachModeIsAvail == 1). Activation of the Short Reach Mode for 10GBASE-T according to 802.3 45.2.1.64";
+    }
+    leaf eee-is-on {
+      type boolean;
+      default "false";
+      description
+        "Only relevant if (eeeIsAvail == 1). 1 = Energy Efficient Ethernet is activated\n";
+    }
+    leaf unidirectional-operation-is-on {
+      type boolean;
+      default "false";
+      description
+        "Source: 802.3. Only relevant if (unidirectionalOperationIsAvail == 1). 1 = Enable transmit from media independent interface regardless of whether the PHY has determined that a valid link has been established, 0 = Enable transmit from media independent interface only when the PHY has determined that a valid link has been established";
+    }
+    leaf number-of-bip-errors-per-ses {
+      type int16;
+      default "-1";
+      description
+        "Only relevant if (configurationOfNumberOfBipErrorsPerSesIsAvail == 1). SET operation on the Line SES threshold defined by aLineSESThreshold in 30.8.1.1.11 of 802.3-2015. This attribute configures the minimum number of BIP errors that have to occur in one second to count this second as a SES instead of an ES. According to 802.3, a value of 9835 should be the hardware default value, which should also apply after restarting the interface.";
+    }
+    leaf restart-pmd-negotiation-is-on {
+      type boolean;
+      default "false";
+      description
+        "Source: 802.3. Restarts the auto negotiation process";
+    }
+    leaf isolation-is-on {
+      type boolean;
+      default "false";
+      description
+        "Maintenance Feature. Only relevant if (isolationIsAvail == 1). Source: 802.3. 1 = Activation of the separation of the PHY from higher network layers. Maintenance feature.";
+    }
+    leaf loop-back-kind-on {
+      type loop-back-type;
+      default "LOOP_BACK_TYPE_NONE";
+      description
+        "Maintenance Feature. Source:802.3 according 22.2.4.1.2 Loopback. The currently configured type of looping back of the wire interface header shall be expressed here. The received header is returned to the remote site.";
+    }
+    leaf maintenance-timer {
+      type int32;
+      units "s";
+      default "-1";
+      description
+        "Time of existence of any maintenance configuration (e.g. the loop back). Valid values are defined in WireInterface::WireInterfaceCapability::maintenanceTimerRange. In case the hardware would implement just a single timer for maintenance at all kinds and instances of interfaces, this attribute should affect this single timer.";
+    }
+    list problem-kind-severity-list {
+      key "problem-kind-name";
+      min-elements 1;
+      uses problem-kind-severity-type;
+      description
+        "Severity of the problem to be configured.";
+    }
+    leaf performance-monitoring-is-on {
+      type boolean;
+      default "false";
+      description
+        "Only relevant if (performanceMonitoringIsAvail==1). 1 = Collection and aggregation of performance values is switched on.";
+    }
+    description
+      "none";
+  }
+
+  grouping wire-interface-status {
+    leaf interface-status {
+      type interface-status-type;
+      default "INTERFACE_STATUS_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "Source: 802.3 according 30.3.2.1.7 aPhyAdminState. 1 = A Physical layer entity (PHY) exists (including Medium Attachment Unit (e.g. SFP) ) and it is powered and can be managed";
+    }
+    leaf-list receive-signal-is-detected-list {
+      type boolean;
+      default "false";
+      config false;
+      max-elements 11;
+      description
+        "Source: 802.3 45.2.1.9 PMD receive signal detect. 1 = Receiver (e.g. laser) detects signal; receiveSignalIsDetected[0]:total interface; receiveSignalIsDetected[1..10] different lanes of a multilane Medium Attachment Unit (MAU)";
+    }
+    leaf pmd-negotiation-state {
+      type pmd-negotiation-state-type;
+      default "PMD_NEGOTIATION_STATE_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "Source: 802.3. Status of the Physical Medium Dependent (PMD) negotiation process (auto-neg)";
+    }
+    leaf pmd-is-up {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "Source: Inverse of 802.3 45.2.1.2.3 Fault (1.1.7). If (interfaceIsUp==1) BUT (pmdIsUp==0) : there is a fault in either transmit or receive path";
+    }
+    leaf pmd-kind-cur {
+      type leafref {
+        path "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol/wire-interface:wire-interface-pac/wire-interface:wire-interface-capability/wire-interface:supported-pmd-kind-list/wire-interface:pmd-name";
+        require-instance false;
+      }
+      config false;
+      description
+        "Indicates the kind of Physical Medium Dependent (PMD) currently operated at this interface";
+    }
+    leaf signal-ordering-kind-cur {
+      type signal-ordering-kind-type;
+      default "SIGNAL_ORDERING_KIND_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "Reference on a SignalOrderingType for expressing the currently active way of ordering the signals on the physical medium.";
+    }
+    leaf rx-sync-role {
+      type rx-sync-role-type;
+      default "RX_SYNC_ROLE_TYPE_NOT_YET_DEFINED";
+      config false;
+      description
+        "Indicates the result of the negotiation of the wire interface (master), which is sending a continuous stream of symbols for the remote site (slave) synchronizing its receiver on it";
+    }
+    leaf eee-is-up {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Energy Efficient Ethernet is supported at both ends of the link and it is activated";
+    }
+    leaf link-is-up {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "If (transceiverIsUp==1) AND (linkIsUp==1) : communication is established to the remote site";
+    }
+    leaf link-is-idle {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "If (linkIsUp==1) AND (eeeIsAvail==1) AND (eeeIsOn==1) AND (linkIsIdle==1) : link is currently in idle mode. If Energy Efficient Ethernet is not supported or switched off, this attribute must be 0.";
+    }
+    leaf loop-back-kind-up {
+      type loop-back-type;
+      default "LOOP_BACK_TYPE_NONE";
+      config false;
+      description
+        "The currently active (not just configured) type of looping back of the wire interface header shall be expressed here. The received header is returned to the remote site.";
+    }
+    leaf tx-level-cur {
+      type int8;
+      units "dBm";
+      default "99";
+      config false;
+      description
+        "Current transmit power";
+    }
+    leaf-list rx-level-cur-list {
+      type int8;
+      units "dBm";
+      default "99";
+      config false;
+      max-elements 4;
+      description
+        "Current receive power; Also used for receive signal power measured at the Medium Dependent Interface (MDI) of 10GBASE-T during training as described in 802.3 55.4.3.1";
+    }
+    leaf performance-monitoring-is-up {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = Performance values are currently collected and aggregated.";
+    }
+    description
+      "none";
+  }
+
+  grouping wire-interface-current-problems {
+    list current-problem-list {
+      key "sequence-number";
+      config false;
+      uses wire-interface-current-problem-type;
+      description
+        "none";
+    }
+    leaf number-of-current-problems {
+      type int8;
+      default "-1";
+      config false;
+      description
+        "Number of alarms, which are currently active on this interface.";
+    }
+    leaf time-of-latest-change {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "Date and time when the list of alarms has been changed for the last time.";
+    }
+    description
+      "none";
+  }
+
+  grouping wire-interface-current-performance {
+    list current-performance-data-list {
+      key "granularity-period";
+      config false;
+      min-elements 1;
+      max-elements 2;
+      uses wire-interface-current-performance-type;
+      description
+        "At least values of the counters, which are reset every 15 minutes, are to be provided. If available, the current values of the counters, which are reset every 24 hour, can be provided, too.";
+    }
+    leaf number-of-current-performance-sets {
+      type int8;
+      default "-1";
+      config false;
+      description
+        "Number of sets of current performance values, which are provided in the list.";
+    }
+    description
+      "Aggregated performance information of the air interface at a particular moment.";
+  }
+
+  grouping wire-interface-historical-performances {
+    list historical-performance-data-list {
+      key "granularity-period period-end-time";
+      config false;
+      uses wire-interface-historical-performance-type;
+      description
+        "none";
+    }
+    leaf number-of-historical-performance-sets {
+      type int16;
+      default "-1";
+      config false;
+      description
+        "Number of sets of historical performance values, which are provided in the list.";
+    }
+    leaf time-of-latest-change {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "Date and time when the list of sets of historical performance values has been changed for the last time (e.g. new one added or existing one deleted).";
+    }
+    description
+      "Aggregated performance information of the air interface for a pre-defined measurement interval.";
+  }
+
+  grouping pmd-kind {
+    leaf pmd-name {
+      type string;
+      config false;
+      description
+        "To be chosen from the following list of PMD names according to IEEE 802.3 '10BASE5', 'FOIRL', '10BASE2', '10BROAD36', '10BASE-T', '10BASE-FP', '10BASE-FB', '10BASE-FL', '100BASE-T4', '100BASE-TX', '100BASE-BX10D', '100BASE-BX10U', '100BASE-FX', '100BASE-LX10', '100BASE-T2', '1000BASE-X', '1000BASE-BX10D', '1000BASE-BX10U', '1000BASE-LX', '1000BASE-LX10', '1000BASE-SX', '1000BASE-CX', '1000BASE-KX', '1000BASE-T', '10GBASE-X', '10GBASE-LX4', '10GBASE-KX4', '10GBASE-R', '10GBASE-ER', '10GBASE-LR', '10GBASE-SR', '10GBASE-LRM', '10GBASE-KR', '10GBASE-T', '10GBASE-PR-D1', '10GBASE-PR-D2', '10GBASE-PR-D3', '10GBASE-PR-D4', '10GBASE-PR-U1', '10GBASE-PR-U2', '10GBASE-PR-U3', '10GBASE-PR-U4', '40GBASE-R', '40GBASE-KR4', '40GBASE-CR4', '40GBASE-SR4', '4x10GBASE-SR', '40GBASE-LR4', '40GBASE-ER4', '40GBASE-FR', '100GBASE-R', '100GBASE-CR4', '100GBASE-KR4', '100GBASE-KP4', '100GBASE-CR10', '100GBASE-SR4', '100GBASE-SR10', '2x40GBASE-SR', '10x10GBASE-SR', '12x10GBASE-SR', '100GBASE-LR4', '100GBASE-ER4' and 'NOT_YET_DEFINED'. Some PMDs are distinguishing Full Duplex and Half Duplex. '_FD' and '_HD' are to be attached to the respective PMD name accordingly.";
+    }
+    leaf speed {
+      type string;
+      default "NOT_YET_DEFINED";
+      description
+        "Line speed of the PMD. Value to be chosen from '2Mbit/s', '10Mbit/s', '100Mbit/s', '1000Mbit/s', '10Gbit/s', '40Gbit/s', '100Gbit/s' or 'NOT_YET_DEFINED'. This field is not for calculation purposes, but for supporting selection of the correct PMD on application layer.";
+    }
+    leaf duplex {
+      type duplex-type;
+      default "DUPLEX_TYPE_NOT_YET_DEFINED";
+      description
+        "To be expressed, whether the PMD is full duplex or just half duplex. This field is not for configuration purposes, but for supporting selection of the correct PMD on application layer.";
+    }
+    description
+      "none";
+  }
+
+  /****************************************
+   * typedef statements
+   **************************************/ 
+
+  typedef loop-back-type {
+    type identityref {
+      base LOOP_BACK_TYPE;
+    }
+    description
+      "none";
+  }
+
+  typedef rx-sync-preference-type {
+    type identityref {
+      base RX_SYNC_PREFERENCE_TYPE;
+    }
+    description
+      "none";
+  }
+
+  typedef rx-sync-role-type {
+    type identityref {
+      base RX_SYNC_ROLE_TYPE;
+    }
+    description
+      "none";
+  }
+
+  typedef mii-kind-type {
+    type identityref {
+      base MII_KIND_TYPE;
+    }
+    description
+      "none";
+  }
+
+  typedef mdi-kind-type {
+    type identityref {
+      base MDI_KIND_TYPE;
+    }
+    description
+      "none";
+  }
+
+  typedef medium-kind-type {
+    type identityref {
+      base MEDIUM_KIND_TYPE;
+    }
+    description
+      "none";
+  }
+
+  typedef duplex-type {
+    type identityref {
+      base DUPLEX_TYPE;
+    }
+    description
+      "none";
+  }
+
+  typedef signal-ordering-kind-type {
+    type identityref {
+      base SIGNAL_ORDERING_KIND_TYPE;
+    }
+    description
+      "none";
+  }
+
+  typedef pmd-negotiation-state-type {
+    type identityref {
+      base PMD_NEGOTIATION_STATE_TYPE;
+    }
+    description
+      "none";
+  }
+
+  /*********************************************
+   * grouping statements for complex data types
+   *******************************************/ 
+
+  identity LOOP_BACK_TYPE {
+    description
+      "none";
+  }
+
+  identity LOOP_BACK_TYPE_NONE {
+    base LOOP_BACK_TYPE;
+    description
+      "none";
+  }
+
+  identity LOOP_BACK_TYPE_EXTERNAL {
+    base LOOP_BACK_TYPE;
+    description
+      "Parameter
+       If the internal loopback test succeeds but the external loopback fails, the Medium Attachment Unit (MAU) is faulty (e.g. SFP has to be replaced)";
+  }
+
+  identity LOOP_BACK_TYPE_INTERNAL {
+    base LOOP_BACK_TYPE;
+    description
+      "Parameter
+       If the internal loopback test fails, the Data Terminal Equipment (DTE) is faulty (e.g. board has to be replaced)";
+  }
+
+  identity LOOP_BACK_TYPE_NOT_YET_DEFINED {
+    base LOOP_BACK_TYPE;
+    description
+      "none";
+  }
+
+  identity RX_SYNC_PREFERENCE_TYPE {
+    description
+      "none";
+  }
+
+  identity RX_SYNC_PREFERENCE_TYPE_AUTO_MULTIPORT_DEVICE {
+    base RX_SYNC_PREFERENCE_TYPE;
+    description
+      "Master/Slave relation is determined by auto-negotiation and this device has a preference for being Master";
+  }
+
+  identity RX_SYNC_PREFERENCE_TYPE_AUTO_SINGLE_PORT_DEVICE {
+    base RX_SYNC_PREFERENCE_TYPE;
+    description
+      "Master/Slave relation is determined by auto-negotiation and this device has a preference for being Slave";
+  }
+
+  identity RX_SYNC_PREFERENCE_TYPE_MANUAL_MASTER {
+    base RX_SYNC_PREFERENCE_TYPE;
+    description
+      "Master/Slave relation is determined by manual configuration and this device shall be Master";
+  }
+
+  identity RX_SYNC_PREFERENCE_TYPE_MANUAL_SLAVE {
+    base RX_SYNC_PREFERENCE_TYPE;
+    description
+      "Master/Slave relation is determined by manual configuration and this device shall be Slave";
+  }
+
+  identity RX_SYNC_PREFERENCE_TYPE_NOT_YET_DEFINED {
+    base RX_SYNC_PREFERENCE_TYPE;
+    description
+      "none";
+  }
+
+  identity RX_SYNC_ROLE_TYPE {
+    description
+      "none";
+  }
+
+  identity RX_SYNC_ROLE_TYPE_MASTER {
+    base RX_SYNC_ROLE_TYPE;
+    description
+      "none";
+  }
+
+  identity RX_SYNC_ROLE_TYPE_SLAVE {
+    base RX_SYNC_ROLE_TYPE;
+    description
+      "none";
+  }
+
+  identity RX_SYNC_ROLE_TYPE_FAULT {
+    base RX_SYNC_ROLE_TYPE;
+    description
+      "none";
+  }
+
+  identity RX_SYNC_ROLE_TYPE_NOT_YET_DEFINED {
+    base RX_SYNC_ROLE_TYPE;
+    description
+      "none";
+  }
+
+  identity MII_KIND_TYPE {
+    description
+      "none";
+  }
+
+  identity MII_KIND_TYPE_GBIC {
+    base MII_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity MII_KIND_TYPE_SOLDERED_CONNECTOR {
+    base MII_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity MII_KIND_TYPE_SFP_SFP_PLUS_SFP28 {
+    base MII_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity MII_KIND_TYPE_XBI_300_PIN {
+    base MII_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity MII_KIND_TYPE_XENPAK {
+    base MII_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity MII_KIND_TYPE_XFP {
+    base MII_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity MII_KIND_TYPE_XFP_E {
+    base MII_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity MII_KIND_TYPE_XPAK {
+    base MII_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity MII_KIND_TYPE_X2 {
+    base MII_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity MII_KIND_TYPE_DWDM_SFP_SFP_PLUS {
+    base MII_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity MII_KIND_TYPE_QSFP {
+    base MII_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity MII_KIND_TYPE_QSFP_PLUS {
+    base MII_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity MII_KIND_TYPE_CXP {
+    base MII_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity MII_KIND_TYPE_SHIELDED_MINI_MULTILANE_HD_4X {
+    base MII_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity MII_KIND_TYPE_SHIELDED_MINI_MULTILANE_HD__X {
+    base MII_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity MII_KIND_TYPE_QSFP28 {
+    base MII_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity MII_KIND_TYPE_CXP2 {
+    base MII_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity MII_KIND_TYPE_CDFP_STYLE1_STYLE2 {
+    base MII_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity MII_KIND_TYPE_SHIELDED_MINI_MULTILANE_HD_4X_FAN_OUT {
+    base MII_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity MII_KIND_TYPE_SHIELDED_MINI_MULTILANE_HD_8X_FAN_OUT {
+    base MII_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity MII_KIND_TYPE_CDFP_STYLE3 {
+    base MII_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity MII_KIND_TYPE_QSFP_MICRO {
+    base MII_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity MII_KIND_TYPE_QSFP_DD {
+    base MII_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity MII_KIND_TYPE_QSFP_PLUS_RATE_SELECT_V1 {
+    base MII_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity MII_KIND_TYPE_QSFP_PLUS_RATE_SELECT_V2 {
+    base MII_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity MII_KIND_TYPE_NOT_YET_DEFINED {
+    base MII_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity MDI_KIND_TYPE {
+    description
+      "none";
+  }
+
+  identity MDI_KIND_TYPE_SC {
+    base MDI_KIND_TYPE;
+    description
+      "Subscriber Connector";
+  }
+
+  identity MDI_KIND_TYPE_FIBRE_CHANNEL_STYLE_1 {
+    base MDI_KIND_TYPE;
+    description
+      "Copper connector";
+  }
+
+  identity MDI_KIND_TYPE_FIBRE_CHANNEL_STYLE_2 {
+    base MDI_KIND_TYPE;
+    description
+      "Copper connector";
+  }
+
+  identity MDI_KIND_TYPE_BNC_TNC {
+    base MDI_KIND_TYPE;
+    description
+      "Bayonet/Threaded Neill-Concelman";
+  }
+
+  identity MDI_KIND_TYPE_FC {
+    base MDI_KIND_TYPE;
+    description
+      "Fibre Channel coax headers";
+  }
+
+  identity MDI_KIND_TYPE_FIBER_JACK {
+    base MDI_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity MDI_KIND_TYPE_LC {
+    base MDI_KIND_TYPE;
+    description
+      "Lucent Connector";
+  }
+
+  identity MDI_KIND_TYPE_MT_RJ {
+    base MDI_KIND_TYPE;
+    description
+      "Mechanical Transfer - Registered Jack";
+  }
+
+  identity MDI_KIND_TYPE_MU {
+    base MDI_KIND_TYPE;
+    description
+      "Multiple Optical";
+  }
+
+  identity MDI_KIND_TYPE_SG {
+    base MDI_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity MDI_KIND_TYPE_OPTICAL_PIGTAIL {
+    base MDI_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity MDI_KIND_TYPE_MPO1x12 {
+    base MDI_KIND_TYPE;
+    description
+      "Multifiber Parallel Optic";
+  }
+
+  identity MDI_KIND_TYPE_MPO2x16 {
+    base MDI_KIND_TYPE;
+    description
+      "Multifiber Parallel Optic";
+  }
+
+  identity MDI_KIND_TYPE_HSSDC_II {
+    base MDI_KIND_TYPE;
+    description
+      "High Speed Serial Data Connector";
+  }
+
+  identity MDI_KIND_TYPE_COPPER_PIGTAIL {
+    base MDI_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity MDI_KIND_TYPE_RJ45 {
+    base MDI_KIND_TYPE;
+    description
+      "8P8C, according to Clause 3 and Figures 1 through 5 of IEC 60603-7";
+  }
+
+  identity MDI_KIND_TYPE_NO_SEPERABLE_CONNECTOR {
+    base MDI_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity MDI_KIND_TYPE_MXC2x16 {
+    base MDI_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity MDI_KIND_TYPE_ST {
+    base MDI_KIND_TYPE;
+    description
+      "according to IEC 60874-10:1992, also often called BFOC/2.5";
+  }
+
+  identity MDI_KIND_TYPE_NOT_YET_DEFINED {
+    base MDI_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity MEDIUM_KIND_TYPE {
+    description
+      "none";
+  }
+
+  identity MEDIUM_KIND_TYPE_TP_CAT3 {
+    base MEDIUM_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity MEDIUM_KIND_TYPE_TP_CAT5 {
+    base MEDIUM_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity MEDIUM_KIND_TYPE_TP_CAT6 {
+    base MEDIUM_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity MEDIUM_KIND_TYPE_TP_CAT8 {
+    base MEDIUM_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity MEDIUM_KIND_TYPE_SINGLE_MODE {
+    base MEDIUM_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity MEDIUM_KIND_TYPE_MULTI_MODE {
+    base MEDIUM_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity MEDIUM_KIND_TYPE_NOT_YET_DEFINED {
+    base MEDIUM_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity DUPLEX_TYPE {
+    description
+      "none";
+  }
+
+  identity DUPLEX_TYPE_HALF_DUPLEX {
+    base DUPLEX_TYPE;
+    description
+      "none";
+  }
+
+  identity DUPLEX_TYPE_FULL_DUPLEX {
+    base DUPLEX_TYPE;
+    description
+      "none";
+  }
+
+  identity DUPLEX_TYPE_NOT_YET_DEFINED {
+    base DUPLEX_TYPE;
+    description
+      "none";
+  }
+
+  identity SIGNAL_ORDERING_KIND_TYPE {
+    description
+      "none";
+  }
+
+  identity SIGNAL_ORDERING_KIND_TYPE_MDI {
+    base SIGNAL_ORDERING_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity SIGNAL_ORDERING_KIND_TYPE_MDI_X {
+    base SIGNAL_ORDERING_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity SIGNAL_ORDERING_KIND_TYPE_NOT_YET_DEFINED {
+    base SIGNAL_ORDERING_KIND_TYPE;
+    description
+      "none";
+  }
+
+  identity PMD_NEGOTIATION_STATE_TYPE {
+    description
+      "none";
+  }
+
+  identity PMD_NEGOTIATION_STATE_TYPE_NONE {
+    base PMD_NEGOTIATION_STATE_TYPE;
+    description
+      "Device does not support auto negotiation";
+  }
+
+  identity PMD_NEGOTIATION_STATE_TYPE_DISABLED {
+    base PMD_NEGOTIATION_STATE_TYPE;
+    description
+      "Auto negotiation is disabled.";
+  }
+
+  identity PMD_NEGOTIATION_STATE_TYPE_ENABLED {
+    base PMD_NEGOTIATION_STATE_TYPE;
+    description
+      "Auto negotiation is enabled, but currently nothing is connected";
+  }
+
+  identity PMD_NEGOTIATION_STATE_TYPE_IN_PROGRESS {
+    base PMD_NEGOTIATION_STATE_TYPE;
+    description
+      "The auto-negotiation protocol is running and negotiation is currently in-progress";
+  }
+
+  identity PMD_NEGOTIATION_STATE_TYPE_COMPLETE {
+    base PMD_NEGOTIATION_STATE_TYPE;
+    description
+      "The auto-negotation protocol has completed successfully";
+  }
+
+  identity PMD_NEGOTIATION_STATE_TYPE_FAILED {
+    base PMD_NEGOTIATION_STATE_TYPE;
+    description
+      "The auto-negotation protocol has failed";
+  }
+
+  identity PMD_NEGOTIATION_STATE_TYPE_NOT_YET_DEFINED {
+    base PMD_NEGOTIATION_STATE_TYPE;
+    description
+      "Device supports autonegotiation, but state is currently unknown, e.g. because device just booted";
+  }
+
+  identity GRANULARITY_PERIOD_TYPE {
+    description
+      "none";
+  }
+
+  identity GRANULARITY_PERIOD_TYPE_UNKNOWN {
+    base GRANULARITY_PERIOD_TYPE;
+    description
+      "none";
+  }
+
+  identity GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN {
+    base GRANULARITY_PERIOD_TYPE;
+    description
+      "none";
+  }
+
+  identity GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS {
+    base GRANULARITY_PERIOD_TYPE;
+    description
+      "none";
+  }
+
+  identity GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED {
+    base GRANULARITY_PERIOD_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE {
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_NON_ALARMED {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_WARNING {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_MINOR {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_MAJOR {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_CRITICAL {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity SEVERITY_TYPE_NOT_YET_DEFINED {
+    base SEVERITY_TYPE;
+    description
+      "none";
+  }
+
+  identity INTERFACE_STATUS_TYPE {
+    description
+      "none";
+  }
+
+  identity INTERFACE_STATUS_TYPE_UP {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Ready to pass packets.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_DOWN {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "The interface does not pass any packets.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_TESTING {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "In some test mode.  No operational packets can be passed.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_UNKNOWN {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Status cannot be determined for some reason.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_DORMANT {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Waiting for some external event.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_NOT_PRESENT {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Some component (typically hardware) is missing.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Down due to state of lower-layer interface(s).";
+  }
+
+  identity INTERFACE_STATUS_TYPE_ADMIN_DOWN {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "Down due to configuration.";
+  }
+
+  identity INTERFACE_STATUS_TYPE_NOT_YET_DEFINED {
+    base INTERFACE_STATUS_TYPE;
+    description
+      "none";
+  }
+
+  /****************************************
+   * package super-types
+   **************************************/ 
+
+  typedef granularity-period-type {
+    type identityref {
+      base GRANULARITY_PERIOD_TYPE;
+    }
+    description
+      "The enumeration with the options for granularity period of the performance data.";
+  }
+
+  typedef severity-type {
+    type identityref {
+      base SEVERITY_TYPE;
+    }
+    description
+      "According to ITU-T M.3160";
+  }
+
+  typedef interface-status-type {
+    type identityref {
+      base INTERFACE_STATUS_TYPE;
+    }
+    description
+      "Current Interface Status";
+  }
+
+  grouping problem-kind-severity-type {
+    leaf problem-kind-name {
+      type string;
+      description
+        "Name of the alarm according to supportedAlarmList";
+    }
+    leaf problem-kind-severity {
+      type severity-type;
+      default "SEVERITY_TYPE_NOT_YET_DEFINED";
+      description
+        "Severity of this type of alarm.";
+    }
+    description
+      "none";
+  }
+
+  grouping wire-interface-current-problem-type {
+    leaf problem-name {
+      type string;
+      default "Problem name not specified.";
+      config false;
+      description
+        "Name of the alarm according to supportedAlarmList attribute in MauType datatype";
+    }
+    uses current-problem;
+    description
+      "none";
+  }
+
+  grouping wire-interface-performance-type {
+    leaf es {
+      type int32;
+      units "s";
+      default "-1";
+      config false;
+      description
+        "Number of errored seconds according to 802.3 30.8.1.1.13 aLineESs";
+    }
+    leaf ses {
+      type int32;
+      units "s";
+      default "-1";
+      config false;
+      description
+        "Number of severely errored seconds according to 802.3 30.8.1.1.12 aLineSESs";
+    }
+    leaf symbol-error-during-carrier {
+      type int32;
+      units "symbol";
+      default "-1";
+      config false;
+      description
+        "Source: 802.3 according to 30.3.2.1.5 aSymbolErrorDuringCarrier. Number of times when valid carrier was present and an invalid data symbol occured.";
+    }
+    leaf low-power-idle-transmitter-ms {
+      type int32;
+      units "ms";
+      default "-1";
+      config false;
+      description
+        "Source: 802.3 similar to 30.3.2.1.8 aTransmitLPIMicroseconds. Number of milliseconds (original counter expresses microseconds), during which the transmitter was in power save mode";
+    }
+    leaf low-power-idle-receiver-ms {
+      type int32;
+      units "ms";
+      default "-1";
+      config false;
+      description
+        "Source: 802.3 similar to 30.3.2.1.9 aReceiveLPIMicroseconds. Number of milliseconds (original counter expresses microseconds), during which the receiver was in power save mode";
+    }
+    description
+      "none";
+  }
+
+  grouping wire-interface-current-performance-type {
+    container performance-data {
+      config false;
+      uses wire-interface-performance-type;
+      description
+        "none";
+    }
+    uses current-performance;
+    description
+      "Turns performance information into current performance information by inheriting from OTN_CurrentData.";
+  }
+
+  grouping wire-interface-historical-performance-type {
+    container performance-data {
+      config false;
+      uses wire-interface-performance-type;
+      description
+        "none";
+    }
+    uses historical-performance;
+    description
+      "Turns performance information into historical performance information by inheriting from OTN_HistoryData.";
+  }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/wred-profile-1-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/wred-profile-1-0.yang
new file mode 100644
index 0000000..2b9dd85
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/wred-profile-1-0.yang
@@ -0,0 +1,279 @@
+module wred-profile-1-0 {
+  yang-version 1.1;
+  namespace "urn:onf:yang:wred-profile-1-0";
+  prefix wred-profile;
+
+  import ietf-yang-types {
+    prefix yang;
+  }
+  import core-model-1-4 {
+    prefix core-model;
+  }
+
+  organization
+    "openBackhaul.com proposal to Open Networking Foundation (ONF)";
+  contact
+    "WG Web : https://github.com/openBackhaul/Overview
+     WG List: WredProfile@openBackhaul.com
+     Editor : Thorsten Heinze
+     Email  : Thorsten.Heinze@openBackhaul.com";
+  description
+    "Technology specific definition for WRED (Weighted Random Early Detection) profiles that can be referenced by multiple interface instances.
+
+     Copyright 2019 openBackhaul.com
+
+     Licensed under the Apache License, Version 2.0 (the 'License');
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+     http://www.apache.org/licenses/LICENSE-2.0
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an 'AS IS' BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.";
+
+  revision 2020-01-24 {
+    description
+      "Model for the Transport SDN Pilot at Telefonica Germany.
+       Please view https://github.com/openBackhaul/wredProfile/issues for changes.";
+    reference
+      "https://github.com/openBackhaul/wredProfile/tree/tsp: Model definition
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+  }
+  revision 2019-07-12 {
+    description
+      "Model for the Transport SDN Pilot at Telefonica Germany.
+       Please view https://github.com/openBackhaul/wredProfile/issues for changes.";
+    reference
+      "https://github.com/openBackhaul/wredProfile/tree/tsp: Model definition
+       https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+  }
+
+  identity PROFILE_NAME_TYPE_WRED_PROFILE {
+    base core-model:PROFILE_NAME_TYPE;
+    description
+      "none";
+  }
+
+  augment "/core-model:control-construct/core-model:profile-collection/core-model:profile" {
+    when "derived-from-or-self(./core-model:profile-name, 'wred-profile:PROFILE_NAME_TYPE_WRED_PROFILE')";
+    uses wred-profile-spec;
+    description
+      "none";
+  }
+
+  /****************************************
+   * package notifications
+   **************************************/ 
+
+  notification object-creation-notification {
+    uses object-creation-notification;
+    description
+      "none";
+  }
+
+  grouping object-creation-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts object creation notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:profile-collection/core-model:profile/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    leaf object-type {
+      type string;
+      default "Type of created object not specified.";
+      config false;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  notification object-deletion-notification {
+    uses object-deletion-notification;
+    description
+      "none";
+  }
+
+  grouping object-deletion-notification {
+    leaf counter {
+      type int32;
+      default "-1";
+      config false;
+      description
+        "Counts object deletion notifications.";
+    }
+    leaf timestamp {
+      type yang:date-and-time;
+      default "2010-11-20T14:00:00+01:00";
+      config false;
+      description
+        "none";
+    }
+    leaf object-id-ref {
+      type leafref {
+        path "/core-model:control-construct/core-model:profile-collection/core-model:profile/core-model:uuid";
+        require-instance false;
+      }
+      config false;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  /****************************************
+   * grouping statements for object classes
+   **************************************/ 
+
+  grouping wred-profile-spec {
+    container wred-profile-pac {
+      uses wred-profile-pac;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  grouping wred-profile-pac {
+    container wred-profile-capability {
+      config false;
+      uses wred-profile-capability;
+      description
+        "none";
+    }
+    container wred-profile-configuration {
+      uses wred-profile-configuration;
+      description
+        "none";
+    }
+    description
+      "none";
+  }
+
+  grouping wred-profile-capability {
+    leaf available-buffer-size {
+      type int32;
+      units "Byte";
+      default "-1";
+      config false;
+      description
+        "Maximum value that could be configured as thresholdHigh in Byte.";
+    }
+    leaf drop-probability-at-threshold-low-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = It is possible to set a drop probability at the lower threshold.";
+    }
+    leaf gentle-wred-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = The device allows activating a linear increase of drop probability between dropProbabilityAtThresholdHigh and 100% at thresholdGentle (usually drop probability jumps to 100% at thresholdHigh).";
+    }
+    leaf sensitivity-setting-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = It is possible to set the sensitivity for the burst size.";
+    }
+    leaf coloring-is-avail {
+      type boolean;
+      default "false";
+      config false;
+      description
+        "1 = The device allows marking exceeding packets yellow instead of immediately discarding them.";
+    }
+    description
+      "none";
+  }
+
+  grouping wred-profile-configuration {
+    leaf profile-name {
+      type string;
+      default "Name of profile not yet defined.";
+      description
+        "Identifier of the profile. Could be a name, could be a number. Free text field to be filled by the operator.";
+    }
+    leaf threshold-low {
+      type int32;
+      units "Byte";
+      default "-1";
+      description
+        "Defines the lower threshold in Byte. When average queue content is exceeding this value, packets start getting dropped. Probability of dropping is linear increasing until it reaches the value configured in dropProbabilityAtThresholdHigh when average queue content reaches thresholdHigh.";
+    }
+    leaf drop-probability-at-threshold-low {
+      type int8;
+      units "%";
+      default "-1";
+      description
+        "Only relevant if (dropProbabilityAtLowThresholdIsAvail==1). Defines the probability (as a percentage) of an incoming packet getting dropped when the content of the queue reaches the low threshold.";
+    }
+    leaf threshold-high {
+      type int32;
+      units "Byte";
+      default "-1";
+      description
+        "Defines the upper threshold in Byte.  When average queue content is reaching this value, incoming packets are dropped with the probability configured in dropProbabilityAtThresholdHigh. When average queue content is exceeding this value, all incoming packets get dropped.";
+    }
+    leaf drop-probability-at-threshold-high {
+      type int8;
+      units "%";
+      default "-1";
+      description
+        "Defines the probability (as a percentage) of an incoming packet getting dropped when the content of the queue reaches the upper threshold.";
+    }
+    leaf gentle-wred-is-on {
+      type boolean;
+      default "false";
+      description
+        "Only relevant if (gentleWredIsAvail==1). 1 = The drop probability is linear increasing between dropProbabilityAtThresholdHigh and 100% at thresholdGentle (otherwise drop probability jumps to 100% at thresholdHigh).";
+    }
+    leaf threshold-gentle {
+      type int32;
+      units "Byte";
+      default "-1";
+      description
+        "Only relevant if (gentleWredIsAvail==1) AND (gentleWredIsOn==1). Defines the 100% dropping threshold for gentle WRED in Byte.  When average queue content reaches or exceeds this value, incoming packets get dropped with 100% probability.";
+    }
+    leaf sensitivity {
+      type int8;
+      units "%";
+      default "-1";
+      description
+        "Only relevant if (sensitivitySettingIsAvail==1). Defines how sensitive WRED reacts on traffic burst. low values = WRED reacts quickly and is sensitive to short bursts. high values = WRED reacts slowly on short bursts, which could result in buffer overflow and tail drop. Values between 0 and 15.";
+    }
+    leaf coloring-is-on {
+      type boolean;
+      default "false";
+      description
+        "Only relevant if (colloringIsAvail==1). 1 = Exceeding packets are marked yellow instead of being immediately discarded.";
+    }
+    description
+      "none";
+  }
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/feature/pom.xml b/sdnr/wt/devicemanager-onap/openroadm/feature/pom.xml
index 099bf47..6c27a7a 100644
--- a/sdnr/wt/devicemanager-onap/openroadm/feature/pom.xml
+++ b/sdnr/wt/devicemanager-onap/openroadm/feature/pom.xml
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/devicemanager-onap/openroadm/installer/pom.xml b/sdnr/wt/devicemanager-onap/openroadm/installer/pom.xml
index af986ee..2e50844 100755
--- a/sdnr/wt/devicemanager-onap/openroadm/installer/pom.xml
+++ b/sdnr/wt/devicemanager-onap/openroadm/installer/pom.xml
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/devicemanager-onap/openroadm/model/pom.xml b/sdnr/wt/devicemanager-onap/openroadm/model/pom.xml
index e43ae11..99605ad 100644
--- a/sdnr/wt/devicemanager-onap/openroadm/model/pom.xml
+++ b/sdnr/wt/devicemanager-onap/openroadm/model/pom.xml
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/devicemanager-onap/openroadm/pom.xml b/sdnr/wt/devicemanager-onap/openroadm/pom.xml
index 2948117..264137c 100755
--- a/sdnr/wt/devicemanager-onap/openroadm/pom.xml
+++ b/sdnr/wt/devicemanager-onap/openroadm/pom.xml
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/pom.xml b/sdnr/wt/devicemanager-onap/openroadm/provider/pom.xml
index a771d6c..b73046f 100644
--- a/sdnr/wt/devicemanager-onap/openroadm/provider/pom.xml
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/pom.xml
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/devicemanager-onap/openroadm71/feature/pom.xml b/sdnr/wt/devicemanager-onap/openroadm71/feature/pom.xml
index 2002a25..f34e926 100644
--- a/sdnr/wt/devicemanager-onap/openroadm71/feature/pom.xml
+++ b/sdnr/wt/devicemanager-onap/openroadm71/feature/pom.xml
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/devicemanager-onap/openroadm71/installer/pom.xml b/sdnr/wt/devicemanager-onap/openroadm71/installer/pom.xml
index e87ea1b..b90ccdf 100755
--- a/sdnr/wt/devicemanager-onap/openroadm71/installer/pom.xml
+++ b/sdnr/wt/devicemanager-onap/openroadm71/installer/pom.xml
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/devicemanager-onap/openroadm71/model/pom.xml b/sdnr/wt/devicemanager-onap/openroadm71/model/pom.xml
index 0cd26f0..d7214b9 100644
--- a/sdnr/wt/devicemanager-onap/openroadm71/model/pom.xml
+++ b/sdnr/wt/devicemanager-onap/openroadm71/model/pom.xml
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/devicemanager-onap/openroadm71/pom.xml b/sdnr/wt/devicemanager-onap/openroadm71/pom.xml
index 1f73aed..5fe238f 100755
--- a/sdnr/wt/devicemanager-onap/openroadm71/pom.xml
+++ b/sdnr/wt/devicemanager-onap/openroadm71/pom.xml
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/devicemanager-onap/openroadm71/provider/pom.xml b/sdnr/wt/devicemanager-onap/openroadm71/provider/pom.xml
index add544c..823b08d 100644
--- a/sdnr/wt/devicemanager-onap/openroadm71/provider/pom.xml
+++ b/sdnr/wt/devicemanager-onap/openroadm71/provider/pom.xml
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/featureaggregator/feature-devicemanager-base/pom.xml b/sdnr/wt/featureaggregator/feature-devicemanager-base/pom.xml
index b00c0c2..11bd1a3 100644
--- a/sdnr/wt/featureaggregator/feature-devicemanager-base/pom.xml
+++ b/sdnr/wt/featureaggregator/feature-devicemanager-base/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/featureaggregator/feature-devicemanager/pom.xml b/sdnr/wt/featureaggregator/feature-devicemanager/pom.xml
index 8279f22..18b3c2e 100644
--- a/sdnr/wt/featureaggregator/feature-devicemanager/pom.xml
+++ b/sdnr/wt/featureaggregator/feature-devicemanager/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/featureaggregator/feature-oauth/pom.xml b/sdnr/wt/featureaggregator/feature-oauth/pom.xml
index f417d50..dfcb2dc 100644
--- a/sdnr/wt/featureaggregator/feature-oauth/pom.xml
+++ b/sdnr/wt/featureaggregator/feature-oauth/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/featureaggregator/feature/pom.xml b/sdnr/wt/featureaggregator/feature/pom.xml
index 38d1a88..2366a5d 100644
--- a/sdnr/wt/featureaggregator/feature/pom.xml
+++ b/sdnr/wt/featureaggregator/feature/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/featureaggregator/installer/pom.xml b/sdnr/wt/featureaggregator/installer/pom.xml
index e72becb..4b19721 100755
--- a/sdnr/wt/featureaggregator/installer/pom.xml
+++ b/sdnr/wt/featureaggregator/installer/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/featureaggregator/pom.xml b/sdnr/wt/featureaggregator/pom.xml
index 590efac..5729b71 100755
--- a/sdnr/wt/featureaggregator/pom.xml
+++ b/sdnr/wt/featureaggregator/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/helpserver/feature/pom.xml b/sdnr/wt/helpserver/feature/pom.xml
index 9deb689..c4173b9 100644
--- a/sdnr/wt/helpserver/feature/pom.xml
+++ b/sdnr/wt/helpserver/feature/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/helpserver/installer/pom.xml b/sdnr/wt/helpserver/installer/pom.xml
index 23d127d..ed98a3a 100755
--- a/sdnr/wt/helpserver/installer/pom.xml
+++ b/sdnr/wt/helpserver/installer/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/helpserver/pom.xml b/sdnr/wt/helpserver/pom.xml
index 76d003b..23b95c0 100755
--- a/sdnr/wt/helpserver/pom.xml
+++ b/sdnr/wt/helpserver/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/helpserver/provider/pom.xml b/sdnr/wt/helpserver/provider/pom.xml
index 32c6be5..847f84a 100644
--- a/sdnr/wt/helpserver/provider/pom.xml
+++ b/sdnr/wt/helpserver/provider/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/mountpoint-registrar/feature/pom.xml b/sdnr/wt/mountpoint-registrar/feature/pom.xml
index 56e1a38..e93cba5 100644
--- a/sdnr/wt/mountpoint-registrar/feature/pom.xml
+++ b/sdnr/wt/mountpoint-registrar/feature/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/mountpoint-registrar/installer/pom.xml b/sdnr/wt/mountpoint-registrar/installer/pom.xml
index 374ed8e..9c51f2c 100755
--- a/sdnr/wt/mountpoint-registrar/installer/pom.xml
+++ b/sdnr/wt/mountpoint-registrar/installer/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/mountpoint-registrar/model/pom.xml b/sdnr/wt/mountpoint-registrar/model/pom.xml
index 2a3fc23..aa985ae 100644
--- a/sdnr/wt/mountpoint-registrar/model/pom.xml
+++ b/sdnr/wt/mountpoint-registrar/model/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/mountpoint-registrar/pom.xml b/sdnr/wt/mountpoint-registrar/pom.xml
index 7aee5b4..4b05796 100755
--- a/sdnr/wt/mountpoint-registrar/pom.xml
+++ b/sdnr/wt/mountpoint-registrar/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/mountpoint-registrar/provider/pom.xml b/sdnr/wt/mountpoint-registrar/provider/pom.xml
index 3510cd6..f4b4d85 100644
--- a/sdnr/wt/mountpoint-registrar/provider/pom.xml
+++ b/sdnr/wt/mountpoint-registrar/provider/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/mountpoint-state-provider/feature/pom.xml b/sdnr/wt/mountpoint-state-provider/feature/pom.xml
index f0252f1..7c8f4d9 100644
--- a/sdnr/wt/mountpoint-state-provider/feature/pom.xml
+++ b/sdnr/wt/mountpoint-state-provider/feature/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/mountpoint-state-provider/installer/pom.xml b/sdnr/wt/mountpoint-state-provider/installer/pom.xml
index efc1e6e..0837a05 100755
--- a/sdnr/wt/mountpoint-state-provider/installer/pom.xml
+++ b/sdnr/wt/mountpoint-state-provider/installer/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/mountpoint-state-provider/pom.xml b/sdnr/wt/mountpoint-state-provider/pom.xml
index a54d846..27910da 100755
--- a/sdnr/wt/mountpoint-state-provider/pom.xml
+++ b/sdnr/wt/mountpoint-state-provider/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/mountpoint-state-provider/provider/pom.xml b/sdnr/wt/mountpoint-state-provider/provider/pom.xml
index 225f812..f5cf9ae 100644
--- a/sdnr/wt/mountpoint-state-provider/provider/pom.xml
+++ b/sdnr/wt/mountpoint-state-provider/provider/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/mountpoint-state-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/mountpointstateprovider/impl/MountpointStatePublisher.java b/sdnr/wt/mountpoint-state-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/mountpointstateprovider/impl/MountpointStatePublisher.java
index e430a5e..82f98a3 100644
--- a/sdnr/wt/mountpoint-state-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/mountpointstateprovider/impl/MountpointStatePublisher.java
+++ b/sdnr/wt/mountpoint-state-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/mountpointstateprovider/impl/MountpointStatePublisher.java
@@ -83,8 +83,11 @@
                 } else {
                     pauseThread();
                 }
-            } catch (Exception ex) {
-                LOG.error("Exception while publishing message, ignoring and continuing ... ", ex);
+            } catch (InterruptedException e) {
+                LOG.error("InterruptedException while publishing message, ignoring and continuing ... ", e);
+                Thread.currentThread().interrupt();
+            } catch (Exception e) {
+                LOG.error("Exception while publishing message, ignoring and continuing ... ", e);
             }
         }
     }
diff --git a/sdnr/wt/netconfnode-state-service/feature/pom.xml b/sdnr/wt/netconfnode-state-service/feature/pom.xml
index ce620a3..4b5716b 100644
--- a/sdnr/wt/netconfnode-state-service/feature/pom.xml
+++ b/sdnr/wt/netconfnode-state-service/feature/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/netconfnode-state-service/installer/pom.xml b/sdnr/wt/netconfnode-state-service/installer/pom.xml
index 1152f5f..98339de 100755
--- a/sdnr/wt/netconfnode-state-service/installer/pom.xml
+++ b/sdnr/wt/netconfnode-state-service/installer/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/netconfnode-state-service/model/pom.xml b/sdnr/wt/netconfnode-state-service/model/pom.xml
index 0e9a7f3..3717d08 100644
--- a/sdnr/wt/netconfnode-state-service/model/pom.xml
+++ b/sdnr/wt/netconfnode-state-service/model/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/netconfnode-state-service/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/NetconfAccessor.java b/sdnr/wt/netconfnode-state-service/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/NetconfAccessor.java
index 46fbbac..ad725e3 100644
--- a/sdnr/wt/netconfnode-state-service/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/NetconfAccessor.java
+++ b/sdnr/wt/netconfnode-state-service/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/NetconfAccessor.java
@@ -40,7 +40,6 @@
      */
     DOMDataBroker getControllerDOMDataBroker();
 
-
     /**
      * @return the nodeId
      */
diff --git a/sdnr/wt/netconfnode-state-service/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/NetconfDomAccessor.java b/sdnr/wt/netconfnode-state-service/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/NetconfDomAccessor.java
index 1013e37..b7eba42 100644
--- a/sdnr/wt/netconfnode-state-service/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/NetconfDomAccessor.java
+++ b/sdnr/wt/netconfnode-state-service/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/NetconfDomAccessor.java
@@ -73,7 +73,7 @@
      * @param path
      * @return NormalizedNode<?, ?> with data
      */
-    Optional<NormalizedNode<?, ?>> readDataNode(LogicalDatastoreType dataStoreType, YangInstanceIdentifier path);
+    Optional<NormalizedNode> readDataNode(LogicalDatastoreType dataStoreType, YangInstanceIdentifier path);
 
     /**
      * Read data from Controller node - controller-config
@@ -82,9 +82,10 @@
      * @param path
      * @return NormalizedNode<?, ?> with data
      */
-    Optional<NormalizedNode<?, ?>> readControllerDataNode(LogicalDatastoreType dataStoreType,
+    Optional<NormalizedNode> readControllerDataNode(LogicalDatastoreType dataStoreType,
             YangInstanceIdentifier path);
 
+
     /**
      * Register netconf notification listener for related mountpoint
      *
@@ -162,6 +163,5 @@
      *
      * @return serialization object.
      */
-    BindingNormalizedNodeSerializer getBindingNormalizedNodeSerializer();
-
+    //BindingNormalizedNodeSerializer getBindingNormalizedNodeSerializer();
 }
diff --git a/sdnr/wt/netconfnode-state-service/pom.xml b/sdnr/wt/netconfnode-state-service/pom.xml
index 0ab2d23..f2c9a25 100755
--- a/sdnr/wt/netconfnode-state-service/pom.xml
+++ b/sdnr/wt/netconfnode-state-service/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/netconfnode-state-service/provider/pom.xml b/sdnr/wt/netconfnode-state-service/provider/pom.xml
index 7b4699a..86177ca 100644
--- a/sdnr/wt/netconfnode-state-service/provider/pom.xml
+++ b/sdnr/wt/netconfnode-state-service/provider/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
@@ -70,7 +70,7 @@
         </dependency>
         <dependency>
             <groupId>org.opendaylight.mdsal</groupId>
-            <artifactId>mdsal-binding-generator-impl</artifactId>
+            <artifactId>mdsal-binding-generator</artifactId>
             <scope>provided</scope>
         </dependency>
         <dependency>
diff --git a/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/NetconfNodeStateServiceImpl.java b/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/NetconfNodeStateServiceImpl.java
index f759971..8605274 100644
--- a/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/NetconfNodeStateServiceImpl.java
+++ b/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/NetconfNodeStateServiceImpl.java
@@ -76,8 +76,8 @@
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
 import org.opendaylight.yangtools.concepts.ListenerRegistration;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.model.parser.api.YangParserException;
-import org.opendaylight.yangtools.yang.model.parser.api.YangParserFactory;
+import org.opendaylight.yangtools.yang.parser.api.YangParserException;
+import org.opendaylight.yangtools.yang.parser.api.YangParserFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -685,4 +685,5 @@
         this.handleDataTreeAsync = this.config.handleAsync();
 
     }
+
 }
diff --git a/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/access/NetconfAccessorManager.java b/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/access/NetconfAccessorManager.java
index 3b68004..6c37044 100644
--- a/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/access/NetconfAccessorManager.java
+++ b/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/access/NetconfAccessorManager.java
@@ -70,4 +70,7 @@
     public void removeAccessor(NodeId nNodeId) {
         accessorList.remove(nNodeId);
     }
+
+
+
 }
diff --git a/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/access/NetconfCommunicatorManager.java b/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/access/NetconfCommunicatorManager.java
index f1cf906..30afb4a 100644
--- a/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/access/NetconfCommunicatorManager.java
+++ b/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/access/NetconfCommunicatorManager.java
@@ -65,7 +65,6 @@
     private final DOMMountPointService domMountPointService;
     private final DomContext domContext;
 
-
     public NetconfCommunicatorManager(MountPointService mountPointService, DOMMountPointService domMountPointService,
             DomContext domContext) {
         super();
diff --git a/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/access/dom/DomContext.java b/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/access/dom/DomContext.java
index 35eaa9f..602b298 100644
--- a/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/access/dom/DomContext.java
+++ b/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/access/dom/DomContext.java
@@ -23,7 +23,7 @@
 
 import java.util.Objects;
 import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer;
-import org.opendaylight.yangtools.yang.model.parser.api.YangParserFactory;
+import org.opendaylight.yangtools.yang.parser.api.YangParserFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/access/dom/DomParser.java b/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/access/dom/DomParser.java
index 9bfa826..f191036 100644
--- a/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/access/dom/DomParser.java
+++ b/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/access/dom/DomParser.java
@@ -43,11 +43,11 @@
      * @param schemaContext schema context
      * @return created {@link NormalizedNode}
      */
-    public static NormalizedNode<?, ?> parseJsonFile(final String path, final EffectiveModelContext schemaContext) {
+    public static NormalizedNode parseJsonFile(final String path, final EffectiveModelContext schemaContext) {
         final JSONCodecFactory codecFactory = JSONCodecFactorySupplier.RFC7951.createSimple(schemaContext);
         final NormalizedNodeResult resultHolder = new NormalizedNodeResult();
         try (NormalizedNodeStreamWriter writer = ImmutableNormalizedNodeStreamWriter.from(resultHolder);
-             JsonParserStream jsonParser = JsonParserStream.create(writer, codecFactory, schemaContext);
+             JsonParserStream jsonParser = JsonParserStream.create(writer, codecFactory);
              InputStream inputStream = NetconfDomAccessorImpl.class.getResourceAsStream(path);
              JsonReader reader = new JsonReader(new InputStreamReader(inputStream))) {
             jsonParser.parse(reader);
diff --git a/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/access/dom/NetconfDomAccessorImpl.java b/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/access/dom/NetconfDomAccessorImpl.java
index 54ca395..1b26311 100644
--- a/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/access/dom/NetconfDomAccessorImpl.java
+++ b/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/access/dom/NetconfDomAccessorImpl.java
@@ -123,7 +123,7 @@
     }
 
     @Override
-    public Optional<NormalizedNode<?, ?>> readDataNode(LogicalDatastoreType dataStoreType,
+    public Optional<NormalizedNode> readDataNode(LogicalDatastoreType dataStoreType,
             YangInstanceIdentifier path) {
         LOG.debug("Read to node datastore:{} path:{}", dataStoreType, path);
 
@@ -131,9 +131,9 @@
         // correctly by underlying opendaylight NETCONF service
         DOMDataTreeReadTransaction readOnlyTransaction = dataBroker.newReadOnlyTransaction();
         try {
-            FluentFuture<Optional<NormalizedNode<?, ?>>> foData = readOnlyTransaction.read(dataStoreType, path);
+            FluentFuture<Optional<NormalizedNode>> foData = readOnlyTransaction.read(dataStoreType, path);
 
-            Optional<NormalizedNode<?, ?>> data = foData.get(120, TimeUnit.SECONDS);
+            Optional<NormalizedNode> data = foData.get(120, TimeUnit.SECONDS);
             LOG.trace("read is done - {} ", foData.isDone());
             return data;
         } catch (InterruptedException e) {
@@ -147,15 +147,15 @@
     }
 
     @Override
-    public Optional<NormalizedNode<?, ?>> readControllerDataNode(LogicalDatastoreType dataStoreType,
+    public Optional<NormalizedNode> readControllerDataNode(LogicalDatastoreType dataStoreType,
             YangInstanceIdentifier path) {
         LOG.debug("Read to controller node datastore:{} path:{}", dataStoreType, path);
 
         DOMDataTreeReadTransaction readOnlyTransaction = this.getControllerDOMDataBroker().newReadOnlyTransaction();
         try {
-            FluentFuture<Optional<NormalizedNode<?, ?>>> foData = readOnlyTransaction.read(dataStoreType, path);
+            FluentFuture<Optional<NormalizedNode>> foData = readOnlyTransaction.read(dataStoreType, path);
 
-            Optional<NormalizedNode<?, ?>> data = foData.get(120, TimeUnit.SECONDS);
+            Optional<NormalizedNode> data = foData.get(120, TimeUnit.SECONDS);
             LOG.trace("read is done - {} ", foData.isDone());
             return data;
         } catch (InterruptedException e) {
@@ -170,12 +170,12 @@
 
     @SuppressWarnings("unchecked")
     private static <T extends DataObject> Optional<T> convertNormalizedNode(BindingNormalizedNodeSerializer serializer,
-            Optional<NormalizedNode<?, ?>> oData, YangInstanceIdentifier path, Class<T> clazz)
+            Optional<NormalizedNode> oData, YangInstanceIdentifier path, Class<T> clazz)
             throws CanNotConvertException {
         if (oData.isPresent()) {
-            NormalizedNode<?, ?> data = oData.get();
+            NormalizedNode data = oData.get();
             LOG.debug("convertNormalizedNode data identifier: {} data nodetype: {}", data.getIdentifier(),
-                    data.getNodeType());
+                    data.getIdentifier().getNodeType());
             @Nullable
             Entry<InstanceIdentifier<?>, DataObject> entry = serializer.fromNormalizedNode(path, data);
             if (entry != null) {
@@ -185,11 +185,11 @@
                     return Optional.of((T) value);
                 } else {
                     throw new CanNotConvertException("Unexpected class. Expected:" + clazz.getName() + " provided:"
-                            + value.getClass().getName() + " Nodetype:" + data.getNodeType());
+                            + value.getClass().getName() + " Nodetype:" + data.getIdentifier().getNodeType());
                 }
             } else {
                 throw new CanNotConvertException(
-                        "No object created for path:" + path + " Nodetype:" + data.getNodeType());
+                        "No object created for path:" + path + " Nodetype:" + data.getIdentifier().getNodeType());
             }
         } else {
             throw new CanNotConvertException("No data received for path:" + path);
@@ -241,7 +241,7 @@
             if (stream.getName() != null) {
                 inputBuilder.setStream(stream.getName());
             }
-            replayIsSupported = Boolean.TRUE.equals(stream.isReplaySupport());
+            replayIsSupported = Boolean.TRUE.equals(stream.requireReplaySupport());
 
         }
         filter.ifPresent(inputBuilder::setFilter);
@@ -297,14 +297,12 @@
         return oStreams.map(Streams::nonnullStream).orElse(Collections.emptyMap());
     }
 
-    @Override
-    public BindingNormalizedNodeSerializer getBindingNormalizedNodeSerializer() {
-        return serializer;
-    }
-
+	/*
+	 * @Override public BindingNormalizedNodeSerializer
+	 * getBindingNormalizedNodeSerializer() { return serializer; }
+	 */
     private DateAndTime getDateAndTime(Instant dateTime) {
         final String formattedDate = DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(dateTime);
         return new DateAndTime(formattedDate);
     }
-
 }
diff --git a/sdnr/wt/netconfnode-state-service/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml b/sdnr/wt/netconfnode-state-service/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml
index ec4c64e..6a4fd8f 100644
--- a/sdnr/wt/netconfnode-state-service/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml
+++ b/sdnr/wt/netconfnode-state-service/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml
@@ -28,7 +28,7 @@
 
     <reference id="dataBroker" interface="org.opendaylight.mdsal.binding.api.DataBroker"/>
 
-    <reference id="domDataBroker" interface="org.opendaylight.mdsal.dom.api.DOMDataBroker"/>
+	<reference id="domDataBroker" interface="org.opendaylight.mdsal.dom.api.DOMDataBroker"/>
 
     <reference id="notificationPublishService"
                interface="org.opendaylight.mdsal.binding.api.NotificationPublishService"/>
@@ -49,7 +49,7 @@
                interface="org.onap.ccsdk.features.sdnr.wt.dataprovider.model.IEntityDataProvider"/>
 
     <reference id="yangParserFactory" 
-               interface="org.opendaylight.yangtools.yang.model.parser.api.YangParserFactory"/>
+               interface="org.opendaylight.yangtools.yang.parser.api.YangParserFactory"/>
 
     <reference id="bindingNormalizedNodeSerializer"
                interface="org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer"/>
diff --git a/sdnr/wt/netconfnode-state-service/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/test/TestNetconfNodeStateService.java b/sdnr/wt/netconfnode-state-service/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/test/TestNetconfNodeStateService.java
index b6d7314..70480d5 100644
--- a/sdnr/wt/netconfnode-state-service/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/test/TestNetconfNodeStateService.java
+++ b/sdnr/wt/netconfnode-state-service/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/test/TestNetconfNodeStateService.java
@@ -81,9 +81,9 @@
 import org.opendaylight.yangtools.concepts.ListenerRegistration;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.common.RpcResult;
-import org.opendaylight.yangtools.yang.model.parser.api.YangParserException;
-import org.opendaylight.yangtools.yang.model.parser.api.YangParserFactory;
-import org.opendaylight.yangtools.yang.parser.impl.YangParserFactoryImpl;
+import org.opendaylight.yangtools.yang.parser.api.YangParserException;
+import org.opendaylight.yangtools.yang.parser.api.YangParserFactory;
+import org.opendaylight.yangtools.yang.parser.impl.DefaultYangParserFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -143,7 +143,7 @@
         NotificationPublishService notificationPublishService = mock(NotificationPublishService.class);
         RpcProviderService rpcProviderRegistry = mock(RpcProviderService.class);
         IEntityDataProvider entityProviderMock = mock(IEntityDataProvider.class);
-        YangParserFactory yangParserFactory = new YangParserFactoryImpl();
+        YangParserFactory yangParserFactory = new DefaultYangParserFactory();
         BindingNormalizedNodeSerializer bindingNormalizedNodeSerializer =
                 new BindingCodecContext(BindingRuntimeHelpers.createRuntimeContext());
         // start using blueprint interface
@@ -165,7 +165,9 @@
     public static void after() throws InterruptedException, IOException {
         System.out.println("Start shutdown");
         // close using blueprint interface
-        netconfStateService.close();
+        if(netconfStateService!=null) {
+        	netconfStateService.close();
+        }
         delete(KARAF_ETC);
 
     }
diff --git a/sdnr/wt/netconfnode-state-service/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/test/example/ExampleConfig.java b/sdnr/wt/netconfnode-state-service/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/test/example/ExampleConfig.java
index f174538..9630897 100644
--- a/sdnr/wt/netconfnode-state-service/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/test/example/ExampleConfig.java
+++ b/sdnr/wt/netconfnode-state-service/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/test/example/ExampleConfig.java
@@ -30,11 +30,12 @@
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
-import org.opendaylight.yangtools.yang.model.parser.api.YangParser;
-import org.opendaylight.yangtools.yang.model.parser.api.YangParserException;
+import org.opendaylight.yangtools.yang.parser.api.YangParser;
+import org.opendaylight.yangtools.yang.parser.api.YangParserException;
 import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -45,7 +46,7 @@
 
     // specification of YANG module
     private static final QNameModule CONFIG_MODULE = QNameModule.create(
-            URI.create("urn:ietf:params:xml:ns:yang:config"), Revision.of("2020-12-08"));
+            XMLNamespace.of("urn:ietf:params:xml:ns:yang:config"), Revision.of("2020-12-08"));
     // path to 'configuration' container (it is a root container)
     private static final YangInstanceIdentifier CONFIGURATION_PATH = YangInstanceIdentifier.builder()
             .node(QName.create(CONFIG_MODULE, "configuration"))
@@ -61,7 +62,7 @@
         final EffectiveModelContext schemaContext = parser.buildEffectiveModel();
 
         // (2) parsing of configuration into binding-independent format
-        final NormalizedNode<?, ?> data = DomParser.parseJsonFile("/example.json", schemaContext);
+        final NormalizedNode data = DomParser.parseJsonFile("/example.json", schemaContext);
 
         // (3) conversion into binding-aware format (md-sal codec needs to know about path on which data is placed)
         final Configuration config = (Configuration) domContext.getBindingNormalizedNodeSerializer().fromNormalizedNode(CONFIGURATION_PATH, data)
@@ -69,7 +70,7 @@
 
         // (4) printing some useful information
         LOG.info("Value of 'config1': {}", config.getConfig1());
-        LOG.info("Value of 'config2': {}", config.isConfig2());
+        LOG.info("Value of 'config2': {}", config.requireConfig2());
         Objects.requireNonNull(config.getEntry()).forEach((entryKey, entry) ->
                 LOG.info("Value of '{}' setting: {}", entry.getSetting(), entry.getValue()));
     }
diff --git a/sdnr/wt/oauth-provider/pom.xml b/sdnr/wt/oauth-provider/pom.xml
index 788106b..44676de 100755
--- a/sdnr/wt/oauth-provider/pom.xml
+++ b/sdnr/wt/oauth-provider/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/oauth-provider/provider-jar/pom.xml b/sdnr/wt/oauth-provider/provider-jar/pom.xml
index 24b07bb..a6d31d7 100644
--- a/sdnr/wt/oauth-provider/provider-jar/pom.xml
+++ b/sdnr/wt/oauth-provider/provider-jar/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/OAuth2Realm.java b/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/OAuth2Realm.java
index 908b91d..b9f3d61 100644
--- a/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/OAuth2Realm.java
+++ b/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/OAuth2Realm.java
@@ -26,7 +26,6 @@
 import org.apache.shiro.authc.AuthenticationException;
 import org.apache.shiro.authc.AuthenticationInfo;
 import org.apache.shiro.authc.AuthenticationToken;
-import org.apache.shiro.authc.BearerToken;
 import org.apache.shiro.authc.SimpleAuthenticationInfo;
 import org.apache.shiro.authc.UsernamePasswordToken;
 import org.apache.shiro.authz.AuthorizationInfo;
@@ -36,6 +35,7 @@
 import org.onap.ccsdk.features.sdnr.wt.oauthprovider.data.InvalidConfigurationException;
 import org.onap.ccsdk.features.sdnr.wt.oauthprovider.providers.TokenCreator;
 import org.opendaylight.aaa.api.shiro.principal.ODLPrincipal;
+import org.apache.shiro.authc.BearerToken;
 import org.opendaylight.aaa.shiro.realm.TokenAuthRealm;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/data/OAuthToken.java b/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/data/OAuthToken.java
index 825286d..0371f37 100644
--- a/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/data/OAuthToken.java
+++ b/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/data/OAuthToken.java
@@ -25,7 +25,6 @@
 import com.auth0.jwt.interfaces.DecodedJWT;
 import org.apache.shiro.authc.BearerToken;
 
-
 public class OAuthToken {
     private final String access_token;
     private final String token_type;
diff --git a/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/filters/AnyRoleHttpAuthenticationFilter.java b/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/filters/AnyRoleHttpAuthenticationFilter.java
index e0714fa..0dc58ef 100644
--- a/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/filters/AnyRoleHttpAuthenticationFilter.java
+++ b/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/filters/AnyRoleHttpAuthenticationFilter.java
@@ -72,4 +72,4 @@
         LOG.debug("no role matched: access denied");
         return false;
     }
-}
+}
\ No newline at end of file
diff --git a/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/http/AuthHttpServlet.java b/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/http/AuthHttpServlet.java
index 96faccb..15ff9c4 100644
--- a/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/http/AuthHttpServlet.java
+++ b/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/http/AuthHttpServlet.java
@@ -39,7 +39,6 @@
 import javax.servlet.http.HttpServletResponse;
 import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.ShiroException;
-import org.apache.shiro.authc.BearerToken;
 import org.apache.shiro.codec.Base64;
 import org.apache.shiro.session.Session;
 import org.apache.shiro.subject.Subject;
@@ -58,6 +57,7 @@
 import org.onap.ccsdk.features.sdnr.wt.oauthprovider.providers.OAuthProviderFactory;
 import org.onap.ccsdk.features.sdnr.wt.oauthprovider.providers.TokenCreator;
 import org.opendaylight.aaa.api.IdMService;
+import org.apache.shiro.authc.BearerToken;
 import org.opendaylight.mdsal.binding.api.DataBroker;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.aaa.app.config.rev170619.ShiroConfiguration;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.aaa.app.config.rev170619.shiro.configuration.Main;
diff --git a/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/providers/AuthService.java b/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/providers/AuthService.java
index bb0857a..835ea8c 100644
--- a/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/providers/AuthService.java
+++ b/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/providers/AuthService.java
@@ -41,13 +41,13 @@
 import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import org.apache.shiro.authc.BearerToken;
 import org.onap.ccsdk.features.sdnr.wt.oauthprovider.data.OAuthProviderConfig;
 import org.onap.ccsdk.features.sdnr.wt.oauthprovider.data.OAuthResponseData;
 import org.onap.ccsdk.features.sdnr.wt.oauthprovider.data.UserTokenPayload;
 import org.onap.ccsdk.features.sdnr.wt.oauthprovider.http.AuthHttpServlet;
 import org.onap.ccsdk.features.sdnr.wt.oauthprovider.http.client.MappedBaseHttpResponse;
 import org.onap.ccsdk.features.sdnr.wt.oauthprovider.http.client.MappingBaseHttpClient;
+import org.apache.shiro.authc.BearerToken;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/providers/TokenCreator.java b/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/providers/TokenCreator.java
index 238f888..1fb87a8 100644
--- a/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/providers/TokenCreator.java
+++ b/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/providers/TokenCreator.java
@@ -32,11 +32,11 @@
 import java.util.Arrays;
 import java.util.Date;
 import javax.servlet.http.HttpServletRequest;
-import org.apache.shiro.authc.BearerToken;
 import org.bouncycastle.jce.provider.BouncyCastleProvider;
 import org.onap.ccsdk.features.sdnr.wt.oauthprovider.data.Config;
 import org.onap.ccsdk.features.sdnr.wt.oauthprovider.data.UserTokenPayload;
 import org.onap.ccsdk.features.sdnr.wt.oauthprovider.http.AuthHttpServlet;
+import org.apache.shiro.authc.BearerToken;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/sdnr/wt/oauth-provider/provider-jar/src/test/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/test/TestAuthHttpServlet.java b/sdnr/wt/oauth-provider/provider-jar/src/test/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/test/TestAuthHttpServlet.java
index ab6dc4e..7b4adef 100644
--- a/sdnr/wt/oauth-provider/provider-jar/src/test/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/test/TestAuthHttpServlet.java
+++ b/sdnr/wt/oauth-provider/provider-jar/src/test/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/test/TestAuthHttpServlet.java
@@ -41,7 +41,6 @@
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import org.apache.shiro.authc.BearerToken;
 import org.jolokia.osgi.security.Authenticator;
 import org.json.JSONArray;
 import org.junit.BeforeClass;
@@ -59,6 +58,7 @@
 import org.onap.ccsdk.features.sdnr.wt.oauthprovider.test.helper.OdlJsonMapper;
 import org.onap.ccsdk.features.sdnr.wt.oauthprovider.test.helper.OdlXmlMapper;
 import org.opendaylight.aaa.api.IdMService;
+import org.apache.shiro.authc.BearerToken;
 import org.opendaylight.mdsal.binding.api.DataBroker;
 import org.opendaylight.mdsal.binding.api.ReadTransaction;
 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
@@ -93,7 +93,6 @@
             servlet = new TestServlet();
             shiroConfiguration = loadShiroConfig(TESTSHIROCONFIGFILE);
         } catch (IOException | InvalidConfigurationException e) {
-            e.printStackTrace();
             fail(e.getMessage());
         }
         servlet.setDataBroker(dataBroker);
diff --git a/sdnr/wt/oauth-provider/provider-jar/src/test/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/test/TestRealm.java b/sdnr/wt/oauth-provider/provider-jar/src/test/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/test/TestRealm.java
index c08f395..d6a9ac5 100644
--- a/sdnr/wt/oauth-provider/provider-jar/src/test/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/test/TestRealm.java
+++ b/sdnr/wt/oauth-provider/provider-jar/src/test/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/test/TestRealm.java
@@ -45,9 +45,9 @@
 import org.onap.ccsdk.features.sdnr.wt.oauthprovider.data.UserTokenPayload;
 import org.onap.ccsdk.features.sdnr.wt.oauthprovider.providers.TokenCreator;
 import org.opendaylight.aaa.api.shiro.principal.ODLPrincipal;
-import org.opendaylight.aaa.shiro.tokenauthrealm.auth.AuthenticationManager;
-import org.opendaylight.aaa.shiro.tokenauthrealm.auth.TokenAuthenticators;
 import org.opendaylight.aaa.shiro.web.env.ThreadLocals;
+import org.opendaylight.aaa.tokenauthrealm.auth.AuthenticationManager;
+import org.opendaylight.aaa.tokenauthrealm.auth.TokenAuthenticators;
 
 public class TestRealm {
 
diff --git a/sdnr/wt/oauth-provider/provider-osgi/pom.xml b/sdnr/wt/oauth-provider/provider-osgi/pom.xml
index 6de756a..21fa1e6 100644
--- a/sdnr/wt/oauth-provider/provider-osgi/pom.xml
+++ b/sdnr/wt/oauth-provider/provider-osgi/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/odlux/apps/apiDemo/pom.xml b/sdnr/wt/odlux/apps/apiDemo/pom.xml
index f7ed19b..8410ecf 100644
--- a/sdnr/wt/odlux/apps/apiDemo/pom.xml
+++ b/sdnr/wt/odlux/apps/apiDemo/pom.xml
@@ -19,14 +19,13 @@
   ~ ============LICENSE_END=======================================================
   ~
   -->
-
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.2.4</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/odlux/apps/app-feature/pom.xml b/sdnr/wt/odlux/apps/app-feature/pom.xml
index 43cfe97..e3c90ec 100644
--- a/sdnr/wt/odlux/apps/app-feature/pom.xml
+++ b/sdnr/wt/odlux/apps/app-feature/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/odlux/apps/app-installer/pom.xml b/sdnr/wt/odlux/apps/app-installer/pom.xml
index 91caff6..d0f8849 100755
--- a/sdnr/wt/odlux/apps/app-installer/pom.xml
+++ b/sdnr/wt/odlux/apps/app-installer/pom.xml
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/odlux/apps/configurationApp/pom.xml b/sdnr/wt/odlux/apps/configurationApp/pom.xml
index 61af101..61fc224 100644
--- a/sdnr/wt/odlux/apps/configurationApp/pom.xml
+++ b/sdnr/wt/odlux/apps/configurationApp/pom.xml
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/odlux/apps/connectApp/pom.xml b/sdnr/wt/odlux/apps/connectApp/pom.xml
index 2229c8e..ddcb6e9 100644
--- a/sdnr/wt/odlux/apps/connectApp/pom.xml
+++ b/sdnr/wt/odlux/apps/connectApp/pom.xml
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/odlux/apps/demoApp/pom.xml b/sdnr/wt/odlux/apps/demoApp/pom.xml
index 14b514a..fcf9ab5 100644
--- a/sdnr/wt/odlux/apps/demoApp/pom.xml
+++ b/sdnr/wt/odlux/apps/demoApp/pom.xml
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/odlux/apps/eventLogApp/pom.xml b/sdnr/wt/odlux/apps/eventLogApp/pom.xml
index 83e4d85..9206562 100644
--- a/sdnr/wt/odlux/apps/eventLogApp/pom.xml
+++ b/sdnr/wt/odlux/apps/eventLogApp/pom.xml
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/odlux/apps/faultApp/pom.xml b/sdnr/wt/odlux/apps/faultApp/pom.xml
index 8d7269b..54e0800 100644
--- a/sdnr/wt/odlux/apps/faultApp/pom.xml
+++ b/sdnr/wt/odlux/apps/faultApp/pom.xml
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/odlux/apps/helpApp/pom.xml b/sdnr/wt/odlux/apps/helpApp/pom.xml
index 84d0296..889fe76 100644
--- a/sdnr/wt/odlux/apps/helpApp/pom.xml
+++ b/sdnr/wt/odlux/apps/helpApp/pom.xml
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/odlux/apps/inventoryApp/pom.xml b/sdnr/wt/odlux/apps/inventoryApp/pom.xml
index 35dc58e..153d951 100644
--- a/sdnr/wt/odlux/apps/inventoryApp/pom.xml
+++ b/sdnr/wt/odlux/apps/inventoryApp/pom.xml
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/odlux/apps/maintenanceApp/pom.xml b/sdnr/wt/odlux/apps/maintenanceApp/pom.xml
index 882cd68..a39b535 100644
--- a/sdnr/wt/odlux/apps/maintenanceApp/pom.xml
+++ b/sdnr/wt/odlux/apps/maintenanceApp/pom.xml
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/odlux/apps/mediatorApp/pom.xml b/sdnr/wt/odlux/apps/mediatorApp/pom.xml
index ef15fb6..7005fe4 100644
--- a/sdnr/wt/odlux/apps/mediatorApp/pom.xml
+++ b/sdnr/wt/odlux/apps/mediatorApp/pom.xml
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/odlux/apps/minimumApp/pom.xml b/sdnr/wt/odlux/apps/minimumApp/pom.xml
index 12e4571..5892984 100644
--- a/sdnr/wt/odlux/apps/minimumApp/pom.xml
+++ b/sdnr/wt/odlux/apps/minimumApp/pom.xml
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/odlux/apps/performanceHistoryApp/pom.xml b/sdnr/wt/odlux/apps/performanceHistoryApp/pom.xml
index 1cbc0ff..6fdd8c6 100644
--- a/sdnr/wt/odlux/apps/performanceHistoryApp/pom.xml
+++ b/sdnr/wt/odlux/apps/performanceHistoryApp/pom.xml
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/odlux/core/features/pom.xml b/sdnr/wt/odlux/core/features/pom.xml
index 40838e5..7e5f256 100644
--- a/sdnr/wt/odlux/core/features/pom.xml
+++ b/sdnr/wt/odlux/core/features/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/odlux/core/installer/pom.xml b/sdnr/wt/odlux/core/installer/pom.xml
index 1d68e19..818d68d 100755
--- a/sdnr/wt/odlux/core/installer/pom.xml
+++ b/sdnr/wt/odlux/core/installer/pom.xml
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/odlux/core/model/pom.xml b/sdnr/wt/odlux/core/model/pom.xml
index f70584d..4e7bfc8 100644
--- a/sdnr/wt/odlux/core/model/pom.xml
+++ b/sdnr/wt/odlux/core/model/pom.xml
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/odlux/core/pom.xml b/sdnr/wt/odlux/core/pom.xml
index ce87096..401e84e 100644
--- a/sdnr/wt/odlux/core/pom.xml
+++ b/sdnr/wt/odlux/core/pom.xml
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/odlux/core/provider/pom.xml b/sdnr/wt/odlux/core/provider/pom.xml
index 9fec91b..611f801 100644
--- a/sdnr/wt/odlux/core/provider/pom.xml
+++ b/sdnr/wt/odlux/core/provider/pom.xml
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/odlux/framework/pom.xml b/sdnr/wt/odlux/framework/pom.xml
index 83ba6f3..9f77f9b 100644
--- a/sdnr/wt/odlux/framework/pom.xml
+++ b/sdnr/wt/odlux/framework/pom.xml
@@ -19,14 +19,13 @@
   ~ ============LICENSE_END=======================================================
   ~
   -->
-
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/odlux/installer/pom.xml b/sdnr/wt/odlux/installer/pom.xml
index 1e1acbf..c76f8e4 100644
--- a/sdnr/wt/odlux/installer/pom.xml
+++ b/sdnr/wt/odlux/installer/pom.xml
@@ -19,15 +19,13 @@
   ~ ============LICENSE_END=======================================================
   ~
   -->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/odlux/pom.xml b/sdnr/wt/odlux/pom.xml
index b5c275b..8a66060 100644
--- a/sdnr/wt/odlux/pom.xml
+++ b/sdnr/wt/odlux/pom.xml
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/pom.xml b/sdnr/wt/pom.xml
index 014cb50..372f728 100644
--- a/sdnr/wt/pom.xml
+++ b/sdnr/wt/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/readthedocs/pom.xml b/sdnr/wt/readthedocs/pom.xml
index 982caa5..64c162c 100644
--- a/sdnr/wt/readthedocs/pom.xml
+++ b/sdnr/wt/readthedocs/pom.xml
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/websocketmanager/feature/pom.xml b/sdnr/wt/websocketmanager/feature/pom.xml
index 3397da6..6c6e09d 100644
--- a/sdnr/wt/websocketmanager/feature/pom.xml
+++ b/sdnr/wt/websocketmanager/feature/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/websocketmanager/installer/pom.xml b/sdnr/wt/websocketmanager/installer/pom.xml
index b2cbd67..beffd6c 100755
--- a/sdnr/wt/websocketmanager/installer/pom.xml
+++ b/sdnr/wt/websocketmanager/installer/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/websocketmanager/model/pom.xml b/sdnr/wt/websocketmanager/model/pom.xml
index 40bc39e..1383163 100644
--- a/sdnr/wt/websocketmanager/model/pom.xml
+++ b/sdnr/wt/websocketmanager/model/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/websocketmanager/pom.xml b/sdnr/wt/websocketmanager/pom.xml
index f0ff66c..5bec81e 100755
--- a/sdnr/wt/websocketmanager/pom.xml
+++ b/sdnr/wt/websocketmanager/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/websocketmanager/provider/pom.xml b/sdnr/wt/websocketmanager/provider/pom.xml
index 838ecc4..abd8dd1 100644
--- a/sdnr/wt/websocketmanager/provider/pom.xml
+++ b/sdnr/wt/websocketmanager/provider/pom.xml
@@ -28,7 +28,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.3.2</version>
+        <version>2.3.3-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
diff --git a/sdnr/wt/websocketmanager/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/websocketmanager/WebSocketManagerProvider.java b/sdnr/wt/websocketmanager/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/websocketmanager/WebSocketManagerProvider.java
index d3f49b8..8af5cb1 100644
--- a/sdnr/wt/websocketmanager/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/websocketmanager/WebSocketManagerProvider.java
+++ b/sdnr/wt/websocketmanager/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/websocketmanager/WebSocketManagerProvider.java
@@ -102,14 +102,9 @@
 
     @Override
     public void sendNotification(Notification notification, NodeId nodeId, QName eventType) {
-//        disabled because of malfunction
-// e.g.   notification type (class org.opendaylight.yang.gen.v1.urn.o.ran.sc.params.xml.ns.yang.nts.manager.rev210608.
-//        OperationStatusChanged$$$eventInstantAware) and qname((urn:o-ran-sc:params:xml:ns:yang:nts:manager?
-//        revision=2021-06-08)operation-status-changed) do not match. won't be sent
-//        if (!assertNotificationType(notification, eventType)) {
-//            LOG.warn("notification type ({}) and qname({}) do not match. won't be sent",notification.getClass(), eventType)
-//            return;
-//        }
+        if (!assertNotificationType(notification, eventType)) {
+            return;
+        }
         this.sendNotification(notification, nodeId, eventType,
                 YangToolsMapperHelper.getTime(notification, Instant.now()));
     }
diff --git a/sdnr/wt/websocketmanager/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/websocketmanager/WebSocketManagerSocket.java b/sdnr/wt/websocketmanager/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/websocketmanager/WebSocketManagerSocket.java
index f508c61..95715be 100644
--- a/sdnr/wt/websocketmanager/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/websocketmanager/WebSocketManagerSocket.java
+++ b/sdnr/wt/websocketmanager/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/websocketmanager/WebSocketManagerSocket.java
@@ -24,6 +24,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.Random;
 import java.util.Set;
 import java.util.concurrent.ArrayBlockingQueue;
 import java.util.concurrent.ExecutionException;
@@ -78,7 +79,7 @@
                     if (message != null) {
                         WebSocketManagerSocket.this.session.getRemote().sendStringByFuture(message)
                                 .get(SEND_MESSAGE_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS);
-                        LOG.debug("message sent");
+                        LOG.info("message sent");
                     }
                 } catch (ExecutionException | TimeoutException e) {
                     LOG.warn("problem pushing message: ", e);
@@ -150,7 +151,7 @@
 
     @Override
     public void onWebSocketText(String message) {
-        LOG.debug("{} has sent {}", this.getRemoteAdr(), message);
+        LOG.info("{} has sent {}", this.getRemoteAdr(), message);
         if (!this.manageClientRequest(message)) {
             this.manageClientRequest2(message);
         }
diff --git a/sdnr/wt/websocketmanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/websocketmanager2/test/TestSerializer.java b/sdnr/wt/websocketmanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/websocketmanager2/test/TestSerializer.java
index ff0437e..9628384 100644
--- a/sdnr/wt/websocketmanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/websocketmanager2/test/TestSerializer.java
+++ b/sdnr/wt/websocketmanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/websocketmanager2/test/TestSerializer.java
@@ -56,19 +56,4 @@
         assertNotNull(sOutput);
         assertTrue(sOutput.contains("\"type\""));
     }
-//    @Test
-//    public void test2() {
-//        InstanceChanged notification = new InstanceChangedBuilder().setChangeStatus("stop SUCCESS").setName("NTS_FUNCTION_TYPE_OPENROADM_6_1_0-1").setFunctionType(NTS_FUNCTION_TYPE_OPENROADM_6_1_0.class)
-//        NotificationOutput output = new NotificationOutput(notification, NODEID, ObjectCreationNotification.QNAME,DateAndTime.getDefaultInstance(TIMESTAMP));
-//        String sOutput=null;
-//        try {
-//            sOutput = mapper.writeValueAsString(output);
-//            LOG.debug(sOutput);
-//        } catch (JsonProcessingException e) {
-//            e.printStackTrace();
-//            fail(e.getMessage());
-//        }
-//        assertNotNull(sOutput);
-//        assertTrue(sOutput.contains("\"type\""));
-//    }
 }
